第 12 届蓝桥杯 C++ 青少组中 / 高级组省赛 2021 年 4 月 24 日真题(选择题)

第 1 题 单选题

题目:在 C++ 中下列哪个不属于字符型常量 ( )。
A. ‘a’
B. ‘\x2A’
C. ‘@’
D. “F”

答案:D

解题思路:字符型常量使用单引号括起单个字符(如 A、C),或转义字符(如 B 中的十六进制转义字符)。D 选项 “F” 使用双引号,属于字符串常量,而非字符型常量。

第 2 题 单选题
题目
:以下变量定义不正确的是 ( )。
A. int a=8, b, c;
B. float c=1.233;
C. int if;
D. char d='i';

答案:C
解题思路:C 选项中 “if” 是 C++ 的关键字(用于条件判断),不能作为变量名。其他选项均符合变量定义规则:A 定义多个整型变量;B 定义浮点型变量并初始化;D 定义字符型变量并赋值。

1.A定义了多个整数型变量

2.B定义了浮点型变量并初始化

3.C中 “if” 是 C++ 的关键字(用于条件判断),不能作为变量名

4.D定义了字符型变量并赋值

第 3 题 单选题

题目:已知 “int n=9;”,则执行语句 “n*=n+=n%=2;” 后,n 的值为 ( )。
A. 4
B. 1
C. 8
D. 18

答案:A

解题思路:运算符优先级从右到左(赋值运算符结合性为右结合):

1.n%=2,为9%2=1

2.n+=1,为1+1=2

3.n*=2,为2*2=4

第 4 题 单选题

题目:二进制加法 11010 + 10110 的和为 ( )。
A. 110000
B. 11000
C. 101110
D. 111010

答案:A

解题思路(共两种):

第一种:先将11010和10110转换为十进制数

11010=1*2^4+1*2^3+0*2^2+1*2^1+0*2=16+8+2=26

10110=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0=16+4+2=22

26+22=48,再将48转换为二进制

48/2=24 余0

24/2=12 余0

12/2=6 余0

6/2=3 余0

3/2=1 余1

1/2=0 余1

倒序排列:110000

第二种:二进制逐位相加(逢二进一):

  11010(26)  
+ 10110(22)  
= 110000(48)  

计算过程:最低位 0+0=0,次低位 1+1=10(写 0 进 1),第三位 0+1+1=10(写 0 进 1),第四位 1+0+1=10(写 0 进 1),最高位 1+1+1=11(写 1 进 1),最终结果 110000

第 5 题 单选题
题目
:C++ 中函数的返回值类型是由 ( )。
A. 调用该函数的主调用函数类型决定的
B. return 语句中的表达式类型决定的
C. 定义该函数所指的数据类型决定的
D. 系统自动决定的

答案:C
解题思路:函数定义时声明的返回值类型(如int func()中的int)决定了函数的返回值类型。return语句的表达式会被强制转换为该类型,与调用函数无关,选 C。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值