《C语言程序设计教程(第二版)》习题答案 - 下载本文

《C语言程序设计教程(第二版)》习题答案 我想应该有用 2009-03-09 12:27

1 【C语言】《C语言程序设计教程(第二版)》习题答案

说 明

1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理 工大学出版社出版的,绿皮。

2 第1章 程序设计基础知识 一、单项选择题(第23页) 1-4.CBBC 5-8.DACA

二、填空题(第24页)

1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 7.有穷性 8.直到型循环 9.算法 10.可读性 11.模块化 12.对问题的分析和模块的划分 三、应用题(第24页) 2.源程序:

main()

{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ printf(\ for(i=1;i<=20;i++) for(j=1;j<=33;j++) for(k=1;k<=33;k++)

if (i+j+k*3==100&&i*5+j*3+k==100) printf(\ 执行结果:

cock hen chick 4 18 78 8 11 81 12 4 84

3.现计算斐波那契数列的前20项。 递推法 源程序:

main()

{long a,b;int i; a=b=1;

for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/ {printf(\ a=a+b;b=b+a;}} 递归法 源程序: main()

{int i;

for(i=0;i<=19;i++) printf(\ fib(int i)

{return(i<=1?1:fib(i-1)+fib(i-2));} 执行结果:

1 1 2 3 5 8 13 21 34 55

89 144 233 377 610 987 1597 2584 4181 6765 4.源程序:

#include \ main()

{double x,x0,deltax; x=1.5;

do {x0=pow(x+1,1./3); deltax=fabs(x0-x); x=x0;

}while(deltax>1e-12); printf(\ 执行结果:

1.3247179572

5.源程序略。(分子、分母均构成斐波那契数列) 结果是32.66026079864 6.源程序:

main()

{int a,b,c,m;

printf(\ scanf(\ if(a

printf(\ 执行结果:

Please input a,b and c:123 456 789 789 456 123 7.源程序:

main() {int a;

scanf(\

printf(a!==0?\ 执行结果: 42 Yes

3 第2章 C语言概述 一、单项选择题(第34页) 1-4.BDCB 5-8.AABC

二、填空题(第35页)

1.主 2.C编译系统 3.函数 函数 4.输入输出 5.头 6. .OBJ 7.库函数 8.文本

三、应用题(第36页)

5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是标识符。 8.源程序:

main() {int a,b,c;

scanf(\ c=a;a=b;b=c;

printf(\ 执行结果: 12 34 34 12

4 第3章 数据类型与运算规则 一、单项选择题(第75页)

1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.BBCCD 21-25.ADD(DA)D 26-27.AB 二、填空题(第77页)

1.补码 2.±(10^-308~10^308) 3.int(整数) 4.单目 自右相左 5.函数调用 6.数字,小写或大写字母 7.1 8.65,89 三、应用题(第78页) 1.10 9

2.执行结果:

11 0 0 12 1

5 第4章 顺序结构程序设计 一、单项选择题(第90页) 1-5.DCDAD 6-10.BACBB

二、填空题(第91页)

1.一 ;2. 5.169000 3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200 j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3

8.scanf(\这种算法不破坏b的值,也不用定义中间变量。) 三、编程题(第92页)

1.仿照教材第27页例2-1。 2.源程序:

main() {int h,m;

scanf(\ printf(\ 执行结果: 9:23 563

3.源程序:

main()

{int a[]={-10,0,15,34},i; for(i=0;i<=3;i++)

printf(\ 执行结果:

-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F 4.源程序:

main()

{double pi=3.14159265358979,r=5;

printf(\ 执行结果:

r=5 A=31.4159265359 S=49.3480220054 5.源程序:

#include \ main()

{double a,b,c;

scanf(\ if (a+b>c&&a+c>b&&b+c>a) {double s=(a+b+c)/2;

printf(\ else printf(\ 执行结果: 4 5 6

SS=9.9215674165 6.源程序:

main()

{int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56;

printf(\

7.源程序:

main()

{int a,b,c,m;

scanf(\ m=a;a=b;b=c;c=m;

printf(\ 执行结果: 5 6 7 6 7 5

8.源程序:

main() {int a,b,c;

scanf(\

printf(\ 执行结果:

6 7 9

average of 6,7 and 9 is 7.33 9.不能。修改后的源程序如下: main()

{int a,b,c,x,y;

scanf(\ x=a*b;y=x*c;

printf(\ printf(\

6 第5章 选择结构程序设计 一、单项选择题(第113页) 1-4.DCBB 5-8.DABD 二、填空题(第115页) 1.非0 0 2.k==0

3.if (abs(x)>4) printf(\

4.if((x>=1&&x<=10||x>=200&&x<=210)&&x&1)printf(\ 5.k=1 (原题最后一行漏了个d,如果认为原题正确,则输出k=%。) 6. 8! Right!11 7.$$$a=0 8.a=2,b=1 三、编程题(第116页) 1.有错。正确的程序如下:

main() {int a,b,c;

scanf(\

printf(\