C语言课后习题解析及答案Word下载.docx
- 文档编号:3590406
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:98
- 大小:49.91KB
C语言课后习题解析及答案Word下载.docx
《C语言课后习题解析及答案Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课后习题解析及答案Word下载.docx(98页珍藏版)》请在冰点文库上搜索。
(a)班级中的学生人数intnumber_of_students;
(b)平均价格floataverage_price;
(c)自1900年1月1日以来的天数intdays_since_1900;
(d)利率百分比floatinterest_rate;
(e)本页中最常出现的字符charmost_common_char;
(f)中国的人口总数(在2010年11月大约为1,339,724,852)intpopulation_of_china;
6.假定有如下定义:
inti;
charc;
下面哪些是合法的C语句?
c='
A'
;
合法
i="
1"
非法,字符串不能赋值给整型
i=1;
合法
c="
A"
非法,”A”为字符串,存储为’A’和’\0’两个字符
1'
;
7.写一个C程序,给第4题中的变量各赋一个值,然后以每行一个变量的形式显示这些变量的值。
#include<
stdio.h>
intmain(void)
{
intnumber_of_transactions,age_in_years;
number_of_transactions=211;
age_in_years=66;
total_pay=3128.0f;
tax_payment=214.5f;
distance=2431.5f;
average=83.5f;
account_type='
c'
gross_pay=9313.5;
printf("
%d\n%d\n%.1f\n%.1f\n%.1f\n%.1f\n%c\n%.1f"
number_of_transactions,age_in_years,total_pay,tax_payment,distance,average,account_type,gross_pay);
return0;
}
8.写一个C程序显示如下信息:
***************
*HelloWorld*
***************\n"
);
*HelloWorld*\n"
9.写一个C程序在不同的行分别显示你的姓名和家庭住址。
张三\n"
黑龙江省哈尔滨市南岗区\n"
10.ASCII码用于表示计算机内存中的字母、数字和其它符号。
使用附录C中的ASCII码表查找下面每个字符的ASCII编码:
'
'
B'
Y'
Z'
a'
b'
y'
z'
0'
'
(空格)
字符十进制ASCII码十六进制ASCII码
A6541
B6642
Y8959
Z905a
a9761
b9862
y12179
z1227a
04830
14931
442c
空格3220
11.在程序P2C中,将第14行的%d改为%c,第16行的%c改为%d。
编译并运行修改后的程序。
你能解释运行结果吗?
(提示:
请参看附录C的ASCII码表)
第三章简单算术运算符与表达式课后习题
1.将下列数学方程转化为合法的C语句:
(a)
(b)
(c)
(d)
(e)
(a)m=(y1–y2)/(x1–x2);
(b)y=m*x+c;
(c)a=b/c–d/e;
(d)C=5*(F–32)/9.0;
(e)s=u*t+a*t*t/2.0;
2.有如下变量定义:
inta=1,b=10,c=5;
intd;
下面每条语句执行后d的值为?
(a)d=b/c+1;
d=3
(b)d=b%3;
d=1
(c)d=b-3*c/5;
d=7
(d)d=b*10+c-a*5;
d=100
(e)d=(a+b-1)/c;
d=2
(f)d=((-a%c)+b)*c;
d=45
(g)d=--a;
d=0
3.变量定义如第2题,请改正下列C语句中的错误:
(a)d=2(b+c);
d=2*(b+c)
(b)d=5b+9c;
d=5*b+9*c;
(c)d=b-3X19;
d=b–3*19;
(d)d=b.c+10;
d=b*c+10;
(e)d=(a+b)/c;
无错误
4.为下列任务写出合适的C语句:
(a)将num1加1,并将结果放回到num1中num1=num1+1;
或num1++;
(b)将num1加2,并将结果放回到num2中num2=num1+2;
(c)将num2加2,并将结果放回到num2中num2=num2+2;
或num2+=2;
(d)将num1减1,并将结果放回到num1中num1=num1–1;
或num1--;
(e)将num2减2,并将结果放回到num2中num2=num2–2;
或num2-=2;
5.有如下定义:
inta=12,b=0,c=3;
下列每条语句执行后a、b、c和d的值各是什么?
(a)a++;
a=13b=0c=3d=内存单元的随机值
(b)b--;
a=12b=-1c=3d=内存单元的随机值
(c)d=++c;
a=12b=0c=4d=4
(d)d=c--;
a=12b=0c=2d=3
(e)d=a++-2;
a=13b=0c=3d=10
(f)d=a+++b++-c--;
a=13b=1c=2d=9
6.有如下定义:
inta=1,b=2,c=3;
下列每条语句执行后a、b、c的值各是什么?
(a)a+=b;
a=3b=2c=3
(b)a/=3;
a=0b=2c=3
(c)a*=c;
(d)a%=2;
a=1b=2c=3
(e)a+=b+1;
a=4b=2c=3
(f)a+=++b;
a=4b=3c=3
7.有如下定义:
charch_val;
intint_val;
shortshort_val;
floatfloat_val;
doubledouble_val;
unsignedintunsigned_int_val;
下面哪些可能因为赋值类型自动转换而损失数据?
(a)short_val=int_val;
可能损失精度
(b)int_val=ch_val;
不能损失精度
(c)double_val=float_val;
不能损失精度
(d)int_val=float_val;
可能损失精度
(e)int_val=unsigned_int_val;
可能损失精度
8.和第7题的变量定义一样,下列各表达式的数据类型各是什么?
(a)int_val*float_val;
double
(b)float_val+int_val/100;
double
(c)ch_val+short_val+int_val;
int
(d)(double)int_val+double_val+float_val;
double
(e)(int)float_val*float_val/int_val;
double
(f)int_val+3.0;
double
9.有如下变量定义:
inta=5,b=4;
floatc=3.0,d;
下列每小题中的d的值为?
(a)d=a/b;
d=1.0
(b)d=(float)a/b;
d=1.25
(c)d=c/b;
d=0.75
(d)d=(int)c/b;
d=0.0
(e)d=a/2;
d=2.0
(f)d=a/2.0;
d=2.5
(g)d=(float)a/2;
d=2.5
(h)d=(int)c%2;
d=1.0
10.写一个程序计算长为11.5厘米,宽为2.5厘米,高为10厘米的盒子的体积和表面积。
doublelength,width,height;
doublearea,volume;
length=11.5;
width=2.5;
height=10.0;
area=2*(length*width+length*height+width*height);
volume=length*width*height;
area=%.2f,volume=%.2f"
area,volume);
11.写一个程序完成如下功能:
(a)计算并显示1到5的和。
#include<
1+2+3+4+5=%d"
1+2+3+4+5);
(b)计算并显示单精度浮点数1,1.1,1.2,…,2.0的平均值。
average=%.2f"
(1.0+1.1+1.2+1.3+1.4+1.5+1.6+1.7+1.8+1.9+2.0)/11);
第四章键盘输入与屏幕输出课后习题
1.找出下面程序的错误。
intmain()
{
intnum;
printf("
PleasetypeanumberfollowedbyEnter"
);
scanf("
%f"
num);
改为:
scanf("
%d"
&
num);
Thenumberyoutypedwas:
%d"
return0;
}
2.为下面的每小题写一个简单的scanf语句以接收对应的键盘输入:
(a)intfirst;
first);
(b)intsecond,third,fourth;
%d%d%d"
second,&
third,&
fourth);
(c)floatprincipal,rate,time;
%f%f%f"
principal,&
rate,&
time);
(d)charkeyval1,keyval2;
%c%c"
keyval1,&
keyval2);
(e)charc;
floatf;
doubled;
%c%d%f%lf"
c,&
i,&
f,&
d);
3.写一个程序,输入四个整数数字,然后以输入时相反的顺序输出它们。
intnum1,num2,num3,num4;
Pleaseinputfournumbers:
"
scanf("
num1);
num2);
num3);
num4);
Thenumbersinreverseare:
%d"
num4);
num3);
num2);
num1);
4.假设v1,v2和v3是其值分别为5.0,-4.5和11.25的单精度浮点型变量,写一个printf语句显示如下的消息:
v1=5v2=-4.5v3=11.25
printf("
v1=%.0fv2=%.1fv3=%.2f"
v1,v2,v3);
5.假设人的心率为每分钟75下,写一个程序,询问用户的年龄(以年为单位),然后计算并输出该用户到目前为止的生命中已有的心跳总数。
intage,heart_beats;
Pleaseinputyourage:
age);
heart_beats=age*365*24*60*75;
Theheartbeatsinyourlife:
heart_beats);
6.写一个程序,将接收的华氏温度转换为对应的摄氏温度。
程序应显示如下的提示信息:
请输入华氏温度(度):
然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的摄氏温度。
程序使用如下的公式完成转换:
摄氏温度=5.0*(华氏温度–32.0)/9.0
doublefahr,cels;
Pleaseinputfahr:
%lf"
fahr);
cels=5.0*(fahr-32.0)/9.0;
Thecelsis:
%.2f"
cels);
7.更改第6题中的程序,将输入的摄氏温度转换为对应的华氏温度。
Pleaseinputcels:
cels);
fahr=9.0*cels/5.0+32.0;
Thefahris:
fahr);
8.写一个程序从键盘输入三个单精度浮点数,然后计算:
(a)它们的和。
(b)它们的平均值。
显示结果保留到小数点后三位。
floatf1,f2,f3,sum,average;
请输入三个单精度数:
"
f1,&
f2,&
f3);
sum=f1+f2+f3;
average=sum/3;
三个数的和为%.3f,均值为%.3f"
sum,average);
9.写一个程序从键盘输入两个整数,然后显示第1个整数占第二个整数的百分比,保留到小数点后1位。
例如输入5和40,程序输出结果如下:
5is12.5percentof40
intnum1,num2;
请输入两个整数:
%d%d"
num1,&
%dis%.1fpercentof%d"
num1,
(num1*100.0/num2),num2);
10.写一个程序从键盘输入两个整数,然后显示输出第1个数除以第2个数的结果。
例如,输入123和12,程序的输出结果格式如下:
10余数=3
----
12)123
提示:
使用求余运算符获得余数,使用整数除法获得商。
intnum1,num2,remainder,quotient;
remainder=num1%num2;
quotient=num1/num2;
%13dRemainder=%d\n"
quotient,remainder);
------\n"
%5d)%5d"
num2,num1);
第五章控制语句:
If和Switch课后习题
1.使用switch语句重写下面的if-else语句:
if(marriage_status=='
S'
)
printf("
single"
elseif(marriage_status=='
M'
married"
W'
widowed"
E'
separated"
D'
divorced"
else
error:
invalidcode"
switch(marriage_status)
case'
:
printf("
break;
default:
2.下面的代码片段根据三个整数n1,n2和n3的值显示适当的消息:
if(n1==n2)
if(n1==n3)
printf("
n1,n2andn3havethesamevalue\n"
n1andn2havethesamevalue\n"
}
elseif(n1==n3)
n1andn3havethesamevalue\n"
elseif(n2==n3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课后 习题 解析 答案