2026算法应用主题赛初赛-小学4-6组(c++)试卷(含答案+详细解析)

一、单选题(10 题,每题 5 分,共 50 分)

第 1 题(5 分)

执行for(int k=5; k>=1; k--) { cout << k; }后,屏幕输出为?

A. 5432

B. 01234

C. 54321

D. 12345

答案:C
解析:循环从k=5开始,每次减1,直到k=1停止,依次输出 5、4、3、2、1。


第 2 题(5 分)

如果一个正整数 a,既是 8 的倍数,又是 24 的约数,它的 C++ 表达式应该如何表示?

A. 8 % a == 0 && 24 % a == 0;

B. a % 8 == 0 && 24 % a == 0;

C. 8 % a == 0 && a % 24 == 0;

D. a / 8 == 0 && 24 / 8 == 0;

答案:B
解析 :a是8的倍数 → a%8==0;a是24的约数 → 24%a==0,用&&连接。


第 3 题(5 分)

在 C++ 中,变量char grade = 'A';中,grade 存储的数据类型是?

A. int

B. double

C. char

D. bool

答案:C
解析char是字符类型,专门存储单个字符(如字母、符号)。


第 4 题(5 分)

执行代码int a; cin >> a;时,若从键盘输入 50 后按回车,变量 a 的值为?

A. "50"

B. 50

C. 0

D. '5'

答案:B
解析int是整数类型,cin输入数字会直接存储为整数 50。


第 5 题(5 分)

阅读以下代码,屏幕最终输出为?

cpp 复制代码
int n =40;
if(n >=60) cout <<"Pass";
cout <<"Over";

A. PassOver

B. Over

C. Pass

D. 无输出

答案:B
解析 :n=40不满足≥60,不输出Pass;第二行cout不受if限制,一定会输出Over。


第 6 题(5 分)

若要存储一个班的学生人数(如 48 人),最合适的变量数据类型是?

A. char

B. int

C. bool

D. double

答案:B
解析 :人数是整数 ,用int整型最合适;char存字符、bool存真假、double存小数。


第 7 题(5 分)

判断一个整数 n 是否为偶数的正确 C++ 表达式是?

A. n % 2 == 1

B. n % 2 == 0

C. n != 2

D. n / 2 == 0

答案:B
解析 :偶数能被2整除,余数为0 → n%2==0


第 8 题(5 分)

表达式17 / 5在 C++ 中的计算结果是?

A. 3.4

B. 2

C. 3.0

D. 3

答案:D
解析:整数÷整数=整数,C++会直接舍去小数,17÷5=3。


第 9 题(5 分)

阅读以下代码,程序运行后的输出结果是?

cpp 复制代码
int b[5]={3,8,15,6,10};
int total =0;
for(int i=0; i<5; i++){
    if(b[i]>5&& b[i]%2!=0){
        total++;
    }
}
cout << total;

A. 3

B. 0

C. 2

D. 1

答案:D
解析 :条件:大于5 是奇数。

数组:3(否)、8(否)、15(是)、6(否)、10(否)→ 只满足1个,total=1。


第 10 题(5 分)

已知int data[5] = {3, 6, 9, 12, 15};,执行cout << data[2];后,屏幕输出为?

A. 9

B. 12

C. 3

D. 6

答案:A
解析:数组下标从0开始,data0=3,data1=6,data2=9。


二、多选题(5 题,每题 5 分,共 25 分)

第 1 题(5 分)

阅读以下 C++ 代码片段,下列说法正确的有?

cpp 复制代码
int d[5]={10,20,30,40,50};
int s =0;
for(int i=0; i<5; i++){
    if(d[i]%4==0){
        s += d[i];
    }
}
cout << s;

A. 表达式d[i] % 4 == 0用于判断di是否为 4 的约数

B. 循环结束后,变量s的值为 60

C. 代码的功能是计算数组中所有 4 的倍数元素之和

D. 数组d中下标为 2 的元素值是 30

答案:BCD
解析

A错误:是判断4的倍数 ,不是约数;

B正确:20+40=60;

C正确:求和符合描述;

D正确:d2=30。


第 2 题(5 分)

关于 C++ 中 while 循环的特点,下列说法正确的有?

A. while 循环特别适合处理不知道循环次数的场景

B. 若 while 条件始终为 true 且循环体不改变条件,将导致死循环

C. while 循环语法中包含初始化、条件、更新三个表达式

D. while 循环属于先判断条件再执行循环体的结构

答案:ABD
解析

C错误:三个表达式是for循环的结构;

ABD均为while循环正确特点。


第 3 题(5 分)

int n = 10;,执行下列语句后,n 的值变为 15 的有?

A. n = n + 5;

B. n -= 5;

C. n *= 2;

D. n += 5;

答案:AD
解析

A:10+5=15;

D:n+=5等价于n=n+5=15;

B=5,C=20。


第 4 题(5 分)

已知bool p = false, q = true;,下列逻辑表达式结果为 false 的有?

A. p && q

B. p || q

C. !p

D. !q

答案:AD
解析

A:假&&真=假;

D:!真=假;

B=真,C=真。


第 5 题(5 分)

在遍历或查询一维数组时,下列操作可能导致程序运行错误或逻辑异常的有?

A. 按照 0 到 n-1 的顺序依次访问元素

B. 循环条件误写为i <= n(n 为数组长度)

C. 在循环体外一次性打印整个数组名

D. 使用 0 作为数组下标进行访问

答案:BC
解析

B:越界访问,程序崩溃;

C:不能直接打印数组名,只会输出地址;

A、D是正确用法。


三、判断题(5 题,每题 5 分,共 25 分)

第 1 题(5 分)

在 C++ 程序中,若表达式a % b的结果为 0,则说明 a 是 b 的倍数。
答案:正确
解析:余数为0,代表a能被b整除,a是b的倍数。


第 2 题(5 分)

若要统计一维数组中满足特定条件的元素个数,通常需要将 for 循环体嵌套在 if 分支语句内部。
答案:错误
解析 :应该是if写在for里面,不是for嵌套在if里。


第 3 题(5 分)

在 for 循环嵌套中,外层循环变量每变化一次,内层循环都会重新从初始值开始,完整执行一遍。
答案:正确
解析:嵌套循环执行规则:外层走一次,内层跑一圈。


第 4 题(5 分)

while 循环在执行循环体之前,不需要先判断循环条件是否成立。
答案:错误
解析 :while是先判断,后执行,条件不成立直接不运行。


第 5 题(5 分)

在 C++ 中,cout << "Hello" << 2024;会在屏幕上输出Hello2024。
答案:正确
解析cout可以连续输出,字符串和数字直接拼接显示。

相关推荐
_wyt0016 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
NE_STOP7 小时前
Vide Coding--AI编程工具的选择
java
通信小呆呆8 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
码云数智-园园8 小时前
C++20 Modules 模块详解
java·开发语言·spring
程序员黑豆8 小时前
JDK 下载安装与配置详细教程
java·前端·ai编程
benben0448 小时前
强化学习之DQN算法族(基于gymnasium开发)
算法
小宇宙Zz8 小时前
Maven依赖冲突
java·服务器·maven
swordbob8 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
咖啡八杯9 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式