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

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

2.

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

int a = 20;
int *p = &a;
*p = 30;
cout << a;
3.

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

4.

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

struct Student{
    string name;
    int age;
};
Student s;
5.

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

6.

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

7.

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

8.

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

9.

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

10.

两个长度为nm的大整数相加,结果的最大长度?( )

判断题 共 10 题
1.

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

2.

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

3.

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

4.

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

5.

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

6.

十进制数15转换为二进制数是 1111 ( )

7.

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

8.

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

9.

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

10.

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

问答题 共 2 题
1.

题目描述

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

具体规则:

十一进制的每一位取值为 0123456789A

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

输入格式

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

输出格式

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

输入样例#1

23

输出样例#1

21

输入样例#2

11

输出样例#2

10

输入样例#3

10

输出样例#3

A

输入样例#4

0

输出样例#4

0

说明提示

0n106

2.

题目描述

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

具体规则:

n 为偶数:n!!=n×(n2)×(n4)×…×2n!! = n × (n-2) × (n-4) × … × 2n!!=n×(n2)×(n4)×…×2

n为奇数:n!!=n×(n2)×(n4)×…×1n!! = n × (n-2) × (n-4) × … × 1n!!=n×(n2)×(n4)×…×1

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

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

输入格式

单个整数表示 n

输出格式

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

输入样例#1

5

输出样例#1

15

输入样例#2

20

输出样例#2

3715891200

输入样例#3

100

输出样例#3

634940737063086592000000000000000000000000000000000000000000

说明提示

0n2000

C++ 编辑器
输入
输出