全国计算机等级考试二级教程c语言程序设计课后习题详细答案

上传人:大米 文档编号:563919163 上传时间:2023-10-06 格式:DOC 页数:43 大小:167KB
返回 下载 相关 举报
全国计算机等级考试二级教程c语言程序设计课后习题详细答案_第1页
第1页 / 共43页
全国计算机等级考试二级教程c语言程序设计课后习题详细答案_第2页
第2页 / 共43页
全国计算机等级考试二级教程c语言程序设计课后习题详细答案_第3页
第3页 / 共43页
全国计算机等级考试二级教程c语言程序设计课后习题详细答案_第4页
第4页 / 共43页
全国计算机等级考试二级教程c语言程序设计课后习题详细答案_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《全国计算机等级考试二级教程c语言程序设计课后习题详细答案》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级教程c语言程序设计课后习题详细答案(43页珍藏版)》请在金锄头文库上搜索。

1、全国计算机等级考试二级教程C语言程序设计习题分析与详细解答第一章 程序设计基本概念习题分析与解答1.1 【参考答案】 EXE1.2 【参考答案】 1 .C 2 .OBJ 3 .EXE1.3 【参考答案】 1 顺序结构 2 选择结构 3 循环结构第二章 C程序设计的初步知识习题分析与解答一选择题2.1 【参考答案】 B)2.2 【参考答案】 D)2.3 【参考答案】 B)2.4 【参考答案】 A)2.5 【参考答案】 C)2.6 【参考答案】 A)2.7 【参考答案】 B)2.8 【参考答案】 B)2.9 【参考答案】 D)2.10 【参考答案】 C)2.11 【参考答案】 B)2.12 【参考

2、答案】 B)2.13 【参考答案】 A)二填空题2.14 【参考答案】 1 11 2 122.15 【参考答案】 1 4.2 2 4.22.16 【参考答案】 1 2 3 定义 4 执行2.17 【参考答案】 1 关键字 2 用户标识符2.18 【参考答案】 1 int 2 float 3 double2.19 【参考答案】 float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】 存储单元2.21 【参考答案】 3.52.22 【参考答案】 1 a*b/c 2 a/c*b 3 b/c*a2.23 【参考答案】 把10赋

3、给变量s2.24 【参考答案】 1 位 2 1位二进制数据(0或1)2.25【参考答案】1 8 2127 301111111 4-128 5 100000002.26【参考答案】1 32767 2 -32768 3 10000000000000002.27 【参考答案】 1 十 2 八 3 十六三上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)第2行的错误:(1) main()是主函数的起始行,不是语句,因此最后不应当有分号(;)(2) 在同一行上的/ * main function * / 显然是注释;C语言规定:注释由/

4、*开头,由*/结束,但在*号和/之间不得插入任何空格,而在此处“/ *”和“* /”之间存在空格,因此,/ * main function * /的写法是错误的,而应写成:/* main function */第3行的错误:(1) 在主函数的起始行main()的后面是函数体,函数体由左花括号(开始但在函数体的第一行:float的前面缺少了左花括号(2) 在同一行上的/* /*r is radius*/, /* s is area of circular*/ */ 显然是注释;C语言规定:注释由/*开头,由*/结束,并且开头的/*将去找最近的*/去配对,因此在/* /*r is radius*/

5、中,第一个/*与radius后的那个*/配上了对,结果紧跟在后面的那个逗号(,)落在了注释的外面,而构成了一个多余符号,为此,在编译时将报告“语法错”/* s is area of circular*/ */中第一个*/就结束了注释,第一个*/就成了多余的了第6行的错误:(1) printf(%f n,s)应当是一条输出语句,但在最后缺少了一个分号(2) printf(%f n,s);是程序的最后一条语句,程序应当结束;但缺少了程序体结束所需的右花括号();此右花括号可以放在printf(%f n,s);的后面,也可以放在printf(%f n,s);的下一行上2.27 【分析与解答】第2行的

6、错误:在main的后面缺少一对圆括号第4行的错误:在c=4.0的后面缺少分号第6行的错误:在printf(%f n,v)的后面缺少分号第三章 顺序结构习题分析与解答一选择题 (单选题)3.1 【参考答案】 C)3.2 【参考答案】 C)3.3 【参考答案】 D)3.4 【参考答案】 C)3.5 【参考答案】 D)3.6 【参考答案】 B)3.7 【参考答案】 C)3.8 【参考答案】 D)3.9 【参考答案】 A)3.10 【参考答案】 B)3.11 【参考答案】 C)3.12 【参考答案】 D)3.13 【参考答案】 D)3.14 【参考答案】 A)3.15 【参考答案】 C)3.16 【参

7、考答案】 C)3.17 【参考答案】 C)3.18 【参考答案】 D)把D的答案修改为:scanf(“%8f”,&c);3.19 【参考答案】 C)3.20 【参考答案】 B)二填空题3.21 【参考答案】(1)-200,2500(2)i=-200,j=2500(3) i=-200j=25003.22 【参考答案】 1 12 2 0 3 03.23 【参考答案】 1 一条语句 2 分号(或;)3.24 【参考答案】 分号(;)3.25 【参考答案】1:100 25.81 1.892342: 100 25.81 1.89234 3:100 25.81 1.892343.26 【参考答案】 x=1

8、27, x= 127, x= 177,x= 7f, x= 1273.27 【参考答案】 x=127, x=127 , x=$127 ,x=$ 000127, x=%06d3.28 【参考答案】 a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500三编程题和改错题3.29 【分析与解答】(1) 主函数名main后应有一对圆括号(2) 第三行的printf语句用以提示输入,但是原样输出的字符串没有用双引号括起来;另外,从输入的形式看,输入的数据紧跟在提示之后,因此,printf格式串中最后不应该有换行符n(3)因为输入项abc从定义和计算结果

9、来看都是double类型,因此,第四行scanf语句格式串中的格式说明不应当用%d而应当用%lf;且每一个变量之前应该加地址运算符&(4)第七行的printf语句中应当把%d都改成%lf或%f;按输出要求在格式串中应添加相应的原样输出的字符;因为下一个printf的输出从新的一行开始,因此在本输出语句的格式串的最后应当加换行符n(5) 第八行的printf语句中应当把格式串整理合并放在输出项的前面,输出项放在后面,%d都改成%lf或%f;中间的n删去(6)请同学们自己写出修改后的程序,并上机调试3.30 【分析与解答】(1) 分析:可用算术式56060把分钟换算成小时和分钟,商数就是小时数,余

10、数就是分钟数(2) 确定变量的名字和定义变量的类型:在程序中把小时数放在变量h中,把分钟数放在变量m中这两个变量的类型可以是整型(本题中采用整型),也可以是实型(3) 确定所用算法:求56060的商数,在C语言中可以用整除的算法,语句是h=560/60;求余数可用求余运算符 %:560%60,其值放入变量m中的语句是:m=560%60;(4) 设计输出格式若输出的形式定为:小时:分钟,则按此形式设计输出语句(5) 把以上内容放在主函数的一对花括号中(6) 编写程序如下:main() int h, m;h=560/60;m=560%60;printf(The result: %3d : %3dn

11、, h,m);运行结果是:The result: 9 : 203.31 【分析与解答】(1) 确定变量的名字和定义变量的类型若用a存放1500,用b存放350;用q存放商数,用r存放余数,所有变量应定义成int类型(2) 设计输入语句从终端输入1500和350;在输入语句之前,应当设计一个输出语句,用以提示输入(3) 可用整除求商数,结果放在变量q中可用求余运算符%求两数之余数,结果放在变量r中(4) 设计输出语句输出abqr(5) 把以上内容放在主函数的一对花括号中本题的程序与3.30相似,请大家参考上题并根据本题的解释自己编程,并上机调试3.32 【分析与解答】(1) 定义4个双精度变量a

12、bc和ave,变量abc分别存放读入的3个双精度数,ave存放它们的平均值(2) 设计输入语句,以及在此之前用于提示输入的(printf)语句(3) 设计求平均值的算法,把所求得的平均值放入变量ave中(4) 设计把变量ave中的数,从小数点后第二位数进行四舍五入的算法现举例说明:若ave中的数为123.4644,为了保留此值小数点后一位,可用表达式:(int)(123.4644*10)/10.0;依次推算,为了保留此值小数点后二位,可用表达式:(int)(123.4644*100)/100.0;其他依此类推(5) 若要求对小数点后第二位数进行四舍五入,则可对原数加0.05后再进行以上运算如要

13、求保留123.4644小数点后一位且对第二位数进行四舍五入,可用表达式:(int)(123.467+0.05)*10)/10.0注意:分母一定要用实数10.0而不能用整数10,否则就变成整除了;若要求保留123.4644小数点后两位且对第三位数进行四舍五入,可用表达式:(int)(123.467+0.005)*100)/100.0;其他依此类推(6) 设计输出语句输出abc和ave(7) 把以上内容放在主函数的一对花括号中(8) 编写程序如下:main() double a,b,c,ave;printf(Enter a ,b ,c : );scanf(%lf%lf%lf, &a, &b, &c );ave=(a+b+c)/3;printf(ave=%fn, ave); /*用以比较四舍五入前后的数据*/ave=(int)(ave+0.05)*10)/10.0;/*上句也可写成ave=(int)(ave*10+0.5)/10.0;*/printf(a=%f, b=%f, c=%f, ave=%fn, a,b,c,ave);3.33 【分析与解答】(1) 关于对变量中的数进行交换的算法请参考3.7题中的解释和教程中有关的例题

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

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号