第02章C语言基本数据类型与表达式课件
2.1 C语言的语法基础 2.2 C语言的基本数据类型 2.3 常量和变量 2.4 运算符与表达式 2.5 数据类型转换 第二章 C语言的基本数 据类型与表达式 第二章 目录 2.1 C语言的语法基础 (4)特殊符号:通常由1~2个符号组成,主要用 来表示运算符。 2.1.1、C语言字符集 C语言的基本符号可分4个类,归纳如下: (1)英文字母:大小写各26个,共计52个; (2)阿拉伯数:0、1、2、3、4、5、6、7、8、9 共10个数字; (3)下划线: _ ; 第二章 2.1 C语言数据类型 例如: 算术运算符:+ - * / % ++ -- 关系运算符: = :大于,:大于,5353,,3535 ==:大于等于,:大于等于,5 =3,3 =5 5 =3,3 =5 ,,与数学上与数学上(≥)(≥)不同不同 ====:等于,:等于,5==3 ,5==3 ,与数学上与数学上(=)(=)不同不同 !=!=:不等于,:不等于,5!=3 5!=3 ,,与数学上与数学上(≠)(≠)不同不同 2 2、关系表达式、关系表达式 用关系运算符将表达式连接起来的式子 优先级 = 高 低 == != 结合方向 自左向右自左向右 表达式的值 关系成立,即为真,结果为1; 关系不成立,即为假,结果为0; 算术 运算符 高 低 C语言中,真:非 0值,假:0值 第二章 2.3 运算符和表达式 三、逻辑运算符和逻辑表达式三、逻辑运算符和逻辑表达式 1 1、逻辑运算符、逻辑运算符 !:逻辑非,一元运算符!:逻辑非,一元运算符 运算规则:取反,真运算规则:取反,真假,假假,假真真 float b=3.5; !a0 !b 0 a b=1; c=2; d=a++a=0; b=1; c=2; d=a++ d=d=((a++a++)) ; 运算结果运算结果: d=0,a=1,b=1,c=2: d=0,a=1,b=1,c=2 ((1 1))a b=1; c=2; d=a++||b++||- -c; a=0; b=1; c=2; d=a++||b++||- -c; d=d=((a++a++))|| ||((b++b++))|| ||((- -c- -c)); ; 运算结果运算结果: d=1,a=1,b=2,c=2 : d=1,a=1,b=2,c=2 第二章 2.3 运算符和表达式 思考题: 1. 判断一个数n是否为奇数或偶数? 2. 判断一个字母c是否是英文字符? 3. 判断一个年份是否为闰年? 4. 判断一个数n是否被数k整除? 5. 判断三个数是否组成一个三角形? 6. 判断三个数是否组成一个等腰三角形? 四、赋值运算符和赋值表达式四、赋值运算符和赋值表达式 1 1、赋值运算符、赋值运算符= (数学上的等号) 功能:将一个表达式的值赋给一个变量变量。 2 2、赋值表达式、赋值表达式 用赋值运算符将用赋值运算符将变量变量和表达式连接和表达式连接 起来的式子起来的式子 形式形式: 求值规则求值规则: : 将将“=”“=”右边表达式的值赋右边表达式的值赋 给左边的变量。给左边的变量。 结合性:自右至左结合性:自右至左 第二章 2.3 运算符和表达式 例例2-92-9:: ((1 1)) x=(y=12)/4 x=(y=12)/4 y y值为值为1212,,x x值为值为3 3,表达式的值为,表达式的值为3 3 ((2 2)) x=y=12/4 x=y=12/4 y y值为值为3 3,,x x值为值为3 3,表达式的值为,表达式的值为3 3 ((3 3)) x=(y=12/4) x=(y=12/4) (y(y值为值为3 3,,x x值为值为3 3,表达式的值为,表达式的值为3 3 ((4 4)) (x=y)=12/4 (x=y)=12/4 该赋值运算符左边不 是变量,而是一个表 达式 第二章 2.3 运算符和表达式 3 3、复合赋值运算符、复合赋值运算符 *=、/=、%=、+=、-=、 求值规则和表达式的值求值规则和表达式的值: : 求解求解 表达式表达式1 1 真真( (非非0)0) 求解求解 表达式表达式2 2 假假(0)(0) 求解求解 表达式表达式3 3 表达式表达式 的值的值 第二章 2.3 运算符和表达式 优先级:优先级: 逻辑 条件 赋值 结合性: 自右至左 例2-11: int max,a=5;b=3; max=ab?a:b --a==b++ ? a++ : b++ y = x10 ? x/10 : x0 ? x: -x; 第二章 2.3 运算符和表达式 形式形式: : 逗号表达式逗号表达式1 1,逗号表达式,逗号表达式2 2,,……,逗号表达式,逗号表达式n n 求值规则求值规则: : 从左至右依次计算各表达式的值从左至右依次计算各表达式的值 优先级优先级 最低最低 结合性:结合性: 自左至右自左至右 表达式的值表达式的值 最后一个表达式的值最后一个表达式的值。 第二章 2.3 运算符和表达式 六、逗号运算符与逗号表达式六、逗号运算符与逗号表达式 例例2-12:2-12: a b y 逗号表达式 y=a=4,b=5,a+b; 4 5 4 9 y=(a=4,b=5,a+b); 4 5 9 9 y=(a=4,b=5),a+b; 4 5 5 9 y=a=(4,b=5),a+b; 5 5 5 10 注意注意: : C语言常用逗号作为分隔符, 例如: int a=3,b=4,c=5; printf(“%d,%d,%d“,(a,b,c)); printf(“%d,%d,%d“,a,(a,b,c),c); 第二章 2.3 运算符和表达式 七、位运算符七、位运算符 1.1.数的补码表示数的补码表示 计算机内部的数据和C语言的数据都是以补码 表示的。补码的最高位为符号位,若为0,该数为 正数;若为1,该数为负数。符号位与数值位一起 参与运算。 正数的补码即其本身。负数的补码可这样求出: (1)先求该数的绝对值,再求出对应正数的二进 制编码; (2)对二进制编码按位取反; (3)对最低位加1。 求-2的补码(以两个字节表示) (1)求-2的绝对值,|-2|=2, 二进制编码为:0000 0000 0000 0010 (2)按位取反得:1111 1111 1111 1101 (3)最低位加1: 1111 1111 1111 1101 1 1111 1111 1111 1110 2.位运算符 位运算符主要有:float y=1.6;char c= A ; c+x*y=? 65(int) 2(int)1.6 (double) 3.2(double) 68.2(double) 第二章 2.4 数据类型转换 2 2、赋值转换、赋值转换 在赋值时,将赋值符右边值的类型转换成 与其左边变量类型一致的类型。 几种情况: (1) 实型整型(字符型) 取整数部分,去掉小数部分 (2) 整型、字符型实型 补足有效位 float f=23; 23.00000 (7位) double f= A ; 65.00 00