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


相关推荐
BirdenT1 天前
20260519紫题训练
c++·算法
C+++Python1 天前
C++ 进阶学习完整指南
java·c++·学习
sparEE1 天前
c++值类别、右值引用和移动语义
开发语言·c++
jrrz08281 天前
Apollo MPC Controller
c++·自动驾驶·apollo·mpc·横向控制·lateral control
小王C语言1 天前
【线程概念与控制】:线程封装
jvm·c++·算法
学习,学习,在学习1 天前
Qt工控仪器程序框架设计详解(工控多仪器控制版本)
开发语言·c++·qt
信竞星球_少儿编程题库1 天前
2026年全国信息素养大赛算法应用主题赛 丝路新城 C++ 模拟卷(三)
开发语言·c++
Zhang~Ling1 天前
深入解析C++list:从0到1实现一个完整的链表类
c++·链表·list
王老师青少年编程1 天前
csp信奥赛C++高频考点专项训练之字符串 --【字符串综合】:[NOIP 2015 提高组] 子串
c++·字符串·csp·高频考点·子串·信奥赛
June`1 天前
redis项目之命令解析器
数据库·c++·redis