C语言程序设计习题参考答案!(第二版 杜友福) 联系客服

发布时间 : 星期日 文章C语言程序设计习题参考答案!(第二版 杜友福)更新完毕开始阅读34e34c727fd5360cba1adb43

C语言程序设计习题答案

习题一 C语言程序设计概述

一、名词解释

(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题

1. 设计程序时应遵循哪些基本原则?P4

答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点?

答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。

3. 算法的表示形式有哪几种?

答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S流程图,盒图)。 4. 有哪三种基本结构?

答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S流程图最大的区别是什么?

答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。

三、用传统流程图、N-S图分别表示求解以下问题的算法。

1. 有3个数a,b,c,要求按由大到小的顺序把它们输出。 输入三个数给a,b,c 输入一个数给x 如果a

将a与b的值互换 输入下一个数给x 如果a

Yes No 将a与c的值互换

max = x 如果b

yes no 如果min>x Yes No 将b与c的值互换 min = x 输出a,b,c的值

n = n + 1 2. 依次将10个数输入,求出其中最大的数

输出max,min的值 和最小的数并输出。

3. 求1+2+3+?+100的值。

s=0; i=1 s=1; i=1

当i小于等于100时 当i小于等于10时

s=s+i; i = i+1; s=s*i; i = i+1;

输出s的值 4. 求1×2×3×?×10的值。

1

输出s的值

5. 求下列分段函数的值。

3X (X<1) 输入一个数给x

4X-1 (X=1) X<=1 Y= 5(X-1)+6 (1

Yes no

6-3X (X≥5) X<1 x<5

Yes no yes no

Y=3x y=4x-1 y=5x+1 y=6-3x

输出s的值 6. 求100~200之间的所有素数。

i =100 当i<=200时 n=2; flag=1; 当n< i时 i能否被n整除? yes no flag=0 n = n+1 flag=1? yes no 输出i的值 i = i+1 22

7. 求一元二次方程ax+bx+c=0的根。分别考虑d=b-4ac大于0、等于0和小于0三种情况。

四、注释下面C程序的各个组成部分。

main() /*主函数 */ { /*程序开始 */

int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */

a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf(\/*在屏幕上打印出变量a 的值 */ } /*程序结束 */

习题二 数据类型、运算符与表达式

一、选择题

1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD

2

二、填空题

1.字母 L 或字母 l 2. 字符或%c 、 整数或%d

3.在程序运行过程中,其值可以在一定的范围内变化的量。 4. ‘\\0’

5. 小数形式 、 指数形式 6. 关键字 、 预定义标识符 、 用户标识符 7. 字母 、 数字 、 下划线 、 数字 8. 18

9. 2 、 1 、 30 10. 双精度实数或double

11. 赋值 、 逗号 、20、 20 、 20、 4 12. 4

习题三 顺序程序设计

一、选择题

1~10:BCCBC CCDCC

二、填空题

1. printf( ) 、 scanf( ) 2. l (注:long的第1个字符) 3. 域宽,即在格式字符前加一个整数,如] 4. ‘\\0’ 5. e 、 g 6. 6 7. s 、 c 8. *

9. - 、 + 10. i

三、编程题

1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进 行输出。例如输入的时间为4258秒,则输出结果为:1小时10分58秒。 答:程序参见文件Cprogram\\xt3_3_01.c

#include \main() {int x,h,m,s; scanf(\

h=x/3600; m=x600/60; s=x`; printf(\}

2. 编写程序,读入三个整数给变量a、b、c,然后交换它们中的数,把a中原来的值给b,

3

把b中原来的值给c,把c中原来的值给a。 答:程序参见文件Cprogram\\xt3_3_02.c

#include \main() {int a,b,c,t;

printf(\

scanf(\

printf(\ t=a;a=c;c=b;b=t;

printf(\}

习题四 选择结构程序设计

一、填空题

1. 1 、 0 2. ! % + <= != && || = 3. x==0 4. 0,2 5. 20 、 0 、 0

二、选择题

1~7:DDCAD DC 三、程序阅读题

1. 595959 2. 0.500000 3. 1 4. 2 5. 6

6. a=2,b=1 7. pass warn 8. 1 四、编程题

1. 设a为整型变量且其值大于零,请将以下if语句改写成switch语句。

if ( a<60) m=1; else if(a<70) m=2;

else if(a<80) m=3;

else if(a<90) m=4; else m=5; 答:程序参见文件Cprogram\\xt4_4_1.c 或Cprogram\\xt4_4_1b.c

#include \main() {int a,m;

scanf(\ switch(a/10)

{case 0:case 1:case 2:case 3: case 4:case 5:m=1;break;

4