试卷总分:100分
选择题 10题 20分
判断题 10题 20分
编程题 2题 60分
已知int x = 10;,要让指针p指向x,以下写法正确的?
执行以下代码,输出结果?
int a = 20; int *p = &a; *p = 30; cout << a;
以下关于C++结构体的说法,错误的?
有结构体定义如下,访问结构体变量s的age成员,写法正确的?
struct Student{ string name; int age; }; Student s;
将二进制数1010转换为十进制数,结果?
C++表达式5 & 3的计算结果?
以下排序算法中,平均时间复杂度为O(n log n)的?
以下关于排序算法稳定性的说法,正确的?
在用数组实现高精度加法时,若从数组下标 0 开始存储数字,通常选择将最低位存储在下标 0 处。这样设计的主要原因?
两个长度为n和m的大整数相加,结果的最大长度?
32位系统中,int类型指针占用4个字节的内存空间。
空指针NULL可以被解引用,不会出现运行错误。
C++ 中,结构体的成员变量必须全部是 public 的,不能设置为 private 或 protected。
相同类型的结构体变量之间可以直接用=进行赋值。
冒泡排序的最坏时间复杂度是O(n2)。
十进制数15转换为二进制数是 1111 。
快速排序的核心思想是分治法。
C++中,左移运算符<<会将操作数的二进制位向左移动,右侧补0。
C++的long long类型可以存储任意长度的大整数,无需使用数组实现高精度。
高精度乘法运算中,两个n位的大整数相乘,结果最长有2n位。
十一进制是一种以11为基数的计数体系,其数字由0-9的常规数字和代表数值10的符号(大写字母A)组成。给定一个十进制非负整数 n,请将其转换为十一进制数并输出。
具体规则:
十一进制的每一位取值为 0、1、2、3、4、5、6、7、8、9、A;
特别地,十进制0转换为十一进制仍为0。
单个整数表示十进制非负整数 n
单个字符串,表示转换后的十一进制数
0≤n≤10^6
23
21
11
10
A
0
双阶乘(用 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
5
15
20
3715891200
100
34243224702511976248246432895208185975118675053719198827915654463488000000000000