习题答案.docx
- 文档编号:9445534
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:51
- 大小:35.22KB
习题答案.docx
《习题答案.docx》由会员分享,可在线阅读,更多相关《习题答案.docx(51页珍藏版)》请在冰点文库上搜索。
习题答案
第1章习题答案
一、选择题
1.B 2.D 3.B 4.C 5.A 6.C 7.D 8.C 9.A 10.C 11.B 12.B 13.C 14.B 15.D 16.B 17.D 18.B 19.(略) 20.(略)
二﹑填空题
1.变量
2.区分、不同
3.退格、换行、横向跳格、双引号
4.双精度、长整型、字符、字符串、八进制整型、转义字符
注:
书中题目有错,08应改为07,这样才能表示八进制。
5.main
6.顺序、选择、循环
三、判断题
1.错 2.对 3.对 4.错 5.错 6.错
7.错 8.对 9.对 10.对 11.对 12.对
四、问答题
1.写出下面表达式的值
(1)36
(2)5,4 (3)9,9,27(注:
所使用的系统不同,结果也不同,此结果为TC2.0下的结果)
2.下列表达式是否正确?
若正确,表达式的值是什么?
21/221/2.021.0/221%221.0%221%2.018%1515%183%15
1010.50000010.5000001错误 错误 3 153
3.
(1)C语言程序是由文件组成
(2)每个C程序文件由函数组成
(3)C程序从main函数开始执行
(4)每个函数由函数说明部分和函数体组成。
4.
在TC的主菜单中选择Run菜单,选择下拉菜单中的Run命令(或直接按“Ctrl-F9”),就开始进行源程序的编译、连接并运行。
如没有严重的语法错误,系统自动生成对应的目标文件和可执行文件,并以扩展名.OBJ和.EXE存盘。
5.
分别为“.C”、“.OBJ”和“.EXE”。
6.
(1)程序由三种基本结构组合而成
结构化程序设计时,不论程序大小、简单还是复杂,规定程序主要由三种基本结构组成,它们分别是顺序结构、选择结构和循环结构。
可以证明,任何一个复杂的问题的程序设计都可以由这三种基本结构组成。
而且要求每一个模块有以下特点:
只有一个入们;
只有一个出口;
程序结构中没有死循环。
(2)模块化设计
较复杂和大型程序应按功能分割成一些功能模块,并将这些模块按层次关系进行组织
(3)程序设计采用自顶向下、逐步细化的原则
7.
略
8.
有“解释方式”和“编译方式”两种
五、编程题
编写程序,在屏幕上输出如下信息:
===================
=Iamastudent.=
===================
main()
{
printf("===================\n");
printf("=Iamastudent.=\n");
printf("===================\n");
}
第2章习题答案
一、选择题
1.C 2.C 3.D 4.A 5.D 6.C 7.A 8.C 9.C 10.B 11.B 12.A 13.C 14.D 15.D
二﹑填空题
1.分号 花括号或{}
2.换行
3.不做任何操作
4.%d %c %s
5.1
6.70 38 8
7.%09.2f %0.2或%4.2f
8.是
9。
-1 3 1
10.getchar()函数将用户放入的字符回显屏幕上,放入结束后,按回车键才能响应 、getch()函数将用户放入的字符不回显屏幕上,放入结束后,不需按回车键立即响应
三、判断题
1.错 2.对 3.对 4.对 5.对 6.对
7.错 8.对 9.错 10.错
四、问答题
3.写出下列程序的运行结果
(1)*2000――*\n
(2)X=%d,Y=%d
(3)X=100,Y=-100
4.程序改错
(1)把\n去掉
(2)把3%d改为%f(3)把x,y,z改为%x,%y,%z(4)s=x*y;v=s*c(5)(s=%f””v=%d\n”,s,v)
5.a=3,b=5
c=-3,d=12.102
input e=Af=8
五、编程题
1.编写程序,把560分钟换算成小时和秒。
#include
main()
{ints;
floath;
h=560/60.0;
s=560*60;
printf("560分钟换算成小时是:
%f,换算成秒是:
%d.\n",h,s);
}
2.键盘输入一个整数的值,求它的平方、平方根,输出结果时要求有文字提示,并取小数点后二位小数(求平方根函数为sqrt(x),包含在
#include
#include
main()
{intx,y;
floatz;
printf("输入一个整数:
");
scanf("%d",&x);
y=x*x;
z=sqrt(x);
printf("%d的平方是%d,平方根是%.2f.\n",x,y,z);
}
3.已知一个圆球的半径,求该圆球的体积。
#include
#definePI3.14
main()
{floatr,v;
printf("输入圆球的半径:
");
scanf("%f",&r);
v=PI*r*r*r*4/3;
printf("圆球的体积:
%f.\n",v);
}
4.键盘输入若干个学生3门课程的成绩,计算每个学生的总分和平均成绩。
要求利用goto编写无穷循环程序。
#include
main()
{floatx1,x2,x3,s,avg;
printf("输入学生3门课程的成绩:
");
scanf("%f,%f,%f",&r1,&x2,&x3);
s=x1+x2+x3;
avg=s/3;
printf("总分:
%f,平均成绩:
%f.\n",s,avg);
}
5.编程进行摄氏温度和华氏温度相互转换,摄氏温度和华氏温度之间的转换公式如下:
摄氏温度=5/9(华氏温度-32),即C=(F-32)*5/9。
#include
main()
{floatf,c;
printf("输入华氏温度:
");
scanf("%f",&f);
c=(f-32)*5/9;
printf("摄氏温度为:
%f.\n",c);
}
6.从键盘输入直角三角形的斜边c与一条直角边a的长,计算并输出另一条直角边b的长。
#include
#include
main()
{floata,b,c;
printf("输入直角三角形的斜边c与一条直角边a的长:
");
scanf("%f,%f",&c,&a);
b=sqrt(c*c-a*a);
printf("另一条直角边b的长:
%f.\n",b);
}
7.编写程序,输出下面图形。
*
***
*****
*******
*****
***
*
#include
main()
{
printf("*\n");
printf("***\n");
printf("*****\n");
printf("*******\n");
printf("*****\n");
printf("***\n");
printf("*\n");
}
第3章习题答案
一、选择题
1.A 2.B 3.B 4.B 5.C 6.D 7.B 8.B 9.C 10.D 11.A 12.C 13.D 14.B 15.A 16.D 17B 18。
C 19。
C 20。
D 21。
C 22。
D
注:
教材中21题有错,if语句后丢失分号。
二﹑填空题
1.1 0
2.X>2&&X<10 X<10||X>20
3.0 0 1 1
4.退出SWITCH语句 当所有CASE分条件都不满足,则执行其后语句
5.前面最近的
三、判断题
1.错 2.错 3.错 4.对 5.错 6.对
7.对 8.对 9.对 10.对
四、问答题
1、写出下面逻辑表达式的值
(1)真1
(2)真1(3)假0(4)(A)真1(B)真1(C)假0(D)真1
4、阅读程序,写出程序运行结果
ABother
五、编程题
1.对一批货物征收税金。
价格在1万元以上的货物征税5%,在5000元以上,1万元以下的货物征税3%,在1000元以上,5000千元以下的货物征税2%,1000元以下的货物征税1%。
编一个程序,输入货物价格,输出相应的税金。
#include
intmain(void)
{intn;
floatx,y,p;
printf("输入货物价格:
");
scanf("%f",&x);
if(x>=10000)p=0.05;
elseif(x>=5000)p=0.03;
elseif(x>=1000)p=0.02;
elsep=0.01;
y=x*p;
printf("应缴税金:
%f:
",y);
}
2.输入实型变量x和y,若x>y则输出x-y的值,否则输出y-x的值。
main()
{floatx,y,z;
printf("输入两个数x,y:
");
scanf("%f,%f",&x,&y);
if(x>y)z=x-y;
elsez=y-x;
printf("结果:
%f\n",z);
}
3.用if和switch语句分别编写程序,实现从键盘输入数字1、2、3或4中某个数时,输出excellent、good、pass或fail中的某一个,输入其他字符时输出error。
#include
intmain(void)
{intx;
printf("输入1~4整数:
");
scanf("%d",&x);
if(x==1)printf("excellent");
elseif(x==2)printf("good");
elseif(x==3)printf("pass");
elseif(x==4)printf("fail");
elseprintf("error");
}
#include
intmain(void)
{intx;
printf("输入1~4整数:
");
scanf("%d",&x);
switch(x)
{
csae1:
printf("excellent");break;
csae2:
printf("good");break;
csae3:
printf("pass");break;
csae4:
printf("fail");break;
default:
printf("error");
}
}
4.键盘输入一个字符,如果是字母,则将其ASCII值加5,使其在字母字符“a~z”之间变换并输出。
例如,字母“a”变成“f",字母“z”变成字母“e”;如果是数字,则将其ASCII值减2,使其在数值字符“0~9”之间变换并输出。
例如,字符“9”变成字符“7”,字符“1”变成字符“9”。
#include
intmain(void)
{charc;
printf("输入一字符:
");
scanf("%c",&c);
if(c>='A'&&c<='Z')
{c=c+5;
if(c>'z')c=c-26;
}
if(c>='a'&&c<='z')
{c=c+5;
if(c>'z')c=c-26;
}
if(c>='0'&&c<='9')
{c=c-2;
if(c<'0')c=c+10
}
printf("结果:
%c\n",c);
}
5.己知银行整存整取存款不同期限的年息利率分别为:
1.98% 期限一年
2.15% 期限二年
年息利率2.25% 期限三年
2.45% 期限五年
2.65% 期限八年
编写程序,输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
#include
#include
intmain(void)
{intn;
floatx,y,p;
printf("输入存钱的本金和期限:
");
scanf("%f,%d",&x,&n);
switch(n)
{case1:
p=0.0198;break;
case2:
p=0.0215;break;
case3:
p=0.0225;break;
case5:
p=0.0245;break;
case8:
p=0.0265;break;
}
y=x*power((1+p),n);
printf("到期利息与本金的和:
%f:
",y);
}
第4章习题答案
一、选择题
1.A 2.D 3.B 4.C 5.D 6.C 7.C 8.A 9.C 10.A 11.B 12.D 13.A 14.D 15.D 16.A
二﹑填空题
1.当型 直到型 WHILE FOR DO_WHILE
2.直到 先循环后判断
3.当 先判断后循环
4.循环赋初值 循环控制条件 循环变量埴值
5.
6.逗号表达式
7.不是
8.一个循环中又包含一个完整的循环
9.每一层循环次数的乘积
10.退出当前循环(跳到当前循环结构的后续语句) 结束本次循环(跳过本次循环结束前的语句)
三、判断题
1.错 2.对 3.对 4.错 5.对 6.对
7.错 8.对 9.对 10.错 11.错
四、写出下列程序运行结果
1.2 5 8 11 14
2.1 3 7 15 31 63
3.*
**
***
五、编程题
1.编程计算1至50中是7的倍数的数值之和。
main()
{ints=0,i;
for(i=0;i<50;i++);
if(i%7==0)
s=s+i;
printf("1至50中是7的倍数的数值之和是:
%d\n",s);
}
2.从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
#include
intmain(void)
{charc;
intn=0;
printf("输入正文文本,按回车结束输入:
\n");
while((c=getchar())!
=10)
if(c>=48&&c<=57)n++;
printf("输入的文本中数字字符的个数:
%d\n",n);
}
3.输入一批正整数,输出其中的最大值和最小值,输入数字“0”结束循环。
#include
intmain(void)
{intx,max,min,i=0;
printf("输入正整数,输入“0”束输入:
\n");
while
(1)
{scanf("%d",&x);
if(x==0)break;
if(i==0){max=x;min=x;}
if(x>max)max=x;
if(x i++; } printf("其中的最大值=%d;最小值=%d\n",max,min); } 4.输入一个整数,将其数值按小于10,10-99,100-999,1000以上分类并显示。 例如: 输入358时,显示358is100to999。 #include intmain(void) {intx,; printf("输入一个正整数: "); scanf("%d",&x); if(x<10)printf("%dis<10\n",x); elseif(x<100)printf("%dis10to99\n",x); elseif(x<1000)printf("%dis100to999\n",x); elseprintf("%dis>=1000\n",x); } 5.编程实现屏幕输出“九九乘法表”,要求以三角形形式输出。 (提示: 外循环变量i从1开始到9,内循环变量j从1开始到i)。 #include intmain(void) {inti,j; for(i=1;i<=9;i++) {for(j=1;j<=i;j++) printf("%1d*%1d=%2d\t",i,j,i*j); printf("\n"); } } 6.求3到M之间的全部素数,M为任意整数。 main() {intm,i; scanf("%d",&m); for(i=3;i<=m;i++); for(j=2;i%j&&j if(j==i) printf("%d",i); } 7.用公式e=1+1/1! +1/2! +1/3! +……+1/n! 求e的近似值,精度为1/n! <10-6。 main() { inti=1; floatp,t,e; t=1,e=0;p=1; while(t>=1e-6) {e=e+t; p=p*i; i++; t=1/p; } printf("e=%10.6f\n",e); } 8.从键盘输入一位整数,当输入数字0叶程序结束;当输入1~7时,显示下面对应的英文星期名称缩写。 1: MON 2: TUE 3: WED 4: THU 5: FRI 6: SAT 7: SUN #include intmain(void) {intx,max,min,i=0; printf("输入1~7整数,输入“0”束: \n"); while (1) {scanf("%d",&x); if(x==0)break; switch(x) { csae1: printf("MON");break; csae2: printf("THU");break; csae3: printf("WED");break; csae4: printf("THU");break; csae5: printf("FRI");break; csae6: printf("SAT");break; csae7: printf("SUN");break; } } } 第5章习题答案 一、选择题 1.C 2.B 3.D 4.C 5C 6.D 7.D 8.C 9.D 10.C 11.C 12.C 13.C 14.D 15.B 16.C 17.A 18.A 19.B 20.C 二﹑填空题 1.相同数据类型数据 行顺序 行顺序 2.数据名 3.行 列 4.随机值 0 5.‘\0’ 6.9 7.字符 和字符串 8.要STRING.H 9.首地址 三、判断题 1.错 2.错 3.对 4.对 5.对 6.对 7.错 8.对 9.对 10.错 四、问答题 1.什么是数组,为什么要引入数组? 数组是一种自定义数据类型,它是相同数据类型的数据有序集合,数组中的分量称为数组元素,对数组元素的操作处理通过数组下标进行。 正是因为数组元素具有序号这个特性,就可以解决许多基本数据类型无法解决的一些实际问题。 2.数组的初始化有哪几种方式? 1)定义数组时如果没有进行初始化,则数组元素的值为随机值。 但如果在定义数组时规定其存储类别为static或extern,则编译系统自动将没有初始化的数组元素赋默认初值为0。 2)在定义数组时对所有数组元素初始化。 3)可以只对数组中的部分元素初始化。 3.a[3],a[2+3],a[9-9],a[3/1.0],a[3.4] 4.179175 5.i=10+k;i>=j;i-- a[i+1]=a[i] 五、编程题 1.用冒泡排序法对输入的20个数进行降序排序并存入数组中。 然后输入一个数,查找该数是否在数组中存在,若存在,打印出该数在数组中对应的下标值。 #defineN 20 main() {inta[N],i,j,t,x; printf("\n请输入%d个待排序的数据,每个数据都以回车结束: \n",N);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)