C語言程序設計導學第三版參考答案杜友福編.doc

上傳人:小** 文檔編號:13265177 上傳時間:2020-06-11 格式:DOC 頁數(shù):16 大?。?11KB
收藏 版權申訴 舉報 下載
C語言程序設計導學第三版參考答案杜友福編.doc_第1頁
第1頁 / 共16頁
C語言程序設計導學第三版參考答案杜友福編.doc_第2頁
第2頁 / 共16頁
C語言程序設計導學第三版參考答案杜友福編.doc_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C語言程序設計導學第三版參考答案杜友福編.doc》由會員分享,可在線閱讀,更多相關《C語言程序設計導學第三版參考答案杜友福編.doc(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、C語言實驗(第三版)參考答案 實驗一 3. 程序填空題 a 、 b 、 t 4. 程序改錯題 (1) scanf("%lf",&f); c=5.0/9.0*(f-32.0); printf("f=%lf c=%lf\n",f,c); (2) scanf("%d",&n); sum=50*n; printf("n=%d,s=%d\n",n,s); 5. 程序設計題 (1) #include void main() { float a,b,c,aver;

2、 printf("Input a b c:"); scanf("%f%f%f",&a,&b,&c); aver=(a+b+c)/3.0; printf("average=%f\n",aver); } (2) #include void main() { float rmb,dollar; printf("Input rmb:"); scanf("%f",&rmb); dollar=rmb/6.508; printf("%frmb=%f$\n",r

3、mb,dollar); } 實驗二 2. 程序填空題 (1) num%10 、 num/100%10 、 g+b==s (2) flag=0 、 year%100!=0 、 year%400==0 3. 程序改錯題 switch(grade) case 10: case 6: printf("grade=D\n"); break; 4. 程序設計題 (1) include void main() { int x,n; scanf("%d"

4、,&x); if(x<0)x=-x; if(x>=100000)x=x%100000; if(x>=10000)n=5; else if(x>=1000)n=4; else if(x>=100)n=3; else if(x>=10)n=2; else n=1; printf("%d has %d digits\n",x,n); switch(n) { case 1:printf("%d\n",x

5、);break; case 2:printf("%d %d\n",x%10,x/10);break; case 3:printf("%d %d %d\n",x%10,x/10%10,x/100);break; case 4:printf("%d %d %d %d\n", x%10,x/10%10,x/100%10,x/1000);break; case 5:printf("%d %d %d %d %d\n", x%10,x/10%10,x/100%10,x/1000%10,x

6、/10000);break; } } (2) #include void main() { float a,b,c,max; scanf("%f%f%f",&a,&b,&c); if(a>b) max=a; else max=b; max=max>c?max:c; printf("max=%g\n",max); } 實驗三 2. 程序填空題 (1) &m 、 i<=m 、 t+1.0/(i*i)

7、 (2) m void main() { int x,s=0; for(x=50;x<=180;x++) if(x%3==0 && x%4==0) { printf("%d ",x); s=s+x; } printf("\n

8、sum=%d\n",s); } (2) #include void main() { int a,b,c,d,e; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) for(d=0;d<=9;d++) for(e=2;e<=9;e++) if((a*1000+b*100+c*10+d)*e==d*1000+c*100

9、+b*10+a) printf("%d%d%d%d*%d=%d%d%d%d\n", a,b,c,d,e,d,c,b,a); } 實驗四 2. 程序填空題 (1) m=m-n 、 n=n-m 、 m!=n (2) a==0||diac<0 、 (-b+sqrt(disc))/(2*a) 、 (-b-sqrt(disc))/(2*a) 3. 程序改錯題 t=1.0/((2*n-1)*(2*n+1)); while(t>=0.00001);

10、4. 程序設計題 (1) #include void main() { int x,a,b,c; for(x=200;x<=300;x++) { a=x/100; b=x/10%10; c=x%10; if(a+b+c==12 && a*b*c==42) printf("%d ",x); } printf("\n"); } (2) #include #include

11、th.h> void main() { float a,c,fa,f1a,fc; a=88; do { fa=5*a*a*a*a*a-8*a*a*a+10*a*a-7*a+25; f1a=25*a*a*a*a-24*a*a+20*a-7; c=a-fa/f1a; fc=5*c*c*c*c*c-8*c*c*c+10*c*c-7*c+25; a=c; }while(fabs(fc)>0.0001);

12、 printf("x=%f, y=%f\n",c,fc); } 實驗五 2. 程序填空題 (1) &a[i][j] 、 a[0][0] 、 i 、 j 、 max (2) x=a[i] 、 a[j]=x 3. 程序改錯題 int a[N]={1,5,8,7,6,3,2,4}; for(i=0;i void main() { int

13、i,j,f=0,a[3][4]={1,2,3,4,5,6,7,-8,9,10,-11,12}; for(i=0;(i<3 && f==0);i++) for(j=0;j<4;j++) { if(a[i][j]<0) { f=1; printf("i=%d,j=%d\n",i,j); break; } } if(f==0) printf("no found!\n"); } (2) #include

14、dio.h> #include #define N 10 void main() { int i,j,s; //int a[N]={1,3,5,7,9,11,13,15,17}; int a[N]={17,15,13,11,9,7,5,3,1}; scanf("%d",&s); i=0; if(a[0]a[i]) i++; else while(si;

15、j--) a[j]=a[j-1]; a[j]=s; for(i=0;i

16、> #include void main() { char str[81],c; int i,j; printf("Input a string:"); gets(str); printf("Input a char:"); c=getchar(); for(i=0;str[i]!=\0;i++) if(str[i]==c) { for(j=i;j

17、]=str[j+1]; i--; } puts(str); } (2) #include #include void main() { char str[81],substr[81]; int i,n=-1; printf("Input a string:"); gets(str); printf("Input a substring:"); gets(substr); for(i=0;str[i]!=

18、\0;i++) { for(k=0;substr[k]==str[i+k];k++) if(substr[k+1]==\0) { n=i;break; } printf("n=%d\n",n); } 實驗七 2. 程序填空題 n-1 、 a[j+1] 、 a[j+1] 、 s 3. 程序改錯題 int leap(int year) flag=flag||(year%400==0); if(leap(y)==1)

19、 4. 程序設計題 (1) #include int isprime(int); void main() { int x,s=0; for(x=200;x<=300;x++) if(isprime(x)) { s=s+x;printf("%d ",x); } printf("\nsum of prime=%d\n",s); } int isprime(int n) { int i,flag=1; for(i=2;i

20、 if(n%i==0) { flag=0;break; } return (flag); } (2) #define N 10 #include void sort(int a[],int n) { int i,j,k,t; for(i=0;i

21、t=a[k]; a[k]=a[i]; a[i]=t; } } void main() { int i,x[10]={5,7,4,2,8,6,1,9,0,3}; printf("the original array:\n"); for(i=0;i

22、 for(i=0;i=0 && s[i]<=9) s[j++]=s[i]; s[j]=\0; 4. 程序設計題 (1) #include #include void fun(char s[],

23、int i,int j) { char t; if(i>=j) return; else { t=s[i]; s[i]=s[j]; s[j]=t; fun(s,i+1,j-1); } } void main() { char str[81]; gets(str); fun(str,0,strlen(str)-1); puts(str); } (2) //sy8proc2.c

24、 #include #include extern double newx(double a,double b); double f(double x) { double y; y=2*x*x*x-3*x*x+7*x-13; return (y); } void main() { double a,b,x; do { printf("Please input a,b:"); scanf("%lf,%lf",&a,&b); }while(f(a)*f(b)>0);

25、 do { x=newx(a,b); if(f(a)*f(x)>0) x=newx(x,b); else x=newx(a,x); }while(fabs(f(x))>0.00001); printf("x=%lf,y=%lf\n",x,f(x)); } //sy8newx2.c double newx(double a,double b) //或 extern double newx(double a,double b) { double xnew; xnew=(a*f(b

26、)-b*f(a))/(f(b)-f(a)); return (xnew); } 實驗九 2. 程序填空題 (1) p=a 、 *(*p+j) 注:外循環(huán)改為:for(i=0;i<3;i++,p++) (2) pstr=s 、 *pstr-0 、 pstr++ 3. 程序改錯題 *ave=sum/n; scanf("%f",score+k);/ printf("The result is:%d\n",average(score,m,&aver)); 4. 程序設計題 #in

27、clude void fun(char *pp) { int i,n=0; while(*(pp+n)==*) n++; for(i=n;*(pp+i)!=\0;i++) if(*(pp+i)!=*) { *(pp+n)=*(pp+i); n++; } *(pp+n)=\0; } void main() { char aa[80]; printf("Please enter a string:

28、\n"); scanf("%s",aa); fun(aa); printf("After changing, the string become:\n"); printf("%s\n",aa); } (1) #include void fun(char *pp) { int i,k,n=0; for(i=0;*(pp+i)!=\0;i++) if(*(pp+i)!=*) { *(pp+n)=*(pp+i); n++; k=0; }

29、else k++; if(k!=0) { for(i=1;i<=k;i++) *(pp+n+i)=*; *(pp+n+i)=\0; } else *(pp+n)=\0; } void main() { char aa[80]; printf("Please enter a string:\n"); scanf("%s",aa); fun(aa); printf("After changing, the string

30、 become:\n"); printf("%s\n",aa); } (2) #include void fun(char *pp) { int i,k,j=0,n=0; while(*(pp+n)==*) n++; for(i=n;*(pp+i)!=\0;i++) if(*(pp+i)!=*) { *(pp+j)=*(pp+i); j++; k=0; } else { *(pp+j)=*(pp+i); j++; k++; } if(k!=0) { for(i=0;i

31、;i++) *(pp+i)=*(pp+i); *(pp+i)=\0; //或去掉此for循環(huán),直接用*(pp+j-k)= \0; } else *(pp+j)=\0; } void main() { char aa[80]; printf("Please enter a string:\n"); scanf("%s",aa); fun(aa); printf("After changing,

32、the string become:\n"); printf("%s\n",aa); } (3) #include void fun(char *pp) { int i,k,n=0; while(*(pp+n)==*) n++; for(i=n;*(pp+i)!=\0;i++) if(*(pp+i)!=*) { *(pp+n)=*(pp+i); n++; k=0; } else k++; if(k!=0) {

33、 for(i=1;i<=k;i++) *(pp+n+i)=*; *(pp+n+i)=\0; } else *(pp+n)=\0; } void main() { char aa[80]; printf("Please enter a string:\n"); scanf("%s",aa); fun(aa); printf("After changing, the string become:\n"); printf("%s\n",aa); }

34、實驗十 2. 程序填空題 (*p) 、 struct stu 、 &student[2] 3. 程序改錯題 }STREC; if(a[i].sc typedef struct { char num[10]; int sc; }STREC; float fun(STREC a[],int n) { int i,s=0; float ave; for(i=0;i

35、s+a[i].sc; ave=(float)s/n; return ave; } void main() { int i; float aver; STREC s[N]={{"Li001",85},{"Li003",76},{"Li002",69}, {"Li004",96},{"Li006",79},{"Li005",86}, {"Li008",68},{"Li007",77},{"Li010",96}, {"Li009",64}}; aver=fun(s,N); for(i=0;iaver

36、) printf("%s:%d\n",s[i].num,s[i].sc); } (2) #define N 10 #include typedef struct { char num[10]; int sc; }STREC; int fun(STREC a[],int n) { int i,max=-1; for(i=0;imax) max=a[i].sc; return max; } void main() { int i,maxsc; STREC s[N]={{"

37、Li001",85},{"Li003",76},{"Li002",69}, {"Li004",96},{"Li006",79},{"Li005",86}, {"Li008",68},{"Li007",77},{"Li010",96}, {"Li009",64}}; maxsc=fun(s,N); for(i=0;i #define M 5 //人數(shù) #define N 3 //課程數(shù) s

38、truct student { char num[10]; char name[20]; float score[N+1]; }; void main() { struct student stud[M]; int i,j,max; float aver; printf("Input data: \n"); printf("No Name score1 score2 score3\n"); for(i=0;i

39、[i].num,stud[i].name); scanf("%f%f%f",&stud[i].score[0],&stud[i].score[1], &stud[i].score[2]); } printf("score average:"); for(j=0;j

40、 } max=0; for(i=0;istud[max].score[3]) max=i; } printf("\nmax score student\n"); printf("%s %s %6.1f %6.1f %6.1f %6.1f\n", stud[max].num, stud[max].name, stud[max].score[0],stud[max].score[1], stud[max].score[2],stud[max].score[3]); } 16

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!