习题参考答案与分析1.docx
- 文档编号:8420058
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:35
- 大小:39.77KB
习题参考答案与分析1.docx
《习题参考答案与分析1.docx》由会员分享,可在线阅读,更多相关《习题参考答案与分析1.docx(35页珍藏版)》请在冰豆网上搜索。
习题参考答案与分析1
第一章习题解答(李梅)
一、选择题
1—7:
BADCABC
备注:
2:
参考P8页中的标识符命名规则
3:
参考P8页中的表1.1
二、填空题
1:
编辑、编译、连接、运行
2:
.obj
3:
.exe
4:
编译
5:
文件
6:
【1】charch;【2】”%d\n”,ch
备注:
知识点参考P12页的C语言开发过程
三、编程题
备注
参考答案第2题有问题,注意数据类型转换:
比如语句hs=9/5*ss+32,其中9/5运算结果是1,是要的中间结果吗?
第二章习题解答(蔡晓妍)
一选择题
1.D(考查不同类型在内存中所占字节)
类型
长度/字节
short
2
int
4
char
1
float
4
double
8
unsignedchar
1
longint
4
2.D(这个内容跟我们没有多大关系)
3.A(考查不同类型数据的有效范围)
由表2.2可知,shortint的取值范围是-32768-32767
037是8进制数,相当于十进制数31
0xaf是十六进制数,相当于十进制数175
4.A(考查常数的表示方法)
A选项中:
xcdf没有这个表示方式,017为八进制数,0xe为十六进制数,123为十进制数
B选项中:
160为十进制数,0xffff为十六进制数,011为八进制数,0L表示长整数
C选项中:
01为八进制数,32768u为无符号整数,0617为八进制数,0x163为十六进制数
D选项中:
0x48a为十六进制数,0205为八进制数,0x0为十六进制数,-256为负数。
5.A(考查整型常数的表示方法)
6.A(考查无符号字符型的表示范围)
参见书中第25页的表2.2
7.D
这个题本身是有错的,D选项应该是少了一个单撇号,A选项的错误解释见24页
8.D
考查不同类型整数尾符的表示方法,前三个既可表示成整数,也可以理解为长整型,只有D才明确地由尾符L表示为长整型了。
9.B
(考查字符与整型数之间的转换,说明字符在内存中是以整型数的形式存放的)
参见P319页的“附录C:
ASCII代码表”
字符B的ASCII码值为66,字符E的ASCII码值为69,字符a的ASCII码值为97,字符A的ASCII码值为65,
所以,c2-c1=69-66=3,c2+’a’-‘A’=69+97-65=101,但由于按照%c的格式输出,所以ASCII码值101对应的字符为e。
10.C(考查不同数制型数据的转换与表示)
printf语句中的%d,意味着需要按照十进制整数形式打印出结果。
u=010为八进制数,转化为十进制数为
=8
v=0x10为十六进制数,转化为十进制数为
=16
w=10本身就是十进制数
11.C(同第9题)
12.B
这个题向我们展示这样一个道理,当我们向计算机表示不同进制数据时,我们必须按要求写上前导符,如0开头啊,0X开头什么的,但计算机向我们表示各种进制时是没有前导符的,除非我们自己设置。
k=15为十进制数,而在printf语句中,需要将该数分别用十进制数,八进制数以及十六进制数表示。
13.C(考查宏定义常数)
参见第28页“
(1)宏定义”相关内容
14.A(考符符号定义常数)
参见第28页“
(2)const定义”相关内容
15.B(考查scanf的数据输入)
参见第35页的一句话“当一个scanf()函数中包含若干个输入项或几个scanf()函数连续出现时,可以依次输入几个数据,各数据之间只能用空格、制表符或回车符分隔,其他符号都不能作为分隔符”。
选项B中,各数据是用逗号分隔的,所以错误。
16.B(考查点与第15题相同)
17.A(考查点与第15题相同)
18.B(考查点与第15题相同)
二填空题
1.2个字节,1个字节
“C”是字符串常量,由第25页的一句话“一个含有n个字符的字符串常量要占用n+1个字节的存储空间”,因此“C”占用的存储空间为1+1=2个字节
‘C’是字符常量,占用1个字节
2.#define标识符字符串
3.unsignedint,double,char
参见第22页“3.基本数据类型的扩展”
4.10,8,16
5.4
参见第23页的表2.2
6.stdio.h
7.0,%s
8.5.0,4,c=3
9.a=1,b=2
三编程题
1.将100按不同进制输出
#include
voidmain()
{
inta=100;
printf("%o,%d,%x\n",a,a,a);
}
本题考查的是对整数的不同输出格式控制。
2.输入一个实数,按不同的格式输出。
#include
voidmain()
{
floata;
scanf("%f",&a);
printf("%.2f,%.2e\n",a,a,a);
}
本题考查的是对实数的不同输出格式控制,但本题有点小问题,作者没有搞清楚什么是有效数字,应该改为保留两位小数。
3.按不同形式输出一个字符。
#include
voidmain()
{
charch1='a',ch2='a';
printf("%c,%d,%o,%x\n",ch1,ch1,ch1,ch1);
printf("%c,%d,%o,%x\n",ch2,ch2,ch2,ch2);
}
本题没什么意义,只需要用一个变量就可以了,考查的是对字符型数据的不同格式输出。
第三章习题解答(陈勇)
一、选择题
1.C,考查运算符运算规则
2.DC,考查C语言中的数据类型自动转换
3.A,这种题可以给两个变量任意赋个整数,然后代入表达式计算,根据计算结果来选择。
4.C,这种题将a,b分别赋值为5,7和7,5根据结果选择。
5.C,考查运算符运算特点
6.C,A、B中第二个赋值号左侧不是一个变量,而是一个表达式,右侧的值不可能赋给一个表达式;D中第二个赋值号左侧是常量7,一个变量的值不可能赋给一个常量。
7.C,sqrt函数返回值是double类型。
8.B,--、++的赋值特点
9.A,复合赋值运算符的特点
10.C,强制类型转换
11.B,同9题
12.D,同第6题
13.D,同9题
14.C,同第9题
15.C,给两变量代入两个值算一下即可。
16.A,B中%两侧必须是整数,C中2不能赋给a*3,D中强制类型转换错误
17.A,同9题
18.C,“/”两侧为整型数时,计算结果也是整型数。
19.B,那个赋值表达式可以改写为:
a=2+(c=c+(c++,c+8,++c));
其中:
(c++,c+8,++c)是一个逗号表达式,运算从左到右,表达式最后的值为最后一个表达式的计算结果,这三个互不相关,但因为++c是先+再用,c++是先用后加(这里所谓的后加是指整个表达式运算结束后再自加),所以,C初值为5,++C后变成6,原表达式变为:
a=2+(c=6+6),即a=14
20.A,printf中涉及两个逗号表达式,逗号表达式的结果为最后一个表达式的值,所以前者为a的值,后者为a+b的值。
21.B,&&运算符连接多个表达式时,从左向右只要有一个表达式值为0,后面表达式都不再运行。
22.A,不解释
23.C,不解释
24.D,不解释
25.C,原因同21
26.A,不解释
27.C,++,--运算规则
28.C,因为计算结果是一个整数。
二、填空题
1.double
2.2,a++*1/5相当于两个语句,a*1/5;a++;
3.0.0,因为整型变量a的值为1。
4.666.06.7,高级别的数据类型向低级别类型变量赋值引起数据丢失。
5.5,4,c=3,scanf中的格式控制符中如果加入了其它符号,输入时必须原样输入。
6.1
7.a==0
8.0
9.6
10.x=2,y=1,这是一种不借助第三个变量交换两个变量值的方法,尽管很变态。
三、编程题
见习题答案。
不解释。
第四章程序流程控制(韩宏)
一、选择题
15.该程序的功能是输出1-50内能同时被2、3、7整除的数。
所以选择“D”。
17.该程序的功能是对输入的字符串中的大写字母转换成小写字母,而小写字母转换成大写字母。
所以选择“B”。
18.相当一部分同学可能会选择“D”,主要是没有注意while后的表达式a=14,也就是说第二次循环时,变量a的值是14,而不是12,所以结果是“B”。
三、编程题
1.从键盘输入100个整数,从中找出最大数和最小数。
编程思想:
假设最大数是max,最小数是min。
当只有一个数时,它既是最大数又是最小数,所以当输入第一个数时,它既是最大数又是最小数,以后每输入一个数,都与最大数max和最小数min进行比较,如果大于max,就赋给max;否则如果小于min,就赋给min。
最后所有数据都比较完,max就是所有数中最大数,min就是所有数中最小数。
#include
Voidmain()
{
inti,a,max,min;
scanf(”%d”,&a);//输入第一个数
min=a,max=a;//令第一个数既是最大数又是最小数
for(i=2;i<=100;i++)//从第二个数开始与最大数和最小数比较
{
Scanf(”%d”,&a);
If(min>a)min=a;//如果比最小数还小,此数作为最小数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 参考答案 分析