2021年2021年C语言程序设计第三版谭浩强课后习题答案完整版word版本.docx
-
资源ID:4659413
资源大小:346.31KB
全文页数:26页
- 资源格式: DOCX
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2021年2021年C语言程序设计第三版谭浩强课后习题答案完整版word版本.docx
精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除1.5#include <stdio.h> void main()printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");printf("Very good.n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");1.6#include <stdio.h> void main()float max(float x、float 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=x>y. x: y; n=m>z. m: z; return(n);3.6#include <stdio.h> 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 ” 、c4、c5);只供学习与沟通第 1 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除3.9.1#include <stdio.h> 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 <stdio.h> void main()int a=2、b=3;float x=3.5、y=2.5、z; z=(float)(a+b)/2+(int)x%(int)y;printf(" 该表达式的值为:%f"、z);4.5#include <stdio.h> 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、%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 <stdio.h> void main()int a、b; float x、y; char c1、c2;scanf("a=%d b=%d"、&a、&b); scanf(" %f %e"、&x、&y);scanf(" %c %c"、&c1、&c2);4.7#include<stdio.h> 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 <stdio.h>#define pi 3.14 void main()float r、h、l、s1、s2、v1、v2;只供学习与沟通第 3 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除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 <stdio.h> void main()float x、y; printf(" 请输入 x 的值: n"); scanf("%f"、&x);if(x<1) y=x;else if(x>=1&&x<10) y=2*x-1;elsey=3*x-11; printf("x与 y 的值分别为:n%f、%f"、x、y); printf("n");5.6 #include <stdio.h> void main()只供学习与沟通第 4 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除int a;float b;printf(" 请输入该同学的成果:n"); scanf("%f"、&b);while (b<0|b>100)printf(" 输入有误,请重新输入:n"); scanf("%f"、&b);a= int(b/10); if(a<6) 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 <stdio.h>#include <math.h> void main()int x、y、m、n、i=1、j=0; printf(" 请给出一个不多于5位的正整数 :n"); scanf("%d"、&x);while(x<=0|x>=100000)printf(" 输入有误 n 请给出一个不多于5位的正整数 :n"); scanf("%d"、&x);for(n=0;n<5;n+)y=int(x/pow(10、n);只供学习与沟通第 5 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除if(y>0&&y<10) m=n+1;printf(" 它为 %d 位数 n"、m);printf(" 从高到低位依次为n"); doprintf(" %d"、int(x/pow(10、m-i)%10); i+;while(m-i>=0); printf("n 逆序输出为 n");dowhile(j-m<0);printf(" %d"、int(x/pow(10、j)%10); j+;printf("n");6.1 输入两个正整数m 和 n,求其最大公约数和最小公倍数;#include <stdio.h> 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 页 - - - - - - - - - -精品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 <stdio.h> void main()int i=0、j=0、k=0、x=0; char c;printf(" 请输入一行字符串: n");while(c=getchar().=n)if(c>=A&&c<=Z|c>=a&&c<=z) i+; else if(c= ) j+;else if(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<stdio.h>#include<math.h> void main()int i、n; int sum=0、s=0;printf(" 请输入 n 的值: n");scanf("%d"、&n); while(n<1)printf(" 请重新输入 n 的值: n"); scanf("%d"、&n);for(i=0;i<n;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项之和;#include<stdio.h>void main()int a=1、b=1、i; float sum=0.0;只供学习与沟通第 8 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除for(i=0;i<20;i+)a=a+b; b=a-b;sum+=(float)a/b;printf("这个数列前二十项之和为:n%f"、sum); printf("n");7.2#include<stdio.h> void main() int i、j、t、a10; printf(" 请输入十个整数:n");for(i=0;i<10;i+)scanf("%d"、&ai);for(j=1;j<10;j+) for(i=0;i<10-j;i+)if(ai<ai+1)t=ai; ai=ai+1;ai+1=t;printf(" 这十位数从大到小排列为:n"); for(i=0;i<10;i+)printf("%5d"、ai); printf("n");7.3#include<stdio.h> void main()只供学习与沟通第 9 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除int i、j、m、n、a33; printf(" 请输入 3*3 的整形矩阵 n");for(i=0;i<3;i+) for(j=0;j<3;j+) scanf("%d"、&aij);m=a00+a11+a22;n=a02+a11+a20;printf("3*3的整形矩阵对角线元素之和为:n"); printf("%d、%d"、m、n);7.4#include<stdio.h> 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;i>0;i-)if(ai<ai-1)t=ai-1; ai-1=ai; ai=t;for(i=0;i<10;i+) printf("%4d"、ai);printf("n");7.8#include<stdio.h> void main()int a55、b5、c5、d55;int i、j、k、l;printf(" 请输入 5*5 的整型数组 n");只供学习与沟通第 10 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除for(i=0;i<5;i+) for(j=0;j<5;j+) scanf("%d"、&dij);for(i=0;i<5;i+) for(j=0;j<5;j+)aij=dij; for(i=0、k=0;i<5;i+、k+) for(j=0;j<4;j+)if(aij>=aij+1)bk=aij+1=aij; elsebk=aij+1;for(j=0、l=0;j<5;j+、l+) for(i=0;i<4;i+)if(aij<=ai+1j)cl=ai+1j=aij; elsecl=ai+1j;for(i=0、k=0;i<5;i+、k+) for(j=0、l=0;j<5;j+、l+)if(dij-bk=0)if(dij-cl=0) printf(" 鞍点为 d%d%d=%dn"、i、j、dij);else printf(" 没有鞍点 n");7.10#include<stdio.h>#include<string.h> void main()只供学习与沟通第 11 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除int 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<=Z) j+; else if(str0i>=a&&str0i<=z) k+;else if(str0i>=0&&str0i<=9) l+; else if(str0i= ) m+;else n+;printf(" 大写字母.小写字母.数字.空格以及其他字符的个数依次为:n"); printf("%5d %7d %5d %6d %4dn"、j、k、l、m、n);printf("n"); 7.14#include <stdio.h>#include <string.h> 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 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除8.1#include<stdio.h> 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、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<stdio.h> void main()只供学习与沟通第 13 页,共 15 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -此文档仅供收集于网络,如有侵权请联系网站删除int judss(int m); 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;i<m;i+) if(m%i=0) break;if(i<m)return printf(" 这个数不为素数"); elsereturn printf(" 这个数为素数");8.5#include<stdio.h>#include<string.h> void main()char fx(char str1100); char str0100;printf(" 请输入一个字符串: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 页 - - - - - - - - - -