C语言课后习题参考答案

上传人:无*** 文档编号:206306416 上传时间:2023-05-03 格式:PPTX 页数:45 大小:147.30KB
收藏 版权申诉 举报 下载
C语言课后习题参考答案_第1页
第1页 / 共45页
C语言课后习题参考答案_第2页
第2页 / 共45页
C语言课后习题参考答案_第3页
第3页 / 共45页
资源描述:

《C语言课后习题参考答案》由会员分享,可在线阅读,更多相关《C语言课后习题参考答案(45页珍藏版)》请在装配图网上搜索。

1、C语言课后习题参考答案 Four short words sum up what has lifted most successful Four short words sum up what has lifted most successful individuals above the crowd:a little bit more.individuals above the crowd:a little bit more.-author -author -date-date第第3章章 部分习题参考答案部分习题参考答案一、单项选择题:一、单项选择题:CACBB CDBBB ADCCB DC

2、CBB二、填空题:二、填空题:1.a!=b|a20&x30|x-1003.04.非非05.16.x%3=0&x%7=0 或或 x%21=0精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除三、编程题三、编程题2、#include#include void main()float a,b,c,p,s;printf(请输入三角形的三边长请输入三角形的三边长:);scanf(%f%f%f,&a,&b,&c);if(a+bc&a+cb&b+ca)p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(三角形面积为三角形面积为:%.2fn,s);else

3、 printf(输入的边长不能构成三角形输入的边长不能构成三角形!n);第3章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除3、#include void main()int x,y;scanf(%d,&x);if(x-5&x0&x-5&x0&x8)y=x+1;if(x=8)y=10;if(x=8)y=10;else if(x0)y=x-1;else if(x=0)y=x;else y=x+1;第3章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除4、键盘输入一字符,大写转小写,小写转大写,其他原样输出。、键盘输入一字符,大写转小写,小写转大写,其

4、他原样输出。#include void main()char ch;scanf(%c,&ch);if(ch=A&ch=a&ch=A&ch=a&ch=z)printf(%cn,ch-32);elseprintf(%cn,ch);第3章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除8.#include void main()int year,flag=1;double money,rate,total;printf(请输入存款本金和年限请输入存款本金和年限:);scanf(%lf%d,&money,&year);if(year=1)rate=0.00215;else if(

5、year=2)rate=0.0023;else if(year=3)rate=0.00245;else if(year=5)rate=0.00275;else if(year=8)rate=0.0032;else flag=0;if(flag=1)total=money*(1+rate*12*year);printf(总金额为总金额为:%.2lfn,total);else printf(输入的期限不正确输入的期限不正确!n);第3章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除#include void main()int year,flag=1;double mone

6、y,rate,total;printf(请输入存款本金和年限请输入存款本金和年限:);scanf(%lf%d,&money,&year);switch(year)case 1:rate=0.00215;break;case 2:rate=0.0023;break;case 3:rate=0.00245;break;case 5:rate=0.00275;break;case 8:rate=0.0032;break;default:printf(输入的期限不正确输入的期限不正确!n);flag=0;if(flag=1)total=money*(1+rate*12*year);printf(总金额

7、为总金额为:%.2lfn,total);精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除第第4章章 部分习题参考答案部分习题参考答案一、单项选择题一、单项选择题 BCDBD BCDBB CCCCC BACDD二、编程题二、编程题2.编程输出编程输出1200之间所有能被之间所有能被3整除、且个位数为整除、且个位数为6的整数。的整数。方法方法2:#include void main()int i;for(i=6;i=200;i=i+10)if(i%3=0)printf(%5d,i);printf(n);方法方法1:#include void main()int i;for(i=1;

8、i=200;i+)if(i%3=0&i%10=6)printf(%5d,i);printf(n);精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除3.编程从键盘输入编程从键盘输入k的值及的值及k个整数,统计其中的正数、零和负数个整数,统计其中的正数、零和负数的个数。的个数。#include void main()int x,k,i,p=0,z=0,m=0;printf(请输入待输入数据请输入待输入数据的个数的个数:);scanf(%d,&k);printf(请输入请输入%d个整数个整数:,k);for(i=1;i0)p+;else if(x=0)z+;else m+;print

9、f(正数、正数、0、负数个数分别为、负数个数分别为:%d,%d,%dn,p,z,m);第4章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除6.编程求编程求e=1+1/1!+1/2!+1/3!+1/n!,直到最后一项小,直到最后一项小于于10-5为止。为止。#include void main()float sum,n,m,c;sum=1;n=1;m=1;c=1;while(c=1E-5)m=m*n;c=1/m;sum=sum+c;n=n+1;printf(e=%fn,sum);#include void main()int i=1;double s=1,e=1;whil

10、e(1/s=1E-5)s=s*i;e=e+1/s;i+;printf(e=%lfn,e);第4章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除7.输入两个正整数输入两个正整数m和和n,求其最小公倍数。,求其最小公倍数。#include void main()int m,n,i;printf(请输入两个正整数请输入两个正整数:);scanf(%d%d,&m,&n);for(i=m;i+)if(i%m=0&i%n=0)break;printf(%d,%d的最小公倍数为的最小公倍数为%dn,m,n,i);#include void main()int m,n,i;printf

11、(请输入两个正整数请输入两个正整数:);scanf(%d%d,&m,&n);i=m;while(i%m!=0|i%n!=0)i+;printf(%d,%d的最小公倍数为的最小公倍数为%dn,m,n,i);第4章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除8.输入若干学生的成绩,输入负数时表示输入结束,求所有学生输入若干学生的成绩,输入负数时表示输入结束,求所有学生的最高分。的最高分。#include void main()int cj,max=0;printf(输入成绩输入成绩,以负数,以负数结束结束:);scanf(%d,&cj);while(cj=0)if(max

12、cj)max=cj;scanf(%d,&cj);printf(最高分:最高分:%dn,max);#include void main()int cj,max=0;printf(输入成绩输入成绩,以负数,以负数结束结束:);while(1)scanf(%d,&cj);if(cj0)break;if(maxcj)max=cj;printf(最高分:最高分:%dn,max);第4章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除13.有有36块砖,由块砖,由36人搬:男人一次搬人搬:男人一次搬4块,女人一次搬块,女人一次搬3块,块,两个小孩抬两个小孩抬1块,要求一次刚好全部搬完

13、。问男、女、小孩各多块,要求一次刚好全部搬完。问男、女、小孩各多少人?少人?#include void main()int x,y,z;/x,y,z分分别表示男表示男,女女,小孩小孩数数 for(x=0;x9;x+)for(y=0;y12;y+)z=36-x-y;if(4*x+3*y+z/2=36&z%2=0)printf(%d%d%dn,x,y,z);第4章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除14.猴子摘桃问题。猴子摘桃问题。T10=1Tn=(Tn+1+1)*2求求T1=?nyt=1,i=9开始开始i1结束结束t=(t+1)*2i=i-1输出输出t#incl

14、ude void main()int i,t;t=1;for(i=9;i=1;i-)t=(t+1)*2;printf(第一天桃子数量为第一天桃子数量为:%dn,t);第4章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除15.求数列求数列2/1,3/2 ,5/3,8/5,的前的前n项之和。项之和。#include void main()int a,b,t,i,n;double sum=0.0;printf(请输入请输入n:);scanf(%d,&n);a=2,b=1;for(i=1;i=n;i+)sum=sum+(double)a/b;t=a;a=a+b;b=t;prin

15、tf(sum=%fn,sum);第4章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除第第5章章 部分习题参考答案部分习题参考答案一、单项选择题一、单项选择题 BBADC BDBCC DDDDC BAACD精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除l补补1:输入:输入6个整数到数组个整数到数组a中,将其逆序输出。中,将其逆序输出。l补补2:输入:输入6个整数到数组个整数到数组a中,将其逆序存储,然后输出。中,将其逆序存储,然后输出。补补1:#include void main()int i,a6;for(i=0;i=0;i-)printf(%d ,a

16、i);printf(n);补补2:#include void main()int i,j,a6,t;printf(请输入请输入6个整数个整数:);for(i=0;i6;i+)scanf(%d,&ai);for(i=0,j=5;ij;i+,j-)t=ai;ai=aj;aj=t;printf(逆序后数据为逆序后数据为:);for(i=0;i6;i+)printf(%d ,ai);printf(n);0 1 2 3 4 5 3 7 5 2 6 1a第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除二、编程题二、编程题1.#include void main()int a10

17、,i,k,sum;float ave;printf(请输入请输入10个整数个整数:);for(i=0;i10;i+)scanf(%d,&ai);sum=0,k=0;for(i=0;i0)sum+=ai;k+;ave=(float)sum/k;printf(正数正数的个数为的个数为:%d,平均值为平均值为:%.2fn,k,ave);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除2.方法一:方法一:#include void main()int a100,i,n,score;float sum,ave;i=0,sum=0;while(1)printf(请输入第请输入第

18、%d个学生个学生成绩成绩:,i+1);scanf(%d,&score);if(score0)break;ai=score;sum+=ai;i+;n=i;ave=sum/n;printf(平均分为平均分为:%.2fn,ave);printf(低于平均分的成绩有低于平均分的成绩有:);for(i=0;in;i+)if(aiave)printf(%d ,ai);printf(n);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除2.方法二:方法二:#include void main()int a100,i=0,n,score;float sum=0,ave;printf

19、(请输入学生成绩,以负数结束:请输入学生成绩,以负数结束:);scanf(%d,&score);while(score=0)ai=score;sum+=ai;i+;scanf(%d,&score);n=i;ave=sum/n;printf(平均分为平均分为:%.2fn,ave);printf(低于平均分的成绩有低于平均分的成绩有:);for(i=0;in;i+)if(aiave)printf(%d ,ai);printf(n);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除4.-改:改:从键盘输入一个从键盘输入一个33的矩阵的矩阵,求,求该矩阵主该矩阵主对角对角线

20、与副线与副对角线上的元素之和对角线上的元素之和。#include void main()int a33,i,j,sum=0;printf(请输入请输入33矩阵元素矩阵元素:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);if(i=j|i+j=2)sum=sum+aij;printf(主副对角线元素和主副对角线元素和:%dn,sum);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除5.#include#define M 3#define N 4void main()int i,j;float aMN,bM,sum;prin

21、tf(请输入请输入%d%d矩阵矩阵:n,M,N);for(i=0;iM;i+)sum=0;for(j=0;jN;j+)scanf(%f,&aij);sum+=aij;bi=sum/N;printf(各行平均值为:各行平均值为:);for(i=0;iM;i+)printf(%7.2f,bi);printf(n);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除8.#include#includevoid main()char a20;int i;printf(请输入字符串:请输入字符串:);gets(a);for(i=strlen(a)-1;i=0;i-)printf

22、(%c,ai);printf(n);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除9.#include void main()char s180,s240;int i,j;printf(请输入第请输入第1个字符串个字符串:);gets(s1);printf(请输入第请输入第2个字符串个字符串:);gets(s2);i=0;while(s1i!=0)i+;j=0;while(s2j!=0)s1i=s2j;i+;j+;s1i=0;printf(连接后的字符串为连接后的字符串为:%sn,s1);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除

23、10.#include void main()char s180,s280;int i;printf(请输入一个字符串请输入一个字符串:);gets(s2);for(i=0;s2i!=0;i+)s1i=s2i;s1i=0;printf(复制后的字符串为复制后的字符串为:%sn,s1);第5章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除13./冒泡法升序排序冒泡法升序排序#include#include void main()int n,i,j;char t,s80;printf(请输入字符串请输入字符串:);gets(s);n=strlen(s);for(i=0;in

24、-1;i+)for(j=0;jsj+1)t=sj,sj=sj+1,sj+1=t;printf(排序后字符串排序后字符串:);puts(s);/选择法升序排序选择法升序排序#include#include void main()int n,i,j,m;char t,s80;printf(请输入字符串请输入字符串:);gets(s);n=strlen(s);for(i=0;in-1;i+)m=i;for(j=i+1;jn;j+)if(sjsm)m=j;if(m!=i)t=si,si=sm,sm=t;printf(排序后字符串排序后字符串:);puts(s);第5章 习题精品ppt文档收集于网络,仅

25、供学习交流,如有侵权请联系管理员删除第第6章章 部分习题参考答案部分习题参考答案一、单项选择题一、单项选择题 CAAAB DCBBB CADAD CDBA A 注:第注:第20小题不做要求小题不做要求精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除二、编程题二、编程题3.#includevoid main()int min(int,int,int);int a,b,c,d,e,m1,m2;printf(请输入请输入5个整数个整数:);scanf(%d%d%d%d%d,&a,&b,&c,&d,&e);m1=min(a,b,c);m2=min(m1,d,e);printf(最小值为

26、最小值为:%dn,m2);int min(int x,int y,int z)int m;if(xy)m=x;else m=y;if(zm)m=z;return m;第6章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除4.#include#includevoid main()int prime(int m);int i;for(i=2;i=100;i+)if(prime(i)printf(%5d,i);printf(n);int prime(int m)int k,n;n=(int)sqrt(m);for(k=2;k=n;k+)if(m%k=0)return 0;ret

27、urn 1;第6章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除5.#includeint fgcd(int m,int n)/最大公约数函数最大公约数函数 int i;i=mm?m:n;for(;i+)if(i%m=0&i%n=0)return i;void main()int a,b,gy,gb;printf(请输入两个整数请输入两个整数:);scanf(%d%d,&a,&b);gy=fgcd(a,b);gb=flcd(a,b);printf(%d,%d的最大公约数为的最大公约数为:%dn,a,b,gy);printf(%d,%d的最小公倍数为的最小公倍数为:%dn

28、,a,b,gb);第6章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除6.#includeint f(int a,int n)int i,t=0;for(i=1;i=n;i+)t=t*10+a;return t;void main()int a,n,i,s=0;printf(请输入两个整数请输入两个整数a,n:);scanf(%d%d,&a,&n);for(i=1;i=n;i+)s=s+f(a,i);printf(结果为结果为:%dn,s);第6章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除8.#include#define N 6int ma

29、x(int a)int i,m;m=a0;for(i=1;iN;i+)if(mai)m=ai;return m;void main()int i,bN;printf(请输入请输入%d个整数个整数:,N);for(i=0;iN;i+)scanf(%d,&bi);printf(最大数为最大数为:%dn,max(b);第6章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除9.#includevoid sort(int a,int n)int i,j,t;for(i=0;in-1;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;void main()in

30、t i,n,a100;/最多最多100个元素个元素 printf(请输入元素个数请输入元素个数:);scanf(%d,&n);printf(请输入请输入%d个元素个元素:,n);for(i=0;in;i+)scanf(%d,&ai);sort(a,n);printf(排序结果为排序结果为:);for(i=0;in;i+)printf(%d ,ai);printf(n);第6章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除12.#includeint fib(int k)int f;if(k=1)f=0;else if(k=2)f=1;else f=fib(k-1)+fi

31、b(k-2);return f;void main()int i,n;printf(请输入项数请输入项数:);scanf(%d,&n);printf(前前%d项项fibonacci数列为数列为:,n);for(i=1;i=n;i+)printf(%d ,fib(i);printf(n);第6章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除第第7章章 部分习题参考答案部分习题参考答案一、单项选择题一、单项选择题 DBCCC ACBAD CACC D DDCDC CBCAC 注:注:1525小题不做要求小题不做要求二、填空题二、填空题 1.2010 5 2.s=p+3 s=

32、s-2 100 *(s+1)2 3.110 4.abcde a 5.malloc(sizeof(int)*11)不做要求不做要求精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除三、编程题(用指针完成)三、编程题(用指针完成)1.#includevoid swap(int*px,int*py)int t;t=*px;*px=*py;*py=t;void main()int a,b,c;printf(请输入三个整数请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if(ab)swap(&a,&b);if(ac)swap(&a,&c);if(bc)swap(&b,&c

33、);printf(三个数从大到小为三个数从大到小为:%d%d%dn,a,b,c);第7章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除2.#includevoid swap(int*px,int*py)int t;t=*px;*px=*py;*py=t;void main()int a10,i;int*pmax,*pmin;/两个指针分别指向最大,最小数两个指针分别指向最大,最小数 printf(请输入请输入10个整数个整数:);for(i=0;i10;i+)scanf(%d,&ai);pmax=pmin=a;for(i=1;i10;i+)if(*pmaxai)pmin

34、=&ai;swap(pmax,&a9);swap(pmin,&a0);printf(交换后的交换后的10个数为个数为:);for(i=0;i10;i+)printf(%d ,ai);printf(n);第7章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除3.#includevoid main()char a100,*p=a;int flag=0;printf(请输入一个字符串请输入一个字符串:);gets(a);while(*p!=0)if(*p=k)flag=1;break;p+;if(flag=1)printf(已找到已找到!n);else printf(没找到没找

35、到n);第7章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除5.#includevoid scat(char*s1,char*s2)char*p1=s1,*p2=s2;while(*p1!=0)p1+;while(*p2!=0)*p1=*p2;p1+;p2+;*p1=0;void main()char a80,b40;printf(请输入第请输入第1个字符串个字符串:);gets(a);printf(请输入第请输入第2个字符串个字符串:);gets(b);scat(a,b);printf(b连接到连接到a后字符串为后字符串为:%sn,a);第7章 习题精品ppt文档收集

36、于网络,仅供学习交流,如有侵权请联系管理员删除6.#include#includevoid main()int hw(char*s);char s80;printf(请输入一个字符串请输入一个字符串:);gets(s);if(hw(s)printf(该字符串是回文该字符串是回文!n);else printf(该字符串不是回文该字符串不是回文!n);int hw(char*s)int flag=1;char*p,*q;for(p=s,q=s+strlen(s)-1;pq;p+,q-)if(*p!=*q)flag=0;break;return flag;第7章 习题精品ppt文档收集于网络,仅供学

37、习交流,如有侵权请联系管理员删除9.#include#includeint fun(char*s)int len,i,k,n=0;len=strlen(s);for(i=0;ilen;i+)k=si-0;n=n*10+k;return n;void main()char s10;int n;printf(请请输入不输入不超过超过9个字符的数字串个字符的数字串:);gets(s);n=fun(s);printf(对应的整数位对应的整数位:%dn,n);/函数的另一种方法函数的另一种方法int fun(char*s)int n=0;while(*s!=0)n=n*10+*s-0;s+;return

38、 n;第7章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除10.#includeint slen(char*p)int len=0;while(*p!=0)len+;p+;return len;void main()char a80;printf(请请输入一个输入一个字符串字符串:);gets(a);printf(字符串的长度为字符串的长度为:%dn,slen(a);第7章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除第第8章章 部分习题答案部分习题答案一、单项选择题一、单项选择题 BDABC BADDA DCDBC第第9章章 部分部分习题答案习

39、题答案一、单项一、单项选择题选择题 DDCDD ABCCC DD AB D 注:第注:第13、14小题不做要求小题不做要求精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除二、编程题二、编程题1.2.#include#define MOD(a,b)(a)%(b)void main()int m,n,r;printf(请输入两个整数请输入两个整数:);scanf(%d%d,&m,&n);r=MOD(m,n);printf(余数为余数为:%dn,r);#include#define MAX(a,b)(a)(b)?(a):(b)void main()int x,y,z,m;printf(请输入三个整数请输入三个整数:);scanf(%d%d%d,&x,&y,&z);m=MAX(MAX(x,y),z);printf(最大值为最大值为:%dn,m);第9章 习题精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除精品ppt文档收集于网络,仅供学习交流,如有侵权请联系管理员删除

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!