二级必过法宝之chap02(基本语句).ppt

上传人(卖家):hyngb9260 文档编号:5618962 上传时间:2023-04-27 格式:PPT 页数:94 大小:779.50KB
下载 相关 举报
二级必过法宝之chap02(基本语句).ppt_第1页
第1页 / 共94页
二级必过法宝之chap02(基本语句).ppt_第2页
第2页 / 共94页
二级必过法宝之chap02(基本语句).ppt_第3页
第3页 / 共94页
二级必过法宝之chap02(基本语句).ppt_第4页
第4页 / 共94页
二级必过法宝之chap02(基本语句).ppt_第5页
第5页 / 共94页
点击查看更多>>
资源描述

1、1/93第二章第二章 基本的程序语句基本的程序语句22:13 2.2 2.2 数据类型及取值范围数据类型及取值范围 2.3 2.3 标识符、变量和常量标识符、变量和常量 2.1 2.1 用二进制表示的数用二进制表示的数 2.4 2.4 基本运算符、表达式及运算优先级基本运算符、表达式及运算优先级 2.5 2.5 基本的输入输出函数简介基本的输入输出函数简介 2.6 2.6 程序范例程序范例 2/93第二章第二章 基本的程序语句基本的程序语句22:132.1 二进制、八进制、十六进制 二进制是逢二进制是逢2进位的进位制。进位的进位制。0、1是基本算是基本算符。现代的计算机技术全部采用的是二进符。

2、现代的计算机技术全部采用的是二进制,计算机是由制,计算机是由逻辑电路逻辑电路组成,逻辑电路组成,逻辑电路通常只有两个状态通常只有两个状态 3/93第二章第二章 基本的程序语句基本的程序语句22:13计算机内部采用二进制的原因计算机内部采用二进制的原因 技术实现简单技术实现简单 简化运算规则简化运算规则 适合逻辑运算适合逻辑运算 易于进行转换易于进行转换 4/93第二章第二章 基本的程序语句基本的程序语句22:13二进制数转换为十进制数0110 0100 换算成换算成 十进制十进制第第0位位 0*2的的0次方次方 =0第第1位位 0*2的的1次方次方 =0第第2位位 1*2的的2次方次方 =4第

3、第3位位 0*2的的3次方次方 =0第第4位位 0*2的的4次方次方=0第第5位位 1*2的的5次方次方 =32第第6位位 1*2的的6次方次方 =64第第7位位 0*2的的7次方次方 =0 -100 5/93第二章第二章 基本的程序语句基本的程序语句22:1310进制数转换为2进制数 10进制数转换成二进制数,这是一个连续除进制数转换成二进制数,这是一个连续除2的过程:的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列余数倒序排列,得到数就是转换结果。6转换成二进制,结果是110。被除数计算过程商余数66/23033/21111/2016/93第二

4、章第二章 基本的程序语句基本的程序语句22:13十六进制 16进制就是逢进制就是逢16进进1,但我们只有,但我们只有09这十这十个数字,所以我们个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。字母不区分大小写。7/93第二章第二章 基本的程序语句基本的程序语句22:13原码、反码、补码原码、反码、补码 计算机中,所有数据最终都是使用二进制数表达。我们也已经学会如何将一个10进制数如何转换为二进制数。不过,我们仍然没有学习一个负数负数如何用二进制表达。假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000

5、000 00000101 在计算机中,负数以其正值的补码正值的补码形式表达。什么叫补码呢?这得从原码,反码说起。什么叫补码呢?这得从原码,反码说起。8/93第二章第二章 基本的程序语句基本的程序语句22:13 原码原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。00000000 00000101 是是 5的的 原码。原码。反码反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。取反操作指:原为取反操作指:原为1,得,得0;原为;原为0,得,得1。(。(1变变0;0变变1)00000000 00000101每一位取反,得每一位取反,得11111111 11111010。补码

6、补码:反码加反码加1称为补码。也就是说,要得到一个数的补码,先得到反码,然后将反也就是说,要得到一个数的补码,先得到反码,然后将反码加上码加上1,所得数称为补码。,所得数称为补码。比如:比如:00000000 00000101 的反码是的反码是 11111111 11111010。那么,补码为:那么,补码为:11111111 11111010+1=11111111 111110119/93第二章第二章 基本的程序语句基本的程序语句22:13 所以,所以,-5 在计算机中表达为:在计算机中表达为:11111111 11111011。转换为。转换为十六进制:十六进制:0 xFFFB。再举一例,我们

7、来看整数再举一例,我们来看整数-1在计算机中如何表示。在计算机中如何表示。假设这也是一个假设这也是一个int类型,那么:类型,那么:1、先取、先取1的原码:的原码:00000000 000000012、得反码:、得反码:11111111 111111103、得补码:、得补码:11111111 1111111110/93第二章第二章 基本的程序语句基本的程序语句22:132.2 2.2 数据类型及取值范围数据类型及取值范围数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型()空类型空类型(void)字符型字符型(char)数值类型数值类型枚举类型枚举类型(enum)数组类型数组类型

8、()结构体类型结构体类型(struct)共用体类型共用体类型(union)整型整型(short,int,long,unsigned)实型实型单精度型单精度型(float)双精度型双精度型(double)11/93第二章第二章 基本的程序语句基本的程序语句22:13 ANSI C标准中的数据类型和长度标准中的数据类型和长度 12/93第二章第二章 基本的程序语句基本的程序语句22:13 基本基本数据类型数据类型 整型整型有符号整型有符号整型 无符号整型无符号整型 数据长度数据长度int unsigned int 16或或32位位short int unsigned short int 16位位l

9、ong int unsigned long int 32位位 字符型字符型char 8位位 实型(浮点型)实型(浮点型)单精度浮点型单精度浮点型 float 32位位双精度浮点型双精度浮点型 double 64位位13/93第二章第二章 基本的程序语句基本的程序语句22:13基本基本数据类型数据类型整型整型有符号有符号 int 1 000 0000 0000 0000 -32768 -2150 111 1111 1111 1111 32767 215-1无符号无符号 unsigned int0000 0000 0000 0000 01111 1111 1111 1111 65535 216-1

10、14/93第二章第二章 基本的程序语句基本的程序语句22:137262524232221202符号位符号位0 0正0 11 0负1 1-2-101 1-2-1 0 16位有符号整数15/93第二章第二章 基本的程序语句基本的程序语句22:13整数类型的取值范围整数类型的取值范围int 16位 -32768 32767 215 215-1short int 16位 -32768 32767 -215 215-1long int 32位-2147483648 2147483647 -231 231-1unsigned int 32位 0 65535 0 216-1unsigned short in

11、t 16位 0 65535 0 216-1unsigned long int 32位 0 4294967295 0 232-116/93第二章第二章 基本的程序语句基本的程序语句22:13基本基本数据类型数据类型字符型字符型 字符具有数值特征字符具有数值特征A 65 0100 0001 整型变量和字符变量的定义和赋值可以互整型变量和字符变量的定义和赋值可以互换换【ASCII码码范围范围】char c;c=A;或或 c=65;int i;i=65;或或 i=A;17/93第二章第二章 基本的程序语句基本的程序语句22:13基本数据类型实型实型(浮点型)数据实型(浮点型)数据 单精度浮点型单精度浮

12、点型 float 双精度浮点型双精度浮点型 double 存储存储 数据精度数据精度 取值范围取值范围 (有效数字有效数字)float 4字节 七七/八八位位 (10-38 1038)double 8字节 十六十六位位 (10308 10308)18/93第二章第二章 基本的程序语句基本的程序语句22:13标识符就是一个名字,用于标志某个事物,由字字母、数字、下划线母、数字、下划线组成且由字母或下划线开头的字符串。标识符可用来命名标识符可用来命名变量变量及作为及作为常量名常量名、函数名函数名、类型名类型名、标号和其他各种用户定义的对象命名。、标号和其他各种用户定义的对象命名。一个程序内不得有重

13、复名,不允许使用与C语言系统关键字(保留字)相同的标识符。如如:_sum,sum,stu_name,price30等为合法的标识符。标识符标识符 2.3 标识符、常量与变量标识符、常量与变量19/93第二章第二章 基本的程序语句基本的程序语句22:13下面的标识符是不合法的:Number-of-moves(含有非法字符-)piece flag(含有非法字符空格)5_6_7(数字开头)20/93第二章第二章 基本的程序语句基本的程序语句22:13在定义标识符时应注意以下几点:在定义标识符时应注意以下几点:1.为了增加可读性,应尽量见名知意。如:sum,area,day,name等等2.对标识符的

14、命名应常用取简、专用取繁。3.应尽量避免使用容易混淆的字符。例如:O(大写字母)o(小写字母)0(数字)I(大写字母)l(小写字母)1(数字)Z(大写字母)z(小写字母)2(数字)21/93第二章第二章 基本的程序语句基本的程序语句22:13不要使用C语言关键字作为标识符C语言关键字列表 autobreakcasechar constcontinuedefaultdo doubleelseenumextern floatforgotoif intlongregisterreturn shortsignedsizeofstatic structswitchtypedefunion unsigne

15、dvoidvolatilewhile22/93第二章第二章 基本的程序语句基本的程序语句22:13 2.3.2 变量和常量变量和常量一、变量一、变量 其值可以改变的量称为变量其值可以改变的量称为变量。它有变量名和变量值。它有变量名和变量值 C变量必须在使用之前定义。变量必须在使用之前定义。定义变量的一般形式是:定义变量的一般形式是:;必须是有效的必须是有效的C数据类型,如:数据类型,如:int、float等,等,可以由一个或多个由逗号分隔的多个标识符可以由一个或多个由逗号分隔的多个标识符名构成。名构成。类型名规定了变量的存储空间和取值范围。类型名规定了变量的存储空间和取值范围。23/93第二章

16、第二章 基本的程序语句基本的程序语句22:13例:例:int i,j,number;unsigned int max,min;float high_value,price;double lenth,total_wieight;i,j,number为整型变量,取值范围为:为整型变量,取值范围为:-3276832767。max,min为无符号整型变量,取值范围为:为无符号整型变量,取值范围为:065535。high_value,price为单精度实型变量,取值范围为:为单精度实型变量,取值范围为:1.71038 lenth、total_weight为双精度实型变量,取值范围为:为双精度实型变量,取

17、值范围为:1010308 24/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-1】阅读程序】阅读程序#include main()int a=32766;/定义定义a为整型变量,并初始化为整型变量,并初始化unsigned int m=6553;printf(“a=%dn”,a);/输出输出aprintf(m=%un,m);a=a+4;/a的值加的值加4,再赋给,再赋给am=m*10+10;t=t*10;printf(After change:n);printf(a=%dn,a);printf(m=%un,m);25/93第二章第二章 基本的程序语句基本的程序语句22:1

18、3程序运行结果程序运行结果:a=32766m=6553After change:a=-32766m=4结论:当变量的值超出结论:当变量的值超出它所允许的范围时它所允许的范围时,其其值会变得不正确。值会变得不正确。26/93第二章第二章 基本的程序语句基本的程序语句22:13 在主函数main()中的声明部分要对一些变量进行定义,提出合适的精度要求,指出这些变量是什么数据类型的,目的是为变量分配内存单元。比如定义变量名为 a 的整型变量,int a=30;系统会根据这个精度的要求,安排2个字节的内存单元存放 a 变量的整数值。变量名 a 是这个内存单元的符号地址。图2.1表示变量定义与内存地址的

19、关系。声明(定义)变量的作用声明(定义)变量的作用27/93第二章第二章 基本的程序语句基本的程序语句22:13变量变量a 变量值变量值内存单元地址内存单元地址XXXX30图图2.1 2.1 变量的定义和内存地址的关系变量的定义和内存地址的关系28/93第二章第二章 基本的程序语句基本的程序语句22:13在C中赋值符号为“=”赋值表达式的一般格式为=举例PI=3.14159;/读作将表达式的值/3.14159赋给变量PIC=sin(PI/4);/读作将表达式/4的/正弦函数值赋给变量C赋值符号与变量赋值的特点赋值符号与变量赋值的特点29/93第二章第二章 基本的程序语句基本的程序语句22:13

20、1.变量必须先定义再使用(思考为什么?)2.在变量定义时就赋初值,这叫变量的初始化。3.对变量的赋值过程是“覆盖”过程,所谓“覆盖”是在变量地址单元中用新值去替换旧值。4.读出变量的值,该变量保持不变,相当于拷贝一份出来。5.参与表达式运算的所有变量都保持原来的值不变。变量赋值的特点变量赋值的特点30/93第二章第二章 基本的程序语句基本的程序语句22:13int a=0,b=0,c=0;/声明a,b,c为整型变量/均初始化为0a=7;/a赋值为7,覆盖了原来的0b=a;/b赋值为a,a中的值覆盖了b中的值/但a中的值不变c=a+b;/将a+b的值赋给c,a+b的值为14/去覆盖c中的0,a与

21、b保持7不变a=a+1;/将a+1的值赋给a,a+1的值为8/覆盖了原来的7举例说明上述特点举例说明上述特点说明:a=a+1;可简化写作a+;下面来说明这五条语句的执行过程。31/93第二章第二章 基本的程序语句基本的程序语句22:13 a的地址单元的地址单元 b的地址单元的地址单元 c的地址单元的地址单元 定义并初始化定义并初始化 000变量赋值过程变量赋值过程执行执行b=a0执行执行c=a+b770执行执行a=7执行执行a=a+1714817000 70714732/93第二章第二章 基本的程序语句基本的程序语句22:13二、常量二、常量 常量的值是不可变的。有整型常量、实型常量、常量的值

22、是不可变的。有整型常量、实型常量、字符常量、字符串常量和枚举常量等。字符常量、字符串常量和枚举常量等。1整型常量整型常量 可采用十进制、八进制、十六进制来表示一个整型可采用十进制、八进制、十六进制来表示一个整型常量。八进制数的前面用数字常量。八进制数的前面用数字0开头,十六进制数开头,十六进制数前面用数字前面用数字0和字母和字母X开头(开头(0 x或或0X)。)。33/93第二章第二章 基本的程序语句基本的程序语句22:131、整型常量(整数)整数的表示三种表现形式:十进制整数:正、负号,09,首位不是0例:10,123八进制整数:正、负号,07,首位是0例:010,012316进制整数:正、

23、负号,09,a-f,A-F,前缀是0 x,0X例:0 x10,0 x12334/93第二章第二章 基本的程序语句基本的程序语句22:13【例2-2】整型常量的不同进制表示法。/*exam2-2.c*/#includemain()printf(80 in hexadecimal is%d in decimaln,0 x80);printf(200 in octal is%d in decimaln,0200);printf(128 in decimal is%d in decimaln,128);35/93第二章第二章 基本的程序语句基本的程序语句22:132、实型常量(实数、浮点数)实数的表示

24、 浮点表示法0.123 123.4 12.0 .12 科学计数法6.026E-27 1.2e+30 1E-5实数的类型float,double36/93第二章第二章 基本的程序语句基本的程序语句22:133字符常量字符常量 字符常量是由一对单引号括起来的单个字符。如:字符常量是由一对单引号括起来的单个字符。如:A、S、9、$等等。单引号只起单引号只起定界定界作用,作用,和和就可代表单个字符单引就可代表单个字符单引号(号()和反斜杠()和反斜杠()。)。C语言中,字符是按其所对应的语言中,字符是按其所对应的ASC码的值来存储码的值来存储的,一个字符占一个字节。的,一个字符占一个字节。部分字符的部

25、分字符的ASC码码字符和与之对应的字符和与之对应的ASC码详见附录码详见附录2 37/93第二章第二章 基本的程序语句基本的程序语句22:13注意:注意:数字数字3和字符和字符3的区别,前者为整型常量,占的区别,前者为整型常量,占2个字节。后者由字符常量,占个字节。后者由字符常量,占1个字节,但个字节,但3的的值为值为51。由于由于C语言中的字符常量是按整数值存放的,因语言中的字符常量是按整数值存放的,因此,字符常量可以像整数一样在程序中参与运算。此,字符常量可以像整数一样在程序中参与运算。如:如:A+4;运算结果为:;运算结果为:698-5;运算结果为:;运算结果为:51 y-32;运算结果

26、为:;运算结果为:89 38/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-4】字符常量。】字符常量。#includemain()char c;c=A;printf(%cn,c);printf(%cn,A);39/93第二章第二章 基本的程序语句基本的程序语句22:134字符串常量字符串常量 字符串常量是指用一对字符串常量是指用一对双引号双引号括起来的一串字符。双引括起来的一串字符。双引号只起定界作用号只起定界作用 例:例:“world”,“The C program Language”,“TRUEorFLASE”,“8765431-0037”,“T”等均为字符等均为字符

27、串常量。串常量。说明:说明:C语言中,字符串常量在内存中存储时,系统自动在字语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个符串的末尾加一个“串结束标志串结束标志”,即,即ASC码值为码值为0的的字符字符NULL,用,用0表示。表示。例例:字符串常量:字符串常量“World”,共占,共占6个字节,存储形式为:个字节,存储形式为:0dlroW字符与字符串常量的区别字符与字符串常量的区别:表示形式不同,其存储性质:表示形式不同,其存储性质也不相同也不相同。40/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-5】字符串常量。】字符串常量。#includemain(

28、)char*c;c=I am a student.;printf(%sn,c);printf(%sn,I am a teacher.);运行结果:运行结果:I am a student.I am a teacher.41/93第二章第二章 基本的程序语句基本的程序语句22:13 5转义字符转义字符 转义字符表示转义字符表示ASC码字符集中不可打印的控制字符和特码字符集中不可打印的控制字符和特定功能的字符定功能的字符,转义字符用反斜杠,转义字符用反斜杠后面跟一个字符或一后面跟一个字符或一个八进制或十六进制数表示。个八进制或十六进制数表示。42/93第二章第二章 基本的程序语句基本的程序语句22:

29、136符号常量符号常量 C语言允许将程序中的常量定义为一个标识符,称为符号常量。语言允许将程序中的常量定义为一个标识符,称为符号常量。定义的形式是:定义的形式是:#define 例如:例如:#define PI 3.1415926#define TRUE 1#define FALSE 0说明:这里定义说明:这里定义PI、TRUE、FLASE为符号常量,其值分别为符号常量,其值分别为为3.1415926,1,0。#define是是C语言的语言的预处理命令预处理命令。43/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-7】符号常量的使用。】符号常量的使用。/*exam2_7.

30、c 符号常量的使用符号常量的使用*/#include#define WHOAMI I am a student.main()printf(%s,WHOAMI);运行结果运行结果:?44/93第二章第二章 基本的程序语句基本的程序语句22:13表达式:由运算符和运算对象(操作数)组成由运算符和运算对象(操作数)组成的有意义的运算式子,它的值和类型由参加的有意义的运算式子,它的值和类型由参加运算的运算符和运算对象决定。运算的运算符和运算对象决定。运算符:具有运算功能的符号具有运算功能的符号运算对象:常量、变量和函数等表达式常量、变量和函数等表达式算术表达式、赋值表达式、关系表达式、逻辑算术表达式、

31、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等表达式、条件表达式和逗号表达式等 2.4 基本运算符、表达式及运算优先级基本运算符、表达式及运算优先级 45/93第二章第二章 基本的程序语句基本的程序语句22:132.4.1 算术运算符及算术表达式算术运算符及算术表达式 优先级中的数字越小,优先级越高,同级运算符按从左优先级中的数字越小,优先级越高,同级运算符按从左到右的顺序进行计算,除非用括号改变表达式的计算顺序。到右的顺序进行计算,除非用括号改变表达式的计算顺序。46/93第二章第二章 基本的程序语句基本的程序语句22:13单目单目 +-+-+-+-双目双目 +-+-*/%/%

32、注意注意/整数除整数,得整数整数除整数,得整数1/4=01/4=0,10/3=310/3=3%模模(求余求余):针对整型数据针对整型数据5%6=55%6=5,9%4=19%4=1,100%4=0100%4=0+和和 单目运算符,单目运算符,+10+10 和和 1010双目运算符,双目运算符,x+10 x+10 和和 y 10y 10 双目运算符两侧操作数的类型要相同,否则,自双目运算符两侧操作数的类型要相同,否则,自动类型转换后,再运算。动类型转换后,再运算。47/93第二章第二章 基本的程序语句基本的程序语句22:13自动类型转换(非赋值运算)A+12 10.05 65 77 66.95高高

33、 double float unsigned long long unsigned 低低 int char,48/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-9】由】由+、-、*、/、%组成的算术表达式。组成的算术表达式。#includemain()int a,b,c1,c2;float x,y,z;a=85;b=18;x=42.6;y=21.3;c1=a/b;c2=a%b;z=x/y;printf(c1=%d,c2=%d,z1=%fn,c1,c2,z);c1=b/a;c2=b%a;z=y/x;printf(c1=%d,c2=%d,z1=%fn,c1,c2,z);49/

34、93第二章第二章 基本的程序语句基本的程序语句22:13程序运行结果:程序运行结果:c1=4,c2=13,z1=2.000000c1=0,c2=18,z1=0.500000 两个整数相除,则结果只取整数部分取模运算符()不能用于浮点型数字的运算 50/93第二章第二章 基本的程序语句基本的程序语句22:13自增运算符+和自减运算符-int n;n+n n-n 使变量的值增1或减1+n n+n=n+1-n n-n=n-1取变量的值作为表达式的值+n:n=n+1;取n值作为表达式+n 的值n+:取n值作为表达式 n+的值;n=n+151/93第二章第二章 基本的程序语句基本的程序语句22:13自增

35、运算和自减运算int n,m;n=2;m=+n;n=2;m=n+;n=3n=3m=3m=2m=nm=n+1n=n+1m=n52/93第二章第二章 基本的程序语句基本的程序语句22:13#includemain()int a,b;float x,y;a=16;x=12.6;+a;+x;程序运行结果:程序运行结果:1-a=17,x=13.6000002-a=18,x=14.6000003-b=18,y=14.6000004-a=19,x=15.600000 printf(1-a=%d,x=%fn,a,x);a+;x+;printf(2-a=%d,x=%fn,a,x);b=a+;y=x+;print

36、f(3-b=%d,y=%fn,b,y);printf(4-a=%d,x=%fn,a,x);【例【例2-10】由自增自减组成的表达式。】由自增自减组成的表达式。53/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-12】算术运算符的综合表达式。】算术运算符的综合表达式。#includemain()int a,b,c;float x,y,z;a=6;b=4;x=3.2;y=6.4;c=+a+b%a-3/b%2;z=y-+x*x/y;printf(a=%d,c=%dn,a,c);printf(y=%f,z=%fn,y,z);运行结果运行结果:a=7,c=11 y=5.400000

37、,z=8.000000 54/93第二章第二章 基本的程序语句基本的程序语句22:132.4.2 赋值表达式 赋值运算符 =x=3*4优先级较低,结合性从右向左x=y=3 x=(y=3)55/93第二章第二章 基本的程序语句基本的程序语句22:13赋值表达式变量=表达式计算赋值运算符右侧计算赋值运算符右侧表达式表达式的值的值将赋值运算符右侧将赋值运算符右侧表达式表达式的值赋给左侧的的值赋给左侧的变量变量将赋值运算符左侧的将赋值运算符左侧的变量变量的值作为表达式的值的值作为表达式的值右侧表达式的类型自动转换成左侧变量的类型右侧表达式的类型自动转换成左侧变量的类型int n;double x,y;

38、n=3.14*2;x=10/4;x=(y=3);56/93第二章第二章 基本的程序语句基本的程序语句22:13复合赋值运算符复合赋值运算符 赋值运算符简单赋值运算符=复合赋值运算符 复合算术赋值运算符 +=-=*=/=%=复合位赋值运算符 赋值表达式 变量 赋值运算符 表达式x+=exp 等价于 x=x+expx*=y-3x=x*(y-3)57/93第二章第二章 基本的程序语句基本的程序语句22:13 2.4.3 关系运算符及关系表达式关系运算符及关系表达式 关系运算符及其含义和优先级关系运算符及其含义和优先级 关系运算符主要是用于比较两个表达式的值,结果只关系运算符主要是用于比较两个表达式的

39、值,结果只有两个有两个:真(值为真(值为1)和假(值为)和假(值为0)。)。58/93第二章第二章 基本的程序语句基本的程序语句22:13关系表达式的一般格式 关系运算符 例如:变量 1 为 b,变量 2 为 c,关系运算符为 。关系表达式为b c在程序中系统要测试由关系表达式所表示的关系是否成立,成立为真,不成立为假。关系表达式是有值的,这个值非 0 即 1,是布尔值。关系表达式成立,其值为 1。关系表达式不成立,其值为 0。上述性质在编写程序时用到,因此很重要。59/93第二章第二章 基本的程序语句基本的程序语句22:133 2 的逻辑值是 1,1为真3=2 的逻辑值是 1,1为真3=2

40、的逻辑值是 0,0为假3 2 的逻辑值是 0,0为假3 a+b 等效于 c(a+b)ab!=c (ab)!=ca=bc a=(bc a=(bc)例:例:int a,b a=(230)b=(23-9)!=(18-4);则:则:a的值为的值为1,b的值为的值为0 61/93第二章第二章 基本的程序语句基本的程序语句22:132.4.4 逻辑运算符逻辑运算符及逻辑表达式及逻辑表达式逻辑运算符及其含义逻辑运算符及其含义 逻辑运算规则逻辑运算规则 结果只有两个:真(值为结果只有两个:真(值为1)和假(值为)和假(值为0)注:注:表中的表中的A或或B均可以是其它关系表达式。均可以是其它关系表达式。在在C语

41、言中,语言中,任何非零值均为真,零值为假任何非零值均为真,零值为假。例:例:ab&!(c-d)|a=562/93第二章第二章 基本的程序语句基本的程序语句22:133种逻辑运算符逻辑与逻辑与&逻辑或逻辑或|逻辑非逻辑非!XX&YYXYX|YX!X63/93第二章第二章 基本的程序语句基本的程序语句22:13“&”和“”为双目运算符,“!”为单目运算符。优先顺序 ab&xy (ab)&(xy)a=b x=y (a=b)(x=y)!a ab (!a)(ab)(m=ab)&(n=cd)(m=(ab)&(n=(cd)64/93第二章第二章 基本的程序语句基本的程序语句22:132.4.5 三目运算符三

42、目运算符 三目运算符又称为条件运算符,由三目运算符又称为条件运算符,由?号和号和:号号组成,组成,“三目三目”指的是操作数的个数有三个指的是操作数的个数有三个.一般形式为:一般形式为:表达式表达式1?表达式表达式2:表达式:表达式3;说明:说明:表达式表达式1通常是关系表达式或逻辑表达式,通常是关系表达式或逻辑表达式,表达式表达式1的值:为的值:为1(真)时,结果为表达式(真)时,结果为表达式2的运算结果的运算结果 :为:为0(假)时,结果为表达式(假)时,结果为表达式3的运算结果的运算结果65/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-14】阅读程序,了解三目运算符

43、】阅读程序,了解三目运算符#include#include main()int a,b;a=3;b=5;printf(The max value of a and b is:%dn,ab?a:b);a=6;b=2;printf(The max value of a and b is:%dn,ab?a:b);?66/93第二章第二章 基本的程序语句基本的程序语句22:132.4.6 其他运算 长度运算符长度运算符 sizeof单目运算符,计算变量或数据类型的字节长度单目运算符,计算变量或数据类型的字节长度int a;sizeof(a)求整型变量求整型变量 a 的长度,值为的长度,值为4(byte

44、s)sizeof(int)求整型的长度,值为求整型的长度,值为4(bytes)sizeof(double)求双精度浮点型的长度,值为求双精度浮点型的长度,值为8(bytes)67/93第二章第二章 基本的程序语句基本的程序语句22:13 2.4.6 复杂表达式的计算顺序复杂表达式的计算顺序 运算符的优先级与运算方向运算符的优先级与运算方向 7相等、不相等、!6大于等于、大于小于等于、小于=、=、关系 5左移位右移位位4加、减+、-自左向右3乘、除(整除)、模(取余)*、/、%算术 自右向左 2逻辑非位非增加1、减少1取地址、取内容取正、取负(数据)长度!+、-&、*+、-sizeof 逻辑位增

45、1减1指针算术长度 自左向右1类型转换,参数表,函数调用数组元素的下标结构或联合成员()-、强制下标成员结合性优先级名称运算符类别68/93第二章第二章 基本的程序语句基本的程序语句22:13自左向右8位逻辑与&位 加赋值、减赋值乘赋值除赋值模赋值、位与赋值按位异域赋值、位或赋值位左移赋值、位右移赋值+=、-=、*=/=%=、&=、|=自反赋值 结合性优先级名称运算符类别自左向右15逗号,逗号自右向左14赋值=赋值13条件?:条件12逻辑或|11逻辑与&逻辑10位逻辑或|9位逻辑接位加(异或)69/93第二章第二章 基本的程序语句基本的程序语句22:13【例【例2-15】复杂表达式的计算顺序。

46、】复杂表达式的计算顺序。#include main()int a=10,b=15,c=14,temp;temp=a+6b&b-cc;printf(a+6b&b-cc%dn,temp);temp=!a+b*c-b/a&b-a*!(c-a);printf(!a+b*c-b/a&b-a*!(c-a)=%dn,temp);程序结果程序结果:0和和1 70/93第二章第二章 基本的程序语句基本的程序语句22:132.4.7 数据类型的转换数据类型的转换 一般情况下,应尽可能使一个表达式中各变量的类型一般情况下,应尽可能使一个表达式中各变量的类型保持一致,可采用强制转换数据类型保持一致,可采用强制转换数据

47、类型。强制类型转换运算符强制类型转换运算符(类型名类型名)表达式表达式(double)3(int)3.8(double)(5/2)(double)5/23.032.02.571/93第二章第二章 基本的程序语句基本的程序语句22:132.4.8 逗号表达式逗号表达式 逗号表达式是由逗号运算符与其它表达式组成的表达式。逗号表达式是由逗号运算符与其它表达式组成的表达式。一般形式为:表达式一般形式为:表达式1,表达式,表达式2;运算规则为:先计算表达式运算规则为:先计算表达式1,再计算表达式,再计算表达式2,逗号表达,逗号表达式的最后结果为式的最后结果为表达式表达式2的计算结果的计算结果。【例【例2

48、-16】了解逗号表达式。】了解逗号表达式。#include main()int a,b;a=3*5,a*4;b=(3*5,a*4);printf(a=%dn,b=%dn,a,b);?72/93第二章第二章 基本的程序语句基本的程序语句22:132.4.9 C语言基本语句结构语言基本语句结构 不同的语句结构就可以构成一个完整的程序,完成由不同的语句结构就可以构成一个完整的程序,完成由算法制定的工作流程。算法制定的工作流程。语句分为四大类:语句分为四大类:1表达式语句表达式语句:在表达式后加一个分号:在表达式后加一个分号(;)构成。构成。例:例:a=3*b-c/2;+j;b=(a3)?1:0;pr

49、intf(“a=%d/n”,a);2复合语句:复合语句:由一对花括号由一对花括号“”将多个表达式语句括起来将多个表达式语句括起来所组成。所组成。例:例:a=b+c;x=y%z;printf(“a=%d,x=%dn”,a,x);73/93第二章第二章 基本的程序语句基本的程序语句22:13 3控制结构语句控制结构语句 由控制结构组成的语句,完成特定的动作或功能,控制由控制结构组成的语句,完成特定的动作或功能,控制语句有五种:语句有五种:选择(分支)语句:选择(分支)语句:ifelse多分支语句:多分支语句:switchfor循环语句:循环语句:forwhile循环:循环:whiledo_whil

50、e循环:循环:dowhile 74/93第二章第二章 基本的程序语句基本的程序语句22:13 4转向控制语句转向控制语句 由系统提供的关键词构成的语句,用于改变程序的流程,由系统提供的关键词构成的语句,用于改变程序的流程,转向控制语句有四种:转向控制语句有四种:break;可用于;可用于switch语句和循环的语句。语句和循环的语句。continue;只适用于循环语句。;只适用于循环语句。return;用在函数的结束处。;用在函数的结束处。goto;可用于程序的任何地方,但不提倡使;可用于程序的任何地方,但不提倡使用。用。75/93第二章第二章 基本的程序语句基本的程序语句22:132.5 2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(二级必过法宝之chap02(基本语句).ppt)为本站会员(hyngb9260)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|