C語言程序設(shè)計(微課版) 習題答案 趙彩_第1頁
C語言程序設(shè)計(微課版) 習題答案 趙彩_第2頁
C語言程序設(shè)計(微課版) 習題答案 趙彩_第3頁
C語言程序設(shè)計(微課版) 習題答案 趙彩_第4頁
C語言程序設(shè)計(微課版) 習題答案 趙彩_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

?PAGE7?附錄各章習題參考答案各章習題參考答案第1章習題參考答案1.解答:(1)語言分成簡潔、緊湊、書寫形式自由,是一個比較小的語言。(2)提供豐富的程序機制,包括豐富且功能強大的運算符、各種控制機制和數(shù)據(jù)定義機制,能滿足構(gòu)造復雜程序時的各種需要。(3)提供一套預處理命令,支持程序或軟件系統(tǒng)的分塊開發(fā)。(4)可以寫出效率很高的程序。(5)C語言的工作得到了世界計算機界的廣泛贊許。2.解答:(1)C語言程序是由頭文件和源文件組成。(2)main函數(shù)(主函數(shù))是每個函數(shù)執(zhí)行的起始點。(3)一個函數(shù)由函數(shù)首部和函數(shù)體兩部分組成。(4)可以使用/**/對C程序中任何部分作注釋。(5)C語言本身不提供輸入/輸出語句,輸入/輸出的操作是通過調(diào)用庫函數(shù)(scanf,printf)完成。3.解答:(1) 分析問題,設(shè)計一種解決問題的途徑。(2) 根據(jù)所設(shè)想的解決方案,用編輯系統(tǒng)(word或集成開發(fā)環(huán)境IDE)建立程序。(3) 用編譯程序?qū)υ闯绦蜻M行編譯。正確完成就進入下一步;如果發(fā)現(xiàn)錯誤,就需要設(shè)法確定錯誤,回到第(2)步,去修改程序。(4) 反復工作直到編譯能正確完成,編譯中發(fā)現(xiàn)的錯誤都已排除,所有警告都已處理,這是就可進行程序連接,如果發(fā)現(xiàn)錯誤,就返回第(2)步,修改程序后重新編譯。(5) 正常連接產(chǎn)生可執(zhí)行程序后,可開始程序的調(diào)試執(zhí)行。此時需要一些實際數(shù)據(jù)考查程序的執(zhí)行效果。如果執(zhí)行中出現(xiàn)問題,或發(fā)現(xiàn)結(jié)果不正確,那么就要設(shè)法確定錯誤的原因,回到前面的步驟:修改程序,重新編譯,重新連接等等。重復上述過程直到程序正確為止。4.略5.略6.解答:(1) main(){printf("Cprogram1");}(2)main(){printf("Cprogram1");printf("Cprogram2");}7.解答:main函數(shù)是程序執(zhí)行的起始點,一個C語言程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在程序中的位置如何。8.解答:C程序的編輯、編譯與運行。C語言是高級程序語言,用它寫出的程序通常稱為C語言源程序(其擴展名為“.c”)。為使計算機能完成某個C語言源程序所描述的工作,就必須首先把這個源程序轉(zhuǎn)換成二進制形式的機器語言程序,這種轉(zhuǎn)換稱為“C程序的加工”。C程序加工通常分為兩步完成:第一步,有編譯程序?qū)υ闯绦蛭募M行分析和處理,生成相應(yīng)的機器語言目標模塊,有目標模塊構(gòu)成的代碼文件稱為目標文件(其擴展名為“.obj”)。第二步,加工鏈接。這一工作有連接程序完成,將編譯得到的目標模塊與其他必要部分(運行系統(tǒng)、函數(shù)庫提供的功能模塊等)拼裝起來,做成可執(zhí)行程序(其擴展名為“.exe”)。9.解答:源代碼是用高級語言書寫的程序代碼,是給人看的代碼??蓤?zhí)行程序是機器運行的二進制代碼。二者的關(guān)系是:源代碼要執(zhí)行必須經(jīng)過編譯與連接生成可執(zhí)行代碼。10.解答:參考代碼:#include<stdio.h>main(){printf(“*\n”)printf(“***\n”)printf(“*****\n”)printf(“*******\n”)printf(“*****\n”)printf(“***\n”)printf(“*\n”)}11.解答:(1)B(2)D(3)D第2章習題參考答案1.答:(1)凡未被定義的變量名都不能使用,這就能保證程序中變量名使用得正確。(2)每一個變量被指定一個數(shù)據(jù)類型,在編譯時就能為其分配相應(yīng)的存儲單元。(3)指定每一變量屬于一個類型,便于在編譯時檢查該變量參與的運算是否合法。2.(1)(2)(3)(4)(5)3.(1)7(2)6(3)1(4)12(5)0(6)1(7)0(8)04.參考代碼:#include<stdio.h>voidmain(){ chara,b,c; scanf("%c,%c,%c",&a,&b,&c); printf("%d,%d,%d\n",a,b,c); printf("%c,%c,%c\n",c,b,a);}5.參考代碼:#include<stdio.h>#include<math.h>voidmain(){ floatA,B,C,P,S; scanf("%f,%f,%f",&A,&B,&C); P=1.0/2*(A+B+C); S=sqrt(P*(P-A)*(P-B)*(P-C)); printf("A=%f,B=%f,C=%f,P=%f\n",A,B,C,P); printf("S=%f\n",S);}6.(1)2(2)33(3)3(4)56.0000007.(1)2008(2)21(3)10(4)98.參考代碼:#include<stdio.h>voidmain(){ inta; floatf; printf("pleaseinputtwonumbers(integer,float):"); scanf("%d,%f",&a,&f); a=a*f; printf("a*f=%d",a); printf("\n");}結(jié)果分析:輸入一個整數(shù)和一個實數(shù),輸出結(jié)果為整型,因此得到是一個并不精確的計算結(jié)果。因為一個整數(shù)和一個實數(shù)進行運算,整數(shù)將自動轉(zhuǎn)換為實型數(shù)據(jù)參與運算,運算之后的結(jié)果將是實型數(shù)據(jù),如果將一個實數(shù)賦值給一個整型變量,結(jié)果將會出現(xiàn)舍入誤差。9.參考代碼:#include<stdio.h>voidmain(){ floatv,a,time,s; printf("pleaseinputyourv="); scanf("%f",&v); printf("pleaseinputyoura="); scanf("%f",&a); printf("pleaseinputyourtime="); scanf("%f",&time); s=(v*time+a*time*time/2); printf("s=%f",s);}10.(1)D(2)A(3)A(4)B(5)B(6)C(7)D(8)D(9)D(10)B(11)C(12)A(13)D(14)C(15)C第3章習題參考答案1.(1)1,2(2)E,68(3)Howareyou?How(4)例如輸入:12,c?500?23456?輸出:a=12**b=500**ch=c**L=234562.(1)參考代碼:#include<stdio.h>voidmain(){ floata,b,c,sum; printf("請輸入三個實數(shù)a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); sum=a+b+c; printf("三個數(shù)的和=%f\n",sum);}(2)參考代碼:#include<stdio.h>#definePI3.14voidmain(){ floatr,s,l; printf("請輸入圓的半徑:",r); scanf("%f",&r); s=PI*r*r; l=2*PI*r; printf("圓的面積=%f\n圓的周長=%f\n",s,l);}3.(1)B(2)C(3)B第4章習題參考答案1.答:(1)m=1(2)4:05PM(3)10,14(4)************************************(5)12(6)s=0(7)1AbCeDf2dF(8)3(9)0,4,6(10)0,1,2,52.解答:(1)參考代碼:#include<stdio.h>intmain(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(b>max)max=b;if(c>max)max=c;printf("%d\n",max);}(2)參考代碼:#include<stdio.h>voidmain(){inta,b,c,d,t;scanf("%d,%d,%d,%d",&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=b;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d,%d,%d,%d",a,b,c,d);}(3)參考代碼:#include<stdio.h>voidmain(){inti;printf("pleaseinputyourintegernumbers1-7:");scanf("%d",&i);switch(i){case1: printf("MON\n"); break;case2: printf("TUE\n"); break;case3: printf("WED\n"); break;case4: printf("THU\n"); break;case5: printf("FRI\n"); break;case6: printf("SAT\n"); break;case7: printf("SUN\n"); break;default: printf("pleaseinputyournumbersagain\n");}}(4)參考代碼:#include<stdio.h>voidmain(){floata,b,c,temp;scanf("%f,%f,%f",&a,&b,&c);if(a==b||a==c||b==c)printf("pleaseinputyournumbersagain:\n");if(a>b){ temp=a; a=b;b=temp;}if(a>c){ temp=a; a=c; c=temp;}if(b>c){ temp=b; b=c;c=temp;}printf("%f\n",b);}(5)參考代碼:#include<stdio.h>voidmain(){ inta; printf("pleaseinputyoura="); scanf("%d",&a); if(a==0) printf("zero\n"); elseif(a%2==0) printf("odd\n"); else printf("even\n");}(6)參考代碼:#include<stdio.h>voidmain(){inti,j,sum=0;printf("pleaseinputoneintegernumber:");scanf("%d",&i);do{ j=i%10; printf("%d",j); sum+=1; i=i/10;}while(i>0);printf("\n");printf("你輸入的數(shù)字是%d位數(shù)\n",sum);}(7)參考代碼:#include<stdio.h>voidmain(){ inta,b,c,t; printf("pleaseinputtwointegernumber:\n"); scanf("%d,%d",&a,&b); while(a<=0||b<=0) { printf("pleaseinputyourintegernumberagain!!!"); }if(a<b){t=a;a=b;b=t;}c=a*b; while(b) { intr=a%b; a=b; b=r; } printf("thetwonumbersdivisoris%d\n",a); printf("thetwonumbersmultipleis%d\n",c/a);}(8)參考代碼:#include<stdio.h>voidmain(){ inti,j; for(i=1;i<=1000;i++) {ints=0; for(j=1;j<i;j++) { if(i%j==0) s+=j; } if(s==i) { printf("%d\n",i); } }}(9)參考代碼:#include<stdio.h>voidmain(){ floats=0,h=1,g; inti; for(i=1;i<10;i++) { h*=2; s+=100/h; }s=2*s+100; g=100/h; printf("inallruntime%f\n",s); printf("%f\n",g);}(10)參考代碼:#include<stdio.h>

void

main()

{

int

n,i,flag;

printf("100到300之間的素數(shù)是:\n");

for(n=101;n<=300;n++)

{

flag=1;

for(i=2;i<n;i++)

if(n%i==0)

{

flag=0;

break;

}

if(flag)printf("%5d",n);

}

}(11)參考代碼:

#include<stdio.h>voidmain(){ inti,max,t;loop: scanf("%d",&i); if(i>0) { max=i; if(i>max)max=i; gotoloop; } if(i==-1) printf("最大數(shù)為:%d",max);}(12)參考代碼:#include<stdio.h>voidmain(){ intn; for(n=10;n<=1000;n++) { if(n%2==0&&n%3==0&&n%7==0) printf("%d,",n); }}(13)參考代碼:#include<stdio.h>main(){ inti,j; for(i=1;i<=9;i++)//循環(huán)計算1~9 { for(j=1;j<=i;j++)//輸出數(shù)i的i個乘法項 { printf("%d*%d=%d",i,j,i*j); } if(i==3)printf("\tThisisthe9*9table.");//在3的那一行輸出Thisisthe9*9table. printf("\n");//輸出換行符 }}(14)參考代碼:#include<stdio.h>#include<string.h>voidmain(){ intpw,f; inti=3,j=3; charuser[15]; printf("==========用戶登錄==========\n");qq1: if(j==0) { printf("你的輸入已經(jīng)超過預定次數(shù),詳情請與管理員聯(lián)系,謝謝合作。\n"); gotoee; } printf("請輸入用戶名:"); scanf("%s",&user); f=strcmp(user,"張三"); if(f==0) {qq2: if(i==0) { printf("你的輸入已經(jīng)超過預定次數(shù),詳情請與管理員聯(lián)系,謝謝合作。\n"); gotoee; } printf("請輸入密碼:"); scanf("%d",&pw); if(pw==123) { printf("**********歡飲使用本程序**********\n\n"); printf("%s\n\n",user); } else { i--; printf("密碼錯誤!!\n"); gotoqq2; } } else { j--; printf("用戶名錯誤!!\n"); gotoqq1; }ee: printf("\n");}3.解答:(1)B(2)D(3)D(4)B(5)A(6)A(7)A(8)C(9)A(10)D第5章習題參考答案1.解答:(1)101418(2)2(3)thesumis20(4)11(5)程序運行后的輸出結(jié)果是(123569)。thesumis20(6)72(7)3040(8)thelengthofstr1is12IlovechinaHello!str1>str2(9)192.解答:(1)#include"stdio.h"main(){inti,a[5];for(i=0;i<5;i++){printf("Pleaseinputthe%dthnumber:",i+1);scanf("%d",&a[i]);}for(i=0;i<5;i++)printf("the%dthmunberis%d",i+1,a[i]);}(2)#include<stdio.h>main(){inti,j,a[5];inttemp;for(i=0;i<5;i++){printf("\n請輸入第%d個數(shù):",i+1);scanf("%d",&a[i]);}printf("\n排序前數(shù)組為\n");for(i=0;i<5;i++)printf("%5d",a[i]);for(i=0;i<5;i++)for(j=i+1;j<5;j++)if(a[i]>a[j]){ temp=a[i];a[i]=a[j];a[j]=temp;}printf("\n排序后數(shù)組為:\n");for(i=0;i<5;i++)printf("%5d",a[i]);}3.解答:(1)參考代碼:#include<stdio.h>main(){inti,j,a[4][3],b[4][3],c[4][3];for(i=0;i<4;i++)for(j=0;j<3;j++) scanf("%d,",&a[i][j]);for(i=0;i<4;i++)for(j=0;j<3;j++) scanf("%d,",&b[i][j]);for(i=0;i<4;i++) for(j=0;j<3;j++) {c[i][j]=a[i][j]*a[i][j]+b[i][j]*b[i][j]; printf("%d,",c[i][j]); }}(2)參考代碼:#include<stdio.h>#include<string.h>main(){ charstr1[10]; inti,j,c; gets(str1); for(i=0,j=9;i<j;i++,j--) {c=str1[i]; str1[i]=str1[j]; str1[j]=c; } printf("%s",str1);}(3)參考代碼:#include<stdio.h>#include<string.h>voidmain(){ charaa[100]; intm; gets(aa); m=strlen(aa); printf("thearrayaalengthis%d\n",m);}(4)參考代碼:#include<stdio.h>voidmain(){ floatm,sum=0; intaa[100]; inti=0; printf("pleaseinputyour100integersnumbers:\n");for(i=0;i<100;i++) { scanf("%d,",&aa[i]); if(aa[i]>=100) sum++; } m=sum/100.0; printf("請你輸入數(shù)過程中,輸入大于100的數(shù)字的概率是:%4.2f\n",m);}4.解答:(1)A(2)C(3)D(4)A(5)A(6)B(7)D(8)B第6章習題參考答案1.閱讀程序輸出結(jié)果。(1)21(2)30,25(3)9(4)6(5)4(6)8(7)8,17(8)hlo(9)2(10)122.編寫程序題。(1)參考代碼:#include<stdio.h>intmax(intx,inty,intz){ intn; n=x>y?x:y; n=n>z?n:z; return(n);}voidmain(){ inta,b,c; intm; scanf("%d,%d,%d",&a,&b,&c); m=max(a,b,c); printf("Maxis%d\n",m);}(2)參考代碼:#include<stdio.h>voidfun(intn){ inti,flag; flag=1; for(i=2;i<n;i++) { if(n%i==0) { flag=0; break; } } if(flag) printf("%disaprimenumber\n",n); else printf("%disnotaprimenumber\n",n);}voidmain(){ intm; printf("請輸入一個整型數(shù):\n"); scanf("%d",&m); fun(m);}(3)參考代碼:#include<stdio.h>voidfun(chara){ if((a>='a'&&a<='z')||(a>='A'&&a<='Z')) printf("thecharactorASCIIis%d\n",a); else printf("youinputcharactorwrong!!!\n");}voidmain(){ charc; printf("pleaseinputonecharactor:"); scanf("%c",&c); fun(c);}(4)參考代碼:#include<stdio.h>voidfun(intj){ floatm,sum=0.0; intk; for(k=1;k<=j;k++) { m=(float)(k-1)/k; sum+=m; } printf("sum=%f\n",(sum+1));}voidmain(){ inti; printf("pleaseinputone>1integernumber:"); scanf("%d",&i); fun(i);}(5)參考代碼:#include<stdio.h>voidfun(intb){ intk,i; for(k=0;k<b;k++) { for(i=0;i<b;i++) { printf("*"); } printf("\n"); } }voidmain(){ inta; printf("pleaseinputoneintegernumber:"); scanf("%d",&a); fun(a);}(6)參考代碼:#include<stdio.h>voidswap(intj){ printf("%d",j%10); j=j/10; if(j>0) swap(j);}voidmain(){ inti; printf("pleaseinputoneintegernumber:"); scanf("%d",&i); swap(i); printf("\n");}(7)參考代碼:#include<stdio.h>#include<math.h>voiddistance(floatx1,floaty1,floatx2,floaty2){ floatdis; dis=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1)); printf("這兩點之間的距離是%f\n",dis);}voidmain(){ floata1,b1,a2,b2; printf("請輸入第一個點的坐標值:"); scanf("%f,%f",&a1,&b1); printf("請輸入第二個點的坐標值:"); scanf("%f,%f",&a2,&b2); distance(a1,b1,a2,b2);}3.選擇題(1)A(2)B(3)A(4)B(5)A(6)B(7)D(8)A(9)D(10)B第7章習題參考答案1.答:定義指針變量和引用指針變量時所出現(xiàn)的“*”的含義有所差別。定義指針變量時的“*”理解為指針類型定義符,表示定義的變量是指針變量。引用指針變量時的“*”是運算符,表示訪問指針變量所指向的變量。2.答:(1)將一個變量的地址賦給一個指針變量。如:int*p;p=&a;//將變量a的地址賦給指針變量p(2)通過“*”運算符取出指針變量存儲地址中的變量值。如:inta=10;int*p=&a;printf(“%d”,*p);(3)指針變量加(減)一個整數(shù)。如:K=*(p+3);(4)指針的自增和自減。如:p++;(5)空值運算。即:p=NULL;(6)兩個指針變量相減。如:K=p1-p2;(7)兩個指針變量比較。如:if(p1>p2)3.答:指向數(shù)組的指針是指指針指向數(shù)組在內(nèi)存中的起始地址,指向數(shù)組元素的指針是指指向該數(shù)組元素在內(nèi)存中的起始地址。4.答:(1)35(2)b,B,A,b(3)abba(4)cdeab(5)876543215.答:參考代碼:#include<stdio.h>#include<stdlib.h>#defineN200voidcount(char*);intmain(){char*ch,chr;ch=(char*)malloc(N+1);printf("請輸入輸入一行字符:\n");gets(ch);count(ch);}voidcount(char*ch){char*temp=ch;inti,chr=0,digit=0;while(*ch!='\0'){if((*ch>='A'&&*ch<='Z')||(*ch>='a'&&*ch<='z'))chr++;elseif(*ch>='0'&&*ch<='9'){digit++;}ch++;}printf("該字符串字母有%d個,數(shù)字有:%d個\n",chr,digit);}6.答:參考代碼:#include<stdio.h>#defineN10voidmain(){ inti,j,k,xmax,xmin,temp,x[N]; printf("Pleaseinputarrayx:\n"); for(i=0;i<N;i++) { scanf("%d",&x[i]); } xmax=xmin=x[0]; for(i=1;i<N;i++) { if(x[i]>xmax) { xmax=x[i]; j=i; } elseif(x[i]<xmin) { xmin=x[i]; k=i; } } temp=x[0]; x[0]=x[j]; x[j]=temp; temp=x[N-1]; x[N-1]=x[k]; x[k]=temp; printf("outputarrayx:\n"); for(i=0;i<N;i++) { printf("%d",x[i]); } printf("\n");}7.答:參考代碼: #include<stdio.h>voidmain(){ intn; printf("輸入人數(shù):\n"); scanf("%d",&n); inta[1000]; inti,temp; intcount=0; temp=n; for(i=0;i<n;i++) { a[i]=i+1; } i=0; while(n>1) { if(a[i]!=0) { count++; } if(count==3) { a[i]=0; count=0; n--; } i++; } for(i=0;i<temp;i++) { if(a[i]!=0) { printf("留下的為:%d號\n",a[i]); } }}8.答:參考代碼:#include<stdio.h>#include<string.h>voidStringReverse(charfrom[],charto[]){ inti,j; chart; for(i=0,j=strlen(from);i<strlen(from)/2;i++,j--) { t=from[i]; from[i]=from[j-1]; from[j-1]=t; } for(i=0;i<=strlen(from);i++)//strlen計算長度不包括字符串結(jié)束符'\0' to[i]=from[i];}voidmain(){ chara[80],b[80]; printf("請輸入源字符串:\n"); scanf("%s",a); StringReverse(a,b); printf("輸出目的字符串is:%s\n",b);}9.(1)C(2)A(3)A(4)B(5)D(6)A(7)C(8)C(9)B(10)D第8章習題參考答案1.答:(1)sex=Mscore=78.5(2)1.C432.b62(3)No.NameSco1Sco2Sco301Tom63857602Jone66887503Hor52897104Kaka89859405David818286(4)sun,22(5)5d580(6)2002Shangxian2.參考代碼:#include<stdio.h>uniondata{ charc; shorts; inti; longl;};voidmain(){ uniondataa; a.c='a';a.s=200;a.i=100;a.l=66000;printf("%c%d%d%ld",a.c,a.s,a.i,a.l);}用對應(yīng)的類型分別打印出每個變量,他們的結(jié)果是一樣的。3.參考代碼:#include<stdio.h>structstu{ char*num; char*name; char*sex; floatscore;}student[4]={{"06001","王芳","女",85},{"06002","楊柳","女",96},{"06003","李蕾","女",78},{"06004","黃剛","男",88}};voidmain(){ structstu*ps; printf("學號\t姓名\t\t性別\t成績\t\n"); for(ps=student;ps<student+4;ps++) printf("%s\t%s\t\t%s\t%f\t\n",ps->num,ps->name,ps->sex,ps->score);}4.參考代碼:#include<stdio.h>#include<math.h>structpoint{ floatx; floaty; floatz;}c1,c2;voidmain(){ floatd; printf("請輸入第一個點\n"); scanf("%f,%f,%f",&c1.x,&c1.y,&c1.z); printf("請輸入第二個點\n"); scanf("%f,%f,%f",&c2.x,&c2.y,&c2.z); d=sqrt((c1.x-c2.x)*(c1.x-c2.x)+(c1.y-c2.y)*(c1.y-c2.y)+(c1.z-c2.z)*(c1.z-c2.z)); printf("距離為:d=%f",d);}5.參考代碼:#include<stdio.h>structcomplex{ floatre,im;}c1,c2;voidadd(structcomplexa,structcomplexb){ structcomplexc; c.re=a.re+b.re; c.im=a.im+b.im; printf("sumofaandb=%.1f+%.1fi\n",c.re,c.im);}voidmain(){ printf("\ninputrealandimageforc1:\n"); scanf("%f%f",&c1.re,&c1.im); printf("\ninputrealandimageforc2:\n"); scanf("%f%f",&c2.re,&c2.im); add(c1,c2);}6.參考代碼:#include<stdio.h>structcomplex{ floatre,im;}c1,c2;voidadd(structcomplexa,structcomplexb){ structcomplexc; c.re=a.re-b.re; c.im=a.im-b.im; printf("sumofaandb=%.1f+%.1fi\n",c.re,c.im);}voidmain(){ printf("\ninputrealandimageforc1:\n"); scanf("%f%f",&c1.re,&c1.im); printf("\ninputrealandimageforc2:\n"); scanf("%f%f",&c2.re,&c2.im); add(c1,c2);}7.(1)B (2)D (3)C(4)C (5)A 第9章習題參考答案1.參考代碼:#include<stdio.h>voidmain(){ char*s="IloveChina"; FILE*fp; fp=fopen("test.dat","w"); fprintf(fp,"%s",s); fclose(fp);}2.(1)Basican(2)28(3)12(4)”t1.dat”的內(nèi)容是end(5)12345(6)程序第五行fout=fopen(‘a(chǎn)bc.txt’,’w’);改為fout=fopen(“abc.txt”,”w”);3.參考代碼:#include<stdio.h>voidmain(){ FILE*fp; charstr[100]; inti=0; if((fp=fopen("test","w"))==NULL) { printf("打不開文件\n"); exit(0); } printf("輸入一個字符串:\n"); getchar(); gets(str); while(str[i]!='#') { fputc(str[i],fp); i++; } fclose(fp); fp=fopen("test","r"); fgets(str,strlen(str)+1,fp); printf("%s\n",str); fclose(fp);}4.參考代碼:#include<stdio.h>structstudent{ charnum[6]; charname[8]; intscore[3]; floatavr;}stu[5];voidmain(){ inti,j,sum; FILE*fp; for(i=0;i<5;i++) { printf("\npleaseinputNo.%dscore:\n",i); printf("stuNo:"); scanf("%s",stu[i].num); printf("name:"); scanf("%s",stu[i].name); sum=0; for(j=0;j<3;j++) { printf("sc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論