第2章 习 题
1.指出下面哪些是合法的标识符?
A. 1_x B. int C. ABC D. i_10
E. sum.a F. ?c G. _stu H. abc d 答:
C D G
2.C语言的数据类型有哪些? 答:
C语言规定的数据类型较多,通常我们可以将其分为五大类:简单类型、构造类型、指针类型、枚举类型和空类型,其中简单类型包括整型、实型和字符型,构造类型包括数组、结构体和共用体。C语言的数据类型分类如图所示。
3. 下面是一段程序: #define N 10 int main() {
}
在这段程序中,常量有哪些? 答:
20 30 N
4.下面哪些写法是正确的,而且是常量?
int iSum;
sum = (20 + 30) / N; printf(\printf(\return 0;
数据类型 构造类型 简单类型 整型 实型 字符型 数组 结构体 共用体 指针类型 枚举类型 空类型 单精度实型 双精度实型 A. 12 B. -.345 C. 1.23e4 D. 'OPQ'
E. E10 F. 0678 G. 0xabcdef H. \答:
A B C G H
5.下面哪个表达式的值为5?
A. 19/4 B. 19.0/4
C. (float)19/4 D. (int)(19.0/4+0.5) 答:
D
6.指出下面的表达式中,哪些是错误的? (1)a+b=5 (2)56=a11 (3)i=i++ (4)12
(5)a=5,b=6,c=7 答:
(1) (2)
7.计算下列表达式的值。已知int型变量a = 5,b = 6,c = 7,char型变量ch = ’0’,float型变量f = 2.1。 (1)(a-b*2)/3 (2)3.2*(a+b+c) (3)ch+a+f
(4)a+b%3*(int)(b+c)%3/6 答:
(1)-2 (2)57.60000 (3)55.10000 (4)5
8.写出下面表达式运算后x的值。设x定义为整型变量,其初值为10。 (1)x+=10 (2)x-=10 (3)x*=5+10 (4)x/=x+x (5)x+=x-=x*=x (6)x+=x-=x*x 答:
(1)20 (2)0 (3)150 (4)0 (5)0 (6)-180
9.设int型变量a=3,b=4,c=5,则表达式((a+b)>c)&&(b==c)&&a||b+c&&b+c的值是( )。
A. 0 B. 1 C. 2 D. 3 答:
B
10.如果int型变量i=1,j=2,k=3,l=4,则条件表达式i A 11.字符常量与字符串常量有什么区别? 答: 用一对单引号括起来的单个字符称为字符常量。字符常量有两种:一般字符常量和特殊字符常量。例如:’a’就是一个字符常量。用一对双引号括起来的字符序列称为字符串常量。例如”ChangChun”就是一个字符串常量。 两者的区别: (1)定界符不同,字符常量用单引号,字符串常量用双引号。(2)一般来说,字符常量仅能表示单个字符,字符串常量可以表示多个字符。(3)转义字符是字符常量而不是字符串常量。 12.C语言为什么要规定对所有用到的变量要“先定义,后使用”?这样做有什么好处? 答: C语言变量遵循“先定义,后使用”的原则,即变量在使用前,都要求先对其数据类型进行定义。因为在变量定义时,系统会对变量分配固定的内存,然后按照变量名对其进行访问。这样做有如下好处:(1)便于系统对内存空间的管理与使用 (2)通过事先分配内存空间提高程序的运行效率。 13.简述转义字符的用途并举实例加以说明。 答: 通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,其主要用法有以下三个方面: (1)表示字符常量的单撇号(’)、用于表示字符串常量的双撇号(”)和反斜杠(\\); (2)用反斜杠(\\)后面跟某些特定字符表示不可打印的控制字符和特定功能的字符; (3)用反斜杠(\\)后面跟一个八进制或十六进制数表示任意字符,其中八进制或十六进制数表示要表示字符的对应ASCII码值。 例如:’\\n’表示换行操作,’\\\\’表示要输出一个反斜杠“\\”。 14.在C语言中如何表示逻辑值“真”和“假”?如何判断一个运算量的“真”和“假”? 答: 在C语言中用整型值0和1表示逻辑值“真”和“假”,其中逻辑值“真”用1表示,逻辑值“假”用0表示。 判断一个运算量的“真”和“假”的方法是:非0为真,0为假。 15.写出完成下列要求的C语言的合法表达式。 (1)已知半径r ,计算球的体积V; (2)已知3条边长度a、b、c,计算三角形面积S; (3)已知上底a、下底b和高h,计算梯形面积S。 答: (1)V = (3/4)*3.14*r*r*r (2)l = (a + b + c) / 2, S = sqrt((l - a)*(l - b)*(l - c)) (3)S = (a + b) * h / 2 思考题 若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实现将f中的数值保留小数点后两位,第三位进行四舍五入的运算? A. f = (f*100+0.5)/100.0; B. i = f*100+0.5,f=i/100.0; C. f = (int)(f*100+0.5)/100.0; D. f = (f/100+0.5)*100.0; 答: B C

