第 2 章数据类型和运算符习题及解答
一.选择题。
下列是用户自定义标识符的是
A)_w1B)3_xyC) intD) LINE-3
答案: A
解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,
由此可见选项B), D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int
是C语言的关键字。
2.C 语言中最简单的数据类型包括
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、字符型、逻辑型D)字符型、实型、逻辑型
答案 :B
解析:
本题考查
C 语言的数据类型。在
C 语言中,没有专门的逻辑型数据类型,可以用
0和1来表
示逻辑值。所以,在本题的选择答案中,不应该包括逻辑型。
3. 假定 int
类型变量占用两个字节,其有定义:
intx [ 10] ={0,2,4};
,则数组 x 在内存中所占字节数
是
A)3
B
)6
C
)10
D
)20
答案: D
解析:
x 数组共有
10 个元素,在花括弧内只提供
3 个初值,这表示只给前面的
3 个成员赋值,后
7
个元素的值为
0,所以,一共有
20 个字节。
以下选项中不正确的实型常量是
A)1.607E-1B)0.7204eC)-77.77D)234e-2
答案 :B
解析:实型常量表示时字母E 或 e 前必须有数字,其后数字必需为整数,故
5. 若变量已正确定义并赋值,以下符合C语言语法的表达式是
A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b
B 错。
答案 :B
解析:
为两个表达式
选项 A)中包含一个不合法的运算符“:= ”;选项 C)应改为( int )18.5%3;选项 D)可理解
:a+7=c+b 和 a=a+7,其中第一个是错的,因为C 语言规定赋值号的左边只能是单个变量,不
能是表达式或常量等。因此,正确答案是选项
B),它实际上相当于
a=( b=c+2), 进而可分解为两个表达
式: b=c+2 和 a=b。
下列可用于 C语言用户标识符的一组是
A)void, define, WORDB)a3_b3, _123,Car
C)For, -abc, IF CaseD)2a, DO, sizeof
答案 :B
解析: C 语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划
线,排除选项C)和 D)。C 语言中还规定标识符不能为C 语言的关键字,而选项A)中 void 为关键字,故
排除选项 A)。
7.C 语言中运算对象必须是整型的运算符是
A)%=B)/C)=D)<=
答案 :A
解析: C 语言规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含 %运算,它的运算
对象也必须是整型。
若变量 a,i 已正确定义 , 且i 已正确赋值,合法的语句是
A)a= =1B)++i ;C) a=a++=5;D)a=int ( i ) ;
答案 :B
解析: 选项 A 是一个表达式, 因为缺少分号,所以不是语句; 选项 C)包含一个不合法的运算符“ ++=”;选项 D)应改为 a=(int )i; 。
设x,y 和 z都是 int 型变量,且 x=3 ,y=4, z=5,则下面表达式中,值为 0的表达式是
A)x&&yB)x<=yC
)x||++y&&y-zD)! (x
答案: D
解析:该题考查逻辑与“
&&”和逻辑或“
|| ”以及逻辑非“
! ”符号的用法。选项
A)即
3&&4为真,
选项 B)即 3<=4 为真,选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将
直接停止执行逻辑或右半部分程序,因为x 的值为真,此时选项C)变为 1&&-1 为真。选项D)不用计算,
括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算得0。
10. 有以下程序
main()
{int i=1,j=1,k=2;
if (( j++||k++)&&i++ )
printf("%d,%d,%d\n",i,j,k) ;
}
执行后输出结果是
A)1,1,2B
)2,2,1
C
)2,2,2
D
)2,2,3
答案 :C
解析: 该题目的关键是要搞清楚“
&&”和“ ||
”两个逻辑运算符的运算功能。
运算符“
&&”和“ ||
”
是双目运算符,要求有两个运算