试卷总分:100分


选择题 10题 40分

01 02 03 04 05 06 07 08 09 10


判断题 10题 20分

11 12 13 14 15 16 17 18 19 20


编程题 2题 40分

21 22

E1007 电子学会青少年软件编程等级考试-C++ -AI生成-CIE-202603-C++二级-真题-202605250912-考试

选择题 共10道

01 在C++中,如果使用ifstream对象fin打开文件"data.txt",下列哪条语句可以正确判断文件是否成功打开?( ) 4分
登录后查看选项
02 以ios::trunc模式打开文件进行写入操作时,以下描述正确的是?( ) 4分
登录后查看选项
03 执行以下C++代码,输出结果为?( )
#include <iostream>
int main() {
    char ch = 'B';
    int num = ch + 1;
    std::cout << num;
}
4分
登录后查看选项
04 执行以下C++代码,变量res的最终值为?( )
#include <iostream>
int main() {
    int x = 2;
    int res = 0;
    switch(x) {
        case 1: res = 10; break;
        case 2: res = 20;
        case 3: res = 30; break;
        default: res = 40;
    }
    std::cout << res;
}
4分
登录后查看选项
05 以下C++代码输出什么图形?( )
#include <iostream>
int main() {
    for(int i=1; i<=3; i++) {
        for(int j=1; j<=i; j++)
            std::cout << "*";
        std::cout << std::endl;
    }
}
4分
登录后查看选项
06 执行以下C++代码后,sum的值为?( )
#include <iostream>
int main() {
    int sum = 0;
    for(int i=1; i<=5; i++) {
        if(i % 2 == 0)
            continue;
        sum += i;
    }
    std::cout << sum;
}
4分
登录后查看选项
07 以下关于一维数组初始化的语句,正确的是?( ) 4分
登录后查看选项
08 以下代码用于统计数组arr中奇数的个数,横线处应填入的代码是?( )
#include <iostream>
int main() {
    int arr[] = {1,2,3,4,5,6};
    int cnt = 0;
    for(int i=0; i<6; i++) {
        if(________)
            cnt++;
    }
    std::cout << cnt;
}
4分
登录后查看选项
09 定义int a[2][3] = {{1,2,3},{4,5,6}}; 则表达式a[1][2]的值为?( ) 4分
登录后查看选项
10 以下代码使用冒泡排序对数组进行升序排列,横线处应填入的代码是?( )
#include <iostream>
int main() {
    int a[5] = {5,3,4,1,2};
    for(int i=0; i<4; i++) {
        for(int j=0; j<4-i; j++) {
            if(________) {
                int t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    }
    for(int i=0; i<5; i++)
        std::cout << a[i] << " ";
}
4分
登录后查看选项

判断题 共10道

11 C++中,使用ifstream对象读取文件时,必须调用open()函数才能开始读取。 ( ) 2分
登录后查看选项
12 使用文件流以只读方式打开文件时,如果文件不存在,程序会自动创建一个空文件。 ( ) 2分
登录后查看选项
13 将int类型的值赋给char类型变量时,如果int值超出char的表示范围,会发生数据丢失。 ( ) 2分
登录后查看选项
14 if语句的条件表达式可以是整型表达式,非0值表示真,0表示假。 ( ) 2分
登录后查看选项
15 switch语句中,default标签必须放在所有case标签之后,否则会编译错误。 ( ) 2分
登录后查看选项
16 在嵌套循环中,内层循环每执行一次,外层循环会完整执行一遍。 ( ) 2分
登录后查看选项
17 do-while循环的循环体至少会被执行一次,即使条件表达式一开始就为假。 ( ) 2分
登录后查看选项
18 定义数组时,数组的大小必须是整型常量表达式。 ( ) 2分
登录后查看选项
19 二维数组int a[3][4]; 表示有3列、4行。 ( ) 2分
登录后查看选项
20 一维数组的数组名代表数组的首地址,且该地址不能被修改。 ( ) 2分
登录后查看选项

编程题 共2道

21 [电子学会202603二级]螺旋数字方阵 给定一个正整数 n,生成一个 n×n 的螺旋方阵,数字从 1 开始顺时针填充,最后输出该方阵。 输入格式 一个正整数 n(1 ≤ n ≤ 20)。 输出格式 n 行,每行 n 个整数,数字之间用一个空格分隔,表示填充好的螺旋方阵。 输入样例#1 4 输出样例#1 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 20分
登录后作答
22 [电子学会202603二级]统计众数 输入 n 个整数,请找出出现次数最多的整数(众数)。如果有多个众数,输出其中值最小的那个。 输入格式 第一行一个正整数 n(1 ≤ n ≤ 1000)。 第二行 n 个整数,每个整数的范围在 -10000 到 10000 之间。 输出格式 一个整数,即满足条件的众数。 输入样例#1 5 1 3 3 2 1 输出样例#1 1 输入样例#2 6 5 5 5 6 6 7 输出样例#2 5 20分
登录后作答