GESP 2026年3月_C++四级试卷
从PDF导入:GESP 2026年3月_C++四级试卷
试卷题目预览
执行下面程序后,输出为( )。
int f(int x = 2) {
return x * 3;
}
int main() {
cout << f() << " " << f(4);
}
执行下面代码后,输出为( )。
int main() {
int a = 5;
int* p = &a;
int** q = &p;
**q += 7;
cout << a << " " << *p;
}
已知int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int (*p)[4] = a; 则表达式*(*(p + 2) + 1) 的值为( )
执行下面程序后,输出为( )。
void fun(int a, int &b, int *c) {
a += 1;
b += 2;
*c += 3;
}
int main() {
int x = 1, y = 1, z = 1;
fun(x, y, &z);
cout << x << " " << y << " " << z;
}
执行下面程序后输出为( )。
int x = 3;
void f(int& x) {
x += 2;
}
int main() {
int x = 10;
f(x);
cout << x << " " << ::x;
}
下列关于结构体初始化的写法,正确的是( )。
struct Point { int x, y; };
执行下面代码后输出为( )。
struct S { int a; int b; };
void g(S s) { s.a += 10; }
void h(S& s) { s.b += 10; }
int main() {
S s{1, 2};
g(s);
h(s);
cout << s.a << " " << s.b;
}
关于递推算法的描述,正确的是( )。
执行climb(6)的返回值为( )。
int climb(int n) {
if(n <= 2) return n;
int a = 1, b = 2, c = 0;
for(int i = 3; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return c;
}
某排序算法对如下数据排序(按 score 升序),则下面关于该排序算法稳定性的描述中,说法正确的是( )。
初始: (90,'A'), (90,'B'), (80,'C'), (90,'D')
排序后: (80,'C'), (90,'A'), (90,'B'), (90,'D')
下面代码试图把数组按升序进行"插入排序",横线处应填写( )。
void ins(int a[], int n) {
for(int i = 1; i < n; i++) {
int key = a[i];
int j = i - 1;
while(j >= 0 && __________) {
a[j+1] = a[j];
j--;
}
a[j+1] = key;
}
}
下列代码段的时间复杂度为( )。
int cnt = 0;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if( (i+j) % 3 == 0) cnt++;
}
}
下面哪种方式不能实现将字符串Welcome to 2026!输出重定向到文件log.txt( )。
执行下面程序,输出结果是( )。
int divi(int a, int b) {
if(b == 0) throw 0;
return a / b;
}
int main() {
try {
cout << divi(10, 0);
} catch(const char* msg) {
cout << "A";
} catch(int) {
cout << "B";
}
}
以下哪种参数传递方式可以避免拷贝大型对象,同时能修改原对象?( )
下列函数实现排行榜中单个元素的位置调整(类似插入排序的相邻搬移)。当某玩家分数增加,需将其向前移动时, while 循环的条件应为( )。
下面代码执行结束时,变量 a 的值变成 15。

引用一旦绑定某个变量,就不能再绑定其他变量。( )
执行下面代码,输出结果为 5 。

下面程序可以正常编译并输出 10 。

下面程序执行后输出 2010 。

在 C++ 中,如果声明了一个指针变量但没有显式初始化,该指针会自动被初始化为 nullptr 。
下面代码没有语法错误。

下面程序能够把 Hello 写入 data.txt 文件中

由于选择排序和插入排序的时间复杂度均为 ,在任何实际场景下两者的性能表现几乎相同,可以互相 替代。
下面用递推方式计算斐波那契数列第 n 项的程序,时间复杂度是 。

山之谷
时间限制:1.0 s 内存限制:512.0 MB
给定一个n行m列的矩阵,求其中所有元素的极差(最大值与最小值的差)。
第一行,两个正整数n,m。 接下来n行,每行m个整数。
一个整数,表示极差。
【样例输入】 3 4 1 2 3 4 5 6 7 8 9 10 11 12 【样例输出】 11
礼盒排序
时间限制:1.0 s 内存限制:512.0 MB
给定n个礼盒,每个礼盒有价值和重量两个属性。按照价值从小到大排序,如果价值相同则按重量从小到大排序。
第一行,一个正整数n。 接下来n行,每行两个正整数value,weight。
n行,每行两个整数,表示排序后的礼盒信息。
【样例输入】 3 10 20 5 15 10 10 【样例输出】 5 15 10 10 10 20