C语言课后题答案

  • 格式:doc
  • 大小:84.50 KB
  • 文档页数:31

读书破万卷 下笔如有神

C语言

c语言程序设计教程(第2版)课后题及模拟题参考答案

习题1 3

1-1 填空题 3

1-2 思考题 3

1-3 编程题 3

习题2 4

2-1 单选题 4

2-2 思考题 4

习题3 5

3-1 选择题 5

3-2 填空题 5

3-3 编程题 5

习题4 7

4-1单选题 7

4-2填空题 7

4-3 编程题 7

习题5 10

5-1单选题 10

5-2填空题 10

5-3 编程题 10

习题6 13

6-1单选题 13

6-2填空题 13

6-3 编程题 13

习题7 15

7-1单选题 15

7-2填空题 15

7-3 编程题 15

习题8 16 读书破万卷 下笔如有神

8-1单选题 16

8-2填空题 16

8-3 编程题 16

习题9 18

9-1单选题 18

9-2填空题 18

9-3 编程题 18

习题10 22

10-1单选题 22

10-2填空题 22

10-3 编程题 22

习题11 24

11-1单选题 24

11-2填空题 24

习题12 25

12-1单选题 25

12-2 填空题 25

实验篇 26

实验1 熟悉Visual C++6.0可视化集成开发环境 26

实验2 顺序结构程序设计 26

实验3 选择结构程序设计 26

实验4 循环结构程序设计 26

实验5 函数 28

实验6 数组 32

实验7 指针 33

实验8 结构体和共用体 35

实验9 文件 36

实验10 综合编程 36

模拟试卷(一)参考答案 37

模拟试卷(二)参考答案 38

习题1

1-1 填空题

1. 函数

2. 主函数main(),主函数main()

3. 主函数main()

4. 函数首部,函数体

5. {, }

6. /*, */

7. 顺序结构,选择结构,循环结构

8. .c, .obj, .exe

1-2 思考题

1. 结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 读书破万卷 下笔如有神

2. 算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法

3. 语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。

1-3 编程题

1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。

#include "stdio.h"

main()

{ float a, b, h, s;

a=10; b=20;

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

printf("s=%f\n" , s );

}

2. 编写程序显示如图1.11所示信息。

图1.11 显示信息

#include "stdio.h"

main()

{ printf("******************************\n");

printf("* hello world *\n");

printf("******************************\n"); }

习题2

2-1 单选题

1~5 DBDCA 6~10 DCABA 11~12 CA

2-2 思考题

1.2.000000

2.1,0.5

3.9,2

4.6

5.100,d

6.(1)20 (2)0 (3)60

7. (1)10,6,4 (2)6,9,15 (3)3,60,83

8. 55

习题3

3-1 选择题

1-5 BDABC 6-10 ADCAC 11-12 BB

3-2 填空题

1. 3

2. 0261

3. 0x10 读书破万卷 下笔如有神

4. 2, 1 互换a,b的值

5. 6.6

6. –003

8. 7

7. 5.0,4,c=3

8. i=10,j=20

9. (1) 65

(2) 65,A

(3) 56.123400,123.456001

(4) 3.141600

(5) 8765.432

(6) 5.864000e+002

(7) 3.141600e+000

(8) 3.1416

(9) 8765

(10) 3.1416,8765.43

10. a=2 b=5x=8.8 y=76.34c1=65 c2=97

3-3 编程题

1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式输出。

x y

十进制数 10 8

八进制数 12 10

十六进制数 a 8

#include "stdio.h"

main()

{ int x, y ;

scanf("%d%d" , &x, &y);

printf(" x y\n");

printf("%4d%4d\n", x, y );

printf("%4o%4o\n", x, y );

printf("%4x%4x\n", x, y );

}

2. 编写一个程序,输入一个大写英文字符('B'~'Y'),输出它的前导字符、该字符本身及其后续字符。

#include "stdio.h"

main()

{ char c;

scanf(“%c”, &c );

printf(“%c, %c, %c\n”, c-1, c, c+1 );

}

3. 编写一个程序,输入一个3位正整数,要求反向输出对应的整数,如输入123,则输出321。编写程序并给出相应的程序流程图。

#include "stdio.h"

main() 读书破万卷 下笔如有神

{ int a, a1, a2, a3;

scanf(“%d”, &a );

a1=a%10 ; a=a/10;

a2=a%10; a=a/10;

a3=a%10;

printf(“%d%d%d\n”, a1, a2, a3);

}

4. 编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。

#include "stdio.h"

main()

{ double a, b, c, ave;

scanf(“%lf%lf%lf”, &a, &b, &c );

ave=(a+b+c)/3 ;

printf(“%8.2f\n”, ave);

}

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

#include "stdio.h"

main()

{ int a, b, c, t;

scanf(“%d%d%d”, &a, &b, &c );

t=a; a=c; c=b ; b=t ;

printf(“a=%d, b=%d, c=%d\n”, a, b, c );

}

习题4

4-1单选题

1~5 AADAD 6~10 ACB BB 11~12BA

4-2填空题

1. 1

2. (1) a>0 || b>0 (2) x>0 && x<=10

(3) a==1.5 && b==1.5 && c==1.5 (4)p

3.(1)0 (2)1 (3)1 (4)0 (5)1

4. (max=a>b?a:b)>c?max:c

5.-4

6.1

7.5,0,3

8. (1) (a==0) (2) (b==0) (3) (disc<0)

4-3 编程题

1.输入3个实型数值a、b、c,如果能用它们作为三角形的3条边形成一个三角形,则输出三角形的面积,并画出实现该算法的N-S流程图并编程实现。

#include "stdio.h" 读书破万卷 下笔如有神

#include “math.h”

main()

{ float a,b,c,s,area;

scanf(“%f,%f,%f”,&a,&b,&c);

if (a+b>c && a+c>b && b+c>a)

{ s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“%f”,area);

}

}

2.输入整数x、y,若x2+y2>1000,则输出x2+y2百位以上的数字,否则输出两数之和。

#include "stdio.h"

main()

{ int x,y;

scanf(“%d,%d”,&x,&y);

if (x*x+y*y>1000)

printf(“%d\n”,(x*x+y*y)/100);

else

printf(“%d\n”,x+y);

}

3. 输入一个整数,判断它能否同时被3、5、7整除,并输出“yes”或“no”字样。

#include "stdio.h"

main()

{ int x,

scanf(“%d”,&x);

if(x%3==0 && x%5==0 && x%7==0)

printf(“yes\n”);

else

printf(“no\n”);

}

4.对任意输入的x,用下式计算并输出y的值。

#include "stdio.h"

#include “math.h”

main()

{ float x,y;

scanf(“%f”,&x);

if(x<-2) y=x*x-sin(x);

else if (x<=2) y=pow(2,x)+1;

else y=sqrt(x*x+x+1);

printf(“%f\n”,y);

}