c语言课后答案.doc_第1页
c语言课后答案.doc_第2页
c语言课后答案.doc_第3页
c语言课后答案.doc_第4页
c语言课后答案.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言习题答案第1章1选择题(1) C (2) B (3) D2填空题(1)main (2) main (3) 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性(4) 顺序、分支和循环(5) 自顶向下,逐步细化、模块化设计、结构化编码第2章1选择题BBCDA DDBBA BBDCB2、填空题 (1) 数字、字母、下划线 (2)0 (3) 4、8 (4) (a+b)*c/(a-b) (5) 60 (6)16(7)3 (8)6、4、2 (9)0 (10)10、6 (11)5.500000 (12) 12、4(13)double (14) 0 (15)16 (16)6.63、编程题(1)m

2、ain() printf(int:%5dn float:%5dn char:%5dn double:%5dn long:%5dn, sizeof(int), sizeof(float), sizeof(char), sizeof(double), sizeof(long);(2)#define RAT 1.60934main() float k=0.0; printf(input the km:); scanf(%f,&k); printf(nmile:%f,k*RAT);第3章1选择题(1) (10):DDCDCDCDBC2解析题(1) x=170,x=170,x=252, x=170 x=

3、170,x=170,x=170,x=%6d a=513.789185,a=513.79,a=513.78918457,a=513.78918457(2) a=3b=7x=8.5y=71.82c1=Ac2=a3编程题(1)main() int x,y; scanf(%d%d,&x,&y); printf(商数=%d,余数=%d,x/y,x%y); system(pause);(2)main() double x,y,z,avg; scanf(%lf%lf%lf,&x,&y,&z); avg=(x+y+z)/3; printf(%.1lf,avg,avg); system(pause);第4章1选

4、择题(1)(10) CCAADCCABD2填空题(1) ch=A & ch=Z ch=ch-32(2) x2 x-1 y=-1(3) a+bc & a+cb & b+ca a=b&a=c a=b | a=c | b=c(4) mark/10 k=1 case 9(5) x0 c=x/10 y!=-23编程题(1)#include main() int x; printf(please input a number:); scanf(%d,&x); if(x%2=0) printf(x is a even number); else printf(x is a odd number);(2)#i

5、nclude main() int x,y; printf(please input a number); scanf(%d,&x); if(x=-5) printf(the number is error); else if(x0) y=x; printf(%d,y); else if(x=0) y=x-1;printf(%d,y); else if(x10) y=x+1;printf(%d,y); else printf(the number is error);(3)#include main() int a,m; printf(please input a number:); scan

6、f(%d,&a); switch(a/10) case 0: case 1: case 2:m=1;break; case 3:m=2;break; case 4:m=3;break; case 5:m=4;break; default:m=5;break; printf(%d,m);(4)#include main() float price,tax; printf(please input the price of product:); scanf(%f,&price); if(price10000) tax=price*0.05; else if(price5000) tax=price

7、*0.03; else if(price1000) tax=price*0.02; else tax=0; printf(%f,tax);(5)#include main() float score; printf(please input the score of student:); scanf(%f,&score); if(score=85) printf(VERY GOOD); else if(score=60) printf(GOOD); else printf(BAD);第5章1选择题(1)d (2) c (3)a (4)d (5)a (6)d (7)d (8)b (9)d (10

8、)b(11)c (12)b (13)d (14)a (15)c2填空题(1) =0 m=m/k k+ (2) 5 4 6 (3) 3*i-2(4) -= *= (5) 8 5 2 (6) j+ i%j=0 j=i (7)sumk sum=k j-2 (8) s=0 p=1 j=i 3改错题 (1) 第一处改正: For改为for 第二处改正: ave=sum/4改为ave=sum/4.0 (2) 第一处改正: j=9 第二处改正: m=100*i+10*j+k3编程题(1) #include main()int s;float n,t,sum;t=1; sum=0; n=1; s=1.0;wh

9、ile(n=100) sum=sum+t; n=n+1; s=-s; t=s/n;printf(sum=%10.6fn,sum);(2) 利用辗除法,直到b为0为止main() int p,r,n,m,temp; printf(input two integer n,m:); scanf(%d,%d,&n,&m); if(n0) x1=(x2+1)*2; /*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day-; printf(thetotalis%dn,x1); (4)#include main() int i; long int n=1; for(i=1;i=10;i+)

10、n=n*i; printf(i%5=0?%2d!=%-10ldn:%2d!=%-10ld,i,n); (5)main() int m,s,i; for(m=2;m1000;m+) s=0; for(i=1;im;i+) if(m%i)=0) s=s+i; if(s=m) printf(%d its factors are ,m); for(i=1;im;i+) if(m%i=0) printf(%d,i); printf(n); (6)#include main() int n,i,j; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n+i-1;j+) if(

11、j=n-i) printf( ); else printf(*); printf(n); (7)#includemain() float x0,x1,x2,fx0,fx1,fx2; do printf(Enter x1 & x2:); scanf(%f,%f,&x1,&x2); fx1=x1*(2*x1-4)*x1+3)-6; fx2=x2*(2*x2-4)*x2+3)-6; while(fx1*fx20); do x0=(x1+x2)/2; fx0=x0*(2*x0-4)*x0+3)-6; if(fx0*fx1)=1e-5); printf(x=%6.2fn,x0);第6章1选择题CCDCC

12、 AADBD2. 写出程序的运行结果(1) sum=6 (2) Max=9,row=1,col=0 (3) 01 02 1 03 2 1 0(4) -53、填空(1)i=j=k=0 、 i4 、j5、(2) si 、 s0,s1 、str,s1、s2,str4、编程题(1)#include main() int a12,count=0,i; randomize();for (i=0;i12;i+) ai=5+random(11); for(i=0;i12;i+) printf(%5d,ai); count+; if(count%4=0)printf(n) ; getch();(2)main()

13、 int a5=2,23,43,77,33; int max,min,i; long sum=0L; int count=0; float av; max=min=a0; for(i=0;imax)max=ai; if(aimin)min=ai; av=(float)sum/5; for(i=0;iav)count+; printf(max:%dnmin:%dnav:%fncount:%d,max,min,av,count); getch();(3)main() int score30=61,62,63,64,65,66,67,68,69,70, 71,72,73,74,75,76,77,78

14、,79,80, 81,85,89,90,33,44,55,91,92,93; int i,count90=0,count80=0,count70=0,count60=0; for(i=0;i30;i+) printf(intput NO. %d students score:,i+1); scanf(%d,score+i); for(i=0;i=90) count90+; count80+; count70+; count60+; else if(scorei=80) count80+; count70+; count60+; else if(scorei=70) count70+; coun

15、t60+; else if(scorei=60) count60+; printf(060:%dn6070:%dn7080:%dn8090:%dn90100:%d,30-count60,count60-count70,count70-count80,count80-count90,count90); printf(n60 or higher:%dn70 or higher:%dn80 or higher:%dn90 or higher:%dn,count60,count70,count80,count90); getch();(4)1、main() char a45; int i,j,k; f

16、or(i=0;i45;i+)ai= ; for(i=0;i5;i+) for(j=0;ji;j+) a9*i+j= ; for(k=0;k5;k+) a9*i+j+k=*; j=0; for(i=0;i45;i+) printf(%c,ai); j+; if(j%9=0)printf(n); getch();2、main() char a59; int i,j,k; for(i=0;i5;i+) for(j=0;j9;j+) aij= ; for(i=0;i5;i+) for(j=0;ji;j+) aij= ; for(k=0;k5;k+) aij+k=*; for(i=0;i5;i+) fo

17、r(j=0;jy?x:y) (9) str =abdef (10) 8,17 (11)a=5a*a=25a*a*a=512(12)*#*#*#*3 、编程题(1) long act(long n) if (n=1|n=0) return 1L; else return n*act(n-1); main() int n=3; printf(n!=%ld,act(n); getch();(2)void mmax(float a,int n);main()float a6;int i;for(i=1;i=5;i+)scanf(%f,&ai);a0=1;mmax(a,5);printf(%f %fn,

18、aa0,a0);void mmax(float a,int n)if(naa0)a0=n;mmax(a,n-1);(3)#include main() char a40;int i=0;for(;i=40;i+)scanf(“%c”,&ai); int count=0,i=0,len,flag=0; len=strlen(a); while(!flag&ilen) if(ai=A)flag=1; i+; while(flag&i=A&(a)=a&(a)=z)main() char c; scanf(%c,&c); printf(%dn,ISALPHA(c); (2)/*习题8-2-2 */#d

19、efine SWAP(t,x,y) t w; w=x; x=y; y=w; main() double a=99.99,b=11.11; SWAP(double,a,b); printf(%f,%fn,a,b);(3)/*习题8-2-3 */#include stdio.h#define MAX 80#define CHANGE 1main() char strMAX; int i; printf(Input text:n); gets(str); #if(CHANGE) for (i=0;i=a&stri=A&striZ) stri+=1; else if(stri=z|stri=Z) st

20、ri-=25; #endif printf(output:n%s,str);(4)/*习题8-2-4 */#define LEAP_YEAR(y) (y%4=0)&(y%100!=0)|(y%400=0)main() int year; printf(Input year:); scanf(%d,&year); if(LEAP_YEAR(year) printf(%d is a leap year.n,year); else printf(%d is not a leap year.n,year);(5)/*习题8-2-5.h */#ifndef _X8_2_5_H#define _X8_2_

21、5_H#define AVER(a,b,c) (a+b+c)/3.0#endif/*习题8-2-5 */#include X8_2_5.hmain() int a,b,c; printf(Input three integers a,b,c:); scanf(%d,%d,%d,&a,&b,&c); printf(Average is %f.n,AVER(a,b,c);第9章4编程题(1)/*习题9-4-1 */#include #include main() char *str120,*str220,*str320; char swap(); printf(Input three line:n

22、); gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)0) swap(str1,str2); if(strcmp(str1,str3)0) swap(str1,str3); if(strcmp(str2,str3)0) swap(str2,str3); printf(Now, the order is:n); printf(%sn%sn%sn,str1,str2,str3);char swap (char *p1,char*p2) /*交换两个字符串*/ char *p20; strcpy(p,p1); strcpy(p1,p2)

23、; strcpy(p2,p);(2)/*习题9-4-2 */main() int number20,n,m,i; printf(How many numbers?); /*共有多少个数*/ scanf(%d,&n); printf(Input %d numbers:n,n); /*输入n个数*/ for(i=0;in;i+) scanf(%d,&numberi); printf(How many place you want to move?); /*后移多少个位置*/ scanf(%d,&m); move(number,n,m); /*调用move函数*/ printf(Now,they a

24、re:n); for(i=0;iarray;p-) *p=*(p-1); *array=array_end; m-; if(m0) move(array,n,m); /*递归调用,当循环次数m减至0时,停止调用*/(3)/*习题9-4-3 */#include #include#define TOTAL 7int mseek(char*str,char xstr,int n) int i; for(i=0; in; i+) if(strcmp(stri,xstr)=0) return 1; return 0; main() char*nameTOTAL=Lining,Linshan,Tiany

25、uan,Zhangqiang,Haipo,Fangbing; char xname20; printf(enter a name:); gets(xname); if(mseek(name,xname,TOTAL) printf(Found!n); else printf(Not found!n);(4)/*习题9-4-4 */#include #include int fun(char *str,int num4) int i; for(i=0; i=a & *str=A & *str=0 & *str=9) num2+; else num3+; str+; #define N 80main

26、() int stringN,n4,i; gets(string); fun(string,n); for(i=0; i4; i+) printf(%dt,ni);(5)/*习题9-4-5 */#include main() int a55,*p,i,j; void change(int *p); printf(Input matrix:n); for(i=0;i5;i+) /*输入矩阵*/ for(j=0;j5;j+) scanf(%d,&aij); p=&a00; /*使p指向0行0列元素*/ change(p); /*调用函数, 实现交换*/ printf(Now, matrix: n)

27、; for(i=0;i5;i+) /*输出已交换的矩阵*/ for(j=0;j5;j+) printf(%4d,aij); printf(n); void change(int *p) /*交换函数*/ int i,j,temp; int *pmax,*pmin; pmax=p; pmin=p; for(i=0;i5;i+) /*找最大值和最小值的地址,并赋给pmax,pmin*/ for(j=0;j5;j+) if(*pmax*(p+5*i+j) pmin=p+5*i+j; temp=*(p+12); /*将最大值换给中心元素*/ *(p+12)=*pmax; *pmax=temp; tem

28、p=*p; /*将最小值换给左上角元素*/ *p=*pmin; *pmin=temp; pmin=p+1; for(i=0;i5;i+) /*找第二最小值的地址赋给pmin*/ for(j=0;j*(p+5*i+j) pmin=p+5*i+j; temp=*pmin; /*将第二最小值换给右上角元素*/ *pmin=*(p+4); *(p+4)=temp; pmin=p+1; for(i=0;i5;i+) /*找第三最小值的地址赋给pmin*/ for(j=0;j*(p+5*i+j) pmin=p+5*i+j; /*将第三最小值换给左下角元素*/ temp=*pmin; *pmin=*(p+2

29、0); *(p+20)=temp; pmin=p+1; for(i=0;i5;i+) /*找第四最小值的地址赋给pmin*/ for(j=0;j*(p+5*i+j) pmin=p+5*i+j; temp=*pmin; /*将第四最小值换给右下角元素*/ *pmin=*(p+24); *(p+24)=temp;(6)/*习题9-4-6 */#include main() void avsco(float *psco,float *pave); void avcour1(char *pcou,float *psco); void fali2(char course510,int num4,floa

30、t score45,float aver4); void good(char course510,int num4,float score45,float aver4); int i,j,*pnum,num4; float score45,aver4,*psco,*pave; char course510,*pcou; printf(Input course: n); pcou=course0; for(i=0;i5;i+) scanf(%s,coursei); printf(Input NO. and scoures: n); printf(NO.); for(i=0;i5;i+) prin

31、tf(,%s,coursei); printf(n); psco=&score00; pnum=&num0; for(i=0;i4;i+) scanf(%d,pnum+i); for(j=0;j5;j+) scanf(,%f,psco+5*i+j); pave=&aver0; printf(nn); avsco(psco,pave); /*求出每个学生的平均成绩*/ avcour1(pcou,psco); /*求出第一门课的平均成绩*/ printf(nn); fali2(pcou,pnum,psco,pave); /*找出2门课不及格的学生*/ printf(nn); good(pcou,p

32、num,psco,pave); /*找出成绩好的学生*/void avsco(float *psco,float *pave) /*求每个学生的干均成绩的函数*/ int i,j; float sum,average; for(i=0;i4;i+) sum=0.0; for(j=0;j5;j+) sum=sum+(*(psco+5*i+j); /*累计每个学生的各科成绩*/ average=sum/5; /* 计算平均成绩*/ *(pave+i)=average; void avcour1(char *pcou,float *psco) /*第一门课的平均成绩的函数*/ int i; floa

33、t sum,average1; sum=0.0; for(i=0;i4;i+) sum=sum+(*(psco+5*i); /*累计每个学生的得分*/ average1=sum/4; /*计算平均成绩*/ printf(course 1: %s ,average score: %6.2f. n, pcou,average1);void fali2(char course510,int num4,float score45,float aver4) /*找两门以上课程不及格的学生的函数*/ int i,j,k,label; printf(= = = = = = = =Student who is

34、 fail = = = = = = = = = = = =n); printf( NO.); for(i=0;i5;i+) printf(%10s,coursei); printf( averagen); for(i=0;i4;i+) label=0; for(j=0;j5;j+) if(scoreij)=2) printf(%5d,numi); for(k=0;k5;k+) printf(%10.2f,scoreik); printf(%10.2fn,averi); void good(char course510,int num4,float score45,float aver4) /*

35、找成绩优秀的学生(各门85分以上或平均90分以上)的函数*/ int i,j,k,n; printf(= = = = = = = =Student whose score is good= = = = = = = =n); printf( NO.); for(i=0;i5;i+) printf(%10s,coursei); printf( averagen); for(i=0;i4;i+) n=0; for(j=0;j85.0) n+; if(n=5)|(averi=90) printf(%5d,numi); for(k=0;k5;k+) printf(%10.2f,scoreik); pri

36、ntf(%10.2fn,averi); (7)/*习题9-4-7*/#include double sigma(double (*fn)(double),double l,double u) double sum=0,d;for(d=l; du; d+=0.1) sum+=fn(d); return sum;void main() double sum; sum=sigma(sin,0.1,1.0);printf(sum of sin from 0.1 to 1.0 is: %fn,sum); sum=sigma(cos,0.5,3.0);printf(sum of cos from 0.5 to 3.0 is: %fn,sum);(8)/*习题9-4-8 */main() int i; char *month_name(int n); printf(input Month No.:n); scanf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论