2022年C语言参考答案 .pdf
《2022年C语言参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言参考答案 .pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言参考答案第四章顺序结构程序设计1. 单项选择题(1) 【答】 D (2) 【答】 B (3) 【答】 scanf()函数中没有精度控制。本题答案为D。(4) 【答】 D (5) 【答】 D (6) 【答】 C (7) 【答】 C (8) 【答】 D (9) 【答】B A (10) 【答】输入的数据与scanf()函数的格式不匹配。本题答案为D。(11) 【答】A B (12) 【答】 C (13) 【答】 C (14) 【答】 A (15) 【答】 A (16) 【答】 B (17) 【答】 D 2. 填空题名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
2、 - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 42 页 - - - - - - - - - (1) 【答】 3.141593,3.1416,3.142 (2) 【答】 3.500000,3.5 (3) 【答】 31.415920,3.141592e+001 (4) 【答】 127, 127, 177, 7f, 127 (5) 【答】 127,127 ,177 ,7f ,127 (6) 【答】 c=K (7) 【答】 a=12,b=345 (8) 【答】 c=A (9) 【答】 n=64 (10) 【答】 x= 1.23,y= 50.00 (11)
3、【答】 a=3 b=7x=8.5 y=71.82c1=A c2=a 3. 编程题(1)编写一个程序,求出任一输入字符的ASCII码。【解】程序如下:#include <stdio.h> main() char c; printf(" 输入字符 :"); scanf("%c",&c); printf(" 字符%c的 ASCII码为 %dn",c,c); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页
4、,共 42 页 - - - - - - - - - (2)编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符。【解】程序如下:#include <stdio.h> main() char c; printf(" 输入一个字符 :"); scanf("%c",&c); printf(" 输出结果 :%c,%c,%cn",c-1,c,c+1); (3)编写一个程序,输出任意一个十进制整数对应的八进制数和十六进制数。【解】直接使用printf() 的格式符输出八进制数和十六进制数。程序如下:#include
5、 <stdio.h> main() int i; printf(" 输入一个整数 :"); scanf("%d",&i); printf("%d(10)<=>%o(8)n",i,i); printf("%d(10)<=>%x(16)nn",i,i); (4)编写一个程序,从键盘输入圆锥体的半径r 和高度 h,计算其体积。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
6、 第 3 页,共 42 页 - - - - - - - - - 【解】圆锥体体积的计算公式为:v=rrh/3 程序如下:#include <stdio.h> main() float r,h,pi=3.1415,v; printf(" 圆锥半径 ,高度:"); scanf("%f,%f",&r,&h); v=pi*r*r*h/3.0; printf(" 圆锥体积 =%gnn",v); 1. 单项选择题(1) 【答】 A (2) 【答】 C (3) 【答】选项B、C、D 中的比较运算符不正确,在选项A 中,a
7、=b 返回 b,若 b为 0或空字符,则为假,否则为真。本题答案为A。(4) 【答】 B。应改为 if (x=y && x!=0) x+=y; (5) 【答】 D (6) 【答】A A (7) 【答】D C (8) 【答】 A 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 42 页 - - - - - - - - - 2. 填空题(1) 【答】 x % 2 = 0 (2) 【答】 a % b = 0 (3) 【答】 a*a+b*b=c*c | a*a+c
8、*c=b*b | b*b+c*c=a*a (4) 【答】 (a+b<c && a+c<b && b+c<a) (5) 【答】 k=2,执行 case 2分支, k+返回 2,此时 k=3,输出 2,后跟一空格。由于没有 break 语句,继续执行case 3分支,k+返回 3,此时 k=4,输出 3,由于有 break 语句,退出 switch语句。所以输出为:2 3。(6) 【答】 a>0,s变为 2。a>b 为真, t=t+s=3。所以输出为: s=2,t=3。(7) 【答】 k=2,执行 case 2分支, k+返回 2,此时
9、 k=3,屏幕输出2,后跟一空格。由于没有 break 语句,继续执行case 3 分支, k+返回 3,此时 k=4,屏幕输出 3,由于没有 break 语句,继续执行case 4分支,k+返回 4,此时 k=5,屏幕输出 4,由于有 break语句,退出switch 语句。所以输出为:2 3 4。(8) 【答】 x=0,执行外层 switch 语句的 case 0部分, y=2为真,则执行里层switch 语句的 case 1部分,输出“*” , 遇到 break 语句,退出里层的switch 语句,由于里层的switch语句之后没有break 语句,所以转而执行外层switch 语句的
10、case 1 部分,这时z=3,故执行里层 switch 语句的 default 部分,输出“#” ,整个程序执行完毕。 所以输出为: *#。3. 编程题(1)编写一个程序判断用户输入的字符是数字字符、字母字符还是其他字符。【解】在 '0' 到'9'之间的为数字字符,在'a'到'z'或'A' 到'Z' 之间的为字母字符;否则为其他字符。程序如下:#include <stdio.h> main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
11、 - - - - - 名师精心整理 - - - - - - - 第 5 页,共 42 页 - - - - - - - - - char c; printf(" 输入一个字符 :"); scanf("%c",&c); if (c>='0' && c<='9') printf("n%c是数字字符 nn",c); else if (c>='a' && c<='z') | (c>='A' &am
12、p;& c<='Z') printf("n%c是字母字符 nn",c); else printf("n%c是其他字符 nn",c); (2)假设今天是星期日,编写一个程序,求123456 天后是星期几。【解】星期是7 天一个轮回,由于今天是星期日,所以123456 除以 7 的余数即为星期几。程序如下:#include <stdio.h> main() int n=123456; n=n%7; printf("n星期 "); switch(n) case 0: printf(" 天&
13、quot;); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 42 页 - - - - - - - - - break; case 1: printf(" 一"); break; case 2: printf(" 二"); break; case 3: printf(" 三"); break; case 4: printf(" 四"); break; case 5: printf("
14、; 五"); break; case 6: printf(" 六"); break; printf("nn"); (3)编写一个程序,输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月有多少天?闰年的条件是年号能被4 整除但不能被100 整除,或者能被 400 整除。【解】直接根据闰年的定义求解,如果是闰年,2月份为 29 天;否则为 28 天,其他月份相同。规定35 月为春季, 68 月为夏季, 911 月为秋季, 1、2和 12 月为冬季。本题程序如下:#include <stdio.h> main() 名
15、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 42 页 - - - - - - - - - int y,m,leap,season,days; printf(" 年份,月份:"); scanf("%d, %d",&y,&m); if (y%4=0 && y0!=0) | (y0=0) leap=1; else leap=0; if (m>=3 && m<=5) season
16、=1; else if (m>=6 && m<=8) season=2; else if (m>=9 && m<=11) season=3; else season=4; switch (m) case 1: case 3: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 42 页 - - - - - - - - - case 5: case 7: case 8: case 10: case 12:days=31;b
17、reak; case 4: case 6: case 9: case 11:days=30;break; case 2: if (leap=1) days=29; else days=28; printf("%d 年%s闰年 n",y,(leap=1 ? " 是" : " 不是 "); printf(" 该季度是 "); switch(season) case 1:printf(" 春季 n");break; case 2:printf(" 夏季 n");break; cas
18、e 3:printf(" 秋季 n");break; case 4:printf(" 冬季 n");break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 42 页 - - - - - - - - - printf(" 当月天数 :%dn",days); (4)报数游戏。 A、B、C、D、E、F、G、H 共 8 人站成一排,按图4.1 所示的方法从1开始报数。问谁先报到123456?A B C D E F
19、G H 12 3 4 5 6 7 8 1413121110 9 1516171819202122 282726252423 2930,图 4.1 游戏报数过程【解】从图4.1 中看到 1 到 14 是一个来回,再重复这一过程,所以只需对123456 除以14 的余数加以判断即可。程序如下:#include <stdio.h> main() int n=123456,i; i=n; printf("n报数到 %d的人是 ",n); switch(i) case 1: printf("A");break; 名师资料总结 - - -精品资料欢迎下载
20、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 42 页 - - - - - - - - - case 2:case 14: printf("B");break; case 3:case 13: printf("C");break; case 4:case 12: printf("D");break; case 5:case 11: printf("E");break; case 6:case 10: printf("F
21、");break; case 7:case 9: printf("G");break; case 8: printf("H");break; printf("n"); 程序的运行结果:报数到 123456 的人是 D (5)编写一个程序,求ax2+bx+c=0方程的根。【解】先计算d=b2-4ac,再根据d 是大于 0、等于 0 还是小于 0 分别求根。程序如下:#include <stdio.h> #include <math.h> int func(float a,float b,float c,
22、float *x1,float *x2) float d; d=b*b-4*a*c; if (d>0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 42 页 - - - - - - - - - *x1=(-b+sqrt(d)/(2*a); *x2=(-b-sqrt(d)/(2*a); return 2; else if (d=0) *x1=(-b)/(2*a); return 1; else return 0; main() float a,b,c,x1,x2
23、,n; printf(" 输入 a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); n=func(a,b,c,&x1,&x2); if (n=2) printf(" 两个根 :n"); printf("tx1=%fn",x1); printf("tx2=%fn",x2); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1
24、2 页,共 42 页 - - - - - - - - - else if ( n=1) printf(" 一个根 :n"); printf("tx=%fn",x1); else printf(" 没有根 n"); 【第六章循环】练习题答案 (2011-05-07 09:25:23)转载标签:杂谈 分类:C语言教学1. 单项选择题(1) 【答】 !e 等价于 !(e!=0),即 e=0。本题答案为A。(2) 【答】 D (3) 【答】 D (4) 【答】 A (5) 【答】 C (6) 【答】 A (7) 【答】 A (8) 【答】 B
25、 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 42 页 - - - - - - - - - (9) 【答】 C 2. 填空题(1) 【答】 s=7 (2) 【答】执行第1 次循环时, i+返回 1,i=2,s=3+1=4,执行 else 部分, i=3;执行第2 次循环时, i+返回 3,i=4,s=4+3=7,执行 if 部分;执行第 3 次循环时,i+返回 4,i=5,s=7+4=11,执行 else 部分, i=6;执行第 4 次循环时, i+返回 6,i=7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言参考答案 2022 语言 参考答案
限制150内