试卷总分: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

E1002 电子学会青少年软件编程等级考试-C++ -CIE电子学会-202603-C++四级真题-考试

选择题 共10道

01

已知int x = 10;,要让指针p指向x,以下写法正确的?

2分
登录后查看选项
02

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

int a = 20;
int *p = &a;
*p = 30;
cout << a;
2分
登录后查看选项
03

以下关于C++结构体的说法,错误的?

2分
登录后查看选项
04

有结构体定义如下,访问结构体变量s的age成员,写法正确的?

struct Student{
  string name;
  int age;
};
Student s;
2分
登录后查看选项
05

将二进制数1010转换为十进制数,结果?

2分
登录后查看选项
06

C++表达式5 & 3的计算结果?

2分
登录后查看选项
07

以下排序算法中,平均时间复杂度为O(n log n)的?

2分
登录后查看选项
08

以下关于排序算法稳定性的说法,正确的?

2分
登录后查看选项
09

在用数组实现高精度加法时,若从数组下标 0 开始存储数字,通常选择将最低位存储在下标 0 处。这样设计的主要原因?

2分
登录后查看选项
10

两个长度为n和m的大整数相加,结果的最大长度?

2分
登录后查看选项

判断题 共10道

11

32位系统中,int类型指针占用4个字节的内存空间。

2分
登录后查看选项
12

空指针NULL可以被解引用,不会出现运行错误。

2分
登录后查看选项
13

C++ 中,结构体的成员变量必须全部是 public 的,不能设置为 private 或 protected。

2分
登录后查看选项
14

相同类型的结构体变量之间可以直接用=进行赋值。

2分
登录后查看选项
15

冒泡排序的最坏时间复杂度是O(n2)。

2分
登录后查看选项
16

十进制数15转换为二进制数是 1111 。

2分
登录后查看选项
17

快速排序的核心思想是分治法。

2分
登录后查看选项
18

C++中,左移运算符<<会将操作数的二进制位向左移动,右侧补0。

2分
登录后查看选项
19

C++的long long类型可以存储任意长度的大整数,无需使用数组实现高精度。

2分
登录后查看选项
20

高精度乘法运算中,两个n位的大整数相乘,结果最长有2n位。

2分
登录后查看选项

编程题 共2道

21

进制转换(2603-4)

题目描述

十一进制是一种以11为基数的计数体系,其数字由0-9的常规数字和代表数值10的符号(大写字母A)组成。给定一个十进制非负整数 n,请将其转换为十一进制数并输出。

具体规则:

十一进制的每一位取值为 0、1、2、3、4、5、6、7、8、9、A;

特别地,十进制0转换为十一进制仍为0。

输入

单个整数表示十进制非负整数 n

输出

单个字符串,表示转换后的十一进制数

数据范围

0≤n≤10^6

输入样例1

23

输出样例1

21

输入样例2

11

输出样例2

10

输入样例3

10

输出样例3

A

输入样例4

0

输出样例4

0

30分
登录后作答
22

双阶乘(2603-4)

题目描述

双阶乘(用 n!!表示)是阶乘的一种扩展形式,其定义为:对于给定的非负整数 n,n!! 表示从 n 开始,依次乘以比前一项小 2 的数,直至乘积项不小于 1 为止。

具体规则:

若 n 为偶数:n!!=n×(n−2)×(n−4)×…×2;

若 n 为奇数:n!!=n×(n−2)×(n−4)×…×1;

特别地,0!!=1,1!!=1。

给定一个整数 n,请使用高精度算法计算并输出 n!! 的结果。

输入

单个整数表示 n

输出

单个整数,表示 n!! 的计算结果

数据范围

0≤n≤2000

输入样例1

5

输出样例1

15

输入样例2

20

输出样例2

3715891200

输入样例3

100

输出样例3

34243224702511976248246432895208185975118675053719198827915654463488000000000000

30分
登录后作答