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


🟡 第 1 题:传感器像计算机的什么?

1、题目故事版

机器人参加马拉松🏃‍♂️,

它身上有很多 传感器

  • 感觉地面

  • 感觉身体有没有歪

  • 感觉速度快不快

👉 问:这些传感器,像计算机里的什么?


2、🌈 类比理解

把计算机当成一个人:

计算机
眼睛 👀 输入设备
耳朵 👂 输入设备
大脑 🧠 处理器
记忆 📒 存储器
嘴巴 🗣 输出设备

📌 传感器 = 感觉外界信息 = 输入


3、✅ 正确答案

👉 C. 输入设备



🟡 第 2 题:内存条是什么?

1、小故事

小明的电脑用久了,打开程序变慢了 😫

妈妈说:"我们给你加一根内存条吧!"

那这根"内存条"是什么呢?


2、🧠 知识点讲解

计算机里的几种"记忆":

名字 特点
RAM 临时记忆,用来运行程序
ROM 固定记忆,不能随便改
CACHE 超快的小记忆
EPROM 老古董,很少考

📌 内存条 = RAM


3、✅ 正确答案

👉 A. RAM



🟡 第 3 题:a *= b 到底在干嘛?

cpp 复制代码
int a = 3;
float b = 3.5;
cout << (a *= b);

1、🎈 小故事

a 对 b 说:"我们合体吧!"
a *= b 的意思是:

👉 a = a × b


2、🧮 一步一步算

  • 原来:a = 3

  • b = 3.5

  • a × b = 10.5 ( 整型 * 浮点型 = 浮点型

  • ⚠️ 但 a 是 int(整型)

  • 10.5 会被截断成 10


3、✅ 输出结果

👉 10


4、正确答案

👉 C. 10



🟡 第 4 题:取"百位数字"

1、小任务

如果 N = 1234

要得到 百位上的数字 = 2


2、🧠有两种做法:

先除,再取余

或者

先取余,再除


3、🎯 做法分解

(1)先除,再取余
cpp 复制代码
N / 100 % 10

(2)先取余,再除
cpp 复制代码
N % 1000 / 100

4、✅ 正确答案

👉 A



🟡 第 5 题:逗号表达式

cpp 复制代码
int a, b = (6, 28);
b == a;
a = b;
cout << a << ' ' << b;

1、🎭 小故事

逗号表达式就像说一句话:

"前面的我看看就算了,只认最后一个"


2、🧠 分析

  • (6, 28)结果是 28

  • 所以 b = 28

  • a = b → a 也变成 28


3、🖨 输出

cpp 复制代码
28 28

4、✅ 正确答案

👉 D. 28 28



🟡 第 6 题:星期计算(经典取余)

1、小故事

今天是 星期六

👉 问:N 天以后是星期几?


2、🌈 秘密武器

📌 一周 = 7 天 → 用 % 7

cpp 复制代码
remainder = (N + 6) % 7;

3、为什么加 6?

  • 因为 今天是 星期六 = 第 6 天

4、✅ 正确答案

👉 D. (N + 6) % 7



🟡 第 7 题:continue + break 的陷阱

cpp 复制代码
int i, Sum = 0;
for (i = 1; i < 10; i++){
    Sum += i;
    if(i % 2) continue;
    if(i % 7) break;
}
cout << Sum;

1、🎮 像玩游戏一样理解

  • continue:跳过本轮

  • break:直接结束游戏


2、🧮 实际发生了什么?

  • i = 1 → Sum = 1 → continue

  • i = 2 → Sum = 3 → break(2 % 7 ≠ 0)

👉 循环直接结束


3、✅ 输出

👉 3


4、正确答案

👉 C. 3



🟡 第 8 题:break能跳那一层?

cpp 复制代码
int i, j;
for(i = 1; i < 12; i++)
    for(j = 1; j < i; j++)
        if(i * j % 2 == 1)
            break;
cout << i * j;

1、🧠 思考下:

有两层 for 循环,

有一个 break ,

👉 break 到底跳出"那一层循环呢"?


2、📏 看一看

cpp 复制代码
for(j = 1; j < i; j++)
    if(i * j % 2 == 1)
        break
  • break 跳出内层的 j 循环,与外层 i 循环没关系。

3、🧮 模拟操作

最后一次 j 值的变化,是 i = 11, j =1, 发生 break,最后 j 的值为 1,

最后一次 i 值的变化,是 i = 12,退出了外循环,

所以:最后 i * j = 12 * 1 = 12 。


3、✅ 正确答案

👉 C. 12


相关推荐
郝学胜-神的一滴12 小时前
中级OpenGL教程 022:探秘三维世界的血脉传承——物体父子关系与矩阵递归奥义
c++·线性代数·unity·矩阵·游戏引擎·unreal engine·opengl
ch0sen1pm12 小时前
刚学完 CAS 原子操作,我花了一晚上写了三个无锁队列
c++
qeen8712 小时前
【C++】vector的模拟实现详解(二)
c++·学习·算法·迭代器·stl
j7~13 小时前
【C++】C++ 继承全解析:从基本语法到菱形继承的底层原理
开发语言·c++·继承·组合·虚继承·#暑假·七月创作之星博客挑战赛
数行拙笔13 小时前
C++客户端---String类型
开发语言·c++·bootstrap
草莓熊Lotso13 小时前
【Linux网络】深入理解Linux IO多路复用:从本质到select服务器实战
linux·运维·服务器·c语言·网络·数据库·c++
selfsongs1 天前
指针、内存管理、现代 C++ 特性
c++
吃着火锅x唱着歌1 天前
Effective C++ 学习笔记 条款37 绝不重新定义继承而来的缺省参数值
c++·笔记·学习
2401_841495641 天前
【数据结构】B+树
数据结构·数据库·c++·b+树·概念·结构·操作原理
小保CPP1 天前
OCR C++ Tesseract按行识别字符
c++·人工智能·ocr·模式识别·光学字符识别