2025年全国青少年信息素养大赛C++小学全年级初赛试题
一、单选题
1、在C++中,表示逻辑运算符 "或" 的是?( )(5 分)
A.||
B.&
C.==
D.@
解析:||是或者, &&是并且
2、执行下列代码,输入3,输出结果为?( )
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
cout << n - 3;
return 0;
}
(5 分)
A.-n
B.0
C.9
D.81
3、下列选项中,输出结果为0的是?( )(5 分)
A.cout << "5 - 5";
B.cout << 5 - 5;
C.cout << 2 * 3;
D.cout << 7 / 2;
4、执行下列代码段,输出结果为?( )
cout << 10 % 3;
(5 分)
A.1
B.2
C.5
D.10
5、下列不属于C++基本程序框架的是?( )(5 分)
A.头文件
B.命名空间
C.主函数
D.程序开发时间:2025-03-23
6、阅读以下程序,输入1 5,输出的结果是?( )
int a,b;
cin >> a >> b;
a += b;
b *= a;
cout << a << " " << b << endl;
(5 分)
A.1 5
B.6 5
C.5 6
D.6 30
7、在C++程序中,可以得到一个四位整数的十位上的数字的表达式是?( )(5 分)
A.number / 1000
B.number / 100 % 10
C.number / 10 % 10
D.number % 10
8、以下程序的功能是对一个正整数n进行数位分离,并按逆序打印每一位,①处应该填写?( )
#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
while (_①_){
int d = n % 10;
n /= 10;
cout << d << " ";
}
return 0;
}
(5 分)
A.n > 0
B.n >= 0
C.n < 0
D.n <= 0
9、下面程序输出的结果是"1 4 7 10",补全①处的代码。下列选项中哪一项正确?( )
#include <iostream>
using namespace std;
int main (){
for(int i = 1; i <= 10; _①_){
cout << i << " ";
}
return 0;
}
(5 分)
A.i++
B.i *= 2
C.i += 3
D.i * 2
10、执行下列代码,输出结果为?( )
for (int i = 1; i <= 5; i++){
if (i % 2 == 0){
continue;
}
cout << i << " ";
}(5 分)
A.1
B.2 4
C.1 3 5
D.1 2 3 4
11、下图为n = 5时输出的图案,输入一个正整数 n,输出一个 n+1 行特殊的直角三角形,则①处应补充的代码为?( )
int n;
cin >> n;
cout << "*" << endl;
for (int i = 1; i <= n; i++){
for (int j = 1; _①_; j++){
cout << "*";
}
cout << endl;
}
(5 分)
A.j <= 2 * i
B.j <= i
C.j <= 2 * i - 1
D.j <= 2 * i + 1
12、以下程序段输出的结果为?( )
int cnt = 0;
for (int i = 0; i < 5; i++){
for (int j = 0; j < 4; j++){
for (int k = 0; k < 2; k++){
cnt++;
}
}
}
cout << cnt << endl;
(5 分)
A.40
B.60
C.90
D.120
13、阅读以下代码,输出的内容是?( )
#include <iostream>
using namespace std;
int main(){
for(int i = 1; i <= 4; i++){
for(int j = 5;j >= 1;j--) {
cout << j << " ";
}
cout << endl;
}
return 0;
}
(5 分)
A.1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
B.5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
C.1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
D.5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
14、执行以下程序,输入5,输出的结果是?( )
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
int ans = 0;
for (int i = 1; i <= n; i++){
ans = ans + i*i;
}
cout << ans;
return 0;
}
(5 分)
A.5
B.30
C.55
D.85
15、运行以下程序,输入6,输出的结果是?( )
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
if (n % 2 == 0){
cout << "QWER";
}else if (n % 3 == 0){
cout << "WERQ";
}else if (n % 5 == 0){
cout << "ERQW";
}else{
cout << "RQWE";
}
return 0;
}
(
5
分)
A.QWER
B.WERQ
C.ERQW
D.RQWE
二、判断题
1.在C++中,&&表示逻辑运算符“或”
正确
错误
2.在C++中 可以通过这种方式定义数组并初始化 int c[3]={1,2,3,4,5}
正确
错误
3.在C++语言中一维数组的下标是从0开始的。
正确
错误
解析:确实从0开始
4.代码段
int i=5;
while(i>0){
i-=2;
}
最终的值是-1.
正确
错误
5.定义int arr[5];后,执行arr[5]=5不会导致数组越界。
正确
错误