GESP Level 2 · 2024-06

客观题逐题讲义

15 道单选 + 10 道判断。每题按“题干 → 自己想 → 答案 → 知识点 → 分步推导 → 易错点”组织,适合课堂讲评和课后复习。

25客观题总数
15单选题
10判断题
50总分

一、单选题逐题讲评

单选题 · 1

第 1 题(单选题)

#
审题基础语法

小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?()

A.1
B.2
C.3
D.4
展开:答案、思考步骤与易错点
正确答案C

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

讲评时可以先让学生口头说出排除理由,再打开解析核对。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 2

第 2 题(单选题)

#
审题基础语法

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天,则图中菱形框中应该填入()。

A.(yr%400==0) || (yr%4==0)
B.(yr%400==0) || (yr%4==0 && yr%100!=0)
C.(yr%400==0) && (yr%4==0)
D.(yr%400==0) && (yr%4==0 && yr%100!=0)
展开:答案、思考步骤与易错点
正确答案B

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

输出题不要只算值,还要看格式控制、空格、换行和输出语句的位置。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 3

第 3 题(单选题)

#
审题基础语法

在C++中,下列不可做变量的是()。

A.five-Star
B.five_star
C.fiveStar
D.fiveStar
展开:答案、思考步骤与易错点
正确答案A

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

讲评时可以先让学生口头说出排除理由,再打开解析核对。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 4

第 4 题(单选题)

#
审题基础语法

在C++中,与 for(int i=0; i<10; i++) 效果相同的是()。

A.for(int i=0; i<10; i++)
B.for(int i=1; i<=10; i++)
C.for(int i=10; i>0; i--)
D.for(int i=10; i<1; i++)
展开:答案、思考步骤与易错点
正确答案A

知识点讲解

基础语法与审题

先这样想

先列变量每轮变化,再看输出语句是否真的执行。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 5

第 5 题(单选题)

#
审题基础语法

在C++中,cout << (5 % 2 && 5 % 3) 的输出是()。

A.1
B.2
C.true
D.false
展开:答案、思考步骤与易错点
正确答案A

知识点讲解

基础语法与审题

先这样想

先确定除法的商和余数分别代表什么,再代入小样例检查。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

计算时分清 `/` 是商,`%` 是余数;如果题目要求第 N 个位置,常要先改成从 0 开始的下标。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 6

第 6 题(单选题)

#
审题基础语法

执行下面的C++代码时输入1,则输出是()。

int month;
cin >> month;
switch(month){
    case 1:
        cout << "Jan";
    case 3:
        cout << "Mar";
        break;
    default:
    ;
}
A.Jan
B.Mar
C.Jan Mar
D.以上均不对
展开:答案、思考步骤与易错点
正确答案C

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 7

第 7 题(单选题)

#
审题基础语法

执行下面 C++ 代码后,有关说法错误的是()。

int a, b;
cin >> a >> b;
if (a && b)
    cout << "1";
else if (!(a || b))
    cout << "2";
else if (a || b)
    cout << "3";
else
    cout << "4";
A.如果先后输入1和1,则将输出1
B.如果先后输入0和1或者1和0,则将输出3
C.如果先后输入0和0,则将输出2
D.如果先后输入0和0,则将输出4
展开:答案、思考步骤与易错点
正确答案D

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

输出题不要只算值,还要看格式控制、空格、换行和输出语句的位置。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 8

第 8 题(单选题)

#
审题基础语法

某货币由5元,2元和1元组成。输入金额(假设为正整数),计算出最少数量。为实现其功能,横线处应填入代码是()。

int N;
cin >>N;
int M5, M2, M1;
M5 = N / 5;
M2 = ___;
M1 = ___;
printf("5*%d+2*%d+1*%d", M5, M2, M1);
A.第1横线处应填入:N / 2 第2横线处应填入:N - M5 - M2
B.第1横线处应填入:(N - M5 * 5) / 2 第2横线处应填入:N - M5 * 5 - M2 * 2
C.第1横线处应填入:N - M5 * 5 / 2 第2横线处应填入:N - M5 * 5 - M2 * 2
D.第1横线处应填入:(N - M5 * 5) / 2 第2横线处应填入:N - M5 - M2
展开:答案、思考步骤与易错点
正确答案B

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

计算时分清 `/` 是商,`%` 是余数;如果题目要求第 N 个位置,常要先改成从 0 开始的下标。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 9

第 9 题(单选题)

#
审题基础语法

下面C++代码执行后的输出是()。

int loopCount = 0;
for (int i=0; i < 10; i++)
    for (int j=1; j < i; j++)
        loopCount += 1;
cout << loopCount;
A.55
B.45
C.36
D.28
展开:答案、思考步骤与易错点
正确答案C

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 10

第 10 题(单选题)

#
审题基础语法

下面 C++ 代码执行后的输出 is()。

int loopCount = 0;
for (int i=0; i < 10; i++) {
    for (int j=0; j < i; j++)
        if (i * j % 2)
            break;
    loopCount += 1;
}
cout << loopCount;
A.25
B.16
C.10
D.9
展开:答案、思考步骤与易错点
正确答案C

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 11

第 11 题(单选题)

#
审题基础语法

假设下面 C++ 代码执行过程中仅输入正负整数或 0,有关说法错误的是()。

int N, Sum = 0;
cin >> N;
while (N){
    Sum += N;
    cin >> N;
}
cout << Sum;
A.执行上面代码如果输入0,将终止循环
B.执行上面代码能实现所有非0整数的求和
C.执行上面代码第一次输入0,最后将输出0
D.执行上面代码将陷入死循环,可将 while (N) 改为 while (N==0)
展开:答案、思考步骤与易错点
正确答案D

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 12

第 12 题(单选题)

#
审题基础语法

执行下面的C++代码,有关说法正确的是()【质数是指仅能被1和它本身整除的正整数】。

int N;
cin >> N;
bool Flag = true;
for (int i = 2; i < N; i++) {
    if (i * i > N)
        break;
    if (N % i == 0) {
        Flag = false;
        break;
    }
}
if (Flag)
    cout << N << "是质数" << endl;
else
    cout << N << "不是质数" << endl;
A.如果输入正整数,上面代码能正确判断N是否为质数
B.如果输入整数,上面代码能正确判断N是否为质数
C.如果输入大于等于0的整数,上面代码能正确判断N是否质数
D.如将 Flag = true 修改为 Flag = N >= 2? true:false 则能判断所有整数包括负整数、0、正整数是否为质数
展开:答案、思考步骤与易错点
正确答案D

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 13

第 13 题(单选题)

#
审题基础语法

下面C++代码用于实现如下图所示的效果,其有关说法正确的是()。

1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
for (int i = 1; i < 6; i++) { // L1
    for (int j = 1; j < i + 1; j++) // L2
        cout << i * j << " ";
    cout << endl;
}
A.当前代码能实现预期效果,无需调整代码
B.如果 cout << endl; 移到循环L2内部,则可实现预期效果
C.如果 cout << endl; 移到循环L1外部,则可实现预期效果
D.删除 cout << endl; 行,则可实现预期效果
展开:答案、思考步骤与易错点
正确答案A

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 14

第 14 题(单选题)

#
审题基础语法

下面 C++ 代码执行后,输出 is()。

int cnt1 = 0, cnt2 = 0;
for (int i = 0; i < 10; i++) {
    if (i % 2 == 0)
        continue;
    if (i % 2)
        cnt1 += 1;
    else if (i % 3 == 0)
        cnt2 += 1;
}
cout << cnt1 << " " << cnt2;
A.52
B.50
C.02
D.00
展开:答案、思考步骤与易错点
正确答案B

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

单选题 · 15

第 15 题(单选题)

#
审题基础语法

在下面的C++代码中,N必须是小于10大于1的整数,M为正整数(大于0)。如果M被N整除则M为幸运数,如果M中含有N且能被N整除,则为超级幸运数,否则不是幸运数。程序用于判断M是否为幸运数或超级幸运数或非幸运数。阅读下面代码,有关说法正确的是()。

int N, M;
cout << "请输入幸运数字:";
cin >> N;
cout << "请输入正整数:";
cin >> M;
bool Lucky;
if (M % N == 0)
    Lucky = true;
else
    Lucky = false;
while (M){
    if (M % 10 == N && Lucky){
        printf("%d是%d的超级幸运数!", M, N);
        break;
    }
    M /= 10;
}
if (M == 0)
    if (Lucky)
        printf("%d是%d的幸运数!", M, N);
    else
        printf("%d非%d的幸运数!", M, N);
A.如果N输入3,M输入36则将输出:36是3的超级幸运数!
B.如果N输入7,M输入21则将输出:21是7的幸运数!
C.如果N输入8,M输入36则将输出:36非8的超级幸运数!
D.如果N输入3,M输入63则将输出:63是3的超级幸运数!
展开:答案、思考步骤与易错点
正确答案D

知识点讲解

基础语法与审题

先这样想

先圈关键词,再排除与题意不匹配的选项。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

二、判断题逐题讲评

判断题 · 1

第 1 题(判断题)

#
审题基础语法

执行C++代码cout << '9'+1'; 的输出为10。()

判断本题结论:先独立判断,再展开答案。正确答案是 错误
展开:答案、思考步骤与易错点
正确答案错误

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

输出题不要只算值,还要看格式控制、空格、换行和输出语句的位置。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 2

第 2 题(判断题)

#
审题基础语法

C++表达式 -12 % 10 的值为2。()

判断本题结论:先独立判断,再展开答案。正确答案是 错误
展开:答案、思考步骤与易错点
正确答案错误

知识点讲解

基础语法与审题

先这样想

先确定除法的商和余数分别代表什么,再代入小样例检查。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

计算时分清 `/` 是商,`%` 是余数;如果题目要求第 N 个位置,常要先改成从 0 开始的下标。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 3

第 3 题(判断题)

#
审题基础语法

C++表达式 int(12.56) 的值为13。()

判断本题结论:先独立判断,再展开答案。正确答案是 错误
展开:答案、思考步骤与易错点
正确答案错误

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

讲评时可以先让学生口头说出排除理由,再打开解析核对。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 4

第 4 题(判断题)

#
审题基础语法

C++的整型变量N被赋值为10,则语句cout << N / 3 << "-" << N % 3 执行后输出是3-1。()

判断本题结论:先独立判断,再展开答案。正确答案是 正确
展开:答案、思考步骤与易错点
正确答案正确

知识点讲解

基础语法与审题

先这样想

先确定除法的商和余数分别代表什么,再代入小样例检查。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

计算时分清 `/` 是商,`%` 是余数;如果题目要求第 N 个位置,常要先改成从 0 开始的下标。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 5

第 5 题(判断题)

#
审题基础语法

在C++代码中,不可以将变量命名为scanf,因为scanf是C++语言的关键字。()

判断本题结论:先独立判断,再展开答案。正确答案是 错误
展开:答案、思考步骤与易错点
正确答案错误

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

讲评时可以先让学生口头说出排除理由,再打开解析核对。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 6

第 6 题(判断题)

#
审题基础语法

下面C++代码执行后将导致死循环。()

for (int i = 0; i < 10; i++)
    continue;
判断本题结论:先独立判断,再展开答案。正确答案是 错误
展开:答案、思考步骤与易错点
正确答案错误

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 7

第 7 题(判断题)

#
审题基础语法

下面 C++ 代码执行后将输出 10。()

int cnt = 0;
for (int i = 0; i < 10; i++)
    for (int j = 0; j < i; j++)
        cnt += 1;
    break;
}
cout << cnt;
判断本题结论:先独立判断,再展开答案。正确答案是 错误
展开:答案、思考步骤与易错点
正确答案错误

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 8

第 8 题(判断题)

#
审题基础语法

下面C++代码执行后,将输出5。()

int cnt = 0;
for (int i = 1; i < 5; i++)
    for (int j = i; j < 5; j += i)
        if (i * j % 2 == 0)
            cnt += 1;
cout << cnt;
判断本题结论:先独立判断,再展开答案。正确答案是 正确
展开:答案、思考步骤与易错点
正确答案正确

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 9

第 9 题(判断题)

#
审题基础语法

下面C++代码能实现正整数各位数字之和。()

int N, Sum = 0;
cin >> N;
while (N){
    Sum += N % 10;
    N /= 10;
}
cout << Sum;
判断本题结论:先独立判断,再展开答案。正确答案是 正确
展开:答案、思考步骤与易错点
正确答案正确

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

建议在草稿纸画三列:当前变量、条件真假、本轮输出。遇到 continue 直接跳到下一轮,遇到 break 只跳出当前循环。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。

判断题 · 10

第 10 题(判断题)

#
审题基础语法

GESP测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。()

判断本题结论:先独立判断,再展开答案。正确答案是 正确
展开:答案、思考步骤与易错点
正确答案正确

知识点讲解

基础语法与审题

先这样想

把题干拆成两半:事实是否正确,结论是否被事实支持。

分步推导

  1. 先根据题干关键词定位知识点。
  2. 再逐项核对选项或判断题结论。

计算 / 追踪提示

讲评时可以先让学生口头说出排除理由,再打开解析核对。

易错点

不要只凭直觉选答案,要回到代码执行顺序和题干条件。