c语言测试题及分析

这篇博客主要探讨了C语言中的逻辑运算符、位移运算、循环语句以及三目运算符的使用。讲解了如何正确理解和运用这些概念,并通过实例解析了它们在实际编程中的应用。同时,还提到了一些常见的陷阱和注意事项,如浮点值不能进行位操作,以及do-while循环体至少执行一次的特性。
摘要由CSDN通过智能技术生成

C语言2021-10-24
习题内容:
在这里插入图片描述
答案:ABD
A.或 (一个为1则为1)
B.异或 (不同为1,相同为0)
C.与 逻辑运算符(两边条件为真则真,是对条件操作,不是对位操作)
D.左位移
E.逻辑非
F.运算取余

在这里插入图片描述
答案:B
考查三目运算符。
题意为:如果M为真则返回’Y’,如果假则返回’N’。
注意:非0均为真,而不是只有等于1的时候为真,A为易错选项。

在这里插入图片描述
答案:AD
A.小数不允许向左位移
B.合法运算
C.允许这样计算 但是不常用
D.浮点值不可以进行位操作

在这里插入图片描述
答案:BC
A.do while循环语句的循环体至少执行一次
B.几种循环语句可以相互转换
C.continue可以出现在各种循环体内
D.可以出现在循环体中,作用是跳出循环

在这里插入图片描述
答案:B
考查前置++,和后置++的区别;还有三目运算符的计算。
i=0 ,a=0(先用i的值,再给i++)得到i=1;
b=++a (用的是a++后的结果) a=1赋值给b ,b=1;
c=a+b=2;
表达式的意思为:如果a为真则输出b否则输出c 由上述计算可知a为真故输出b=1; 在这里插入图片描述
答案:A
x^6 +4x^4 + 2x^3+x+1 = x^3( x^3+x+x+x+x)+x+1
x^ 3相当于2次乘法 括号内相当于是个1次乘法
总共3次乘法。
在这里插入图片描述
答案:D
本题细看实则与给出的21无关
1的二进制为0000 0001 向左位移五位:0010 0000 十进制为32
32-1=31。

在这里插入图片描述
答案:B
在编程中不允许连续去比较 所以本题中只能进行判断比较 先比较一部分 再比较后面那一部分
a=5>b=4 所以为真 进行下一次比较的前一值为1
c=3 1<3不满足所以进行到else if 中
c-1=2>=d(d=2)进行输出d+1=3。

在这里插入图片描述
答案:C
break关键词可以使用在循环中 不可以使用在if语句

在这里插入图片描述
答案:B
此题注意是判断赋值语句能否赋值成功,而不是i的值等于1
所以可以循环执行无线次。
在这里插入图片描述
答案:C
do-while的循环体至少无条件循环一次是本质区别。
在这里插入图片描述答案:BC
switch()中不允许的类型浮点型和字符串;允许整型数据
而布尔类型属于mini整型所以是允许的。在这里插入图片描述答案:C
考查进制的转换
在这里插入图片描述
答案:B
&& (且) 两边都为真
|| (或) 有一个为真则为真 后面不用执行
a=0,++a=1>0 为真
b=0,++b=1>0 为真,后面不用执行 c=0;
所以a++=2,b++=2,c++=1
在这里插入图片描述
答案:C
18^1+5=13 135=65
1*8^2+1=65
所以为八进制 在这里插入图片描述答案:A
取巧计算即可 计算最后一位 和第一位

在这里插入图片描述
答案:
a=1 < b=2为真返回 a=1

在这里插入图片描述
答案:D
代码中没有break 就一直执行switch赋值到最后 赋值为0 退出即可

在这里插入图片描述
答案:D
a=1,b=2,c=3
M(1+2,2+3,3+1)
执行定义:1+2*2+3+3+1=12。

在这里插入图片描述
答案:A
arr[3]=4,arr[7]=0
所以arr[3]*arr[7]=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mi ronin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值