2026年3月青少年软件编程(C/C++)等级考试试卷(二级)

2026年10月19日

一、单选题

1.C++中,用于从文件中读取数据的文件流对象?( )

  • A、ofstream
  • B、ifstream
  • C、fstream
  • D、iostream

2.以下关于C++文件操作的说法,错误的?( )

  • A、文件操作完成后,需要调用close()函数关闭文件
  • B、以ios::out模式打开文件时,若文件不存在会自动创建
  • C、可以用cin直接从文本文件中读取数据,无需定义文件流对象
  • D、以ios::app模式打开文件,写入的数据会追加到文件末尾

3.执行以下C++代码,变量b的最终值?( )

#include <iostream>
int main() {
    double a = 3.99;
    int b = (int)a;
}
  • A、3
  • B、4
  • C、3.99
  • D、0

4.执行以下C++代码,输入85后,输出结果?( )

#include <iostream>
int main() {
    int score;
    std::cin >> score;
    if(score >= 90)
        std::cout << "A";
    else if(score >= 80)
        std::cout << "B";
    else if(score >= 60)
        std::cout << "C";
    else
        std::cout << "D";
}
  • A、A
  • B、B
  • C、C
  • D、D

5.以下C++代码执行后,输出结果?( )

#include <iostream>
int main() {
    int a = 10, b = 20;
    if(a > 30){
        if(a == b) 
            std::cout << "1";
        else 
            std::cout << "2";
    }else{
        if(a < b) 
            std::cout << "3";
        else 
            std::cout << "4";
    }
}
  • A、1
  • B、2
  • C、3
  • D、4

6.以下C++代码执行后,*一共会输出多少次?( )

#include <iostream>
int main() {
    for(int i=0;i<3;i++)
        for(int j=0;j<4;j++)
            std::cout << "*";
}
  • A、7
  • B、12
  • C、3
  • D、4

7.以下C++代码执行后,输出的结果?( )

#include <iostream>
int main() {
    int cnt = 0;
    for(int i=1;i<=5;i++)
        for(int j=1;j<=i;j++)
            cnt += 1;
    std::cout << cnt;
}
  • A、5
  • B、10
  • C、15
  • D、25

8.以下关于C++一维数组的定义,正确的?( )

A、int arr[];
B、int arr[5] = {1,2,3};
C、int arr(5);
D、 int n=5; int arr[n];

9.执行以下代码,数组arr中第3个元素(下标为2)的值?( )

#include <iostream>
int main() {
    int arr[5] = {10,20,30,40,50};
    arr[2] = arr[2] + arr[4];
}
  • A、30
  • B、50
  • C、80
  • D、90

10.以下代码用于求数组中所有元素的最大值,横线处应填入的代码?( )

#include <iostream>
int main() {
    int arr[5] = {3,1,4,5,2};
    int max_val = arr[0];
    for(int i=1;i<5;i++){
        _________
    }
    std::cout << max_val;
}
  • A、if(arr[i] > max_val) max_val = arr[i];
  • B、if(arr[i] < max_val) max_val = arr[i];
  • C、max_val = arr[i];
  • D、arr[i] = max_val;

二、判断题

11.C++中,使用文件流操作文件时,需要引入头文件。( )

12.以ios::out模式打开已存在的文件,不会清空文件原有内容。( )

13.C++中,将浮点型赋值给整型变量时,会自动进行四舍五入。( )

14.if-else if-else语句中,最多只会有一个分支的代码被执行。( )

15.switch语句中,每个case分支都必须包含break语句,否则会编译报错。( )

16.两层for循环嵌套时,外层循环每执行一次,内层循环会完整执行一遍。( )

17.while循环可以嵌套for循环,for循环也可以嵌套while循环。( )

18.C++中,数组的下标默认从1开始。( )

19.一维数组在内存中是连续存储的。( )

20.定义数组int arr[10];后,可以通过arr[10]访问数组的最后一个元素。( )

三、编程题

21.数字三角阵

http://xiaopangoj.com/p/28943

22.奇偶求和

http://xiaopangoj.com/p/28944