1
C语言程序设计
1.3.10 习 题 二

习 题 二

2.1 C语言中的数据类型主要有哪些?

2.2 C语言为什么要规定对所有用到的变量“先定义后使用”?这样做有什么好处?

2.3 下面哪些是合法的常量?

123,3.1415926,0892,'M','\n',0xabc,0.618E−6,"Morning!",3.8e-3.14

2.4 字符常量和字符串常量有什么区别?下述字符串常量的长度各是多少?在内存中存储时各自占用的内存单元数又是多少?

(1)"Hello!"     (2)"ABC\n\\TH\064\?"

2.5 在ASCII字符集中,字母C的ASCII码值是67,以下程序的输出结果是什么?

img182

img183

2.6 写出以下程序运行的结果:

img184

2.7 下列对变量进行定义的语句哪些正确?哪些不正确?为什么?请将不正确的改正过来。

(1)char cl,int a2;(2)INT a,b;FLOATx,y; (3)a,b: char; (4)char if;

(5)int a,b (6)Int a:b:c; (7)int a,x; float x,y;

2.8 写出下面程序的输出结果:

img185

2.9 分析下面程序的运行结果,并上机予以验证。

img186

程序中char i='a';char j='b';char k='c';char m='\101';char n='\116';

这几个语句能否改成如下形式:

int i='a';int j='b'; int k=99;int m='\101';int n='\116';

为什么?

2.10 求下列表达式的值:

(1)假设x=5.6,a=8,y=12.3

x+a%5*(int)(x+y)%3/5

(2)设a=21,b=30,x=4.2,y=8.4

(float)(a+b)/6+(int)x%(int)y

2.11 若x=13,y=20,z=4,下列各表达式的结果是什么?

(1)(z〉=y〉=x)?1:0

(2)z〉=y&&y〉=x

(3) !(x〈y)&&!x||z

(4) x〈y?x++:++y

(5) z+=x〉y?x++:++y

2.12 用C语言描述下列命题:

(1)i小于j或小于k。

(2)i和j都小于k。

(3)i和j中有一个小于k。

(4)i是非正整数。

(5)i是奇数。

(6)i不能被j整除。

2.13 用条件表达式描述:

(1)取三个数中的最大值。

(2)任意两个整数存放在变量m和n中,让小数存放在m中,大数存放在n中,并输出大数。

2.14 分析下面程序的运行结果,并上机予以验证。

img187

img188

2.15 用下面的scanf函数输入数据,为了使i=40,j=78,k=56.89,m=2.3,c1='R',c2='T',请问在键盘上如何输入?

img189

2.16 用下面的scanf函数输入数据,为了使a=50,b=18,x=2.89,y=−21.3,z=89.2,c1='A',c2='B',请问在键盘上如何输入?

  scanf("%5d%6d%c%c%f%f%*f%f",&a,&b,&c1,&c2,&x,&y,&z);

2.17 找出下面程序中的错误,并予以分析。

img190

2.18 以下语句的输出应是什么?

img191

可选答案是:

(1)10  (2)11  (3)12  (4)13

2.19 已知在ASCII代码集中,字母A的序号是65,以下程序输出结果是什么?从以下可选答案中选择你认为正确的一个:

img192

(1)66,89

(2)67,88

(3)67,89

(4)B,Y

(5)C,X

(6)输出格式不合法,输出错误信息

2.20 以下程序的输出结果是什么?从可选答案中选择一个。

img193

可选答案:

(1)99,101 (2)63,100 (3)63,101 (4)077,100

2.21 分析下面程序的运行结果:

img194

img195

2.22 编写一个程序,求出给定半径r的圆的面积和周长,并且输出计算结果。r的值由用户输入,用浮点型数据处理。

2.23 已知华氏温度与摄氏温度之间的转换公式是:

C=5/9×(F− 32)

编写一个程序,将用户输入的摄氏温度转换成华氏温度,并予以输出。

2.24 编写一个程序,输入年利率I(例如2.52%),存款总额S(例如100 000元),计算一年后的本息合计并输出。