=========================================================================
更多内容和历年真题请查看网站:【试卷中心 -----> 蓝桥杯 ----> C++----> 省赛】
青少年软件编程历年真题模拟题实时更新
=========================================================================
2025年第十六届蓝桥杯青少组省赛 C++编程 中级组真题
一、选择题
第 1 题 单选题
下列C++运算符中,优先级最高的是( )。
A.+
B.-
C.*
D.=
答案 C
解析
在C++运算符优先级里,乘法运算符(*)属于算术运算符,其优先级高于加法(+)和减法(-)运算符,而赋值运算符(=)的优先级低于所有算术运算符。因此,在提到的几个运算符中,乘法运算符的优先级最高,选C。
第 2 题 单选题
运行c++语句 cout << (char)('F'+4);的结果是( )
A.I
B.J
C.k
D.J
答案 D
解析
在在ASCII编码中,字符'F'对应的值为70。执行'F'+4即计算70+4=74。74对应的ASCII字符是'J',通过(char)强制类型转换输出该字符,因此结果为J,答案选D。
第 3 题 单选题
运行以下c++程序,输出的结果是( )。
int i =1, t =0;
while(i * i <30){
t +=1;
i +=2;
}
cout << t;
A.3
B.4
C.9
D.16
答案C
第 4 题 单选题
运行以下c++程序,输出的结果是( )。
intfunc(int y){
y -=5;
cout <<"x";
return0;
}
intmain(){
int x =10, y =5;
if(x > y ||func(y))
cout << y;
return0;
}
A.X0
B.X5
C.5
D.0
答案 C
解析
在main函数中的if条件x>y||func(y),
在main函数中的if条件x>y||func(y),已知x=10,y=5,表达式x>y(10>5)结果为真。
逻辑或运算符||具有短路特性:当左操作数为真时,右操作数func(y)不再执行。
因此,if条件整体为真,执行cout<<y;,输出y的值5,选C。
第 5 题 单选题
关于C++中的new和delete关键字,以下说法错误的是( )。
A.使用new int[10]分配的数组内存必须使用delete[]释放
B.int*p=new int;语句中分配的整型内存默认会被初始化为0
C.对空指针(nullptr)使用delete是安全的,不会引发错误
D.new在内存分配失败时默认输出std::bad_alloc异常,而非返回空指针
答案B
解析
选项A正确。在C++中,使用new[]分配的动态数组内存,需用 delete[]释放,才能确保正确调用每个数组元素的析构函数并释放全部内存。
选项B错误。语句int*p=new int;分配的单个整型内存,其内容是未初始化的,其值为未定义(通常为内存残留值),并非默认初始化为0,所以说法错误。
选项C正确。C++标准明确规定,对空指针(nullptr)使用delete 是安全的操作,不会引发错误或未定义行为。
选项D正确。默认情况下,new在分配内存失败时会抛出 std::bad_alloc异常;若要使其返回空指针须用nothrow形式(如:new(std::nothrow) int;)。
二、编程题
第 6 题
庆典队列
题目描述
有n名志愿者参加了一场庆典活动,我们希望将这些人排成一个矩形队列,要求队列共有A行,且每一行的人数都要相等。请计算每一行最多有多少名志愿者。
注意:不一定要将所有的志愿者都安排进队列。例如:n=50,A=11,表示要将50名志愿者排成一个11行的矩形队列,那么每一行最多能安排4名志愿者。
输入描述
输入两个整数n和A(2≤n≤500,2≤A≤n),分别表示志愿者人数以及矩形队列的行数,整数之间以一个空格隔开。
输出描述
输出一个整数,表示矩形队列的每一行最多有多少名志愿者。
样例输入
50 11
样例输出
4
=========================================================================
更多内容和历年真题请查看网站:【试卷中心 -----> 蓝桥杯 ----> C++----> 省赛】
青少年软件编程历年真题模拟题实时更新
=========================================================================