GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2026年6月 › 第2题

GESP 2026年6月 C++五级 单选题 第2题

C++五级单选题2026年6月第2题

所属知识点:链表 难度要求:掌握 考频:—

假设链表是单向循环链表(尾节点指回头节点),下面遍历打印代码横线处应填入( )。
struct Node {
    int val;
    Node* next;
};
void printList(Node* head) {
    if (head == nullptr) return;
    Node* p = head;
    ______________________  // 在此处填入代码
    cout << endl;
}

正确答案:C

题目解析
循环链表里指针永远不会变成 nullptr(尾节点指回 head),所以 A、B、D 都会死循环。正确做法是 do-while:先打印再前进,当 p 重新回到 head 时停止,选 C。💡 循环链表的终止条件是「转回起点」而非「遇到空」。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习