2026年3月 电子学会 C++编程等级考试三级真题
剩余时间 --:--:--
单选题 共 10 题
1.

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

2.

函数定义为int func(int a, int b),以下调用方式正确的?( )

3.

以下函数,采用值传递方式的?( )

4.

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

#include <iostream>
void func(int x){
    x = 100;
}
int main(){
    int a = 10;
    func(a);
    std::cout << a;
    return 0;
}
5.

以下递归函数用于计算n的阶乘,横线处应填入的代码?( )

int fact(int n){
    if(n <= 1) return 1;
    _________
}
6.

以下哪个函数可以获取C风格字符串的长度?( )

7.

执行strcmp("apple", "banana"),返回值的情况?( )

8.

要找出1000以内所有不能被7整除且个位数位不为7的数,最适合使用的算法?( )

9.

阅读以下程序,输入整数60时,程序的输出结果?( )

#include<iostream>
int main()
{
    int n;
    std::cin >> n;
    for (int p = 2; p*p <= n; ++p)
    {
        while (n % p == 0) 
        {
            n = n / p;
            std::cout << p << " ";
        }
    }
    if (n > 1)       
        std::cout << n;
}
10.

以下代码用于统计1~100中,个位数字是3的数的个数,横线处应填入的代码?( )

#include <iostream>
int main(){
    int cnt = 0;
    for(int i=1;i<=100;i++){
        if(_________)
            cnt++;
    }
    std::cout << cnt;
}
判断题 共 10 题
1.

函数的返回值类型为void时,函数内不能使用return语句。( )

2.

C++中,函数支持重载,即同名函数可以有不同的参数列表。( )

3.

引用传递方式下,函数内对形参的修改会影响到实参。(

4.

递归函数必须有明确的终止条件,否则会出现无限递归,导致栈溢出。(

5.

递归算法的执行效率一定高于非递归算法。(

6.

strcpy(a, b)会将字符串b的内容复制到字符串a中,无需考虑a的空间大小。( )

7.

C风格字符串以`\0`作为结束标志。( )

8.

枚举法的核心是遍历所有可能的情况,逐一验证是否符合条件。(

9.

枚举法的时间复杂度通常很低,适用于所有数据范围的问题。(

10.

模拟法是通过代码模拟问题的实际执行过程,从而得到结果。(

问答题 共 2 题
1.

题目描述

在一场知识竞赛中,选手答对一题得 111 分,答错不得分且要倒扣 111 分,但扣分不能让分数小于 000

给定一个由 Y N 构成的字符序列,答对记为 Y,答错记为 N 

选手一开始从 000 分开始,请输出选手最后的得分。

输入格式

单个字符序列:保证仅由字母 Y N 组成。

输出格式

单个整数,表示最终得分。

输入样例

YNNYYY

输出样例

3

说明提示

nnn 表示字符序列的长度,1n100,0001 \leq n \leq 100,0001n100,000

2.

题目描述

0abc 时,称 a,b,c 为上升三元组。

给定一个整数 n,请输出所有三数之和等于 n 的上升三元组。

若有多个三元组满足条件,则首先输出第一项较小的三元组,若第一项相等,则先输出第二项较小的三元组。

输入格式

单个整数表示 n

输出格式

若干行,每行三个自然数,中间用一个空格分开

输入样例#1

2

输出样例#1

0 0 2

0 1 1

输入样例#2

5

输出样例#2

0 0 5

0 1 4

0 2 3

1 1 3

1 2 2

说明提示

0n2000

C++ 编辑器
输入
输出