理论卷2025年3月GESP等级认证(C++) · 四级

GESP C++ 4级 2025.03

满分 100 · 及格 60 · 时长 60 分钟 · 共 27 题 (单选15 / 判断10 / 编程题2)
试卷阅览 · 免费预览前 10 题 · 交卷后可查看答案与解析
1
单选题号 #11592
分值 2

关于下述代码,说法错误的是( )。

int multiply(int x, int y);
int main() {
 int a = 4;
 int b = 5;
 int result = multiply(a, b);
 std::cout << "The result is: " << result << std::endl;
 return 0;
}
int multiply(int x, int y) {
 return x * y;
}
A

函数 multiply 的定义应该放到函数 main 之前。

B

函数声明 int multiply(int x, int y); 中明确指定了函数 multiply() 的返回值为整数类型。

C

在 main 函数中,函数 multiply 通过 multiply(a, b) 被调用,其中 a 和 b 是定义在 main 函数中的变量,它们作为实参传递给了 multiply 函数的形参 x 和 y。

D

运行上述代码,将输出 The result is: 20。

2
单选题号 #11593
分值 2

执行下述代码将输出( )。

int x = 10;
void func() { int x = 20; std::cout << x; }
int main() {
 func();
 std::cout << x;
 return 0;
}
A

20202020

B

20102010

C

10101010

D

编译错误

3
单选题号 #11594
分值 2

执行下述代码后,变量 aa 的值为( )。

int a = 10;
int* p = &a;
*p = 20;
A

1010

B

2020

C

随机值

D

编译错误

4
单选题号 #11595
分值 2

以下哪种参数传递方式可以避免拷贝大型对象?

A

只能用值传递

B

只能用引用传递

C

只能用指针传递

D

引用传递和指针传递均可

5
单选题号 #11596
分值 2

执行下述代码,将输出( )。

void swap(int a, int &b) {
 int temp = a;
 a = b;
 b = temp;
}
int main() {
 int x = 1, y = 2;
 swap(x, y);
 std::cout << x << y;
 return 0;
}
A

1212

B

2121

C

2222

D

1111

6
单选题号 #11597
分值 2

下面的描述中,( )准确定义一个名为 Person 的结构体并正确初始化了一个 Person 结构体的变量 p。

A
struct Person {
 string name;
 int age;
};
Person p("Yang", 10);
B
struct Person {
 string name,
 int age;
};
Person p;
p.name = "Yang";
p.age = 10;
C
struct Person {
 string name;
 int age;
};
Person p = { "Yang", 10 };
D
struct Person {
 string name;
 int age;
};
Person p = new Person("Yang", 10);
7
单选题号 #11598
分值 2

给定如下代码:

struct Person {
 std::string name;
 int age;
 struct Address {
 std::string street;
 std::string city;
 };
 Address address;
};

下面描述错误的是( )。

A

结构 Person 内嵌套结构 Address

B

Person 有一个 Address 类型的 address 成员

C

一个 Person 类型的变量 p 的 address 的初始化可以写成:p.address.street = "123 Main St"; p.address.city = "Anytown";

D

结构的嵌套可以减少命名冲突,因此可以不必控制嵌套层次

8
单选题号 #11599
分值 2

假设 int arr[2][3] = {{1,2,3},{4,5,6}};,则 arr[1][2] 的值是( )。

A

22

B

33

C

55

D

66

9
单选题号 #11600
分值 2

下面( )正确定义了二维数组。

A

int arr[3,4];

B

int arr[3][4];

C

int arr(3,4);

D

int a[3-4];

10
单选题号 #11601
分值 2

小杨正在爬楼梯,需要爬 nn 阶才能到达楼顶。如果每次可以爬 11 个或 22 个台阶,下面代码采用递推算法来计算一共有多少种不同的方法可以爬到楼顶,则横线上应填写( )。

int f(int n) {
 if (n == 1 || n == 2)
 return n;
 int f1 = 1;
 int f2 = 2;
 int res = 0;
 for (int i = 3; i <= n; i++) {
 ____________________ // 在此处填入代码
 }
 return res;
}
A
res += f1 + f2;
f1 = f2;
f2 = res;
B
res = f1 + f2;
f1 = f2;
f2 = res;
C
res += f1 + f2;
f2 = res;
f1 = f2;
D
res = f1 + f2;
f2 = res;
f1 = f2;
🔒

已解锁前 10 题

第 11~27 题(共 17 题)可在考试中作答
本卷为普通试卷:注册用户每题扣 1 积分(每日登录送 30 体验积分),交卷后查看答案与解析
海小星AI平台海小星AI平台

点亮AI梦想,编程未来之星。专业的青少年AI编程教育平台。

课程方向

  • AIGC人工智能
  • Scratch图形化
  • Python编程
  • C++/NOIP竞赛

联系我们

  • 北京市西城区万博苑7号楼3层F28室
  • +86-010-83553010
  • contact@seanova.cn

© 2026 海小星AI平台|京ICP备2022032747号

隐私政策服务条款