GESP三级知识点概要

目录

1.总体概要

​数组

数组概念

数组定义方式

数组初始化

数组下标

数组元素访问

数组的存储空间

概念

数组所占内存计算

数组注意事项(重点)

下标越界

数组赋值

定义数组位置

字符串

字符数组

与字符串的联系

字符数组的操作函数

string字符串

字符串初始化

遍历字符串

字符串输入

字符串常用操作函数

进制与进制转换

二进制与十进制互换

带小数的转换

十六进制

十六进制与十进制的转换

十六进制与二进制的转换

带小数的转换


1.总体概要

数组

数组概念

就是一组数据,是由一组具有相同数据类型的变量组成的。

数组定义方式

确定数组名称、元素类型、数组结构

//数据类型 数组名[长度]
int a[5];

注:数组长度只能是大于0的整数,且不能是变量和变量表达式

数组初始化

数组其它初始化方式

数组下标

数组元素在内存中是顺序、连续存储的,每个元素都有对应的编号,这个编号称为数组下标

注:数组下标从0开始且必须为整数!!!  因此下标范围是 0 ~ 数组长度-1

不过像int arr['1']; int arr['s'];    用字符char类型这样的定义是正确的

数组元素访问

格式:数组名称[下标表达式]

数组的存储空间

概念

数组元素在内存中是顺序、连续存储的,所以当数组初始化时,也是按照顺序来完成的。 逻辑上相邻的两个元素在物理地址上也是相邻的。

数组所占内存计算

等于所有元素所占内存之和

解析:首先分析double类型占多少字节,并计算数组长度,两者相乘即可,上述为8(double所占字节)×3(数组长度) = 24。  结果为A

数组注意事项(重点)

下标越界

注:下标为负数或者超过数组长度时,程序的编译不会出错,但运行时可能会发生意想不到的错误!

数组赋值

定义数组位置

字符串

字符数组

与字符串的联系

字符串:0个或1个或多个字符组成的一串字符,可以是字母、数字、中文或其他符号。C++中,字符串需要使用双引号包含。

使用字符数组保存字符串时,必须使用字符‘\0’结尾,‘\0’是字符串结尾的标记

字符数组初始化方式:

上述错误原因:字符数组的最后一个字符本身是没有限制的,但如果是用于保存字符串时,则必须使用字符‘\0’结尾

字符数组的操作函数

其中strlen是重点,它属于字符数组的方法,注意和字符串的length区别开来

解析:由于 arr 没有以‘\0’结束,strlen 函数的行为是未定义的。它可能会读取超出 arr 的内存,导致程序崩溃或返回意外的长度。

string字符串

string是一种数据类型,表示字符串 string类型的变量可以存储字符串

字符串初始化

遍历字符串

length()size()获取长度

字符串输入

字符串常用操作函数

除此之外,还有:

substr(int pos,int n):pos表示指定位置下标,n是所需查找长度。表示从指定位置开始,查找字符串的子串

insert(int pos,string str2):pos表示指定位置下标,str是所要插入的字符串。表示给字符串在指定位置插入子串

erase(int pos,int n):pos表示指定位置下标,n是所要删除长度。表示从指定位置开始,删除字符串中的某些字符

replace():从指定位置开始,对字符串中指定字符进行替换

进制与进制转换

在GESP中,重点掌握二进制、十进制、十六进制间的相互转换即可

二进制与十进制互换

例题:

解析:37/2 = 18......1    18/2 = 9.......0     9/2 = 4......1    4/2 = 2......0    2/2 = 1......0    1/2 = 0......1

从后向前将余数整合,即100101,答案选B

带小数的转换

十进制转二进制:整数部分除2取余,逆序输出; 小数部分,乘2取整法,顺序输出

例题:

解析:首先将13.375分为两个部分(整数和小数),13和0.375,其中整数部分采用除2取余,逆序输出;小数部分采用乘2取整,顺序输出

13/2 = 6......1    6/2 = 3......0   3/2 = 1......1     1/2 = 0......1    (然后整数部分逆序:1101)

0.375×2 = 0.75    0.75×2 = 1.5    0.5×2 = 1   (然后小数部分顺序:011)

二进制转十进制:将二进制数按位权展开后求和 小数部分位权的权值从左往右依次为-1,-2,-3...

例题:

解析:主要分析权重即可,11.01   从右到左依次叠加,即:1×2的负二次方 + 0×2的负一次方+1×2的零次方 + 1×2的一次方 = 0.25 + 0 + 1 +  2 = 3.25

十六进制

特点:逢“十六”进一,它包括这些数:0~9 A~F或a~f,并且在代码中,常常用“0x”作为十六进制的标识,例如0x10,即标识“10”这个是十六进制的

十六进制与十进制的转换

十六进制与二进制的转换

例题:

解析:观察到0x,则可判断其为十六进制,则根据十六进制转十进制的方法,可以将其写成:

15×16的1次方+15×16的0次方 =  240+15 = 255

例题2:

解析:考察ASCALL码、十六进制的相关知识,由0x41为‘A’,则‘L’与其距离11个单位,因此正确答案应该为4C(这道题也可先将‘0x41’转换为十进制,再经过计算重新转换为十六进制)

带小数的转换

注:二进制、八进制、十进制、十六进制之间的转换,都可以先变成十进制,再转换为其它进制去计算

其中二进制与八进制   二进制与十六进制的转换是有技巧的: 八进制中的一位对应二进制的三位、十六进制中的一位对应二进制中的四位

例题:

解析:

我们可以将“1101111” 每四位作为一组拆分,其中1111作为一组、110不足四位则补为0110,

因此就是0110 1111,因此十六进制就对应为 0x6f, 正确答案选C

例题2:

解析:此题四个选项都是不同进制,此时将它们统一为一个进制去比较(如十进制)即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛变涡流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值