二级C语言课本课后习题参考答案Word文档下载推荐.docx
《二级C语言课本课后习题参考答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级C语言课本课后习题参考答案Word文档下载推荐.docx(65页珍藏版)》请在冰点文库上搜索。
![二级C语言课本课后习题参考答案Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/ea5848d9-d5ec-408a-8b9c-420124e66f20/ea5848d9-d5ec-408a-8b9c-420124e66f201.gif)
stdio.h"
main()/*mainfunction*/
{
floatr,s;
/*risradius,sisareaofcircular*/
s=3.14159*r*r;
}
(29)请指出以下C程序的错误所在
#includestdio.h
main/*mainfunction*/
floata,b,c,v;
/*a,b,caresides,visvolumeofcube*/
a=2.0;
b=3.0;
c=4.0
v=a*b*c;
v);
}
#include"
c=4.0;
***************EndofChapter2*******************
第三章顺序结构
(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(“%6f”,&
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分钟换算成用小时和分钟表示,然后进行输出。
※程序如下※
#include<
stdio.h>
main()
{
inthour,minute;
hour=560/60;
minute=560%60;
hour=%d,minute=%d"
hour,minute);
3.31编写程序,输入两个整数:
1500和350,求出它们的商数和余数并进行输出。
intnum1,num2,i,j;
/*定义变量i-商,j-余数*/
inputnum1andnum2:
\n"
);
scanf("
%d%d"
&
num1,&
num2);
i=num1/num2;
j=num1%num2;
商=%d\n余数=%d"
i,j);
3.32编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
doublea,b,c,average=0;
inputa,b,c(double):
%lf%lf%lf"
a,&
b,&
c);
average=(a+b+c)/3;
average=average*10;
average=average+0.5;
average=(int)average;
average=average/10;
average=%lf"
average);
3.33编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中的值给a。
inta,b,c,t=0;
inputabc:
%d%d%d"
t=c;
c=b;
b=a;
a=t;
a=%db=%dc=%d"
a,b,c);
***************EndofChapter3*******************
第四章选择结构
(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||a4或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;
elseif(a<
40)m=2;
50)m=3;
60)m=4;
elsem=5;
main()
inta;
Entera:
%d"
a);
switch(a/10)
case0:
case1:
case2:
printf("
m=1"
break;
case3:
m=2"
case4:
m=3"
case5:
m=4"
default:
m=5"
4.22编写程序,输入一位学生的生日(年:
y0、月:
m0、日:
d0);
并输入当前的日期(年:
y1、月:
m1、日:
d1);
输出该生的实足年龄。
inty0,y1,m0,m1,d0,d1,age=0;
YourBirthday(yyyy-mm-dd):
%d-%d-%d"
y0,&
m0,&
d0);
CurrentDate(yyyy-mm-dd):
y1,&
m1,&
d1);
if(d1BR>
if(m1BR>
age=y1-y0;
\nAge=%d"
age);
4.23编写程序,输入一个整数,打印出它是奇数还是偶数。
inti;
inputainteger:
i);
if(i%2==0)/*条件判断*/
%disaeven"
i);
else
%disaodd"
4.24编写程序,输入a、b、c三个数,打印出最大者。
inta,b,c,max=0;
input(int)abandc:
max=a;
if(maxBRmax="
b;
"
>
if(maxBRmax="
c;
max=%d"
max);
4.25有一函数:
编写一程序,要求输入x的值,输出y的值。
分别
(1)不嵌套的if语句
(2)嵌套的if语句
(3)if_else语句(4)switch语句
源程序一:
(1)不嵌套的if语句
floatx;
inputx:
%f"
x);
if(x>
-5&
x<
0)
y=%f"
x);
if(x==0)
x-1);
0&
10)
x+1);
if(x<
=-5||x>
=10)
inputerror"
源程序二:
(2)嵌套的if语句
if(x==0)printf("
0)printf("
源程序三:
(3)if_else语句
elseif(x==0)
源程序四:
(4)switch语句
intflag;
Enterx:
-5&
0)flag=-1;
if(x==0)flag=0;
0&
10)flag=1;
switch(flag)
case-1:
break;
***************EndofChapter4*******************
第五章循环结构
(1)D
(2)C(3)B(4)C(5)C
(6)B(7)D(8)A(9)D(10)D
(11)5,4,6
(12)有错
(13)-1
(14)11
(15)d=1.0,k++,k<
=n
(16)x>
=0,x
5.17编写程序,求1-3+5-7+...-99+101的值。
inti,sum=0,s=1;
for(i=1;
i<
=101;
i+=2)
sum=sum+i*s;
s=-s;
/*控制符号交替变换*/
sum=%d"
sum);
5.18编写程序,求e的值,e=1+1/1!
+1/2!
+1/3!
+1/4!
+...+1/n!
(1)用for循环,计算前50项
(2)用while循环,要求直至最后一项的值小于1e-4。
(1)用for循环实现
inti,n;
doublesum=1,t=1;
inputn:
n);
i<
=n;
i++)
t=t*i;
/*实现阶乘*/
sum=sum+1/t;
e=%lf"
(2)用while循环实现
doubelsum=1,t=1;
while(fabs(1.0/t)>
1e-4)/*fabs求浮点型数据的绝对值*/
i++;
5.19编写程序,输出从公元1000年至2000年所有闰年的年号每输出3个年号换一行。
判断公元年是否闰年的条件是:
(1)公元年数如能被4整除,而不能被100整除,则是闰年。
(2)公元年数能被400整除也是闰年。
inti,j=0;
for(i=1000;
=2000;
if((i%4==0)&
(i%100!
=0)||(i%400==0))/*判断是否是闰年的条件*/
d"
j++;
if(j%3==0)/*控制换行*/
5.20编写程序,打印以下图形:
*
***
*****
*******
math.h>
inti,j;
=7;
i++)/*控制行数*/
for(j=1;
j<
j++)/*控制星数*/
if((j<
=abs(4-i))||(j>
7-abs(4-i)))
"
*"
);
}***************EndofChapter5*******************
第六章字符型数据
(1)B
(2)D(3)A(4)A(5)B
(6)D(7)D(8)B(9)A(10)A
(11)B(c)
(12)-1
(13)1
(14)ctype.h
(15)0
(16)10A20B30C40D
(17)7.29101.298↙AB↙(7.29↙101.298↙AB↙)
(18)A7.29B101.298↙
(19)AЦЦЦ↙BЦЦЦ↙C↙
6.19请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出三队.
inti=0;
charch;
while((ch=getchar())!
='
\n'
)
%4c%4d"
ch,ch);
if(i%3==0)
6.20请编写程序,输入一行数字字符(用EOF结束),每个数字字符的前后都有空格。
请编程,把这一行中的数字转换成一个整数。
例如,若输入:
2483(代表Enter键)
则输出整数:
2483
while((ch=getchar())!
=EOF)
if(ch=='
'
)
continue;
%c"
ch);
6.21请编写程序统计输入的行数,输入用EOF结束输入。
)i++;
6.22请编写程序统计输入的一行中小写字母的个数。
if((ch>
a'
)&
(ch<
z'
))
6.23请编写输出以下图案的程序,图案的行数由输入的值确定。
A
BBB
CCCCC
DDDDDDD
EEEEEEEEEEE
inti,j,k,n;
Entern(integer):
i++)
for(j=n;
j>
i;
j--)
for(k=1;
k<
=2*i-1;
k++)
64+i);
***************EndofChapter6*******************
第七章函数
(1)C
(2)C(3)B(4)C(5)A
(6)D(7)A
(8)12
(9)9.000000
(10)4
(11)n=1,s
(12)z=1;
=y,z=z*x
(13)1,s*i,0,f(k)
三、程序