当前位置: 首页 > article >正文

2024年9月 GESP CCF C++六级编程能力等级考试认证真题

1 单选题(每题 2 分,共 30 分)
第 1 题 以下( )没有涉及 C++ 语言的面向对象特性支持。
A. C++ 中构造一个 class 或 struct
B. C++ 中调用 printf 函数
C. C++ 中调用用户定义的类成员函数
D. C++ 中构造来源于同一基类的多个派生类


第 2 题 关于以下C++代码,( )行代码会引起编译错误。

#include <iostream>
using namespace std;
class Base {
private:
int a;
protected:
int b;
public:
int c;
Base() : a(1), b(2), c(3) {}
};
class Derived : public Base {
public:
void show() {
cout << a << endl; // Line 1
cout << b << endl; // Line 2
cout << c << endl; // Line 3
}
};
A. Line 1
B. Line 2
C. Line 3
D. 没有编译错误

第 3 题 有6个元素,按照 6,5,4,3,2,1 的顺序进入栈S,下列( )的出栈序列是不能出现的( )。
A. 5,4,3,6,1,2
B. 4,5,3,1,2,6
C. 3,4,6,5,2,1
D. 2,3,4,1,5,6


第 4 题 采用如下代码实现检查输入的字符串括号是否匹配,横线上应填入的代码为( )。
#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool is_valid(string s) {
    stack<char> st;
    char top;
    for (char& ch : s) {
        if (ch == '(' || ch == '{' || ch == '[') {
            st.push(ch);
            // 左括号入栈
        } else {
            if (st.empty())
            return false;
            ———————————————————————— // 在此处填入代码
            if ((ch == ')' && top != '(') ||
            (ch == '}' && top != '{') ||
            (ch == ']' && top != '[')) {
                return false;
            }
        }
    }
    return st.empty();
    // 栈为空则说明所有括号匹配成功
}
A. top = st.top(); st.pop();
B. st.pop(); top = st.top();
C. st.pop(); top = st.front();
D. top = st.front(); st.pop();


第 5 题 下面代码判断队列的第一个元素是否等于 ,并删除该元素,横向上应填写( )。
#include <iostream>
#include <queue>
using namespace std;
bool is_front_equal(std::queue<int>& q, int a) {
    bool is_equal = false;
    if (!q.empty()) {
        ———————————————————————— // 在此处填入代码
    }
    return is_equal;
}
A. is_equal = (q.front() == a);
B. is_equal = (q.front() == a); q.pop();
C. q.pop(); is_equal = (q.front() == a);
D. q.pop(); is_equal = (q.top() == a);


第 6 题 假设字母表 {a,b,c,d,e} 在字符串出现的频率分别为 10%,15%,30%,16%,29%。若使用哈夫曼编码方式对字母进行二进制编码,则字符 abcdef 分别对应的一组哈夫曼编码的长度分别为( )。
A. 4, 4, 1, 3, 2
B. 3, 3, 2, 2, 2
C. 3, 3, 1, 2, 1
D. 4, 4, 1, 2, 2


第 7 题 以下C++代码实现 位的格雷码,则横线上应填写( )。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// 生成 n 位的格雷码
vector<string> generate_graycode(int n) {
    vector<string> graycode_list;
    if (n <= 0) {
        return graycode_list;
    }
    // 初始1位格雷码
    graycode_list.push_back("0");
    graycode_list.push_back("1");
    // 迭代生成 n 位的格雷码
    for (int i = 2; i <= n; i++) {
        int current_size = graycode_list.size();
        for (int j = current_size - 1; j >= 0; j--) {
            graycode_list.push_back("1" + graycode_list[j]);
        }
        for (int j = 0; j < current_size; j++) {
            ———————————————————————— // 在此处填入代码
        }
    }
    return graycode_list;
}

A. graycode_list.push_back("0" + graycode_list[j]);
B. graycode_list[j] = "0" + graycode_list[j];
C. graycode_list.push_back("1" + graycode_list[j]);
D. graycode_list[j] = "1" + graycode_list[j];

第 8 题 给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG,则这棵树的正确后序遍历结果是( )。
A. EDBGFCA
B. EDGBFCA
C. DEBGFCA
D. DBEGFCA


第 9 题 一棵有 个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第 个位置。若存储在数组第个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。
A. 8, 18
B. 10, 18
C. 8, 19
D. 10, 19


第 10 题 二叉树的深度定义为从根结点到叶结点的最长路径上的结点数,则以下基于二叉树的深度优先搜索实现的深度计算函数中横线上应填写( )。
// 定义二叉树的结点结构
struct tree_node {
    int val;
    tree_node* left;
    tree_node* right;
    tree_node(int x) : val(x), left(nullptr), right(nullptr) {
    }
}
;
// 计算二叉树的深度
int max_depth(tree_node* root) {
    if (root == nullptr) {
        return 0;
        // 如果根结点为空,则深度为 0
    }
    int left_depth = max_depth(root->left);
    int right_depth = max_depth(root->right);
    __________________ // 在此处填入代码
}

A. return left_depth + right_depth;
B. return max(left_depth, right_depth);
C. return max(left_depth, right_depth) + 1;
D. return left_depth + right_depth + 1;

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

答案和更多内容请查看网站:【试卷中心 -- C/C++编程 五级/六级/其它】

网站链接 

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

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


http://www.kler.cn/a/392733.html

相关文章:

  • 如何使用ffmpeg命令行进行录屏
  • 【JVM】关于JVM的内部原理你到底了解多少(八股文面经知识点)
  • 深入理解BERT模型配置:BertConfig类详解
  • Electron 项目启动外部可执行文件的几种方式
  • 「Mac玩转仓颉内测版7」入门篇7 - Cangjie控制结构(下)
  • 灰狼优化算法
  • Jailbreaking ChatGPT via Prompt Engineering: An Empirical Study
  • 手术机器人:精准医疗的新选择
  • blind-watermark - 水印绑定
  • 大数据新视界 -- 大数据大厂之 Impala 在大数据架构中的性能优化全景洞察(上)(13/30)
  • CSS Modules中的 :global
  • 矩阵的各种计算:乘法、逆矩阵、转置、行列式等——基于Excel实现
  • 遇到Word打不开,WPS可以打开的解决办法
  • ES6字符串的新增方法
  • 微服务架构面试内容整理-API 网关-Gateway
  • (68)希尔伯特变换、解析信号,与瞬时幅度、频率和相位的提取的MATLAB仿真
  • 《C陷阱与缺陷》
  • 缓存淘汰策略及其使用场景详解
  • 效率工具-tig的使用
  • 最新的ssl证书有效期只有3个月,ssl到期后如何处理?
  • Java Http 接口对接太繁琐?试试 UniHttp 框架吧
  • Unity Assembly Definition Assembly Definition Reference
  • Python网络爬虫与数据采集实战——网络爬虫的基本流程
  • xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer
  • 随机链表 (Randomized Linked List)、随机树 (Randomized Tree)详细解读
  • [Java]微服务治理