第1章C语言概述、变量、运算符与表达式
1.1本章要点
1.1.1 C语言概述
C语言程序的特点:
(1)C程序是由函数构成的,其中必须有且只有一个主函数main( )。
(2)函数体是由左右花括号{ }括起来的部分。
(3)一个C程序总是从main函数开始执行的,不论main函数在整个程序中的位置如何。
(4)C语言中的每个基本语句都以“;”结束。
(5)C语言书写格式自由,一行内可以写一个语句,也可以写多个语句。
(6)C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。
(7)可用/*…*/对C程序中的任何部分作注释。
1.1.2标识符、常量和变量
常量——在程序运行过程中值不能被改变的量。例如:2.2、- 0.3、02、1e3等。
变量——在程序的执行过程中值可以被改变的量。
标识符——用来标识变量名、符号常量名、函数名、数组名、类型名或文件名等的有效字符序列。
1.标识符的有关规定:
(1)由英文字母、数字、下划线组成,且第一个字符必须是字母或下划线,一般不超过8个字符。
(2)大小写字母的含义不同。
(3)不能使用C语言中的关键字做标识符。
附:C语言中的关键字共有32个,而且都是小写。其中,标识类型关键字有:int ,char , float ,double ,long ,short ,unsigned ,signed ,struct ,union ,enum ,auto ,extern ,static ,register , typedef ,void ,const 和volatile。
标识控制流的关键字有:for ,goto ,return ,break , continue ,if, else ,while ,do ,switch ,case 和default。
其它关键字有:sizeof。
(4)用户取名时,应当尽量遵循“简洁明了”和“见名知意”的原则。
2.常量的有关规定:
常量的分类如下:
(1)整型常量:0,-3,12
(2)实型常量:4.6,-1.23
(3)字符常量:‘a’,‘d’
(4)符号常量:可以用一个标识符代表一个符号常量。但在程序中必须用define说明,例如“#define N 30”,这里N 就是一个字符常量,编程时直接用N 来表示字符串30。
3.变量的有关规定:
(1)使用变量前,一定先定义后使用,否则不能直接做为变量名。
(2)每一个变量属于一种类型,在编译时为其分配一定的存储单元,并依据此类型检查该变量所进行的运算是否合法。
(3)变量名的定义:[存储属性] <数据类型> <变量名表>
1.2.3数据类型
整型类型
基本类型 浮点型类型
字符型类型
数据类型
构造类型
复杂类型 指针类型
枚举类型
1.整型数据
✋整型常量:
(1)十进制整数:数码直接开头的十进制数。如1234,-234
(2)八进制整数:以0开头的常量是八进制数。如011=(11)8
(3)十六进制整数:以0x开头的数是十六进制。如0x123即(123)16
✋ 整型变量:
如表1.1.1所示
表1.1.1整型变量说明表
整型数据类型 | 关键字 | 所占位数 | 所占字节 | 数的表示范围 |
基本型 | int | 16 | 2 | -215~215-1 |
短整型 | short int | 16 | 2 | -215~215-1 |
长整型 | long int | 32 | 4 | -231~231-1 |
无符号整型 | unsigned int | 16 | 2 | 0~216-1 |
无符号短整型 | unsigned short | 16 | 2 | 0~216-1 |
无符号长整型 | unsigned long | 32 | 4 | 0~232-1 |
2.浮点型数据
✋浮点型常量
浮点型常量有两种表示形式:
(1)十进制数形式:它是由数字和小数组成,如:3. 14159,-7.2,8.9。
(2)指数法形式:如120000.0用指数法可表示为1.2e5, 1.2称为尾数,5称为指数。 0.00123用指数法可表示为1.23e-3。
注意:
(1)字母e 或E之前(即尾数部分)必须是有数字的。
(2)e或E后面的指数部分必须是整数。
✋实型变量
实型变量分为单精度型(float)和双精度型(double)。
(1)单精度:占4个字节,有效位为7位,数值范围为10-38~1038。
(2)双精度:占8个字节,有效位为15~16位,数值范围约为10-308~10308。
3.字符型数据
✋字符型常量
字符型常量是由一对单引号括起来的单个字符构成。
一个字符型常量的值是该字符集中对应的编码值。‘0’~‘9’的ASCⅡ编码值是48~57。显然字符‘0’与数字0是不同的。
C语言中还允许用一种特殊形式的字符常量,它是以‘\’开头的字符序列。
下表1.1.2为换码序列表。
表1.1.2 换码序列表
换码序列 | 意义 | 换码序列 | 意义 |
\n | 回车换行 | \r | 回车 |
\b | 左退一格 | \t | 横向跳格字符 |
\f | 换页 | \0 | 空值(NULL) |
\’ | 单引号 | \” | 双引号 |
\v | 竖向跳格 | \000 | 1至3位八进制所代表的字符 |
\\ | 反斜线 | \xhh | 1至2位十六进制所代表的字符 |
✋字符型变量
字符型变量存放一个字符的ASCII码,在内存中占一个字节。
字符型变量分为两类:一般字符型(char)和无符号字符型(unsigned char)。
✋字符串常量
字符串常量是由一对双引号括起来的字符序列。
C语言中规定以字符‘\0’作为字符串结束标志,字符‘\0’由系统自动加入到每个字符串的结束处。
4.变量的初始化
变量的初始化:在定义变量的同时给变量赋予初值。
方法:
(1)先说明变量类型,然后再赋值。
(2)在对变量类型说明的同时,给变量赋初值。
1.1.4 运算符与表达式
C的运算符根据运算对象的个数分为单目运算符、双目运算符和三目运算符。
运算符的优先级是指不同的运算符计算的先后顺序。
运算符的结合性是指当一个运算对象两侧的运算符的优先级相同时,进行运算处理的结合方向。
其结合方向分为:自左向右和自右向左。
下表1.1.3为运算符的优先级与结合性。
表1.1.3 运算符的优先级与结合性
优先级 | 运算符 | 含义 | 运算对象个数 | 结合方向 |
1 | () [] —> . | 圆括号运算符 下标运算符 指向结构体成员运算符 逗号表达式的运算顺序结构体成员运算符 | 自左向右 | |
2 | ! ~ ++ - - - (类型) * & size of | 逻辑非运算符 按位取反运算符 自增,自减运算符 负号运算符 类型转换运算符 指针运算符 取地址运算符 长度(求字节数)运算符 | 1 | 自右向左 |
3 | * / % | 乘法, 除法运算符 求余(取模)运算符 | 2 | 自左向右 |
4 | + - | 加法, 减法运算符 | 2 | 自左向右 |
5 | << >> | 左移, 右移运算符 | 2 | 自左向右 |
6 | < <= > >= | 关系运算符 | 2 | 自左向右 |
7 | = = != | 等于, 不等于运算符 | 2 | 自左向右 |
8 | & | 按位与运算符 | 2 | 自左向右 |
9 | ^ | 按位异或运算符 | 2 | 自左向右 |
10 | | | 按位或运算符 | 2 | 自左向右 |
百度文库 - 让每个人平等地提升自我11 | && | 逻辑与运算符 | 2 | 自左向右 |
12 | || | 逻辑或运算符 | 2 | 自左向右 |
13 | ?: | 条件运算符 | 3 | 自右向左 |
14 | = += -= *= /= %= <<= >>= &= |= ^= | 赋值运算符 | 2 | 自右向左 |
15 | , | 逗号运算符 | 自左向右 | |
1.算术运算符及其表达式
算术运算符包括加、减、乘、除及取模5种,分别由+,-,*,/,%来表示。
C语言规定:
(1)模运算符%,仅用于整型变量或整型常量。
(2)优先级:乘、除、模优先级高于加、减的优先级。
(3)结合方向:算术运算符的结合方向是从左至右。
算术表达式是由算术运算符、括号以及操作对象组成的符合C语言语法规则的表达式。
2.赋值运算符及其表达式
赋值运算符“=”的作用是将一个数据赋给一个变量。
赋值运算符“=”之前加上其它运算符,可构成其复合运算符。例如:+=,- =,*=,/=,%=,<<=,>>=,&=,^=,|=。
赋值表达式:<变量> <赋值运算符> <表达式>
3.增1、减1运算符及其表达式
i++(或i--)表示在使用该表达式值之后将i值加1(或减1)。
++i(或--i)表示在使用该表达式值之前将i值加1(或减1)。
说明:
(1)++和--仅适用于变量,不能用于常量或表达式。
(2)++和--运算符的结合方向是“自右向左”。
4.关系运算符及其表达式
关系运算符均为两目运算符,共有六种:>, <, >=, <=, = =,!=。前4个运算符的优先级高于后2个。结合方向是自左向右。
关系运算符要求两个操作数是同一种数据类型,其结果为一逻辑值,即关系成立时,其值
为真(true),用非0值表示;关系不成立时,其值为假(false),用0表示。
关系表达式是由关系运算符将两个表达式连接起来的有意义的式子。
关系表达式的值是一个逻辑值,即“真”或“假”。用1表示“真”,用0表示“假”。
5. 逻辑运算符及其表达式
逻辑运算符有“&&”(逻辑与)、“||”(逻辑或)和“!”(逻辑非)三种。其中“&&”和“||”为二目运算符,并为自左向右结合方向;“!”为单目运算符,仅对其右边的对象进行逻辑求反运算。逻辑运算符的操作对象为零或非零整数值。
逻辑表达式是由逻辑运算符和其操作对象组成的表达式。
6.位运算符
位运算符包括:&, |, ~, <<, >>, ^。在位运算符中,~的优先级最高,其次是<<和>>,然后依次是&, ^, |。
说明:
(1)这些运算符除~之外,均为二目运算符,即要求两侧各由一个运算量。
(2)运算量只能是整型或字符型的数据,不能是实型数据。
7.逗号运算符及其表达式
逗号运算符为“,”。逗号表达式是用逗号运算符把两个表达式连接起来。其一般形式为:〈表达式1〉,〈表达式2〉
说明:
(1)逗号表达式的执行过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。
(2)逗号运算符是所有运算符中级别最低的。
(3)逗号表达式的一般形式可以扩展为
〈表达式1〉,〈表达式2〉,〈表达式3〉,……〈表达式N〉
表达式N的值是整个表达式的值。
8.条件运算符及其表达式
条件运算符是一个三目运算符,把三表达式组合成一个表达式。
其一般形式为:〈表达式1〉?〈表达式2〉:〈表达式3〉
说明:
(1)其执行过程为:先计算〈表达式1〉的值,如果该值为真(非0值),则计算〈表达式2〉的值,并且该值即为条件表达式值。若〈表达式1〉的值为假(0),则计算〈表达式3〉的值,并将该值作为条件表达式的值。
(2)条件运算符优先级别高于赋值运算符,低于算术运算符和关系运算符。
(3)条件运算符结合方向是“自右至左”。
(4)〈表达式1〉与〈表达式2〉、〈表达式3〉的类型可以不同。
1.2习题部分
1.2.1选择题
1.C语言程序的基本单位是( )。
A. 程序行 B.字符 C.函数 D语句
2.在C语言中,字符型数据在内存中以( )形式存放。
A. 原码 B.反码 C. 补码 D.ASCII码
3.下列转义字符中( )是非法的。
A. '\t' B.'\033' C.'\0xf' D.'\''
4.C语言中,最简单的数据类型包括( )。
A. 整型、实型、关系型 B. 整型、实型、逻辑型
C. 整型、实型、字符型 D. 整型、字符型 、逻辑型
5.以下各标识符组中,合法的用户标识符是( )。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论