CCF GESP C++编程 四级认证真题 2025年3月

C++ 四级 2025 年 03 月

题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

答案 A B B D D C D D B B B B A A C

1 单选题(每题 2 分,共 30 分)

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

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 题 执行下述代码将输出( )。

int x = 10;

void func() { int x = 20; std::cout << x; }

int main() {

func();

std::cout << x;

return 0;

}

A. 2020

B. 2010

C. 1010

D. 编译错误

第 3 题 执行下述代码后,变量 a 的值为( )。

int a = 10;

int* p = &a;

*p = 20

A. 10

B. 20

C. 随机值

D. 编译错误

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

A. 只能用值传递

B. 只能用引用传递

C. 只能用指针传递

D. 引用传递和指针传递均可

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

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. 12

B. 21

C. 22

D. 11

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

A.

struct Person {

string name;

int age;

};

Person p("Yang", 10);

B.

struct Person {

string name;

int age;

};

Person p = { "Yang", 10 };

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 题 给定如下代码,

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 题 假设 int arr23 = {{1,2,3},{4,5,6}}; ,则 arr12 的值是( )。

A. 2

B. 3

C. 5

D. 6

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

A. int arr3,4;

B. int arr34;

C. int arr(3,4);

D. int a3-4;

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

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;

第 11 题 给定如下算法,其时间复杂度为( )。

bool f(int arr\[\], int n, int target) {

for (int i = 0; i < (1 << n); i++) {

int sum = 0;

for (int j = 0; j < n; j++) {

if (i & (1 << j)) {

sum += arrj;

}

}

if (sum == target) return true;

}

return false;

}

A.

B.

C.

D.

第 12 题 下面关于排序稳定性的描述,正确的是( )。

A. 稳定性指算法的时间复杂度恒定

B. 稳定排序保证相同元素的相对顺序不变

C. 选择排序是稳定排序

D. 插入排序不是稳定排序

第 13 题 对数组 arr\[\]={5, 3, 8, 1} 进行升序排序,执行第一轮冒泡排序后数组 arr 中的内容为( )。

A. 3, 5, 1, 8

B. 3, 1, 5, 8

C. 3, 5, 8, 1

D. 5, 3, 8, 1

第 14 题 运行下面的代码,将出现( )。

double hmean(double a, double b) {

if (a == -b )

throw runtime_error("Runtime error occurred.");

return 2.0*a*b/(a + b);

}

int main() {

double x = 10;

double y = -10;

try {

int result = hmean(x, y);

cout << "hmean: " << result << endl;

}

catch (const runtime_error& e) {

cout << "Caught: " << e.what() << endl;

} catch (...) {

cout << "Caught an unknown exception." << endl;

}

return 0;

}

A. 屏幕上输出 Caught: Runtime error occurred.

B. 屏幕上输出 Caught an unknown exception.

C. 程序调用 std::terminate()

D. 编译错误

第 15 题 下面哪种方式不能实现将字符串 "Happy Spring!" 输出重定向到文件 log.txt ( )。

A.

freopen("log.txt", "w", stdout);

cout << "Happy Spring!" << endl;

fclose(stdout);

B.

std::ofstream outFile("log.txt");

outFile << "Happy Spring!" << endl;

outFile.close();

C.

std::ofstream outFile("log.txt");

cout << "Happy Spring!" << endl;

outFile.close();

D.

ofstream log_file("log.txt");

streambuf* org_cout = cout.rdbuf();

cout.rdbuf(log_file.rdbuf());

cout << "Happy Spring!" << endl;

cout.rdbuf(org_cout);

================================================

答案和更多内容请查看网站:【试卷中心 -----> CCF GESP ----> C/C++ ----> 四级】

网站链接

青少年软件编程历年真题模拟题实时更新

================================================

相关推荐
程序喵大人20 小时前
【C++并发系列】第二章:锁解决了什么问题?
开发语言·c++·并发编程·
天天代码码天天20 小时前
用 TensorRT 加速 PP-OCR:一套 C++ DLL + C# 调用的高性能 OCR 推理方案
c++·c#·ocr
guygg8820 小时前
二维弹塑性有限元分析(von Mises 等向硬化)— MATLAB 实现
开发语言·人工智能·matlab
在放️20 小时前
Python 练习题讲解 2 · 循环计算
开发语言·python
我不是懒洋洋20 小时前
从零实现一个分布式链路追踪:TraceId与Span
c++
江华森20 小时前
高级 Bash 脚本编程指南 — 实战教程
开发语言·bash
森G20 小时前
78、框架分析------服务器源码解析----云视频服务项目
服务器·c++·qt
我不是懒洋洋21 小时前
【C++】string(string的成员变量、auto和范围for、string常用接口的说明、OJ题目、string的模拟实现)
c语言·开发语言·c++·visual studio
承渊政道21 小时前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
Brilliantwxx21 小时前
【C++】 C++11 知识点梳理(中)
开发语言·c++