第二章 常量、变量与数据类型Pro
二、常量、变量与数据类型
考点一 标识符
量、变量、函数等的名字。标识符是编程者自定义的符号,用来在程序中标识符号常
标识符命名及注意事项
- 标识符只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线,不能为数字;
- 标识符不能使用系统关键字(保留字) ,如if , char , default ,break;
- C语言中标识符区分大小写,numNum,char是C语言的保留字,不能作为标识符,但Char可以作为标识符;
- 输入输出、字符串函数等不是C语言自身提供,可作为合法标识符;main, define,include也为合法标识符; //函数 预处理 不是关键字
2019.以下C语言标识符定义正确的是()
A.switch B._for C.3count D.do-while
2018,在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序统称为标识符,下列选项中都为正确标识符的是()。
A. M.D.John, _abc
B.3sum, a123
C. total, abc321
D.$123, bb$
考点二 常量正确表示
(1)整型常量的3种表示:
掌握每种表示法的正确及错误写法: 32L、 0762、 Oxfac 十进制:12、20L、-326
八进制:前缀为0,数字由0-7组成,如0712
十六进制:前缀为0x,数字由0-9、a-f组成,如Oxff72八进制、十六进制没有负数的概念A-F
#include <stdio.h>
int main() {
int a=-1;
printf("%d,%o,%x,%u",a,a,a,a); //十进制,八进制,十六进制,无符号整数
return 0;
}
//没有 负数的概念
2)实型:实数或浮点数,只采用十进制,两种表示形式
十进制小数形式: 123.0 , 123. //必须带小数点
指数形式:aEn或aen
说明: a为十进制数(整数、实数) , n为十进制整数, aEn表示的数为 a*10n
口诀:e前e后需有数,e后为整数!
3)字符常量:单引号引起的一个字符,分2类
普通字符:'a'、'o'
转义字符:反斜线为前缀,后跟1或几个字符,
两种形式:实现特定功能:如'\n'、'\t'、'\b'、'\r'
'\n' 换行
'\t' 制表位
'\b' 退格
'\r' 回车
ASCII 128个字符 前32个不可显示的控制字符
表示一个字符:两种写法
' \ddd' : 1到3位 八进制数,如\101'表示A
\xhh': 1到2位 16进制数('\x'为前缀)
4)字符串常量:用双引号("")括起来的字符序列。
存储:每个字符串尾自动加一个 ‘\n’作为字符串结束标志
注意:字符常量与字符串常量不同:
‘a’与“a”不同, //字符a 和字符串a
'0',“0”,0,‘0’区别
'0' =48 一字节 "0" = 48 0 二字节 0 = 0 0 两个字节 '\0' = 0 一个字节
5)能理解和区分常量的正确表示和错误写法例:
'0'、'02'、102'、 072、 10723“\083 "、3.12E-3.5, e+5、 078, 3FH
正确写法: '0‘、'\02’、072、"\083"、其他为错误。
6)符号常量(宏定义)
7)地址常量(数组名)
知识点:
(1)每一种基本数据类型都有其常量形式。
(2)整型常量默认是"int"型的。如:123,在内存中按补码存放
(3)实型常量默认是"double"型的。如:1.56
(4)字符型常量包括转义字符。
(5)字符型数据在内存中按其ASCII码值存放。
(6)C语言中字符数据和整型数据可以通用
2019.以下合法的常量表达式是()
A.'\0'
B.018
C.5E3.5
D.'loveC '
2018 .在C语言中,语句printf("abc123\rdef"); 执行后屏幕上的显示结果为()A.abc123 B.abc123def C.def123 D.def
2017.下列整型常量中,不合法的整型常量是()
A.256
B.0x7a8f
C.0592
D.0X123
考点三 变量定义
- [存储类型]数据类型 变量名1,变量名
- 变量三要素:变量名,变量类型,变量值
- 正确理解:变量与数据类型的关系、变量与内存空间、数,据类型与变量内存空间大小、变量名与变量地址关系;
- .变量特性:喜新厌旧,取之不尽。
- 变量必须“先定义,后使用”。
- 相同作用域的变量不能同名,不同作用域的变量可同名;
- 变量初始化; //定义同时赋值
正确和错误的变量定义几种形式
int a,b; float y://正确,同类型变量用逗号分开,不同类型用分号分开
int a,b float y,b:/错误
int ab; float y://错误
int a,bfloat y;//错误
int a,b; float y;//错误
2021. 以下能正确定义且赋初值的语句是()
A. char a=b='a'; //只能存放一个字符
B. char c=65; //正确 相当于把 A 传给了C
C. char a,b=a; // 随机数,赋值没有意义
D .char c="a"; //字符串不能赋值给字符变量
考点四 整型与字符型通用
- 字符量可参与算术、关系、逻辑等运算
- 字符常量内存中以ASCII码的二进制形式存在,同整型类似,C语言允许字符量参与运算,运算时以其ASCII码参与,如int x='a'+3;相当int x=97+3;
- 英文字母大小写相差32:'A'为65,'a'为97,'b'为98,其他依次类推。
- 区分:0、'0'、\0'、"0",'\٥'ASCII为O,'8'-'0'即8
//字符型数字转换成正数,也可以把整数转换成字符
//整数转换成字符 就 + '0'
//字符转换数字-'0'
2019.如下程序的输出结果是( )
#include <stdio.h>
void main()
{
char c='a';
printf("%c\n",'H'+(c-'h'));
}
A.A B.a C.H D.h