GESP2023年12月认证C++二级( 第一部分选择题(1-8))


🧩 第1题:变量名谁不合格?

1、题目问:

下面哪个 不能当变量名?

A. FiveStar

B. fiveStar

C. 5Star

D. Star5


2、🎈变量王国的法律

(1)在"变量王国"里,有一条法律:

👮 变量名字不能以数字开头!


(2)为什么呢?

因为编译器看到 5Star, 首先看到的5,这是个字面常量,不是变量:

它会直接搞蒙了。


3、🔎 判断一下

选项 合法吗? 原因
FiveStar ✅ 字母开头
fiveStar ✅ 字母开头
5Star ❌ 数字开头
Star5 ✅ 字母开头

4、🎯 正确答案:C



🧩 第2题:for循环谁输出一样?

1、题目给:

cpp 复制代码
for(int i=10;i<20;i+=2)
    cout<<i;

2、🧠 我们模拟一下

从 10 开始

每次 +2

直到 i<20

输出:

cpp 复制代码
10 12 14 16 18

3、我们看选项:

A. i<19

👉 19 之前也会输出 10 12 14 16 18

✔ 一样!


B. 从 11 开始

👉 输出 11 13 15 17

❌ 不一样


C. i<21

👉 输出 10 12 14 16 18 20

❌ 多了 20


D. 都不对

❌


4、🎯 正确答案:A



🧩 第3题:找因子循环从哪开始?

1、题目想输出 N 的因子:

例如 N=18

要输出:

cpp 复制代码
1 2 3 6 9 18

2、🧠 因子从几开始?

因子一定从 1 开始

不能从 0 开始 ❗

因为:

cpp 复制代码
N % 0   ❌ 会炸

3、否要包括 N?

必须包括 N 本身

所以循环应该:

cpp 复制代码
int i = 1; i < N+1; i++

也就是:

cpp 复制代码
i <= N

4、🎯 正确答案:D



🧩 第4题:对称数代码问题

1、题目是判断:

1221 是对称数

123 不是


2、🚨 问题关键

循环结束时:

cpp 复制代码
N 会变成 0

因为在拆数字的时候:

cpp 复制代码
N = N / 10;

最后 N 被除没了。


3、问题是?

如果你最后拿 N 去比较

那 N 已经是 0

就无法判断原来的数了!


4、🎯 正确答案:D

循环结束后 N 已经变成0,达不到预期效果,这是C++初学者经常遇到的坑。



🧩 第5题:判断质数的陷阱

1、质数:只能被 1 和自己整除


2、错误写法:

cpp 复制代码
for(int i=2;i< N/2;i++)
{
    if(N%i==0)
    {
        cout<< N <<"不是质数";
        break;
    }
}

问题来了!

如果N=4, N/2=2,

循环结束后没输出"不是质数"


3、正确写法应该:

修改循环条件

cpp 复制代码
将第2行和第7行的 N / 2 改为 N / 2 + 1 。

cpp 复制代码
for(int i=2;i<N/2+1;i++)
{
    if(N%i==0)
    {
        cout<< N <<"不是质数";
        break;
    }
}
if(i>=N/2+1)
   cout<< N <<"是质数"; 

4、🎯 正确答案:D



🧩 第6题:循环输出的魔法

1、输出选项:

A. 2#3#0

B. 1#2#0

C. 1#0#

D. 2#3#


2、这题目考:

  • 循环次数

  • 输出控制


3、根据代码:

cpp 复制代码
if(i * j % 2 == 0)
    cout << i << '#';
continue;

4、当i ==2 ,3时,符合条件

循环中输出

cpp 复制代码
2#3#

5、循环结束

cpp 复制代码
cout << " 0 ";

6、🎯 正确答案:A **.**2#3#0

(考察循环执行顺序)



🧩 第7题:break到底跳出那一层?

1、看break的位置

cpp 复制代码
cnt =0;
for(i =1;i<10;i++)
    for(j =1;j<i;j +=2)
        if(i*j % 2 ==0){
            cnt++;
            break;
        }
if(i>=10)
    cout <<cnt <<"#";
cout <<cnt ;

break是跳出内循环,继续外循环。


2、内循环的数字都是奇数

cpp 复制代码
for(j =1;j<i;j +=2)

3、计数器的次数

cpp 复制代码
for(i =1;i<10;i++)
    for(j =1;j<i;j +=2)
        if(i*j % 2 ==0){
            cnt++;
            break;
        }

只有外循环,i = 2, 4, 6, 8 计数器计数


4、外循环结束时,i = 10

cpp 复制代码
if(i>=10)
    cout <<cnt <<"#";
cout <<cnt ;

5、🎯 正确答案:D

输出:4#4



🧩 第8题:循环 + 多分支结构

1、三重判断:

cpp 复制代码
N=100;
while(N >0)
    if(N % 2)        //第一判断 N是奇数
        break;
    else if(N % 3 ==0) //第二判断 N是3的倍数
        N -=5;
    else N -=20;    //第三判断 其他

2、N 的循环历程

100 --> 80--> 60--> 55--> break


3、🎯 正确答案:C

输出:55


相关推荐
AC赳赳老秦3 小时前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
无名猿4 小时前
C++ 查找算法:std::find 与容器成员 find 的性能差距
c++·性能优化·stl·标准库
程序猿编码4 小时前
工业视觉多任务方案:可编程梯度信息视觉框架,训练评估 + C++ 部署完整实战
开发语言·c++·视觉·推理引擎
朝朝辞暮i5 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
SHARK_pssm6 小时前
【C++——类和对象(下)】
开发语言·c++·经验分享·笔记
汉克老师7 小时前
GESP2026年9月认证C++二级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程
沫璃染墨7 小时前
《从零入门Linux系统篇(五十四):线程篇·七——互斥锁底层原理:从原子交换到线程竞争与锁实现》
linux·运维·服务器·开发语言·c++·驱动开发·系统架构
可乐ea9 小时前
GitHub Security Lab 开源 Fuzzing Taskflow:让 LLM 智能体自己跑完 C/C++ 模糊测试
jvm·c++·github·模糊测试·mcp·代码agent·智能体自动化
朝朝辞暮i9 小时前
C++ 第 13 课:值传递 —— 为什么函数里改了,外面却没变?
java·c++·算法
无忧.芙桃10 小时前
C++语言原理与实践(十):vector类的底层实现
开发语言·c++·算法