实型数据,与字符型数据
第三节 实型数据
知识点:实型的定义方法和实型常量的表达方法;
重要程度:★★★★
1、实型常量
在C语言中,实型常量有两种表示形式:小数形式和指数形式。
(1)小数形式
规则如下:1. 有且仅有一个小数点。
2. 左边和右边可以有一边没有数据,但是不能同时没有数据。
如:3.14159 0.158 12. .36 0.0 -18.0
(2)指数形式(E前E后都有数,E后必为整数)
规则如下:1. 有且仅有一个字母e(或者E)。
2. 左右两边都必须有数据。
3. 左边可以是整数也可以是小数。
4. 右边只能是整数。
以下列举出几个正确的指数形式:
1e5 (表示数值1´105)
1.25E+4 (表示数值1.25´104)
2.0E-3 (表示数值2.0´10-3)
实型常量的常见错误:
12 (缺少小数点,12其实为一个整型的常量而不是实型常量)
e5 (缺少小数部分)
1.25E (缺少指数部分)
2.0E1.3 (指数部分不是整数)
例1: 以下选项中合法的实型常数是
A)5E2.0 B)E-3 C).2E0 D)1.3E
分析:本题的答案是C。
选项(A)的指数部分不是整数。
选项(B)缺少小数部分。
选项(D)缺少指数部分。
例2: 以下选项中,不能作为合法常量的是
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0
分析:选项(B)的指数部分不是整数,所以答案为B,其它选项均为正确的常量。
2、实型变量
C语言中,实型变量分为单精度实型(float)变量与双精度实型(double)变量两种。它们定义的形式分别如下:
float x,y,z; /*定义单精度实型变量x,y,z */
double a,b,c; /*定义双精度实型变量a,b,c*/
double的精度比float好!
第四节 字符型数据
知识点:字符型常量;字符型变量;转义字符;
重要程度:★★★★★(字符可当作整型使用)
1、字符常量 字符常量是由一对单引号括起来的。
1)由一对单引号括起来的单个字符:
单引号中只有一个字符: '0'、'A'、'a'、' '、'#'。
2)由一对单引号括起来的,里面是由斜杠“\”引起的若干字符:
在单引号中,都由“\”开头: '\n '、'\t '、'\\'、'\''、'\"'、'\0 '、'\377 '、'\xff '。这个“\”称为转义字符。转义字符后面的内容失去了原来的意义,如'\n'表示换行符,而不是字母n了。
每个字符都有一个ASCII码与之对应。(字符可以看成整形)
如字符'0'的ASCII码值为48,我们简称字符'0'的值为48。同样,'A'的值为65,'a'的值为97。
字符型数据进行运算,使用的其实都是这个字符对应的ASCII码值。
C语言中一共有三种转义字符:一般转义字符、八进制转义字符、十六进制转义字符。
表3 C语言中常用的转义字符
字符形式 |
意义 |
字符形式 |
意义 |
\n |
换行 |
\\ |
一个反斜杠字符 \ |
\t |
横向跳格(Tab) |
\' |
一个单引号 ' |
\v |
竖向跳格 |
\" |
一个双引号 " |
\b |
退格符(backspace) |
\ooo |
1~3位八进制数代表的字符 |
\r |
回车符 |
\xhh |
1~2位十六进制数代表的字符 |
\f |
换页符 |
\0 |
空值 |
(1)一般转义字符
'\n'、'\\'、'\"'等,由一个“\”开头加一个普通字符组成。请牢记表3中粗体的转义字符。
(2)八进制转义字符
它是由“\”与其后的1~3位八进制数字构成的字符序列。
反斜杠后面的十六进制数不需要以0开头。’\061’就错了
'\61'首先把61这个八进制化成十进制,得到49,ASCII为49的字符就是’1’。.
'\101'首先把101这个八进制化成十进制,得到65,ASCII为65的字符就是’A’。.
(3)十六进制转义字符
它是由“\x”与其后的1~2位十六进制数字构成的字符序列。
反斜杠后面的十六进制数不需要以0x开头。’\0x77’错了!
但是反斜杠之后的必须是小写字母x,而不能是大写字母X,也不能是其它形式。’\0X77’错了!
'\x42'表示字符常量'B'
'\x6e'分别表示字符常量和'n'。
字符型常量的常见错误:
(1)把"a"看作字符常量。字符常量的标志是一对单引号' ',而不是双引号" "。
(2)一对单引号中有多个字符。'65'是非法的字符常量。(常考)
(4)′\ooo′中出现数字8。′\ooo′中只能出现字符0~7。
(5)'\xhh'中,忘记书写字符x。
例1: 以下不合法的字符常量是
A ′\018′ B ′\′″ C ′\\′ D ′\xcc′
分析:本题是2006年4月考题,考察点在字符常量的概念。此题答案为A。
A中为八进制转义字符,但是八进制数不能出现8,因此错误。
B中是一般转义字符,表示一个双引号字符,正确。
C中是一般转义字符,表示一个反斜杠字符,正确。
D中匹配十六进制转义字符,cc是合法的十六进制数,正确。
2、字符变量(考试重点)
char a: 等价于 char a
a='A'; a = 65;
变量a中存放了'A'的ASCII码值65。前面已经知道,字符型数据都是被处理为整型量,因此,可以直接对字符变量赋字符常量对应的ASCII码值。如赋值语句a=65;与赋值语句a='A';等价。
例2: 已定义c为字符型变量,则下列语句中正确的是
A) c=‘97’; B) c="97"; C) c=97; D) c="a";
分析:答案选择C。
A中'97'为非法的字符常量。单引号内不能出现多个字符。
B中"97"为字符串,字符常量的标志的一对单引号,而不是双引号。
C将整型量97赋给字符变量c,即将ASCII码值为97的字符常量'a'赋给变量c,正确。
D中"a"不是字符常量,而是字符串。
3、对字符型数据的运算
1、对字符进行算术运算就是将字符对应的ASCII码值进行运算。
如:'D'-'C'的值为1。因为我们用'D'和'C'的ASCII码68、67分别替换'D'、'C'之后,等价于求68-67的值。又例如,'C'+1的值为'D'。
2、大写字母的ASCII码与对应的小写字母的ASCII码相差32。
大写字母 转换成 小写字母
'A' 加上32 'a'
如'A'与'a'的ASCII码分别为65和97。这样我们经过简单的算术运算就可以进行大小写字母字符的转换。如'A' +32即为,'a'-32即为'A'。
3、字符数字的ASCII码与对应的数字的ASCII码相差了48.
字符数字 转换成 数字
‘1’ 减去48 1