《C语言程序设计教程》课后题答案

《C语言程序设计教程》课后题答案

一选择题

1.A 2.B 3.C 4.D 5.B 6.C 二.填空题 1.程序 2.算法

3.main或主 4.编译 5.编译 6. .obj 7.库函数

8.文本或ASCII码 三、编程题

1.参考代码如下: #include void main() {

printf(\金\\n木\\n水\\n火\\n土\\n\}

2. 参考代码如下: #include void main() { int a,b;

scanf(\

printf(\ printf(\ printf(\ printf(\}

3. 参考代码如下: #include void main() {

float a,b,h,s;

scanf(\ s=(a+b)*h/2;

printf(\}

第一章

1 / 47

第二章

一选择题 答案及分析: 1.B,略

2.A,-8在内存中是以补码(设两个字节)形式存储的 3.A,C语言有32个关键字(参见课本第18页),且C语言标识符是区分大小写字母的 4.A,略

5.D,八进制数据中不能出现数码8

6.B,字符常量应该用单引号括起来,答案D超出了ASCII取值范围(ASCII的取值范围为[0,255])

7.C,该字符串中转义字符有三个:\\\\、 \\22和 \\n,普通字符有三个:a、 ,和0,所以字符串长度为6 8.C,略

9.D,C语言没有read函数和%D格式符号,且scanf函数第二个形参为地址列表

10.B,根据题意,scanf函数输入数据时分隔符号不应该是逗号,应该是空格或回车符,且输入数据时分一行或几行均可

11.A,scanf函数中不允许出现%8.4,%6.2和%8这样的格式符号

12.C,既要保证5位小数位,还得保证整数位不变,这样数据12345.67800用10列不能完全显示出来,按C语言规定,12345.67800原样输出

13.B,printf函数中格式符号%d,%o,%x表示对应的整型数据分别按十进制,八进制和十六进制输出

14.C,按C语言规定,scanf函数形参双引号中,如果包含非格式符号,在输入数据时要求原样输入 二.填空题 答案及分析:

1.int float double(略)

2.65,89 ,printf函数中如果格式符号是%d,则输出相应字符的ASCII十进制数值

3.a=98,b=765.000000,c=4321.000000,scanf函数中的格式符号-?O,表示将键盘输入的数据9876543210按2,3,4位分割,然后再分别赋给变量a,b,c

4.scanf(\类型的变量对应的格式符号是%lf 三、编程题

1. 参考代码如下: #include void main() {

int a=97;

printf(\ printf(\ printf(\ printf(\}

程序分析:通过printf函数中不同的格式符号,即%c(字符),%d(十进制),%o(八进制),%x

2 / 47

(十六进制)输出相应的值。 2. 参考代码如下: #include void main() {

int h,m,minute;

scanf(\ minute=h*60+m;

printf(\}

程序分析:输入形式为10:27,故scanf函数双引号中两个格式符号%d之间必须加入“:”。 3. 参考代码如下: #include void main() {

float r=6371000,s,v; s=4*3.1415926*r*r; v=3.1415926*4/3*r*r*r; printf(\}

程序分析:C语言中的π不代表3.1415926,可以用各种常量的形式体现出来。 4. 参考代码如下: #include void main() {

int m100,m50,m20,m10,m5,m1,m; scanf(\ m100=m/100;

m50=(m-m100*100)/50;

m20=(m-m100*100-m50*50)/20;

m10=(m-m100*100-m50*50-m20*20)/10;

m5=(m-m100*100-m50*50-m20*20-m10*10)/5; m1=m-m100*100-m50*50-m20*20-m10*10-m5*5;

printf(\元发工资,人名币各票面的张数为:\\n\ printf(\元的张数:%d\\n\ printf(\元的张数:%d\\n\ printf(\元的张数:%d\\n\ printf(\元的张数:%d\\n\ printf(\元的张数:%d\\n\ printf(\元的张数:%d\\n\}

程序分析:人民币的面值分别为100元,50元,20元,10元,5元和1元,工资4367元除以100后得到的商就为100元张数,余数再除以50,得到的商为50元的张数,余数再除20,……,以此类推就会得出人民币各面值相应的张数。

3 / 47

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4