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题)


相关推荐
tankeven9 分钟前
C++ 学习杂记05:std::map
c++
Magic@15 分钟前
Redis学习[1] ——基本概念和数据类型
linux·开发语言·数据库·c++·redis·学习
黑不溜秋的16 分钟前
C++ STL reduce 用法
开发语言·c++
云泽80839 分钟前
二叉树高阶笔试算法题精讲(一):序列化、层序遍历、LCA 与 BST 转换
数据结构·c++·算法
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 98. 验证二叉搜索树 | C++ 指针边界法
c++·算法·leetcode
t***5441 小时前
如何在 Dev-C++ 中配置 Clang 编译器
开发语言·c++
白夜11171 小时前
静态库vs动态库
c++·笔记
小辉同志2 小时前
45. 跳跃游戏 II
c++·leetcode·游戏·贪心算法
海参崴-2 小时前
C++ 进阶篇 STL 模拟实现二叉搜索树
开发语言·c++
cpp_25012 小时前
P2871 [USACO07DEC] Charm Bracelet S
数据结构·c++·算法·动态规划·题解·洛谷·背包dp