当前位置: 首页 > news >正文

GESP2026年6月认证C++三级( 第一部分选择题(1-7))精讲




第一部分 选择题 第1题

《神秘数字王国——同一个二进制,为什么能表示不同的数字?》

题目:

关于计算机的数据编码,下面说法正确的是( )。

答案:A


1、🌈故事开始

一天,小杨来到了数字王国。

(1)国王递给他一张纸:

10001101

(2)国王问:

"小杨,这是多少?"


(3)小杨立刻回答:

"141!"


(4)旁边的大臣却说:

"不对,是-13!"


(5)小杨惊呆了:

"怎么同一个数字还能有两个答案?"


(6)国王笑了:

"因为它戴了不同的帽子!"


2、第一种帽子——无符号数

如果它表示普通数字:

10001101₂

计算:

128+8+4+1 =141

所以

141

3、第二种帽子——原码

如果最高位表示符号:

1

表示负数。

后面

0001101

就是13。

所以表示

-13

4、于是:

10001101 可以表示141 也可以表示-13

这完全取决于:

我们怎么看它。


5、🎯知识点

二进制数字的值,真正决定意义的是:

  • 无符号数

  • 原码

  • 反码

  • 补码

不同解释:

得到不同数字。


6、为什么B、C、D选项错?

(1)B说:

计算机最终以二进制、八进制、十六进制存储。

这是错误的。

真正存储只有:

二进制!

八进制、十六进制只是方便人看。


(2)为什么C错?

C说:

Byte是最小单位

实际上:

最小单位是

bit(位)

8 bit

才等于

1 Byte

1字节


(3)为什么D错?

D说:

1KB=1000Byte

计算机里:

1KB=1024Byte

7、⭐考试技巧

遇见:

数据存储

牢记:

计算机真正存储: 只有二进制!


第一部分 第2题

《硬盘商人的秘密——为什么1TB买回来变小了?》

答案:

B


1、🌈故事

(1)小杨买了一个

1TB

硬盘。

回家插电脑。

电脑却显示:

931GB

(2)他气坏了:

"老板骗我!"

老板笑着说:

"没有骗你,只是我们算的方法不一样。"


2、两种计算方式

(1)厂家:

1000进制

所以:

1KB=1000B 1MB=1000KB 1GB=1000MB 1TB=1000GB

(2)电脑:

1024进制

所以:

1KB=1024B

因此:

1000000000000 ÷1024 ÷1024 ÷1024 ÷1024 ≈931GB

所以电脑看到:

931GB左右

3、🎯知识点

考试牢记:

厂家:

1000

电脑:

1024


第一部分 第3题

《压缩小精灵——两个数字住进一间房》

答案:

C


1、🌈故事

(1)有四个数字:

1 2 3 4

(2)每个数字只有

4bit

(3)于是压缩精灵说:

"两个人住一间!"


2、第一个字节:

0001 0010

合起来:

00010010

写成十六进制:

12H

3、第二个字节:

0011 0100

合起来:

00110100

就是:

34H

4、所以为:

12H 34H

答案:

C

5、🎯知识点

一个字节:

8bit

一个十六进制:

4bit

因此:

一个字节 刚好两个十六进制数字。

6、🎯易错点

(1)12H、34H 并不是 C++ 的语法,而是一种计算机教材、电子电路、汇编语言中经常使用的十六进制表示方法。

在 C++ 中,我们不能写成12H,而应该写成:

0x12 0x34

(2)以前很多教材、CPU手册、汇编语言都是这样写。

例如:

FFH

表示:

0xFF

很多电子工程师今天仍然这么写。



第一部分 第4题

《补码魔法学院——谁说错了?》

答案:

B


这题主要考:

补码范围。


1、🌈故事

(1)补码王国里住着8位士兵。

他们只能表示:

256个数字

范围:

-128 ~ 127

(2)一定牢记:

最大 127 最小 -128

2、A为什么对?

快速求补码:

从右向左 找到第一个1 左边全部取反

这是经典技巧。


3、C为什么对?

反码:

减法 可以变加法

4、D为什么对?

反码:

+0 00000000

还有

-0 11111111

所以:

反码表示中,0有两种表示方式。

5、🎯知识点

补码:

唯一一个0

反码:

有两个0


第一部分 第5题

《三把神秘钥匙——字符加密》

答案:

A


1、🌈故事

(1)国王把秘密拆成三份:

第一份:

GESP

第二份:

2026

第三份:

| - ^ +

只有三份合起来才能解密。


(2)分别计算:


'G' | 6

ASCII:

G=71
71|6 =71

仍然:

G

'E' 69 -2 =67 =C

'S' 83^0 =83 =S

任何数:

^0 都不变

'P' 80 +2 = 82 R

(3)得到:

GCSR

答案:

A

2、🎯知识点

小窍门:

x ^ 0 = x x | 0 = x

字符本质就是:

ASCII整数


第一部分 第6题

《位运算四兄弟》

答案:

C(错误)


1、🌈故事

位运算学院有四位同学。


第一位:异或

5 7 9 7 5

两两抵消:

5^5=0 7^7=0

最后:

9

第二位:交换

a^=b b^=a a^=b

不用第三个变量。


第三位:左移

(1)他说:

左移 一定乘2

(2)汉克老师说:

"不对!"

只有:

没有溢出

才成立。


(3)如果:

11111111

左移:

高位丢了。

结果完全变了。


(4)因此:

左移≈乘2 不是永远成立。

第四位:取反公式

~n=-n-1

这是经典公式。


2、🎯考试技巧

左移:

没有溢出 ≈乘2

千万不要说:

永远乘2!


第一部分 第7题

《危险的字符仓库——数组越界》

答案:

C


1、🏠第一个选项(A)

(1)程序:

char str[] = "GESP"; int len1 = sizeof(str); int len2 = strlen(str);

A说:

程序能够正确执行,len1 与 len2 相等。

到底对不对?


(2)我们先看看数组里面到底装了什么?

有的同学认为:

G E S P

其实不是。

字符串最后还有一个结束符

'\0'

(3)真正存储的是:

下标01234
内容GESP'\0'

所以数组大小其实是:

5

(4)sizeof()

sizeof 是什么?

可以把它理解成:

sizeof 是计算一个对象占用了多少个字节(Byte)的空间。

整个数组有几个格子?

G E S P \0

一共:

5

所以

sizeof(str)

得到:

5

(5)strlen()

strlen 是什么?

可以理解成:

数真正的字符。

它遇到

'\0'

就停止。

因此:

G E S P

只有:

4

所以:

strlen(str)

得到:

4

因此:

len1=5 len2=4

当然:

不相等!

所以:

❌ A错误。


🏠第二个选项(B)

(1)看程序:

char str1[4] = "GESP"; char str2[4] = {'G','E','S','P'};

(2)B说:

这段程序能够正确执行。

很多孩子第一眼觉得:

"不是都放进去了吗?"

其实不是!


(3)第一行为什么错?

看看:

"GESP"

真正需要几个字符?

G E S P \0

一共:

5

(4)但是:

char str1[4]

只有:

4

个位置。

根本放不下。


(5)因此:

编译错误

或者:

初始化失败

(6)第二行呢?

char str2[4]={ 'G', 'E', 'S', 'P' };

这里只有:

4

个字符。

没有:

'\0'

所以:

它不是一个C风格字符串。

只是:

字符数组

它本身没有问题。


(7)为什么整个B还是错?

因为:

第一句错了。

整个程序当然不能正确执行。

所以:

❌ B错误。


🏠第三个选项(C)

(1)看程序:

char str2[4]={'G','E','S','P'}; strcpy(str2,"HELLO,GESP"); cout<<str2<<endl;

(2)题目说:

即使能够运行,也存在覆盖数组以外内存空间的行为。

这是正确答案。


(3)为什么?

数组:

4格

却要复制:

HELLO,GESP

长度:

10+1

(还有结束符)


(4)显然:

11

个字符。

于是:

4格房子 硬塞11个人

后面的人:

全部跑到别人家去了。


(5)这叫:

数组越界(Buffer Overflow)

这是 C++ 危险的问题之一。

✅ C选项正确。


🏠第四个选项(D)

(1)看程序:

char dest[4]={'G','E','S','P'}; char src[]="HELLO"; strcat(dest,src); cout<<dest<<endl;

(2)D说:

不存在数组越界。

真的吗?

当然不是!


(3)strcat 是什么?

strcat 的意思就是:

把后面的字符串接到前面字符串后面。


(4)例如:

ABC + DEF

变成:

ABCDEF

(5)但是:

dest:

只有:

4格

(6)里面已经放满了:

G E S P

更重要的是:

它连

'\0'

都没有!


(7)然后:

再拼接:

HELLO

需要更多空间。

所以:

继续越界。

(8)因此:

❌ D错误。


🎯这里还有一个更大的坑!

很多同学认为:

char dest[4]={'G','E','S','P'};

就是字符串。

其实不是!

它只是:

字符数组

因为没有:

'\0'

所以:

strcat()

连字符串结束在哪里都不知道。

它会一直往后找:

直到碰巧找到一个‘\0’

结果完全不可预测。


这就是:

未定义行为(Undefined Behavior)

比普通越界还危险!


选项是否正确为什么?
Asizeof()包括'\0',结果是5;strlen()不包括'\0',结果是4,因此两者不相等。
B"GESP"实际需要5个字符(包括结束符),char str1[4]空间不足,初始化就错误。
Cstrcpy()复制的字符串远大于目标数组容量,会覆盖数组外内存,发生数组越界。
Ddest既没有'\0',空间又不足,strcat()会产生未定义行为,并发生数组越界。

🎓 知识总结

这 7 道题几乎覆盖了 GESP 三级最重要的基础知识:

题号核心知识必须牢记
1数据编码同一个二进制,不同编码表示不同数字;计算机只存二进制
2存储单位厂家按1000进制,计算机按1024进制
3数据压缩1个十六进制数占4 bit,2个十六进制数正好组成1 Byte
4补码8位补码范围:-128~127;补码只有一个0
5ASCII与位运算字符本质是整数,掌握^0=x|0=x等性质
6位运算异或找唯一数、异或交换、~n=-n-1、左移乘2需不溢出
7字符数组strcpystrcat使用时必须保证目标数组空间足够,避免数组越界

这7题虽然都是选择题,但实际上对应的是三级考试中容易反复考查的基础概念。只有真正理解了这些故事背后的原理,后面的判断题和编程题也会轻松很多。


http://www.jsqmd.com/news/1102030/

相关文章:

  • ASD433A评估板硬件设计解析:电源、时钟与启动配置实战指南
  • LTC6904与PIC18F26K40实现精准可编程时钟信号
  • OSC32_IN 和OSC_IN的区别
  • 汽车MCU评估板硬件设计解析:电源、时钟与启动配置实战
  • 为什么87%的金融客户在OpenAI企业版上线后3个月内遭遇策略漂移?——基于23个真实SLA违约案例的归因分析
  • 为什么头部AI团队已紧急切换至o3?——基于17家客户POC实测数据的吞吐量、延迟与幻觉率三维对比报告
  • ASD433A评估板硬件设计解析:PowerPC MCU电源、时钟与启动配置实战
  • PowerPC评估板硬件设计解析:从电源时钟到调试接口的工程实践
  • 为什么92%的企业AI项目在OpenAI最新政策下已违规?——2024年Q3合规审计 checklist(含法律条款对照表)
  • STM32+LENA-R8实现高精度全球定位与物联网连接方案
  • ExtractorSharp终极教程:5步掌握开源游戏资源编辑器
  • WeChatMsg技术深度解析:本地化微信聊天记录提取与AI数据准备架构实现
  • 抖音去水印下载器终极指南:3分钟掌握批量下载技巧
  • Windows桌面分区管理神器:NoFences让你的工作空间焕然一新
  • 抖音下载神器:douyin-downloader让视频保存变得如此简单
  • ChatGPT企业版价格突变预警:API调用量阈值、SSO集成附加费、审计日志扩容费——90%企业尚未察觉的3项隐性支出
  • ASD433A评估板硬件解析:PowerPC MCU电源、时钟与调试配置实战
  • 电子系统主动散热设计与PWM风扇控制实践
  • 深入解析ASD433A评估板:PowerPC MCU硬件设计与调试实战
  • ASD433A评估板硬件设计解析:PowerPC汽车MCU电源、时钟与调试接口实战
  • LV30条码扫描器与PIC18微控制器的嵌入式解码系统设计
  • MPC5643L/SPC56EL评估板硬件设计深度解析与实战指南
  • Panalog日志审计系统RCE漏洞深度剖析与实战复现
  • 企业级AI编排实战:MuleSoft+LangChain混合架构设计
  • 互联网大厂 Java 求职面试:从 Java SE 到微服务的深度探讨
  • 3分钟掌握Python网站下载器:一键保存完整网站到本地
  • ChatGPT企业私有化部署避坑指南:从模型微调到RAG缓存,4层数据隔离架构设计(附NIST SP 800-218合规对照表)
  • JetBrains IDE试用期重置终极指南:30天无限续期的完整解决方案
  • 【小白也能轻松玩转龙虾】虾壳云一键部署全能智能体,多任务自动执行 OpenClaw v2.7.9 办公工具(附最新安装包)
  • 学界新发现:《Gut Microbes》研究揭示白藜芦醇抗肥胖的菌群介导机制