GESP等级考试C++二级-ASCII码与字符
1 ASCII码介绍
ASCII码是American Standard Code for Information Interchange,即美国标准信息交换码的简称。
ASCII码的主要功能是将键盘上输入的字符(如数字、字母、特殊符号等)转换为计算机能够识别的二进制数,即每个字符都对应一个唯一的ASCII码。ASCII码的取值范围是0-127,因此可以表示126个字符。ASCII码作为桥梁,实现了人与计算机之间的信息交流。
2 ASCII码与字符的互换
给定一个ASCII码的值,如何打印出其对应的字符;或者给定一个字符,如何打印出其对应的ASCII码。以上问题可以通过显式或隐式转换实现ASCII码与字符的互换。
2.1 显式转换
使用显式转换指的是通过函数来实现ASCII码与字符的互换,其代码如图1所示。
图1 显式转换实现ASCII码与字符的互换的代码
其中,第6行代码定义了int类型的变量a1,并将其值设置为65;第7行代码通过char()函数显式地将int类型的a1转换为char,并保存在char类型的变量c1中;第8行打印c1的值;第9行代码定义了char类型的变量c2,并将其值设置为“B”;第10行代码通过int()函数显式地将char类型的c2转换为int类型,并保存在a2中;第11行打印a2的值。程序运行效果如图2所示。
图2 程序运行效果
从图2中可以看出,图1所示的代码实现了ASCII码与字符的互换,即ASCII码为65的字符是“A”,字符“B”对应的ASCII码是65。
2.2 隐式转换
隐式转换指的是在赋值的时候来实现ASCII码与字符的互换,其代码如图3所示。
图3 隐式转换实现ASCII码与字符的互换的代码
其中,第6行代码为char类型的变量c1直接赋值了整型65,此时编译器会隐式地将65转换为“A”,再赋值给c1;同理第8行代码编译器会隐式地将字符“B”转换为整型66,再赋值给a2,图3所示程序运行的效果如图2所示。
3 字符型的数字、大写字母和小写字母的ASCII码
字符型的数字“0-9”对应的ASCII码分别是48-57,从“0”对应的ASCII码48开始,依次加1;大写字母“A-Z”对应的ASCII码分别是65-90,从“A”对应的ASCII码65开始,依次加1;小写字母“a-z”对应的ASCII码分别是97-122,从“A”对应的ASCII码97开始,依次加1。
注意1 可以不用记忆每个字符对应的ASCII码,但是要记住的是,字符型的数字对应的ASCII码 < 大写字母对应的ASCII码 < 小写字母对应的ASCII码。
4 GESP真题解析
2024-03判断题
答案:√
解析:大写字母“A-Z”对应的ASCII码分别是65-90,从“A”对应的ASCII码65开始,依次加1,因此大写字母“C”对应的ASCII码应该是65+2=67,即int(‘C’)=67;abs()函数的作用是求绝对值,abs(-5.8)=5.8,因此表达式int(‘C’)+abs(-5.8)=67+5.8=72.8。
2023-12判断题
答案:×
解析:字符型的数字“0-9”对应的ASCII码分别是48-57,从“0”对应的ASCII码48开始,依次加1。因此,int(‘9’)=57,所以表达式2*int(‘9’)*2=2*57*2=228。
2023-06判断题
答案:√
解析:大写字母“A-Z”对应的ASCII码分别是65-90,从“A”对应的ASCII码65开始,依次加1。
2023-03判断题
答案:×
解析:小写字母“a-z”对应的ASCII码分别是97-122,表达式’a’的值是97,与整型变量a的取值无关。