万卷网> 电子学会考级 >C/C++等级考试 > 2026年6月电子学会青少年软件编程(C/C++三级)等级考试试卷

2026年6月电子学会青少年软件编程(C/C++三级)等级考试试卷
操作/编程 三级 2026 2026-07-25 15:12:34 144

一、单选题

1.

以下函数参数传递方式中,函数内对形参的修改会影响实参的是?( )

A.

 值传递

B.

 引用传递

C.

 常量传递

D.

 数值传递

2.

以下代码用于统计1~200中,能同时被3和5整除的数的个数,横线处应填入的代码是?( )

int cnt = 0;
for(int i=1;i<=200;i++){
    if(_________)
         cnt++;
}
cout << cnt;
A.

 i % 3 == 0 || i % 5 == 0

B.

 i % 3 == 0 && i % 5 == 0

C.

 i / 3 == 0 && i / 5 == 0

D.

 i % 15 != 0

3.

以下关于C++函数声明的说法,正确的是?( )

A.

 函数声明必须写在函数调用之后

B.

 函数声明可以只写函数名和返回值类型,不写参数列表

C.

 函数声明的作用是告诉编译器函数的名称、返回值类型和参数信息

D.

 函数声明和函数定义作用完全相同

4.

运行程序,输出结果为?( )

int cnt = 0;
    for(int n=2;n<=100;n++){
        bool isPrime = true;
        for(int i=2;i*i<=n;i++){
            if(n%i==0){
                isPrime=false;
                break;
            }
        }
        if(isPrime) cnt++;
    }
    cout<<cnt;
A.

 23

B.

 25

C.

 27

D.

 29

5.

以下递归函数用于计算1~n的累加和,横线处应填入的代码是?( )

int sum(int n)
{ 
     if(n == 1) 
            return 1; _________ 
}
A.

 return sum(n-1);

B.

 return n + sum(n-1);

C.

 return n * sum(n-1);

D.

 return sum(n) + n;

6.

执行以下代码,输出结果是?( )

void change(int &x)
{ 
    x = x * 2; 
} 

int main()
{ 
    int a = 8; 
    change(a); 
    cout << a; 
    return 0; 
}
A.

 4

B.

 8

C.

 16

D.

 0

7.

执行`strcmp("test", "test")`,返回值是?( )

A.

 大于0

B.

 等于0

C.

 小于0

D.

 不确定

8.

要找出1000以内所有的素数,最适合使用的算法思想是?( )

A.

 递归法

B.

 枚举法

C.

 分治法

D.

 二分法

9.

函数定义为`double calc(double a, double b)`,以下调用方式正确的是?( )

A.

 calc(5);

B.

 calc(3.14, 2.5);

C.

 calc("3", "5");

D.

 double calc(2, 3);

10.

以下哪个函数可以将两个C风格字符串拼接在一起?( )

A.

 strcat()

B.

 strcpy()

C.

 strlen()

D.

 strcmp()

二、判断题

1.

C++的`string`类可以直接用`+`运算符拼接。( )

A.正确 B.错误
2.

`strlen()`函数功能是计算字符串长度。( )

A.正确 B.错误
3.

递归函数可以没有终止条件,编译器会自动处理。( )

A.正确 B.错误
4.

函数的返回值类型为void时,函数内可以使用`return;`语句提前结束函数。( )

A.正确 B.错误
5.

有些算法既有递归实现也有非递归实现。( )

A.正确 B.错误
6.

当问题与游戏规则、物理过程等实际场景有关时,可以考虑使用模拟法解决问题。( )

A.正确 B.错误
7.

枚举要注意程序的运行效率,否则很容易在规定的时间内得不到希望的结论。( )

A.正确 B.错误
8.

枚举法的核心是不遗漏地遍历所有可能的情况。( )

A.正确 B.错误
9.

值传递方式下,函数会为形参创建新的内存空间,实参和形参互不影响。( )

A.正确 B.错误
10.

C++中,两个同名函数只要返回值类型不同,就可以构成函数重载。( )

A.正确 B.错误

三、编程题

1.

画作

题目描述

墙上,挂着一幅由 n×n 个彩色方格组成的画作。画作的内容可以用一个 n×n 的字符矩阵来表示。

现在想要将这幅画顺时针旋转 90 度后重新悬挂,请你他计算出旋转后的画作是什么样的。

输入格式

第一行,一个整数表示 n

接下来 n 行,每行 n 个字符。

输出格式

输出 n 行,每行 n 个字符,表示顺时针旋转 90 度后的矩阵。

输入样例#1

4
ooxx
xoox
xxxx
xxxx

输出样例#1

xxxo
xxoo
xxox
xxxx

输入样例#2

2
12
34

输出样例#2

31
42

说明提示

1≤n≤1000

2.

花坛

题目描述

花坛里有 n 朵花,每朵花的编号为 1,2,…,n。初始时,所有花的高度都是 0。

现在给定一个数列 h={h1,h2,…,hn},你可以重复进行如下的浇水操作,每次操作:任选一段连续区间 [l,r],区间内每朵花高度加 1。可以无限重复该操作,使得第 k 朵花的最终高度恰好为 hk(1≤k≤n)。

求完成目标需要的最小操作浇水次数。

输入格式

第一行一个整数,表示花的数量 n

第二行 n 个整数,依次表示每朵花需要达到的目标高度 h1,h2,…,hn

输出格式

输出一个整数,表示达成目标所需的最少浇水操作次数。

输入样例#1

5
3 1 2 3 1

输出样例#1

5

输入样例#2

8
4 23 75 0 23 96 50 100

输出样例#2

221

说明提示

1≤n≤100

0≤hi≤100

所有输入均为整数

公众号
客服 反馈
顶部