c语言程序设计教程韩立毛徐秀芳书后练习试题参考答案解析文档格式.docx
- 文档编号:17578169
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:81
- 大小:65.96KB
c语言程序设计教程韩立毛徐秀芳书后练习试题参考答案解析文档格式.docx
《c语言程序设计教程韩立毛徐秀芳书后练习试题参考答案解析文档格式.docx》由会员分享,可在线阅读,更多相关《c语言程序设计教程韩立毛徐秀芳书后练习试题参考答案解析文档格式.docx(81页珍藏版)》请在冰豆网上搜索。
一个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.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<
stdio.h>
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。
{
charc;
printf(“Input:
”);
scanf(“%c”,&
c);
c=c-32;
printf(“%c”,c);
3.已知华氏温度与摄氏温度的转换公式为:
C=(F-32)*5/9。
编写程序当输入华氏温度F时,输出对应的摄氏温度。
{floatF;
scanf(“%f”,&
F);
printf(“%f”,(F-32)*5/9);
4.设圆的半径r=1.5,圆柱高h=3,编写程序求圆周长、圆面积、圆球表面积、圆球体积及圆柱体积。
用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
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,输出该梯形的面积。
{floata,b,h,s;
printf(“请输入梯形上底,下底和高:
\n”);
scanf(“%f%f%f”,&
b,&
s=(a+b)*h/2;
printf(“梯形面积为:
%f\n”,s);
6.编写程序将"
China"
译成密码,密码规律是:
用原来的字母后面第4个字母代替原来的字母。
例如,字母"
A"
后面第4个字母是"
E"
,用"
代替"
。
因此,"
应译为"
Glmre"
请编写程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为'
'
h'
i'
n'
a'
经过运算,使c1,c2,c3,c4,c5分别变为'
G'
l'
m'
r'
e'
分别用putchar函数和printf函数输出这5个字符。
{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;
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
练习题4参考答案
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,并按照从小到大的顺序输出。
{inta,b,c,t;
printf(“pleaseinputabc\n”);
scanf(“%d%d%d”,&
if(a>
b)
{t=a;
b=t;
}
c)
a=c;
c=t;
if(b>
{t=b;
printf(“%d,%d,%d\n”,a,b,c);
2.有一个函数:
编写一个程序,输入x的值,输出y的值。
{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);
3.输入学生的百分制成绩,要求输出学生的成绩、等级以及相应的评语。
设用‘A’、‘B’、‘C’、‘D’、‘E’五个等级,且90分以上为等级‘A’,评语为“成绩优秀”,80-89分为等级‘B’,评语为“成绩良好”,70-79分为等级‘C’,评语为“成绩中等”,60-69分为等级‘D’,评语为“成绩及格”,60分以下为等级‘E’,评语为“成绩不及格”。
分别用if条件语句和switch开关语句编写程序。
方法一:
if条件语句
intscore;
printf("
输入成绩:
"
);
scanf("
%d"
&
score);
if(score>
100||score<
0)
printf("
输入错误!
\n"
elseif(score>
=90)
成绩为%d,等级为A,成绩优秀\n"
score);
=80)
成绩为%d,等级为B,成绩良好\n"
=70)
成绩为%d,等级为C,成绩中等\n"
=60)
成绩为%d,等级为D,成绩及格\n"
else
成绩为%d,等级为E,成绩不及格\n"
方法二:
switch开关语句
voidmain(){
switch(score/10)
{
case10:
case9:
printf("
break;
case8:
case7:
case6:
default:
4.编写程序输入三个整数,判断它们是否能够构成三角形。
若能构成三角形,则输出三角形的类型(等边三角形、等腰三角形、一般三角形),并计算三角形的面积;
若不能构成三角形,则输出“不能构成三角形”的信息。
math.h>
floata,b,c,s,t;
printf("
inputa,b,c\n"
scanf("
%f%f%f"
if((a+b>
c)&
(a+c>
(b+c>
a))
t=(a+b+c)/2;
s=sqrt(t*(t-a)*(t-b)*(t-c));
if(a==b&
b==c)
{printf("
这是等边三角形,面积为%f\n"
s);
elseif((a==b)&
(b!
=c)||(b==c)&
(a!
=c)||(a==c)&
(a!
=b))
这是等腰三角形,面积为%f\n"
elseprintf("
这是一般三角形,面积为%f\n"
不能构成三角形"
5.编写程序在屏幕上显示一张如下所示的时间表:
*****Time*****
1morning
2afternoon
3night
Pleaseenteryourchoice(1-3):
操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示"
Goodmorning"
,选择2时显示"
Goodafternoon"
,选择3时显示"
Goodnight"
,对于其他选择显示"
Selectionerror!
voidmain()
intn;
*****Time******\n1morning\n"
2afternonn\n3night\n"
Pleaseenteryourchoice(1-3):
n);
switch(n){
case1:
Goodmorning\n"
case2:
Goodafternoon\n"
case3:
Goodnight\n"
default:
}
6.设银行整存整取不同期限的月利率分别为:
一年定期为0.63%;
二年定期为0.66%;
三年定期为0.69%;
五年定期为0.75%;
八年定期为0.84%。
要求输入存款的本金和期限,求到期能从银行得到的本金和利息的合计。
分别用if语句和switch语句编与程序。
constdoublerate[]={0.0063,0.0066,0.0069,0.0075,0.0084};
intyears=0;
floatinit=0;
doublesum=0;
\nInputinitialamountofmoney:
%f"
&
init);
\nTypeinsaveperiodinyears:
years);
if(years==1||years==2||years==3||years==5||years==8)
{
if(years==1)
sum=init*(1+rate[0]*12*years);
else
if(years==2)
sum=init*(1+rate[1]*12*years);
if(years==3)
sum=init*(1+rate[2]*12*years);
if(years==5)
sum=init*(1+rate[3]*12*years);
sum=init*(1+rate[4]*12*years);
\nTotalamountafter%dyears:
%.2f\n"
years,sum);
\nWrongnumber,Pleasetypeinyearsagain:
"
scanf("
7.编写程序计算个人所得税。
个人所得税的计算方法:
(实发工资-3500)*税率-扣除数,设个人所得税起征点为3500元。
共分为7级,具体如下:
级数
应纳税额
税率(%)
扣除数
不超过1500元的
超过1500元至4500元的部分
105
超过4500元至9000元的部分
20
555
超过9000元至35000元的部分
25
1005
超过35000元至55000元的部分
30
2755
超过55000元至80000元的部分
35
5505
超过80000元的部分
45
13505
floata;
//实发工资
floatb;
//应纳税部分工资
floats;
//税率
floatkouchu;
//扣除数
floatptax;
//个人所得税
输入工资:
a);
b=a-3500;
if(b>
0&
b<
=1500)
{s=0.03;
kouchu=0;
elseif(b<
=4500)
{s=0.1;
kouchu=105;
=9000)
{s=0.2;
kouchu=555;
=35000)
{s=0.25;
kouchu=1005;
=55000)
{s=0.3;
kouchu=2755;
=80000)
{s=0.35;
kouchu=5505;
{s=0.45;
kouchu=13505;
ptax=b*s-kouchu;
个人所得税为%f\n"
ptax);
8.编写程序计算货款。
设按购买货物款的多少分别给予不同的优惠折扣,购货不足250元,没有折扣;
购货250元(含250元,下同),不足500元,减价5%;
购货500元,不足1000元,减价7.5%;
购货1000元,不足2000元,减价10%;
购货2000元及以上,减价15%。
{floatm,d,t;
请输入购物金额:
m);
if(m<
250)
d=0;
elseif(m<
500)
d=0.05;
1000)
d=0.075;
2000)
d=0.1;
else
d=0.15;
t=m*(1-d);
实际应付金额:
t);
9.给一个不多于5位的正整数,编写程序实现:
(1)求出它是几位数;
(2)分别输出每一位数字;
(3)按逆序输出各位数字。
intmain()
{inti,j,a,b,c,d,k=0,n=0,s=100000,t=10,p;
p=a;
//保存原始输入值,后面用到
if(p/s!
=0)//超过5位数,直接错误提示,程序结束。
输入错误!
else
{printf("
逆序输出各位数字:
for(i=0;
i<
6;
i++)
{b=a;
if(b!
=0)
{k++;
b=a%t;
//对10求余可得个十百千万位
printf("
%d"
b);
a=a/t;
}
}
\n%d是个%d位数\n"
p,k);
正序输出各位数字:
for(j=0;
j<
j++)
c=p;
d=c/s%10;
//除以s后对10求余可得万千百十个位
s=s/10;
//s要依次/10,求解后面的数值
if(d!
d);
10.编写程序对数据进行加密。
设加密方法为:
对任意给定的4位整数,每一位数字均加2,若某位数字加2后大于9,则取其除以10的余数,如数据6987加密后的数据为8109。
inta,b,c,d,m;
a=m%10+2;
=10)a=a%10;
b=m/10%10+2;
=10)b=b%10;
c=m/100%10+2;
if(c>
=10)c=c%10;
d=m/1000+2;
if(d>
=10)d=d%10;
m=a+b*10+c*100+d*1000;
%d\n"
m);
练习
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 韩立毛徐秀芳 书后 练习 试题 参考答案 解析