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开始,data[0]=3,data[1]=6,data[2]=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用于判断d[i]是否为 4 的约数

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

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

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

答案:BCD
解析

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

B正确:20+40=60;

C正确:求和符合描述;

D正确:d[2]=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可以连续输出,字符串和数字直接拼接显示。

相关推荐
都在酒里11 小时前
算法总结(二)深入浅出 PID 控制算法:原理、优化与 STM32 标准库实现
stm32·算法·pid算法·位置pid·增式pid
于小猿Sup11 小时前
ROS Noetic搭建PX4仿真环境
linux·c++·自动驾驶
Zhang~Ling11 小时前
C++继承机制详解上:概念、语法、作用域与转换规则
开发语言·c++
_深海凉_11 小时前
LeetCode热题100-排序链表
算法·leetcode·链表
曦夜日长11 小时前
Linux系统篇,开发工具(六):文件的编译配置、调试的理解、cgdb和gdb的操作使用
java·linux·php
wengqidaifeng11 小时前
C++从菜鸟到强手:2.类和对象(中)—— 拷贝、赋值与运算符重载
开发语言·c++
高级c11 小时前
10分钟上手昇腾 NPU 算子开发入门与实战
java·jvm·spring
代码中介商11 小时前
哈夫曼树:高效压缩数据的秘密武器
数据结构·算法
路远_611 小时前
Java 后端开发者如何理解大模型应用架构
java·架构·大模型·agent