第 13 届蓝桥杯 C++ 青少组省赛中 / 高级组 2022 年真题(选择题)

发布于:2025-08-11 ⋅ 阅读:(38) ⋅ 点赞:(0)
第 1 题

题目:已知char a; float b; double c;,执行语句c = a + b + c;后变量c的类型是( )。
A. char B. float C. double D. int

答案:C
解题思路:

1.因为在 C++ 中,表达式运算会进行类型提升,所以a(char)+b(float)char变为float类型

2.float再与c(double)相加,float变为double类型,所以最后c的类型为double

:不同类型运算时,低精度类型向高精度类型提升(char→int→float→double)

第 2 题

题目:以下对main函数描述正确的是( )。
A. main函数必须写在所有函数的前面
B. main函数必须写在所有函数的后面
C. main函数可以写在任何位置,但不能放到其他函数里
D. main函数必须写在固定位置

答案:C

解题思路:

1.C++ 中,main函数是程序的入口,但没有规定其必须位于代码的特定位置

2.main函数它可以写在其他函数之前或之后,但不能被其他函数包含(即不能在某个函数内部定义main),所以选项 A、B、D 均错误,C 正确

第 3 题

题目:二进制数1101111转换为十六进制是( )。
A. 157 B. 111 C. 6f D. 3f

答案:C

解题思路:

二进制转十六进制需从右到左每 4 位分组(不足补前导 0):

1.1101111 → 补前导 0 为0110 1111

2.0110转成十进制为6,对应十六进制的6

3.1111转换成十进制为15,对应十六进制的f(10 A,11 B,12 C,13 D,14 E,15 F)

4.得出结果6f

第 4 题

题目:下列函数中哪一个不能重载( )。
A. 构造函数 B. 析构函数 C. 成员函数 D. 非成员函数

答案:B

解题思路:

函数重载要求函数名相同,参数列表不同

1.析构函数的名称固定为~类名(),且没有参数,无法通过参数列表区分,因此不能重载

2.构造函数可以重载(不同参数列表),成员函数和非成员函数也可以重载

第 5 题

题目:下列指针的用法中哪一个不正确( )。
A. int i; int *p = &i;
B. int i; int *p; i = *p;
C. int *p; p = 0;
D. int i = 5; int *p; p = &i;

答案:B

解题思路:

1.选项 A:正确,指针p指向变量i的地址。

2.选项 B:错误,指针p未初始化(未指向有效地址),解引用*p会导致未定义行为(野指针)。

3.选项 C:正确,p = 0等价于p = nullptr,表示空指针。

4.选项 D:正确,指针p指向变量i的地址。

int *p;是创建一个整数型指针变量p

p=0;是将p初始化

&i是变量i在内存中的地址


网站公告

今日签到

点亮在社区的每一天
去签到