二级C语言课本课后习题参考答案
第一章 程序设计基本概念
************************************************** (1) exe
(2) C,obj , exe (3) 顺序,选择,循环
***************End of Chapter 1******************* 第二章 C程序设计的初步知识
************************************************** 一、选择题
(1) B (2) D (3) B (4) A (5) C (6) A (7) B (8) B (9) A (10) C (11)B (12)B (13)A 二、填空题 (14)11,12 (15) 4.2,4.2
(16) { ,} 说明,执行 (17) 关键字,用户标识符 (18) int ,float ,double (19) float a1=1,a2=1 ; (20) 存储单元 (21) 3.5
(22) a*b/c a/c*b a*(b/c) (23) 10赋给变量s (24) 位,0或1
(25) 8 ,255 ,11111111,0,00000000 (26) 32767 ,-32768 ,10000000 00000000 (27)十,八,十六 三、上机改错题
—————————————————————————————————————— (28) 请指出以下C程序的错误所在 #include stdio.h ;
main( ); / * main function * /
float r, s; /* /*r is radius*/,/*s is area of circular*/*/ r = 5.0 ;
s=3.14159 * r * r ; printf(\ ※正确应为:
#include 或 #include\main( ) /* main function */ {
float r,s; /*r is radius, s is area of circular*/ r = 5.0 ;
s = 3.14159 * r * r ;
printf(\}
—————————————————————————————————————— (29) 请指出以下C程序的错误所在 #include stdio.h main /* main function */ {
float a,b,c,v; /*a,b,c are sides, v is volume of cube*/ a = 2.0 ; b = 3.0 ; c = 4.0 v = a * b * c; printf(\}
※正确应为: #include\main( ) /* main function */ {
float a,b,c,v; /*a,b,c are sides, v is volume of cube*/ a = 2.0 ; b = 3.0 ; c = 4.0; v = a * b * c; printf(\}
***************End of Chapter 2******************* 第三章 顺序结构
************************************************** 一、选择题
(1) C (2) C (3) D (4) C (5) D (6) B (7) C (8) D (9) A (10)B (11)C (12)D (13)D (14)A (15)C
(16)C (17)C (18)均不对,应为scanf( “o”,&c) (18) C (20) B 二、填空题
(21) ① -200,2500 ② i=-200, j=2500 ③ i = -200 , j = 2500 (22) 12 ,0 ,0 (23) 语句块,{ ;} (24) ;
(25) 100<空格>25.81<空格>1.89234 /*可用一个或几个空格作为输入时的间隔符*/ 10025.811.89234 /*Tab(制表符)也可以作为输入时的间隔符*/ 10025.811.89234 /*CR(回车符)也可以作为输入时的间隔符*/
(26) x = 127, x =ццц127, x=ццц177, x=цццц7f, x=ццц127。 (27) x = 127, x =127ццц, x=177ццц, x=7fцццц, x=127ццц。 (28) a=513.789215, a=цц513.79, a=цц513.78921500, a=цц513.78921500 三、上机改错题
—————————————————————————————————————— 3.30 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。 ※程序如下※
main( ) {
int hour,minute; hour=560/60; minute=560`;
printf(\}
—————————————————————————————————————— 3.31 编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。 ※程序如下※ #include main( ) {
int num1,num2,i,j; /* 定义变量 i-商,j-余数 */ printf(\ scanf(\ i=num1/num2; j=num1%num2;
printf(\商=%d\\n 余数=%d\ }
——————————————————————————————————————
3.32 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。 ※程序如下※ main( ) {
double a,b,c,average=0; printf(\ scanf(\ average=(a+b+c)/3; average=average*10; average=average+0.5; average=(int)average; average=average/10; printf(\}
——————————————————————————————————————
3.33 编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中的值给a。 ※程序如下※ main( ) {
int a,b,c,t=0;
printf(\
scanf(\ t=c;c=b;b=a;a=t;
printf(\}
***************End of Chapter 3******************* 第四章 选择结构
************************************************** 一、选择题
(1) A (2) A (3) A (4) D (5) C (6) A (7) B (8) 均错 (9)D (10)A 二、填空题 (11) 非零,零
(12) <或<=、>或>=、==、!= (13) 逻辑非、逻辑与、逻辑或
(14) !、<或<=、>或>=、==、!=、&&、|| (15) !
(16) a= =b || a 4 或 x > 4 || x< - 4 (17) 1
(18) x>0 ? 0 : 1 , 1 (19) a=3 , b=2 , c=2 (20) * # 三、编程题
—————————————————————————————————————— 4.21 当a>0时,请将以下语句改写成switch语句。 if( a<30 ) m=1; else if( a<40 ) m=2; else if( a<50 ) m=3; else if( a<60 ) m=4; else m=5; ※程序如下※ main() { int a;
printf(\scanf(\switch(a/10) { case 0: case 1:
case 2: printf(\case 3: printf(\ case 4: printf(\case 5: printf(\default: printf(\
} }
——————————————————————————————————————
4.22 编写程序,输入一位学生的生日(年:y0、月:m0、日:d0);并输入当前的日期(年:y1、月:m1、日:d1);输出该生的实足年龄。 ※程序如下※ main( ) {
int y0,y1,m0,m1,d0,d1,age=0;
printf(\our Birthday(yyyy-mm-dd):\\n\ scanf(\ printf(\ scanf(\ if(d1BR> if(m1BR> age=y1-y0; printf(\ }
—————————————————————————————————————— 4.23 编写程序,输入一个整数,打印出它是奇数还是偶数。 ※程序如下※ main( ) { int i;
printf(\ scanf(\ if(i%2==0) /*条件判断*/ printf(\ else
printf(\}
—————————————————————————————————————— 4.24 编写程序,输入a、b、c三个数,打印出最大者。 ※程序如下※ main( ) {
int a,b,c,max = 0;
printf(\ scanf(\ max = a;
if(maxBR max=\}
—————————————————————————————————————— 4.25 有一函数:
编写一程序,要求输入x的值,输出y的值。分别 (1)不嵌套的if语句 (2)嵌套的if语句