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


相关推荐
charlie1145141916 分钟前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32
用户8055336980312 分钟前
现代Qt开发教程(新手篇)1.10——进程
c++·qt
海参崴-18 分钟前
C++ STL篇 AVL树的模拟实现
开发语言·c++
汉克老师19 分钟前
GESP2025年6月认证C++五级( 第二部分判断题(1-10))
c++·贪心算法·分治算法·线性筛法·gesp5级·gesp五级
6Hzlia30 分钟前
【Hot 100 刷题计划】 LeetCode 15. 三数之和 | C++ 排序+双指针
c++·算法·leetcode
vegetablesssss39 分钟前
VTK切割图
c++·qt·vtk
CN-Dust1 小时前
【C++】for循环例题专题
java·c++·算法
IOT那些事儿1 小时前
Qt5 VSCode调试
c++·vscode·mingw·qt5
c++之路1 小时前
C++ 多线程
开发语言·c++
故事和你912 小时前
洛谷-算法2-3-分治与倍增5
开发语言·数据结构·c++·算法·动态规划·图论