版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言的数据类型语言的数据类型常量、变量常量、变量3C语言的运算符和表达式语言的运算符和表达式41 1 2C语言的字符集语言的字符集: 关键字、标识符关键字、标识符1C C语言字符集:语言字符集:字母:小写字母字母:小写字母azaz共共2626个,大写字母个,大写字母AZAZ共共2626个。个。数字:数字:0909共共1010个。个。空白符:空格符、制表符和换行符等统称为空白符。空白符:空格符、制表符和换行符等统称为空白符。下划线:下划线:_ _。标点符号、特殊字符:标点符号、特殊字符:+ +、- -、* *、/ /、%、= =、 、 、( (、) )、 、 、 、 、! !、& &a
2、mp;、# #、 、? ?、, ,、. .、; ;、: :、 、 。 2.1 C2.1 C语言的字符集语言的字符集C语言定义了32个关键字 2.2.1 关键字关键字2.2 C语言的关键字和标识符语言的关键字和标识符标识符:表示变量名、符号常量名、函数名、数组名、类型名、文件名的字符序列。 C语言标识符的命名规则:只能由英文字母、数字和下划线3种字符组成第一个字符必须为字母或下划线大小写有区别的2.2.2 标识符标识符2.2 C语言的关键字和标识符语言的关键字和标识符正确的标识符命名:正确的标识符命名: smart _decision high3 Area 不正确的标识符命名:不正确的标识符命名
3、: 5smart(以数字开头) Bomb?(含有特殊字符?) High.balance(把下划线“_”与“.”混淆了) float(不能用C语言中的关键字) 定义标识符时应尽量做到“见名知意” sum:求和 name:姓名 max:最大值 2.2.2 标识符标识符2.2 C语言的关键字和标识符语言的关键字和标识符2.3 C语言的数据类型语言的数据类型C语言的数据类型语言的数据类型 常量:在程序运行的整个过程中其值始终不变的量。 C语言中常量的分类2.4 常常 量量2.4 常常 量量 整型常量就是整常数。 形式: 十进制、八进制、十六进制十进制、八进制、十六进制 1. 十进制整型常量:十进制整型
4、常量: 由09的数字组成。 237,-568,65535,1623 023 23D 不能有前导0 含有非十进制数码D2.4.1 整型常量整型常量 2.4 常常 量量 2. 八进制整型常量八进制整型常量:以数字0开头作为前缀,由07的数字组成。 八进制 015 0101 0177777十进制 13 65 65535 八进制 255 03B2 0129 无前缀0 含非八进制数码B 出现非八进制数码9 2.4.1 整型常量整型常量 2.4 常常 量量 3. 十六进制整型常量:十六进制整型常量:十六进制整型常量的表示形式以0 x或0X开头,即以0 x或0X作为前缀(注:十六进制数的前缀字符0 x,x前
5、面是数字0而不是字母o),由数字09、字母AF或af组成。 以下各数是合法的十六进制整型常量:以下各数是合法的十六进制整型常量: 0X2A(十进制为42),0XA0(十进制为160),0XFFFF(十进制为65535) 以下各数不是合法的十六进制整型常量:以下各数不是合法的十六进制整型常量: 5A(无前缀0X),0X3H(含有非十六进制数码H)2.4 常常 量量2.4.1 整型常量整型常量 2.4 常常 量量2.4 常常 量量 在C语言中,实型常量只能用十进制形式表示。它有两种形式: 1. 小数形式小数形式 由正负号、09的数字和小数点组成。 例如,-1.85、0.3456、120.0、.42
6、6、-11.都是十进制小数形式实数。小数点前面和后面可以没有数字(不能同时省略)。 2. 指数形式指数形式 由十进制数加上阶码标志e或E以及阶码组成。其一般形式为aEn。其中a为十进制数,n为十进制整数(n为正数时“+”可以省略),其值为a10n。 例如,1.236e+12表示1.2361012、0.27e-8表示0.2710-8。 2.4.2 实型常量实型常量 2.4 常常 量量2.4 常常 量量 字符常量字符常量是用单引号括起来的一个字符。 例如:a、b、=、+、?都是合法字符常量。 C语言定义了一些特殊的字符常量,是以反斜杠“”开头的字符序列,称为转义字符。 2.4.3 字符常量字符常量
7、 2.4 常常 量量【例2.1】 分析下面程序的运行结果。程序运行结果:程序运行结果: China A 2.4 常常 量量2.4.3 字符常量字符常量 2.4 常常 量量#include /* 程序需要使用程序需要使用C语言提供的标准库函数语言提供的标准库函数 */ void main( ) /* 主函数主函数 */ printf(China n101tn); /* 调用库函数调用库函数printf( )显示字符串显示字符串 */ 2.4 常常 量量 在程序中,如果某个常量多次被使用,则可以使用一个符号来代替该在程序中,如果某个常量多次被使用,则可以使用一个符号来代替该常量,这种相应的符号称为
8、符号常量。常量,这种相应的符号称为符号常量。 C语言中,用编译预处理命令#define定义符号常量。 例如:#define PI 3.14159 #define NUM 452.4.5 符号常量符号常量 2.4 常常 量量【例2.2】 编写求一个半径r为3.0的球的体积和表面积的程序。运行结果:运行结果:v=113.097237,s=113.0972402.4 常常 量量2.4.5 符号常量符号常量 2.4 常常 量量#include #include / /* * 程序需要使用程序需要使用C C语言提供的标准函数库语言提供的标准函数库 * */ /#define PI 3.14159#def
9、ine PI 3.14159 / /* * 定义定义PIPI为符号常量,其值为为符号常量,其值为3.14159 3.14159 * */ /void main( )void main( ) / /* * 主函数主函数 * */ / float float r,v,sr,v,s; /; /* * 定义实型变量定义实型变量r r、v v、s s分别表示球的半径、体积和表面积分别表示球的半径、体积和表面积 * */ /r=3.0; r=3.0; / /* * 将将3 3赋值给半径赋值给半径r r * */ /v=4.0/3.0v=4.0/3.0* *PIPI* *r r* *r r* *r; r;
10、/ /* * 求球的体积求球的体积v v * */ /s=4.0s=4.0* *PIPI* *r r* *r; r; / /* * 求球的表面积求球的表面积s s * */ /printfprintf(v=%(v=%f,sf,s=%f=%fn,v,sn,v,s); ); / /* * 输出球的体积输出球的体积v v和表面积和表面积s s * */ / 2.5 变变 量量 所谓变量是指在程序运行过程中,其值可以改变的量。所谓变量是指在程序运行过程中,其值可以改变的量。1. 变量的定义变量的定义变量定义的一般格式为:类型标识符 变量名1,变量名2,变量名3,变量名变量名n;例如:int a;/*
11、定义a为整型变量 */int m,n; /* 定义m和n为整型变量 */float x,y,z; /* 定义x、y、z为单精度实型变量 */char ch; /* 定义ch为字符型变量 */ 2.5.1 变变量的概念量的概念 2.5 变变 量量2.5 变变 量量2. 变量的初始化变量的初始化在定义变量的同时可以给变量赋初值,称为变量初始化。变量初始化的一般格式为:类型标识符 变量名1=常量1,变量名2=常量2,变量名n=常量n;例如:int a=3,b=5;/* 定义a和b为整型变量,同时a、b分别赋初值3、5 */2.5.2 变量的定义与初始化变量的定义与初始化 2.5 变变 量量2.5 变
12、变 量量整型变量类型2.5.3 整型整型变量变量2.5 变变 量量2.5 变变 量量 实型变量2.5.4 实型实型变量变量2.5 变变 量量【例2.3】 浮点型数据的舍入误差分析。程序运行结果:程序运行结果:a=33333.332031, b=33333.333333 2.5.4 实型实型变量变量2.5 变变 量量#include /* 程序需要使用程序需要使用C语言提供的标准函数库语言提供的标准函数库 */void main( ) /* 主函数主函数 */float a; /* 定义定义a为单精度实型变量为单精度实型变量 */ double b;/* 定义定义b为双精度实型变量为双精度实型变
13、量 */ a=33333.33333; /* 将将33333.33333赋给单精度实型变量赋给单精度实型变量a */ b=33333.33333333333333; /* 将将33333.33333333333333赋给双精度实型变量赋给双精度实型变量b*/ printf(a=%f,b=%fn,a,b);/* 以实型形式输出以实型形式输出a和和b的值的值 */字符变量用来存放字符常量,注意,只能存放一个字符。字符变量用来存放字符常量,注意,只能存放一个字符。例如:char c1,c2,c3,c4;c1=a;/* 正确 */c2=6;/* 正确 */c3=a; /* 不正确 */c4=abc;
14、/* 不正确 */2.5.5 字符字符变量变量2.5 变变 量量1. 字符型数据在内存中的存放形式字符型数据在内存中的存放形式 将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应ASC码存放到存储单元中。 例如:char c1,c2;c1=a;c2=b; 字符a的ASC代码为十进制数97,字符b的ASC代码为十进制数98,在内存中变量c1、c2的值实际上是以二进制形式存放的。2.5.5 字符字符变量变量2.5 变变 量量 2. 字符型数据的使用字符型数据的使用 字符型和整型在一定范围内是通用的,字符型数据可以以字符形式输出,也可以以整数形式输出。2.
15、5.5 字符字符变量变量2.5 变变 量量【例2.5】运行结果:运行结果:98,b66,B#include #include / /* * 程序需要使用程序需要使用C C语言提供的标准库函数语言提供的标准库函数 * */ /void main( )void main( )/ /* * 主函数主函数 * */ / intint k; k;/ /* * 定义定义k k为整型变量为整型变量 * */ /char char chch; ;/ /* * 定义定义chch为字符型变量为字符型变量 * */ /k=b;k=b;/ /* * 将字符将字符bb赋给整型变量赋给整型变量k k * */ /chch
16、=66;=66;/ /* * 将整数将整数6666赋给字符变量赋给字符变量chch * */ /printfprintf(%d, %c(%d, %cn,k,kn,k,k); );/ /* * 分别以整数和字符形式输出分别以整数和字符形式输出k k的值的值* */ /printfprintf(%d, %c(%d, %cn,ch,chn,ch,ch); );/ /* * 分别以整数和字符形式输出分别以整数和字符形式输出chch的值的值* */ / 按运算符功能分:算术运算符、关系运算符、逻辑运算符、位运算符和C语言的特殊运算符等5类。 按运算符运算对象的多少分:单目运算符、双目运算符和三目运算符3
17、类。 2.6.1 运算符运算符 2.6 C语言的运算符和表达式概述语言的运算符和表达式概述 用运算符和圆括号把运算对象连接起来的、符合用运算符和圆括号把运算对象连接起来的、符合C语言语法规则的式语言语法规则的式子,称为表达式。子,称为表达式。 对表达式进行运算所得到的结果,称为表达式的值。对表达式进行运算所得到的结果,称为表达式的值。2.6.2 表达式表达式 2.6 C语言的运算符和表达式概述语言的运算符和表达式概述 运算符的优先级:运算符的优先级: 指多个运算符用在同一个表达式中时先进行什么运算,后进行什么运算,即如果在同一个表达式中出现了不同级别的运算符,首先计算优先级较高的。 运算符的结
18、合性:运算符的结合性: C语言规定了各种运算符的结合方向即结合性,有两种结合方向:一种是“左结合性”,即从左向右计算,另一种是“右结合性”,即从右至左计算。2.6.3 运算符的优先级和结合性运算符的优先级和结合性 2.6 C语言的运算符和表达式概述语言的运算符和表达式概述1. 基本算术运算符及其表达式基本算术运算符及其表达式(1)基本算术运算符基本算术运算符+,-,*,/,%。(2) 优先级优先级优先级从高到低为:优先级从高到低为: *、/、% +、-(3) 结合性结合性结合性为自左至右。结合性为自左至右。2.7.1算术运算符和算术表达式算术运算符和算术表达式 2.7 C语言中基本的运算符和表
19、达式语言中基本的运算符和表达式 【例2.6】设变量x、y的值分别为12.5和52.5,求算术表达式(x+y)/231的值。2.7.1算术运算符和算术表达式算术运算符和算术表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 ( x + y ) / 2 31 75 32.5 1.5(4) 基本算术运算符及其表达式的说明和注意事项基本算术运算符及其表达式的说明和注意事项 表达式中凡是相乘的地方必须写上“*”,不能省略,也不能用点代替;表达式中出现的括号一律使用圆括号,而且为保持运算顺序正确性,根据需要适当添加圆括号。 数学中有些常用的计算可以用C系统提供的标准数学库函数实现。值得
20、注意的是,函数的自变量(即函数的参数)必须写在圆括号内。例如,求x的平方根的函数为sqrt(x),求xy的函数为pow(x, y)。一般情况下,求x2写为x*x的连乘形式。 2.7.1算术运算符和算术表达式算术运算符和算术表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 除法运算符“/”的运算对象可以是各种类型的数据,但是当进行两个整型数据相除时,运算结果也是整型数据,即只取商的整数部分;而操作数中有一个为实型数据时,则结果为双精度实型数据。 例如,5.0/10的运算结果为0.5,5/10的运算结果为0(而不是0.5),10/4的运算结果为2(而不是2.5)。 求余数运算
21、符“%”仅用于整型数据,不能用于实型。它的作用是取整数除法的余数。注意,求余符号的正负取舍和被除数符号相同。 例如,1%2的结果是1,10%3的结果也是1。而1%2.0或10.0%3不是合法的表达式,运行时会出错。-3%16=-3,16%-3=1。2.7.1算术运算符和算术表达式算术运算符和算术表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2. 自增与自减运算符及其表达式自增与自减运算符及其表达式(1) 自增、自减运算符:自增自增、自减运算符:自增(+)和自减和自减(-)前缀形式:+i、-i,它的功能是在使用i之前,i值先加(减)1(即先执行i+1或i-1,然后再使用i
22、值) 后缀形式:i+、i-,它的功能是在使用i之后,i值再加(减)1(即先使用i值,然后再执行i+1或i-1)。(2) 优先级优先级 自增、自减运算符的优先级高于基本算术运算符。 (3) 结合性结合性 自增、自减运算符的结合性为自右向左。2.7.1算术运算符和算术表达式算术运算符和算术表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 (4) 自增、自减运算符及其表达式的说明和注意事项自增、自减运算符及其表达式的说明和注意事项 自增、自减运算符的对象只能是简单变量,不能是常量或带有运算符的 表达式。 例如,6-、+(a+b)、+(-i)等都是错误的。 自增、自减运算可以提高
23、程序的执行效率,速度快。因为+i运算只需要一条机器指令就可完成,而i=i+1则要对应3条机器指令。2.7.1算术运算符和算术表达式算术运算符和算术表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式【例2.9】 自增、自减运算应用举例。程序运行结果:程序运行结果:9 8 89 -8 -92.7.1算术运算符和算术表达式算术运算符和算术表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式#include /* 程序需要使用程序需要使用C语言提供的标准函数库语言提供的标准函数库 */void main( ) /* 主函数主函数 */ int i=8; /* 定义
24、定义i为整型变量,并将其初始化为为整型变量,并将其初始化为8 */printf(%dn,+i); /* i自增自增1后再参加输出运算后再参加输出运算 */printf(“%dn ”,-i); /* i自减自减1后再参加输出运算后再参加输出运算*/printf(%dn ,i+); /* i参与输出运算后,参与输出运算后,i的值再自增的值再自增1 */printf(%dn ,i-); /* i参与输出运算后,参与输出运算后,i的值再自减的值再自减1 */printf(%dn ,-i+); /* 按照结合性按照结合性-i+相当于相当于-(i+) */printf( %dn ,-i-); /* 按照结
25、合性按照结合性-i-相当于相当于-(i-)*/ 1. 基本赋值运算符及其表达式 (1) 基本赋值运算符基本赋值运算符 “=”就是基本赋值运算符。 (2) 基本赋值表达式基本赋值表达式 其一般形式为:变量变量 =表达式表达式 (3) 优先级优先级 赋值运算符的优先级仅仅高于逗号运算符。 (4) 结合性结合性 赋值运算符有自右向左的结合性。 2.7.2赋值运算符和赋值表达式赋值运算符和赋值表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式(5) 基本赋值运算符及其表达式的说明和注意事项基本赋值运算符及其表达式的说明和注意事项 赋值运算符“=”的左侧只能是变量,不能是常量或表达式
26、,而右侧可以是常量、赋过值的变量或表达式。 当赋值运算符两边的类型不一致时,要进行类型转换。 2.7.2赋值运算符和赋值表达式赋值运算符和赋值表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2. 算术复合赋值运算符及其表达式(1) 算术复合赋值运算符算术复合赋值运算符C语言规定的算术复合赋值运算符有+=、-=、*=、/=、%=5种。(2) 算术赋值表达式算术赋值表达式其一般形式为:变量 算术复合赋值运算符 表达式(3) 优先级与结合性优先级与结合性算术复合赋值运算符的优先级、结合性与基本赋值运算符相同。2.7.2赋值运算符和赋值表达式赋值运算符和赋值表达式 2.7 C语言
27、中基本的运算符和表达式语言中基本的运算符和表达式(4) 算术复合赋值运算符及其表达式的说明和注意事项算术复合赋值运算符及其表达式的说明和注意事项 如果基本赋值运算符(=)右边是一个表达式,在进行等价处理时,应加上括号。 例如,表达式y*=x+6等价于表达式y=y*(x+6),而不等价于表达式y=y*x+6。 算术复合赋值运算符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。 2.7.2赋值运算符和赋值表达式赋值运算符和赋值表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式(1) 关系运算符关系运算符 C语言提供了以下6种关系运算符
28、: (大于),=(大于等于),(小于),、=、x0,表示x的值小于6且大于0;关系表达式6x0,表示6x非0即1的比较结果再与0比较 应避免对实数做相等或不等的判断,因为实数在内存中存放时有一定的误差。 如果一定要进行比较,则可以用它们的差的绝对值去与一个很小的数(例如10-5)相比较,即fabs(x-y) 10-5,如果小于此数,就认为它们是相等的。 2.7.3 关系运算符和关系表达式关系运算符和关系表达式 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式(1) 逻辑运算符逻辑运算符 C语言提供了以下三种逻辑运算符:语言提供了以下三种逻辑运算符: &(与运算符),|(或
29、运算符),!(非运算符)(2) 逻辑表达式逻辑表达式 其一般形式为:表达式 逻辑运算符 表达式(3) 逻辑运算符的优先级逻辑运算符的优先级逻辑运算符与其他运算符的优先级次序:! 算术运算符 关系运算符 & | 赋值运算符 逗号运算符(4) 逻辑运算逻辑运算符的结合性符的结合性&和|均为双目运算符,结合性从左至右;!为单目运算符,结合性从右至左。 2.7.4 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式逻辑运算符的运算规则 2.7.4 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式2.7 C语言中基本的运算符和表达式语言
30、中基本的运算符和表达式 (5) 逻辑表达式的说明和注意事项逻辑表达式的说明和注意事项 逻辑运算中“短路”现象是指,仅计算逻辑表达式中的一部分便能确定结果,而不对整个表达式进行计算的现象。 逻辑与(&)运算式中,只要前面有一个表达式被判定为“假”,系统就不再判定求解其后的表达式,整个表达式的值为0。对于逻辑表达式a&b,当a=0时,表达式的值即为0,不必计算判断b;只有当a=1时,才判断b。 逻辑或(|)运算表达式中,只要前面有一个表达式被判定为“真”,系统就不再判定或求解其后的表达式,整个表达式的值为1。对于逻辑表达式a|b,当a=1(非0)时,表达式的值为1,不必计算判断b;
31、只有当a=0时,才判断b。2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7.4 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式(1) 条件运算符条件运算符 条件运算符由问号“?”和冒号“:”两个字符组成,用于连接3个运算对象,是C语言中唯一的一个三目运算符。(2) 条件表达式条件表达式 其一般形式为:表达式1?表达式2:表达式3 条件表达式的值及其运算规则:条件表达式的值及其运算规则:先求解表达式1的值,若表达式1值非0(真),则表达式2的值为整个条件表
32、达式的值;否则,表达式3的值为整个条件表达式的值。条件表达式的执行流程如图所示。 2.7.5 条件运算符和条件表达式条件运算符和条件表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式(3) 优先级优先级 条件运算符与其他运算符的优先次序如下: 单目运算符算术运算符关系运算符逻辑运算符条件运算符赋值运算符逗号运算符(4) 结合性结合性 条件运算符的结合性为自右至左。2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7.5 条件运算符和条件表达式条件运算符和条件表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式(5) 条件运算表达式的说明和注意事
33、项条件运算表达式的说明和注意事项 条件运算表达式可以嵌套。 【例2.18】 假设有整型变量a=1、b=2和x,计算表达式ab?(x=6):(x=7)的值。5 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7.5 条件运算符和条件表达式条件运算符和条件表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 条件表达式中,表达式1、表达式2和表达式3的类型可以不一致,条件表达式值取较高的类型。 例如,条件表达式ab?1.5:2的值的类型是双精度实型(即若ab,则表达式的值为1.5,否则其值为实型2.0,因为在ab?1.5:2中最高类型为双精度实型)。 2.7 C语
34、言中基本的运算符和表达式语言中基本的运算符和表达式2.7.5 条件运算符和条件表达式条件运算符和条件表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式(1) 逗号运算符逗号运算符 在C语言中逗号“,”也是一种运算符,称为逗号运算符。(2) 逗号表达式逗号表达式 其一般形式为:表达式1,表达式2,表达式n 逗号表达式的求解过程是:逗号表达式的求解过程是:先求解表达式1的值,再求解表达式2的值,一直到求解表达式n的值,而整个逗号表达式的值是表达式n的值。 (3) 优先级优先级 逗号运算符的优先级在所有运算符中最低。(4
35、) 结合性结合性 逗号运算符结合性自左至右。2.7.6 逗号运算符和逗号表达式逗号运算符和逗号表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 (5) 逗号表达式的说明和注意事项逗号表达式的说明和注意事项 逗号表达式又可以和另一个表达式组成一个新的逗号表达式。 例如,逗号表达式(a=6,3*a),a+10中,表达式1是(a=6,3*a),表达式2是a+10,先将6赋值给a,再计算3*a得18,a的值不变,最后计算a+10,得16,整个表达式的值是16。 并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中和函数参数表中的逗号只是用做各变量之间的间隔符。 例如,“int
36、 a,b,c;”中的逗号仅仅起变量之间间隔符的作用。 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7.6 逗号运算符和逗号表达式逗号运算符和逗号表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 1. 自动类型转换自动类型转换 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。归纳起来,自动类型转换的规则如图所示。 2.7.7 强制类型转换运算符强制类型转换运算符2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式例如,有如下变量: int i; float f; dou
37、ble d; long k;运算55+a+i*f-d/k时,转换步骤如下: 2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7.7 强制类型转换运算符强制类型转换运算符2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 2. 强制类型转换运算符强制类型转换运算符 (1) 强制类型转换运算符强制类型转换运算符 强制类型转换运算符就是“(类型)”,它是单目运算符,它把表达式的运算结果强制转换成圆括号中类型说明符所指定的类型。其一般形式为: (类型说明符)(表达式) 例如: (int) (a+b) /*将表达式a+b的类型转换为整型*/ 2.7 C语言中基本的运算符和表
38、达式语言中基本的运算符和表达式2.7.7 强制类型转换运算符强制类型转换运算符2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 (2) 强制类型转换运算符的说明和注意事项强制类型转换运算符的说明和注意事项 无论是自动类型转换还是强制类型转换,类型转换的结果是一个指定类型的中间值,而原来变量的类型并没有改变。 例如,假设n为int型变量,x为float型变量且x=5.85,则表达式n=(int)x的结果得到一个整型值5,变量x的float类型并未改变,x内存放的值5.85也未改变。2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7.7 强制类型转换运算符强制类型转
39、换运算符2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式1. 求字节数运算符求字节数运算符 一般形式为: sizeof(变量名) 或或 sizeof(类型名) 或或 sizeof(表达式) sizeof的运算结果是整型值,该值是表达式或类型名对应的数据在内存中所占的字节数。 2.7.8 其他运算符其他运算符2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 2. 指针运算符指针运算符 指针运算符包括用于取内容(*)和取地址(&)两种运算符。*和&运算符都是单目运算符。 &运算符用来取
40、出其运算分量的地址。 *运算符是&的逆运算,它把运算分量(即指针量)所指向的内存单元中的内容取出来。 例如: int x,y,*p; p=&x;/*表示把x所在内存单元的地址送给指针变量p*/ y=*p;/*表示把p所指单元的内容(即x的值)赋给变量y*/2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式2.7.8 其他运算符其他运算符2.7 C语言中基本的运算符和表达式语言中基本的运算符和表达式 (1) C语言的数据类型 C语言的数据类型有4类:基本类型、构造类型、指针类型和空类型。 (2) 常量和变量 常量指在程序运行中其值不能被改变的量,包括整数、长整数、无符
41、号整数、浮点数、字符、字符串、符号常量等。其中特别要注意字符和字符串的区别。 变量是指在程序运行过程中其值可以被改变的量,包括各种整型、实型、字符型等。 (3) C语言共有13类运算符 运算符主要有算术运算符(包括自增、自减运算符)、关系运算符、逻辑运算符、条件运算符、赋值运算符和逗号运算符等。 每种运算符运算对象的个数、优先级、结合性也各有不同。一般而言,单目运算符优先级较高,赋值运算符优先级较低。大多数双目运算符为左结合性,单目、三目及赋值运算符为右结合性。 (4) 表达式 表达式是由运算符连接各种类型的数据组合而成的式子。表达式的求值应按照运算符的优先级和结合性所规定的顺序进行。 (5)
42、数据类型转换本本 章章 小小 结结计算机等级考试二级真题解析计算机等级考试二级真题解析 1. (2009年3月选择题第11题)以下选项中,合法的标识符是( )。 A) 1_1 B) 1-1C) _11D) 1_ _【解析】标识符必须以英文字母或下划线开头,不能以数字开头;而选项A、 B、D均以数字开头。【答案】C计算机等级考试二级真题解析计算机等级考试二级真题解析2. (2009年3月选择题第12题)若函数中定义语句:int k;,则( )。A) 系统将自动给k赋初值0B) 这时k中的值无定义C) 系统将自动给k赋初值-1D) 这时k中无任何值【解析】 变量只要定义,系统就会为该变量分配确定大
43、小的内存单元。如果没有赋初值,该单元的内容是一个随机值(无定义)。【答案】 B计算机等级考试二级真题解析计算机等级考试二级真题解析 3. (2009年3月选择题第13题)以下选项中,能用作数据常量的是( )。A)o115 B) 0118 C) 1.5e1.5D) 115L【解析】 选项A错误:o115为非法常量,不能以字母o开头;选项B错误 :0118以0开头,表示是八进制数,但八进制数的数字中只能是07,不能有8;选项C错误:1.5e1.5为指数形式,但e后面的指数只能为整数;选项D正确:115L中的后缀L表示这是一个长整型常量。 【答案】 D计算机等级考试二级真题解析计算机等级考试二级真题
44、解析 4. (2009年3月选择题第14题)设有定义:int x=2;,以下表达式中,值不为6的是( )。 A) x*=x+1B) x+,2*xC) x*=(1+x)D) 2*x, x+=2【解析】 选项A“x*=x+1”和选项C“x*=(1+x)”功能相同,都可以计算出 x=x*(x+1)=2*3=6 (整个赋值表达式的值即x的值)。选项B和选项D为逗号表达式,顺序求值,整个逗号表达式的值为最后表达式的值。选项B: x+,2*xx+后x变为3,2*x的值为6。选项D:2*x, x+=22*x不影响x的值,x仍为2,x+=2后x变为4。【答案】 D计算机等级考试二级真题解析计算机等级考试二级真题解析 5. (2011年9月选择题第13题)以下选项中关于C语言常量的叙述错误的是( )。 A) 所谓常量,是指在程序运行过程中,其值不能被改变的量 B) 常量分为整型常量、实型常量、字符常量和字符串常量 C) 常量可分为数值常量和非数值常量 D) 经常被使用的变量可以定义成常量【解析】 选项A、B、C的说法均正确。常量:指在程序运行过程中值不能被改变的量,变量:指在程序运行过程中值可以随时改变的量。如果程序中已定义为变量,则不能再定义成常量,选项D错误。 【答案】 D计算机等级考试二级真题解析计算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术服务合同经典
- 委托国际贸易佣金合同书
- 零配件采购合同
- 石材大板购销合同
- 物流专线合同协议书模板
- 建设工程委托监理合同书样本
- 2025医院信息系统和其系统软件平台维护合同范本
- 2025商品买卖合同范本
- 2025年浙教版选修4地理下册阶段测试试卷含答案
- 2025借款公司向公司股东借款合同
- (正式版)CB∕T 4552-2024 船舶行业企业安全生产文件编制和管理规定
- 病案管理质量控制指标检查要点
- 2024年西藏中考物理模拟试题及参考答案
- 九型人格与领导力讲义
- 药品经营和使用质量监督管理办法培训试题及答案2023年9月27日国家市场监督管理总局令第84号公布
- 人教版五年级上册数学脱式计算练习200题及答案
- 卵巢黄体囊肿破裂教学查房
- 医院定岗定编
- 计算机网络毕业论文3000字
- 2023年大学物理化学实验报告化学电池温度系数的测定
- 脑出血的护理课件脑出血护理查房PPT
评论
0/150
提交评论