2025年12月 GESP CCF编程能力等级认证C++四级真题

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

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

网站链接

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

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

2025年12月 GESP CCF编程能力等级认证C++四级真题

一、单选题(每题 2 分,共 30 分)

第 1 题 小杨想让指针 p 指向整数变量 x ,正确写法是( )。

A.int p = &x;

B.int *p = x;

C.int *p = &x;

D.p = *x;

第 2 题 小杨写了如下的指针接力程序,程序执行完后变量 a 、 *p1 和 *p2 的值分别是( )。

int a = 5;

int* p1 = &a;

int* p2 = p1;

*p2 = 10;

A. 5 10 10

B. 5 10 15

C. 10 10 10

D. 5 5 10

第 3 题 小杨用一个二维数组表示棋盘,其中 1 表示有棋子,0 表示没有棋子。他想知道第 2 行 第 3 列有没有棋子,可采用的代码是:( )。

复制代码
int a[3][4] = {
{1, 0, 1, 0},
{0, 1, 0, 1},
{1, 1, 0, 0}
};

A. cout << a[1, 2] << endl;

B. cout << a[1][2] << endl;

C. cout << a(1, 2) << endl;

D. cout << a{1}{2} << endl;

第 4 题 执行完下面的代码后, *(p + 5) 和 arr[1][1] 的值分别是( )。

复制代码
int arr[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int* p = &arr[0][0];

A. 5 6

B. 6 5

C. 5 5

D. 6 6

第 5 题 执行完下面的代码后, sum 的值是( )。

复制代码
int arr[2][3][2] = {
{{1,2}, {3,4}, {5,6}},
{{7,8}, {9,10}, {11,12}}
};
int sum = 0;
for(int i = 0; i < 2; i++)
    for(int j = 0; j < 3; j++)
        for(int k = 0; k < 2; k++)
            if((i+j+k) % 2 == 0)
                sum += arr[i][j][k];

A. 36

B. 39

C. 78

D. 30

第 6 题 执行完下面的代码后,输出是( )。

复制代码
int a = 1;
void test() {
    int a = 2;
    {
        int a = 3;
        a++;
    }
    a++;
    cout << a << " ";
}
int main() {
    test();
    cout << a;
    return 0;
}

A. 3 1

B. 4 1

C. 3 2

D. 4 2

第 7 题 执行完下面的代码后, a 、 b 和 c 的值分别是( )。

复制代码
void byValue(int x) { x = 100; }
void byRef(int& x) { x = 200; }
void byPointer(int* x) { *x = 300; }
int main() {
    int a = 1, b = 2, c = 3;
    byValue(a);
    byRef(b);
    byPointer(&c);
    return 0;
}

A. 100 200 300

B. 1 2 3

C. 1 200 300

D. 1 2 300

第 8 题 运行如下代码会输出( )。

复制代码
struct Point {
int x, y;
};
struct Rectangle {
    Point topLeft;
    Point bottomRight;
};
int main() {
    Rectangle rect = {{10, 10}, {20, 20}};
    rect.topLeft.x = 5;
    Point* p = &rect.bottomRight;
    p->y = 5;
    cout << rect.topLeft.x + rect.bottomRight.y;
    return 0;
}

A. 10

B. 30

C. 15

D. 20

第 9 题 给定函数 climbStairs(int n) 的定义如下,则 climbStairs(5) 的返回的值是( )。

复制代码
int climbStairs(int n) {
    if(n <= 2) return n;
    int a = 1, b = 2;
    for(int i = 3; i <= n; i++) {
        int temp = a + b;
        a = b;
        b = temp;
    }
    return b;
}

A. 5

B. 8

C. 13

D. 10

第 10 题 对如下4个扑克牌进行排序,

使用某排序算法按value排序后,结果为: {3,'D'}, {3,'B'}, {5,'A'}, {5,'C'} ,则这个排序算法是稳定的吗?

复制代码
struct Card {
int value;
char suit; // 花色
};
Card cards[4] = {{5,'A'}, {3,'B'}, {5,'C'}, {3,'D'}};

A. 稳定,因为相同 value 的元素相对顺序保持不变

B. 不稳定,因为 {3,'D'} 出现在 {3,'B'} 之前

C. 无法判断

D. 稳定,因为结果是有序的

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

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

网站链接

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

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

相关推荐
CodeByV15 小时前
【算法题】快排
算法
一起努力啊~15 小时前
算法刷题--长度最小的子数组
开发语言·数据结构·算法·leetcode
rchmin16 小时前
限流算法:令牌桶与漏桶详解
算法·限流
leoufung16 小时前
LeetCode 221:Maximal Square 动态规划详解
算法·leetcode·动态规划
黑符石16 小时前
【论文研读】Madgwick 姿态滤波算法报告总结
人工智能·算法·机器学习·imu·惯性动捕·madgwick·姿态滤波
源代码•宸16 小时前
Leetcode—39. 组合总和【中等】
经验分享·算法·leetcode·golang·sort·slices
好易学·数据结构16 小时前
可视化图解算法77:零钱兑换(兑换零钱)
数据结构·算法·leetcode·动态规划·力扣·牛客网
AlenTech16 小时前
226. 翻转二叉树 - 力扣(LeetCode)
算法·leetcode·职场和发展
Tisfy16 小时前
LeetCode 1458.两个子序列的最大点积:动态规划
算法·leetcode·动态规划·题解·dp