试卷总分:100分


选择题 10题 20分

01 02 03 04 05 06 07 08 09 10


判断题 10题 20分

11 12 13 14 15 16 17 18 19 20


编程题 2题 60分

21 22

E1014 电子学会青少年软件编程等级考试-C++ -CIE电子学会-202603-C++三级-模拟2-考试

选择题 共10道

01 以下关于C++函数的说法,不正确的?( ) 2分
登录后查看选项
02 已知函数声明为
void print(char c, int n);
以下调用方式正确的是?( )
2分
登录后查看选项
03 以下函数参数传递方式中,采用引用传递方式的是?( ) 2分
登录后查看选项
04 执行以下代码,输出结果是?( )
#include <iostream>
void plusOne(int x){
    x = x + 1;
}
int main(){
    int n = 5;
    plusOne(n);
    std::cout << n;
    return 0;
}
2分
登录后查看选项
05 以下递归函数用于计算斐波那契数列的第n项,横线处应填入的代码是?( )
int fib(int n){
    if(n <= 2) return 1;
    _________
}
2分
登录后查看选项
06 以下哪个函数可以复制C风格字符串(将源字符串内容复制到目标字符数组中)?( ) 2分
登录后查看选项
07 已知有
strcmp("apple", "Apple")
,该函数调用的返回值情况是?( )
2分
登录后查看选项
08 要找出所有三位数中各位数字的立方和等于该数本身(即水仙花数)的数,最适合使用的算法是?( ) 2分
登录后查看选项
09 阅读以下程序,当输入为1234时,程序的输出结果是?( )
#include <iostream>
int main(){
    int n, sum = 0;
    std::cin >> n;
    while(n > 0){
        sum += n % 10;
        n /= 10;
    }
    std::cout << sum;
    return 0;
}
2分
登录后查看选项
10 以下代码用于统计1~100中十位数字是2的数的个数,横线处应填入的代码是?( )
#include <iostream>
int main(){
    int cnt = 0;
    for(int i = 1; i <= 100; i++){
        if(_________)
            cnt++;
    }
    std::cout << cnt;
    return 0;
}
2分
登录后查看选项

判断题 共10道

11 在C++中,不包含任何参数的函数在定义时也必须写一对空括号,如void func() { } 2分
登录后查看选项
12 函数的参数如果是基本数据类型(如int),采用值传递方式时,对形参的修改会直接影响实参。 2分
登录后查看选项
13 递归函数可以没有递归出口,只要调用次数不多,程序就不会出错。 2分
登录后查看选项
14 库中的strcat函数可以将一个字符串连接到另一个字符串末尾,且会自动为目标字符串分配足够的空间。 2分
登录后查看选项
15 库中的pow(2, 3)的返回值是8.0,类型为double。 2分
登录后查看选项
16 使用模拟法解决“程序执行流程”问题时,可以模拟中央处理器执行指令的过程。 2分
登录后查看选项
17 枚举法在解决“百钱买百鸡”问题时,可以通过三重循环枚举所有可能的公鸡、母鸡和小鸡数量,并筛选出符合条件的解。 2分
登录后查看选项
18 函数的返回类型决定了函数执行后返回给调用者的值的类型,如果不需要返回值,则返回类型可以省略不写。 2分
登录后查看选项
19 当函数参数是数组时,可以通过在函数内使用sizeof运算符来准确获取数组的元素个数。 2分
登录后查看选项
20 所有递归算法都可以转换为等价的非递归(迭代)算法来实现。 2分
登录后查看选项

编程题 共2道

21

[函数模拟]字符价值计算

有一种游戏,每个小写字母对应一个分数,规则如下:

定义一个函数 int getScore(char ch),该函数接收一个小写字母,若字母为元音字母('a','e','i','o','u')则返回 2 分,若为辅音字母则返回 1 分,其余字符返回 0 分。

给定一个只包含小写字母的字符串,请利用该函数计算整个字符串的总得分。

输入格式:一行,一个长度不超过 100 的字符串,仅由小写字母组成。

输出格式:一个整数,表示字符串的总得分。

输入样例#1:

hello

输出样例#1:

6

样例解释:'h' 辅音得 1,'e' 元音得 2,'l' 辅音得 1,'l' 辅音得 1,'o' 元音得 2,总和 1+2+1+1+2=6。

30分
登录后作答
22

[枚举与函数]勾股三元组

如果三个正整数 a,b,c 满足 a≤b≤c 且 a2+b2=c2,则称 (a,b,c) 为一组勾股三元组。

给定一个正整数 n,请你输出所有满足 c≤n 的勾股三元组。

要求:输出顺序为:按 a 从小到大排序,在 a 相同时按 b 从小到大排序。

请编写一个函数 bool isPythagorean(int a, int b, int c) 来判断三个数是否构成勾股数,并在主函数中调用该函数完成枚举与输出。

输入格式:一个正整数 n(1 ≤ n ≤ 100)。

输出格式:每行输出一个三元组,三个数之间用一个空格隔开,按题目要求排序。如果没有满足条件的三元组,不输出任何内容。

输入样例#1:

10

输出样例#1:

3 4 5

6 8 10

输入样例#2:

5

输出样例#2:

3 4 5

30分
登录后作答