GESP2024年12月认证C++三级( 第一部分选择题(9-15))



🌟 第9题:字符串的终止符

🎯 正确答案:A**、 right**


1、🧠 故事

字符数组:

复制代码
char ch[] = "hello";

2、🪄 规则

字符串:

👉 "hello" = 5个字符

👉 还要加一个 '\0' 结束符

cpp 复制代码
[0] 'h', [1] 'e', [2] 'l', [3] 'l', [4] 'o', [5] '\0'

3、✏️ 条件判断逻辑

cpp 复制代码
string ch="hello";
if(ch[5]==NULL)        //第一判断,如果正确后面不可能再判断了
{
cout<<"right"<<endl;
}
else if (ch[5]=='\0')
{
cout<<"wrong"<<endl;
}
else
{
cout<<"hello"<<endl;
}

4、 NULL是什么?

NULL 在C++中通常定义为 0(void*)0\0 的ASCII值也是 0,因此 ch[5] == NULL 为真 ,触发第一个条件分支,输出 "right"


5、🎉 答案是 A



🌟 第10题:内存空间探险

🎯 正确答案:D(12)


1、🧠 故事

字符数组:

char ch[] = "hello world";


2、🪄 规则

字符串:

👉 "hello world" = 11个字符

👉 还要加一个 '\0' 结束符


3、✏️ 计算

ch 占用的内存空间是 ( )?

内存为:11 + 1 = 12

🎉 所以答案是 12


4、题目有坑:

cpp 复制代码
char ch[] = "hello world";
size_t ret=strlen(ch);
cout<<ret<<endl;

程序输出为11,很多同学选的是A,但是题目没问你输出是什么!这题,是挖的坑!



🌟 第11题:ASCII魔法数字

🎯 正确答案:D、97


1、🧠 故事

复制代码
int a=65;
cout<<tolower(a);

2、🪄 规则

👉 tolower():变小写

👉 65 = 'A'

👉 小写 = 'a'

👉 (int ) 'a' = 97


3、🎉 输出:97



🌟 第12题:统计数字大挑战

🎯 正确答案:C


1、🧠 故事

小机器人要统计:

👉 从 n 到 m

👉 数字 d 出现了多少次


2、🪄 正确程序要满足:

✅ 从 n 到 m

✅ 每个数拆位

✅ 判断 %10 == d

✅ 有计数器 res++

✅ 初始化 res=0


3、❌ 错误示例

==写成 = ❌ B错误

res没初始化 ❌ A错误

temp没定义 ❌ D错误


4、🎉 只有 C 完全正确



🌟 第13题:百钱买百鸡

🎯 正确答案:(答案表:D)


1、🧠 故事

你有100元,要买100只动物:

动物 价格
🐰兔子 5元
🐔鸡 3元
🦆鸭 1元3只

2、🪄 数学关系

cpp 复制代码
兔 + 鸡 + 鸭 = 100
5*兔 + 3*鸡 + 鸭/3 = 100

3、🧩 解法

👉 三重循环枚举:

复制代码
for(兔)
 for(鸡)
  for(鸭)

👉 同时满足两个条件 ✔️


4、🧩 判断

cpp 复制代码
if(i + j + k == 100 && 25 * i + 10 * j + k == 300)//A的判断条件错误
cpp 复制代码
if(i + j + k == 100 && 20 * i + 10 * j + k == 300)//B的判断条件也错误
cpp 复制代码
for(int k = 0; k <= 20; k++)  //C的循环条件不够

5、🎉 正确程序是 D

其实D的条件也有欠缺,本题要求至少都要有一只,应该都从1开始循环判断,更加合理。



🌟 第14题:素数检测魔法

🎯 正确答案:C


1、🧠 故事

什么是素数?

👉 只能被1和自己整除


2、🪄 方法(暴力检测)

复制代码
for i = 2 → N
  for j = 2 → i-1
    如果 i % j == 0 → 不是素数

3、⚠️ 关键点

要先输出 2 ✔️

flag控制 ✔️

每轮重置 ✔️


4、🎉 最标准的是 C


5、其他选项错误:

cpp 复制代码
if(N >= 3){
cout<<2<<endl;   //A 条件错误
cpp 复制代码
if(N >= 2){                     //B没输出2 错误
for(int i = 3;i <= N;i ++){
for(int j = 2;j < i;j ++){
cpp 复制代码
for(int i = 3;i <= N;i ++){
    for(int j = 2;j < i;j ++){
        if(i % j == 0){
            flag = 1;
        }
    }
    if(c == 0){
    cout<<i<<endl;
    }
}                        D、flag没有重置回0  错误


🌟 第15题:金环切割大智慧

🎯 正确答案:A(1,2,4,8)


1、🧠 故事

工人每天领工资:

👉 第1天:1个

👉 第2天:2个

👉 第3天:3个

...

你只有一个15环项链!


2、🪄 聪明方法(二进制思想)

拆成:

复制代码
1 + 2 + 4 + 8 = 15

👉 任意组合都能凑出来!


3、🎯 举例

第7天:

复制代码
7 = 4 + 2 + 1

4、🎉 所以最少切成:

👉 4段:1、2、4、8


🚀 总结

1、🧩 字符串

replace(第9题)


2、💾 内存

'\0'(第10题)


3、🔤 字符编码

ASCII(第11题)


4、🔁 循环+统计

第12、13题


5、🔢 数学+算法

素数(第14题)

二进制拆分(第15题)


相关推荐
梦游钓鱼7 小时前
虚继承实现原理详解及案例
c++
森G7 小时前
34、事件的分发机制---------事件系统
c++·qt
DY009J8 小时前
从 MSYS2 环境中提取独立 MinGW-w64 工具链的技术方案
c++·windows
xiaoye-duck8 小时前
《算法题讲解指南:动态规划算法--子数组系列》--25.单词拆分,26.环绕字符串中唯一的子字符串
c++·算法·动态规划
承渊政道8 小时前
【优选算法】(实战:栈、队列、优先级队列高频考题通关全解)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
liulilittle8 小时前
OPENPPP2 1.0.0.26145 正式版发布:内核态 SYSNAT 性能飞跃 + Windows 平台避坑指南
开发语言·网络·c++·windows·通信·vrrp
AIminminHu8 小时前
OpenGL渲染与几何内核那点事-项目实践理论补充(三-1-(2):当你的CAD代码变得“又大又乱”:从手动编译到CMake,从随性编码到单元测试))
c++·单元测试·cmake·cad·cad开发
xiaoye-duck9 小时前
《算法题讲解指南:动态规划算法--子数组系列》--23.等差数列划分,24.最长湍流子数组
c++·算法·动态规划
消失的旧时光-19439 小时前
C++ 网络服务端主线:从线程池到 Reactor 的完整路线图
开发语言·网络·c++·线程池·并发