C语言错题集

写在前面,一些题目分析,不全都是错的题目

C语言运算符与表达式的练习题

(2)   以下选项中,___D__是不正确的 C 语言字符型常量。 
	A. 'a'        B. '\x41'       C. '\101'       D. "a" 

解: 首先来分析下题目,C语言字符型常量是什么,字符型常量是用单引号括起来的变量,而字符串才是使用双引号括起来的;

(5)   算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为___B__。 
	A.  算术运算、赋值运算、关系运算     B.  算术运算、关系运算、赋值运算 
	C.  关系运算、赋值运算、算术运算     D.  关系运算、算术运算、赋值运算 

赋值运算的优先级是最低的,他们的优先级为:算术运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符
自我总结口诀:算关系为逻辑赋值

(6)   逻辑运算符中,运算优先级按从高到低依次为____D____。 
	A. &&,!,||     B. ||,&&,!     C. &&,||,!    D. !,&&,||

在逻辑运算符中,"非"的优先级大于 “与"和"或”

(7)   表达式!x||a==b 等效于____D___。 
	A. !((x||a)==b)      B. !(x||y)==b      C. !(x||(a==b))     D. (!x)||(a==b)

赋值优先级比较低,所以先计算逻辑运算符,且逻辑运算符中"非"的优先级大于 “与"和"或”
所以这个表达式等价于选项D

(8)   设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是____B____。 
	A. 0,0     B. 0,1    C. 1,0    D. 1,1

根据&&运算逻辑,符号前的表达式如果为假,则不执行符号后面的语句所有答案为0 1

(10) 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;  后,变量 a 的值是____B____。 
	A. 3      B. 0     C. 9     D. -12 

运算优先级先算乘除后算加减
a*=a;可以写作a=a*a,同理a-=a;等于a=a-a;
a-a之后等于0所以0+0还是等于0;

(12) 设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是___13___。  
	A. 6      B. 12     C. 15     D.  表达式出错

正常运算步骤为(2++)+(3++)+(4++) 得出结果为12
但如果进行内存对齐的话就会是三个5相加为15
但系统会先进行对齐相加运算,结果为4+4+5然后等于13

(16) 设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是_____A_____    。 
	A. 10<a<15         B. a= =11|| a= =12 || a= =13 || a= =14 
	C. a>10 && a<15    D. !(a<=10) && !(a>=15) 

不能直接以数学表达式的方式写表达式

(17) 设 f是实型变量,下列表达式中不是逗号表达式的是_____D____    。 
	A. f= 3.2, 1.0      B. f>0, f<10      C. f=2.0, f>0      D. f=(3.2, 1.0)

这些选项都是错的,不能编译执行,但严格一点的话,只有D不是逗号表达式,因为他赋值和逗号结合在一起了

(18) 设ch是 char型变量,其值为 'A',则下面表达式的值是____B____      。  
	ch=(ch>='A'&& ch<='Z')? (ch+32):ch  
	A. A     B. a     C. Z     D. Z

这个表达式的作用是判断ch这个char类型变量是否为同时大于字符A和小于字符Z,题目的结果为符合条件,表达式为真执行ch+32,所以其作用是把大写字符转换为小写字符

(19) 以下运算符中,结合性与其他运算符不同的是  _____A____     。 
	A. ++        B. %        C. /         D. + 

后面三个选项为加减乘除算术运算符,只有选项A为自增运算符,所以选A

(20) 以下用户标识符中,合法的是___B_______      。 
	A. int        B. nit        C. 123       D. a+b 

A为系统关键字重名
C不能以数字开头
D不能有加号
所以选项B是正确的

(21) C 语言中,要求运算对象只能为整数的运算符是____A____      。 
	A. %        B. /         C. >         D. * 

只有取余必须要使用整数

(22) PC 机中,'\n'在内存占用的字节数是 ____A____     。 
A. 1     B. 2     C. 3     D. 4 

\n为一个整体,一个转义字符,所以占用一个字节

(23) 字符串"ABC"在内存占用的字节数是____B_____      。 
	A. 3     B. 4     C. 6     D. 8 

因为是字符串所以系统默认在末尾会有一个\0 所以字符串ABC占用为4个字节

(24) 要为字符型变量 a赋初值,下列语句中哪一个是正确的 ____B_____     。 
	A. char a="3";   B. char a=’3’;     C. char a=%;      D. char a=*; 

A 3不是字符串
C 没有用单引号括起来
D 同上
所以B选项是正确的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值