c语言程序设计教程韩立毛徐秀芳书后练习题参考答案.docx
《c语言程序设计教程韩立毛徐秀芳书后练习题参考答案.docx》由会员分享,可在线阅读,更多相关《c语言程序设计教程韩立毛徐秀芳书后练习题参考答案.docx(82页珍藏版)》请在冰豆网上搜索。
c语言程序设计教程韩立毛徐秀芳书后练习题参考答案
c语言程序设计教程2013韩立毛徐秀芳书后练习题参考答案
练习题1参考答案
一、选择题
序号
1
2
3
4
5
6
7
8
参考答案
A
C
A
D
C
C
C
A
二、填空题
1.程序设计语言主要分为以下三类:
机器语言、汇编语言和高级语言。
2.在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。
3.C程序开发过程的一般步骤为:
源程序的编辑、编译、连接和运行。
4.C程序源文件的扩展名为.c,编译成功后产生的文件扩展名为.obj,连接成功后产生文件扩展名为.exe。
三、应用题
略
练习题2参考答案
一、选择题
序号
1
2
3
4
5
6
7
8
9
10
参考答案
B
A
C
C
B
A
B
B
D
C
序号
11
12
13
14
15
参考答案
A
B
C
A
C
二、填空题
1.通常一个字节包含8个二进制位。
在一个字节中能存放的最大(十进制)整数是255(无符号),127(带符号),最小(十进制)整数是-128,它的二进制数的形式是10000000。
2.在C语言中,十进制数30的八进制数表示形式是036,十六进制数表示形式是0x1e,在内存中它的二进制数表示形式是0000000000011110。
3.条件“2020&&x<30||x<-100。
4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为6,b值为4,c值为2。
5.已知inty;floatx=-3;,执行语句y=x%2;后,变量y的值为语句出错。
6.字符串"ab\034\\\x79"的长度为5。
7.在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为4;一个double型数据在内存中所占的字节数为8。
8.若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为1。
9.表达式pow(2.8,sqrt(double(x)))值的数据类型为double。
10.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为26。
11.若a是int型变量,则执行表达式a=25/3%3后a的值为2。
12.若i为int整型变量且赋值为6,则运算i++后表达式的值是6,变量i的值是7。
13.若x为int型变量,执行语句:
x=10;x+=x-=x-x;则x的值为20。
14.若x和y为double型变量,则表达式x=1,y=x+3/2的值是2.000000。
15.(-b+sqrt(b*b-4*a*c))/(2*a)的数学式子是[-b+√(b^2-4ac)]/2a
16.sqrt(p*(p-a)*(p-b)*(p-c))的数学式子是√[p*(p-a)*(p-b)*(p-c)]。
17.判断某一年份是否为闰年的表达式是(year%4==0||year%100==0)&&year%400!
=0)。
18.用随机函数rand()产生一个在[-20,20]两位整数的表达式是x=rand()%41-20。
三、阅读分析下列程序。
1.写出下列程序的输出结果。
18
2.已知字母B的ASCII码为66,写出下列程序的输出结果。
67,E
3.写出下列程序的输出结果。
a=4,b=3
练习题3参考答案
一、选择题
序号
1
2
3
4
5
6
7
8
9
10
参考答案
D
B
D
D
C
D
D
B
B
A
二、填空题
1.C语句句尾用分号结束。
2.若有变量定义:
inta=1,b=2,c=3,d=4,x=5,y=6;则表达式(x=a>b)&&(y=c>d)的值为0。
3.使用强制转换方法将正整数转换成字符。
本题程序如下:
本程序的执行结果为输入一个正整数(小于255):
97
a的ASCII码为97。
4.下面程序的输出是-100,50
i=-100,j=50
i=-100
j=50。
5.执行以下程序时,若从第一列开始输入数据,为使变量a=2,b=8,x=6.5,y=56.62,
el='C',c2='b',正确的数据输入形式是a=2b=8x=6.5y=56.62c1=Cc2=b。
三、程序设计题
1.编写程序交换两个变量a,b的值,并输出。
如输入时a=3,b=5,输出a=5,b=3。
#include
voidmain()
{
inta,b,c;
printf(“输入两个数:
a,b”);
scanf(“a=%d,b=%d”,&a,&b);
c=a;
a=b;
b=c;
printf(“a=%d,b=%d”,a,b);
}
2.编写程序输入小写字符boy,输出大写字符BOY。
#include
voidmain()
{
charc;
printf(“Input:
”);
scanf(“%c”,&c);
c=c-32;
printf(“%c”,c);
}
3.已知华氏温度与摄氏温度的转换公式为:
C=(F-32)*5/9。
编写程序当输入华氏温度F时,输出对应的摄氏温度。
#include
voidmain()
{floatF;
scanf(“%f”,&F);
printf(“%f”,(F-32)*5/9);}
4.设圆的半径r=1.5,圆柱高h=3,编写程序求圆周长、圆面积、圆球表面积、圆球体积及圆柱体积。
用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
#include
intmain()
{floath,r,l,s,sq,vq,vz;
floatpi=3.141592;
printf(“请输入圆半径r,圆柱高h:
”);
scanf(“%f,%f”,&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=3.0/4.0*pi*r*r*r;
vz=pi*r*r*h;
printf(“圆周长为:
l=%6.2f\n”,l);
printf(“圆面积为:
s=%6.2f\n”,s);
printf(“圆球表面积为:
sq=%6.2f\n”,sq);
printf(“圆球体积为:
vq=%6.2f\n”,vq);
printf(“圆柱体积为:
vz=%6.2f\n”,vz);
ruturn0;}
5.编写程序输入梯形的上底a,下底b和高h,输出该梯形的面积。
#include
voidmain()
{floata,b,h,s;
printf(“请输入梯形上底,下底和高:
\n”);
scanf(“%f%f%f”,&a,&b,&h);
s=(a+b)*h/2;
printf(“梯形面积为:
%f\n”,s);}
6.编写程序将"China"译成密码,密码规律是:
用原来的字母后面第4个字母代替原来的字母。
例如,字母"A"后面第4个字母是"E",用"E"代替"A"。
因此,"China"应译为"Glmre"。
请编写程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为'C','h','i','n','a',经过运算,使c1,c2,c3,c4,c5分别变为'G','l','m','r','e'。
分别用putchar函数和printf函数输出这5个字符。
#include
intmain()
{charc1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1=c1+4;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
printf(“passwordis%c%c%c%c%c\n”,c1,c2,c3,c4,c5);
return0;}
#include
intmain()
{charc1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1=c1+4;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
return0;}
练习题4参考答案
一、选择题
序号
1
2
3
4
5
6
7
8
9
10
参考答案
C
B
A
A
C
C
B
A
A
B
二、填空题
1.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是abs(x)>5&&floor(x)==x。
2.以下程序运行后的输出结果是20,0。
3.若从键盘输入58,则以下程序输出的结果是585858。
4.以下程序输出的结果是0。
5.以下程序的输出结果是2。
6.若inti=10;则行下列程序后,变量i的正确结果是13。
三、程序设计题
1.编写程序输入有3个整数a、b、c,并按照从小到大的顺序输出。
#include
intmain()
{inta,b,c,t;
printf(“pleaseinputabc\n”);
scanf(“%d%d%d”,&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf(“%d,%d,%d\n”,a,b,c);
return0;}
2.有一个函数:
编写一个程序,输入x的值,输出y的值。
#include
intmain()
{intx,y;
printf(“输入x:
”);
scanf(“%d”,&x);
if(x<1)
{y=x;
printf(“x=%d,y=x=%d\n”,x,y);}
elseif(x<10)
{y=2*x-1;
printf(“x=%d,y=2*x-1=%d\n”,x,y);}
else
{y=3*x-11;
printf(“x=%d,y=3*x-11=%d\n”,x,y);}
return0;}
3.输入学生的百分制成绩,要求输出学生的成绩、等级以及相应的评语。
设用‘A’、‘B’、‘C’、‘D’、‘E’五个等级,且90分以上为等级‘A’,评语为“成绩优秀”,80-89分为等级‘B’,评语为“成绩良好”,70-79分为等级‘C’,评语为“成绩中等”,60-69分为等级‘D’,评语为“成绩及格”,60分以下为等级‘E’,评语为“成绩不及格”。
分别用if条件语句和switch开关语句编写程序。
方法一:
if条件语句
#include
voidmain()
{
intscore;
printf("输入成绩:
");
scanf("%d",&score);
if(score>100||score<0)
pri