C语言课后习题参考答案.ppt

上传人:1595****071 文档编号:86280741 上传时间:2023-04-14 格式:PPT 页数:45 大小:160.52KB
返回 下载 相关 举报
C语言课后习题参考答案.ppt_第1页
第1页 / 共45页
C语言课后习题参考答案.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《C语言课后习题参考答案.ppt》由会员分享,可在线阅读,更多相关《C语言课后习题参考答案.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第2章章 部分习题参考答案部分习题参考答案一、单项选择题:一、单项选择题:DABDD DAAAB BCD第第3章章 部分习题参考答案部分习题参考答案一、单项选择题:一、单项选择题:CACBB CDBBB ADCCB DCCBB二、填空题:二、填空题:1.a!=b|a20&x30|x-1003.04.非非05.16.x%3=0&x%7=0 或或 x%21=0三、编程题三、编程题2、#include#include void main()float a,b,c,p,s;printf(请输入三角形的三边长请输入三角形的三边长:);scanf(%f%f%f,&a,&b,&c);if(a+bc&a+c

2、b&b+ca)p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(三角形面积为三角形面积为:%.2fn,s);else printf(输入的边长不能构成三角形输入的边长不能构成三角形!n);第3章 习题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章 习题4、键盘输入一字符,大写转小写,小写转大写,其他原样输出。、键盘输入一字

3、符,大写转小写,小写转大写,其他原样输出。#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章 习题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(year=2)rate=0.002

4、3;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章 习题#include void main()int year,flag=1;double money,rate,total;printf(请输入存款本金和年限请输入存款本金和年限:);scanf(

5、%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(总金额为总金额为:%.2lfn,total);第第4章章 部分习题参考答案部分习题参考答案一、单项选择题

6、一、单项选择题 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;i=200;i+)if(i%3=0&i%10=6)printf(%5d,i);printf(n);3.编程从键盘输入编程从键盘输入k的值及的值及k个整数,统计其中

7、的正数、零和负数个整数,统计其中的正数、零和负数的个数。的个数。#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+;printf(正数、正数、0、负数个数分别为、负数个数分别为:%d,%d,%dn,p,z,m);第4章 习题6.编程求编程求e=1+1/1!+1/2!+1/3!+1/n!,直到最后一项小,直到最后一项小于于10-5为止。为止。#incl

8、ude 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;while(1/s=1E-5)s=s*i;e=e+1/s;i+;printf(e=%lfn,e);第4章 习题7.输入两个正整数输入两个正整数m和和n,求其最小公倍数。,求其最小公倍数。#include void main()int m,n,i;printf(请输入两个正整数请输入两个正整数:);

9、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(请输入两个正整数请输入两个正整数:);scanf(%d%d,&m,&n);i=m;while(i%m!=0|i%n!=0)i+;printf(%d,%d的最小公倍数为的最小公倍数为%dn,m,n,i);第4章 习题8.输入若干学生的成绩,输入负数时表示输入结束,求所有学生输入若干学生的成绩,输入负数时表示输入结束,求所有学生的最高分。的最高分。#in

10、clude void main()int cj,max=0;printf(输入成绩输入成绩,以负数,以负数结束结束:);scanf(%d,&cj);while(cj=0)if(maxcj)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章 习题13.有有36块砖,由块砖,由36

11、人搬:男人一次搬人搬:男人一次搬4块,女人一次搬块,女人一次搬3块,块,两个小孩抬两个小孩抬1块,要求一次刚好全部搬完。问男、女、小孩各多块,要求一次刚好全部搬完。问男、女、小孩各多少人?少人?#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章 习题14.猴子摘桃问题。猴子摘桃问题。T10=1Tn=(Tn+1+1)*2求求T1=?nyt=1,i=9开始开始i1结

12、束结束t=(t+1)*2i=i-1输出输出t#include void main()int i,t;t=1;for(i=9;i=1;i-)t=(t+1)*2;printf(第一天桃子数量为第一天桃子数量为:%dn,t);第4章 习题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;printf(su

13、m=%fn,sum);第4章 习题第第5章章 部分习题参考答案部分习题参考答案一、单项选择题一、单项选择题 BBADC BDBCC DDDDC BAACDl补补1:输入:输入6个整数到数组个整数到数组a中,将其逆序输出。中,将其逆序输出。l补补2:输入:输入6个整数到数组个整数到数组a中,将其逆序存储,然后输出。中,将其逆序存储,然后输出。补补1:#include void main()int i,a6;for(i=0;i=0;i-)printf(%d ,ai);printf(n);补补2:#include void main()int i,j,a6,t;printf(请输入请输入6个整数个整

14、数:);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章 习题二、编程题二、编程题1.#include void main()int a10,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;

15、k+;ave=(float)sum/k;printf(正数正数的个数为的个数为:%d,平均值为平均值为:%.2fn,k,ave);第5章 习题2.方法一:方法一:#include void main()int a100,i,n,score;float sum,ave;i=0,sum=0;while(1)printf(请输入第请输入第%d个学生个学生成绩成绩:,i+1);scanf(%d,&score);if(score0)break;ai=score;sum+=ai;i+;n=i;ave=sum/n;printf(平均分为平均分为:%.2fn,ave);printf(低于平均分的成绩有低于平均

16、分的成绩有:);for(i=0;in;i+)if(aiave)printf(%d ,ai);printf(n);第5章 习题2.方法二:方法二:#include void main()int a100,i=0,n,score;float sum=0,ave;printf(请输入学生成绩,以负数结束:请输入学生成绩,以负数结束:);scanf(%d,&score);while(score=0)ai=score;sum+=ai;i+;scanf(%d,&score);n=i;ave=sum/n;printf(平均分为平均分为:%.2fn,ave);printf(低于平均分的成绩有低于平均分的成绩有

17、:);for(i=0;in;i+)if(aiave)printf(%d ,ai);printf(n);第5章 习题4.-改:改:从键盘输入一个从键盘输入一个33的矩阵的矩阵,求,求该矩阵主该矩阵主对角对角线与副线与副对角线上的元素之和对角线上的元素之和。#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章 习题5

18、.#include#define M 3#define N 4void main()int i,j;float aMN,bM,sum;printf(请输入请输入%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章 习题8.#include#includevoid main()char a20;int i;printf(请输入字符串:请输入字符串:);

19、gets(a);for(i=strlen(a)-1;i=0;i-)printf(%c,ai);printf(n);第5章 习题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章 习题10.#include void main()ch

20、ar s180,s280;int i;printf(请输入一个字符串请输入一个字符串:);gets(s2);for(i=0;s2i!=0;i+)s1i=s2i;s1i=0;printf(复制后的字符串为复制后的字符串为:%sn,s1);第5章 习题13./冒泡法升序排序冒泡法升序排序#include#include void main()int n,i,j;char t,s80;printf(请输入字符串请输入字符串:);gets(s);n=strlen(s);for(i=0;in-1;i+)for(j=0;jsj+1)t=sj,sj=sj+1,sj+1=t;printf(排序后字符串排序后字

21、符串:);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章 习题第第6章章 部分习题参考答案部分习题参考答案一、单项选择题一、单项选择题 CAAAB DCBBB CADAD CDBA A 注:第注:第20小

22、题不做要求小题不做要求二、编程题二、编程题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(最小值为最小值为:%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章 习题4.#include#includevoid main()int

23、 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;return 1;第6章 习题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(请输入两个整数请输入两个整数:

24、);scanf(%d%d,&a,&b);gy=fgcd(a,b);gb=flcd(a,b);printf(%d,%d的最大公约数为的最大公约数为:%dn,a,b,gy);printf(%d,%d的最小公倍数为的最小公倍数为:%dn,a,b,gb);第6章 习题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);pri

25、ntf(结果为结果为:%dn,s);第6章 习题8.#include#define N 6int max(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章 习题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;a

26、j+1=t;void main()int 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章 习题12.#includeint fib(int k)int f;if(k=1)f=0;else if(k=2)f=1;else f=fib(k-1)+fib(k-2);return

27、 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章 习题第第7章章 部分习题参考答案部分习题参考答案一、单项选择题一、单项选择题 DBCCC ACBAD CACC D DDCDC CBCAC 注:注:1525小题不做要求小题不做要求二、填空题二、填空题 1.2010 5 2.s=p+3 s=s-2 100 *(s+1)2 3.110 4.abcde a 5.malloc(size

28、of(int)*11)不做要求不做要求三、编程题(用指针完成)三、编程题(用指针完成)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);printf(三个数从大到小为三个数从大到小为:%d%d%dn,a,b,c);第7章 习题2.#includevoid swap(int*px,int

29、*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=&ai;swap(pmax,&a9);swap(pmin,&a0);printf(交换后的交换后的10个数为个数为:);for(i=0;i10;i+)printf(%d ,ai);printf(n);第7章 习题3.

30、#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(没找到没找到n);第7章 习题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;p

31、rintf(请输入第请输入第1个字符串个字符串:);gets(a);printf(请输入第请输入第2个字符串个字符串:);gets(b);scat(a,b);printf(b连接到连接到a后字符串为后字符串为:%sn,a);第7章 习题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*

32、p,*q;for(p=s,q=s+strlen(s)-1;pq;p+,q-)if(*p!=*q)flag=0;break;return flag;第7章 习题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);/函数的另一种方法函

33、数的另一种方法int fun(char*s)int n=0;while(*s!=0)n=n*10+*s-0;s+;return n;第7章 习题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章 习题第第8章章 部分习题答案部分习题答案一、单项选择题一、单项选择题 BDABC BADDA DCDBC第第9章章 部分部分习题答案习题

34、答案一、单项一、单项选择题选择题 DDCDD ABCCC DD AB D 注:第注:第13、14小题不做要求小题不做要求二、编程题二、编程题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章 习题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁