一、单选题(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 分)
阅读以下代码,屏幕最终输出为?
intn=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 分)
阅读以下代码,程序运行后的输出结果是?
intb[5]={3,8,15,6,10};inttotal=0;for(inti=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++ 代码片段,下列说法正确的有?
intd[5]={10,20,30,40,50};ints=0;for(inti=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可以连续输出,字符串和数字直接拼接显示。