《2021年2021年C语言程序设计第三版谭浩强课后习题答案完整版word版本.docx》由会员分享,可在线阅读,更多相关《2021年2021年C语言程序设计第三版谭浩强课后习题答案完整版word版本.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除1.5#include void main()printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf(Very good.n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);1.6#include void main()float max(float x、float
2、 y、float z); float a、b、c; printf( 请分别输入a、b、c:n);scanf(%f、%f、%f、&a、&b、&c);printf(max=%f、max(a、b、c);float max(float x、float y、float z)float m、n; m=xy. x: y; n=mz. m: z; return(n);3.6#include voidmain()char c1= a、c2= b、c3= c 、c4= 101 、c5= 116; printf( “ a%c b%ctc%ctabcn ”、c1、c2、c3);printf( “ tb%c %cn ”
3、 、c4、c5);只供学习与沟通第 1 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除3.9.1#include voidmain()double x=2.5、y=4.7、z; int a=7;z=x+a%3*(int)(x+y)%2/4;printf( 该表达式的值为:%f、z); 3.9.2#include void main()int a=2、b=3;float x=3.5、y=2.5、z; z=(float)(a+b)/2+(int)x%(int)y;pri
4、ntf( 该表达式的值为:%f、z);4.5#include void main()int a=5、b=7;double x=67.8564、y=-789.124;char c=A;long n=1234567; unsigned u=65535; printf(%d%dn、a、b);printf(%3d%3dn、a、b);printf(%f、%fn、x、y);printf(%-10f、%-10fn、x、y); printf(%8.2f、%8.2f、%.4f、%.4f、%3f、%3fn、x、y、x、y、x、y); printf(%e、%10.2en、x、y);printf(%c、%d、%o、%
5、xn、n、n、n);printf(%ld、%lo、%xn、n、n、n);printf(%u、%o、%x、%dn、u、u、u、u);只供学习与沟通第 2 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除printf(%s、%5.3sn、COMPUTER、COMPUTER);4.6#include void main()int a、b; float x、y; char c1、c2;scanf(a=%d b=%d、&a、&b); scanf( %f %e、&x、&y);sc
6、anf( %c %c、&c1、&c2);4.7#include void main()int a、b; float x、y、z; char c1、c2;scanf(%5d%5d、&a、&b); scanf(%f%f%*f%f、&x、&y、&z); scanf(%c%c、&c1、&c2);4.8#include #define pi 3.14 void main()float r、h、l、s1、s2、v1、v2;只供学习与沟通第 3 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请
7、联系网站删除printf(请输入 r ,h的值: n); scanf(%f、%f、&r、&h);l=2*pi*r; s1=pi*r*r; s2=4*s1; v1=4/3*pi*r*r*r; v2=s1*h;printf(圆周长为: %.2fn、l);printf(圆面积为: %.2fn、s1);printf(圆球表面积为:%.2fn、s2);printf(圆球体积为: %.2fn、v1);printf(圆柱体积为: %.2fn、v2);5.5 #include void main()float x、y; printf( 请输入 x 的值: n); scanf(%f、&x);if(x=1&x10
8、) y=2*x-1;elsey=3*x-11; printf(x与 y 的值分别为:n%f、%f、x、y); printf(n);5.6 #include void main()只供学习与沟通第 4 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除int a;float b;printf( 请输入该同学的成果:n); scanf(%f、&b);while (b100)printf( 输入有误,请重新输入:n); scanf(%f、&b);a= int(b/10); i
9、f(a6) a=5;switch(a)case 10:case 9: printf( 该同学为等级: A);break; case 8: printf( 该同学为等级: B);break; case 7: printf( 该同学为等级: C);break; case 6: printf( 该同学为等级: D);break; case 5: printf( 该同学为等级: E);break;#include #include void main()int x、y、m、n、i=1、j=0; printf( 请给出一个不多于5位的正整数 :n); scanf(%d、&x);while(x=10000
10、0)printf( 输入有误 n 请给出一个不多于5位的正整数 :n); scanf(%d、&x);for(n=0;n0&y=0); printf(n 逆序输出为 n);dowhile(j-m0);printf( %d、int(x/pow(10、j)%10); j+;printf(n);6.1 输入两个正整数m 和 n,求其最大公约数和最小公倍数;#include void main()int m、n、i、j;printf( 请分别输入 m, n 的值: n); scanf(%d、%d、&m、&n);for(i=1;i=m;i+)if(m%i=0&n%i=0)只供学习与沟通第 6 页,共 15
11、 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除j=i;printf( 这两个整数的最大公约数为:%d、j);for(i=j;i+)if(i%m=0&i%n=0) break;printf( 这两个整数的最小公倍数数为:%d、i); printf(n);6.2 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其他字符的个数;#include void main()int i=0、j=0、k=0、x=0; char c;printf( 请输入一行字符串: n);while(
12、c=getchar().=n)if(c=A&c=a&c=0&c=9) k+;else x+;printf( 英文字母.空格.数字.其他字符的个数分别为: %d、%d、%d、%d、i、j、k、x); printf(n);只供学习与沟通第 7 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除6.3 求 Sn=a+aa+aaa+aaa 之值,其中 a 为一个数字;例如: 222222 222222222(此时 n 5),n 由键盘输入;#include#include vo
13、id main()int i、n; int sum=0、s=0;printf( 请输入 n 的值: n);scanf(%d、&n); while(n1)printf( 请重新输入 n 的值: n); scanf(%d、&n);for(i=0;in;i+)s+=pow(10、i); sum+=2*s;printf(sum=%dn、sum);6.8 题目:有一分数序列 2/1、3/2、5/3、8/5、13/8、21/13、求出这个数列的前20项之和;#includevoid main()int a=1、b=1、i; float sum=0.0;只供学习与沟通第 8 页,共 15 页 - - - -
14、 - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除for(i=0;i20;i+)a=a+b; b=a-b;sum+=(float)a/b;printf(这个数列前二十项之和为:n%f、sum); printf(n);7.2#include void main() int i、j、t、a10; printf( 请输入十个整数:n);for(i=0;i10;i+)scanf(%d、&ai);for(j=1;j10;j+) for(i=0;i10-j;i+)if(aiai+1)t=ai; ai=ai+1;a
15、i+1=t;printf( 这十位数从大到小排列为:n); for(i=0;i10;i+)printf(%5d、ai); printf(n);7.3#include void main()只供学习与沟通第 9 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除int i、j、m、n、a33; printf( 请输入 3*3 的整形矩阵 n);for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d、&aij);m=a00+a11+a22;n=a02+
16、a11+a20;printf(3*3的整形矩阵对角线元素之和为:n); printf(%d、%d、m、n);7.4#include void main()static int a10=1、5、6、10、20、24、55、58、64;int i、t;printf( 请输入一个数:n); scanf(%d、&a9);for(i=9;i0;i-)if(aiai-1)t=ai-1; ai-1=ai; ai=t;for(i=0;i10;i+) printf(%4d、ai);printf(n);7.8#include void main()int a55、b5、c5、d55;int i、j、k、l;pri
17、ntf( 请输入 5*5 的整型数组 n);只供学习与沟通第 10 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除for(i=0;i5;i+) for(j=0;j5;j+) scanf(%d、&dij);for(i=0;i5;i+) for(j=0;j5;j+)aij=dij; for(i=0、k=0;i5;i+、k+) for(j=0;j=aij+1)bk=aij+1=aij; elsebk=aij+1;for(j=0、l=0;j5;j+、l+) for(i=0;
18、i4;i+)if(aij=ai+1j)cl=ai+1j=aij; elsecl=ai+1j;for(i=0、k=0;i5;i+、k+) for(j=0、l=0;j5;j+、l+)if(dij-bk=0)if(dij-cl=0) printf( 鞍点为 d%d%d=%dn、i、j、dij);else printf( 没有鞍点 n);7.10#include#include void main()只供学习与沟通第 11 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除in
19、t i、j=0、k=0、l=0、m=0、n=0;char str0301、str1100、str2100、str3100; gets(str1);gets(str2); gets(str3);strcat(str0、str1); strcat(str0、str2); strcat(str0、str3);for(i=0;str0i.=0;i+)if(str0i=A&str0i=a&str0i=0&str0i=9) l+; else if(str0i= ) m+;else n+;printf( 大写字母.小写字母.数字.空格以及其他字符的个数依次为:n); printf(%5d %7d %5d %
20、6d %4dn、j、k、l、m、n);printf(n); 7.14#include #include void main()int i=0、resu;char s1100、s2100;printf(n请输入 string1 : ); gets(s1);printf(n请输入 string2 : );gets(s2); while(s1i=s2i&s1i.=0)i+;if(s1i=0&s2i=0)resu=0; elseresu=s1i-s2i;printf(n result : %dn、resu);只供学习与沟通第 12 页,共 15 页 - - - - - - - - - -精品word
21、可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除8.1#include void main()int maxgy(int m、int n); int mingb(int o、int p);int a、b;printf( 请输入两个正整数:a, bn); scanf(%d、%d、&a、&b);while(a=0|b=0)printf( 注:请输入两个正整数:a,bn); scanf(%d、%d、&a、&b);printf( 这两个数的最大公约数为:%d、maxgy(a、b); printf( 这两个数的最小公倍数为:%d、mingb(a、
22、b);printf(n);int maxgy(int m、int n)int i、k; for(i=1;i=m;i+)if(m%i=0&n%i=0) k=i;return k;int mingb(int o、int p)int j; for(j=o;j+) if(j%o=0&j%p=0)break; return j;8.3#include void main()只供学习与沟通第 13 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除int judss(int m);
23、 int a;printf( 请输入一个正整数:);scanf(%d、&a); while(a=0)printf( 注:请输入一个正整数:); scanf(%d、&a);judss(a); printf(n);int judss(int m)int i;for(i=2;im;i+) if(m%i=0) break;if(im)return printf( 这个数不为素数); elsereturn printf( 这个数为素数);8.5#include#include void main()char fx(char str1100); char str0100;printf( 请输入一个字符串:
24、n);gets(str0); fx(str0);puts(str0);char fx(char str1100) int i、j、k=strlen(str1); char str2100;strcpy(str2、str1);只供学习与沟通第 14 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除for(i=0、j=k-1;j-1;i+、j-)str1i=str2j; return str1100;只供学习与沟通第 15 页,共 15 页 - - - - - - - - - -