c语言课件第二章_第1页
c语言课件第二章_第2页
c语言课件第二章_第3页
c语言课件第二章_第4页
c语言课件第二章_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LOGOC语言程序设计语言程序设计 第第2章章 项目中的数据类型与数据运算项目中的数据类型与数据运算1.1.一个一个C C语言程序是由(语言程序是由( )组成)组成 。v A一个主程序和若干子程序一个主程序和若干子程序v B一个或多个函数一个或多个函数v C若干过程若干过程v D若干子程序若干子程序2.C2.C语言程序中主函数的个数(语言程序中主函数的个数( )。)。 v A可以没有可以没有 B可以有多个可以有多个v C有且只有一个有且只有一个 D以上叙述均不正确以上叙述均不正确3.C3.C语言中,对语言中,对main( )main( )主函数位置的要求()。主函数位置的要求()。v A必须在

2、最开始必须在最开始 v B必须在系统调用的库函数的后面必须在系统调用的库函数的后面v C可以任意可以任意 v D必须在最后必须在最后4.4.一个一个C C语言程序的执行是从(语言程序的执行是从( )。)。 A本程序的本程序的main( )函数开始,到函数开始,到main( )函数结束函数结束B本程序的本程序的main( )函数开始,到本程序的最后一个函数开始,到本程序的最后一个函数结束函数结束C本程序的第一个函数开始,到本程序的最后一个函本程序的第一个函数开始,到本程序的最后一个函数结束数结束D本程序的第一个函数开始,到本程序的本程序的第一个函数开始,到本程序的main( )函函数结束数结束5

3、. C5. C语言源程序的每一条语句均以语言源程序的每一条语句均以 结束。结束。6 6开发开发C C语言程序的步骤分成四步,即语言程序的步骤分成四步,即 、 、 和和 。7 7用用VC+ 6.0VC+ 6.0开发开发C C语言程序有两种注释方法,语言程序有两种注释方法,一种是一种是 ,另一种是,另一种是 ,能进行多行注释的,能进行多行注释的是是 ,只能进行单行注释的是,只能进行单行注释的是 。8 8C C语言源程序文件的扩展名是语言源程序文件的扩展名是 ,经过编译,经过编译后,生成目标文件的扩展名是后,生成目标文件的扩展名是 ,经过连,经过连接后,生成可执行文件的扩展名是接后,生成可执行文件的

4、扩展名是 。掌握掌握C语言的基本数据类型语言的基本数据类型1掌握常量和变量的概念及使用方法掌握常量和变量的概念及使用方法2掌握各种运算符的使用方法掌握各种运算符的使用方法3学习目标学习目标掌握将数学式子转换为掌握将数学式子转换为C语言表达式语言表达式4掌握不同数据类型间的转换方法掌握不同数据类型间的转换方法52.1 任务一任务一 项目中数据类型的定义项目中数据类型的定义v任务描述任务描述实现简易计算器项目中数据类型的定义。实现简易计算器项目中数据类型的定义。v任务涉及知识要点任务涉及知识要点 1. 数据类型数据类型2. 常量和变量常量和变量3. 运算符和表达式运算符和表达式 2.1 任务一任务

5、一 项目中数据类型的定义项目中数据类型的定义v任务分析任务分析 根据项目功能描述,定义四个变量根据项目功能描述,定义四个变量 1. 变量变量data1和和data2用于存放参与运算的两个操作数,数用于存放参与运算的两个操作数,数据类型为实型(据类型为实型(float)。)。2. 变量变量choose用于存放用户输入的菜单选项,因为主菜单用于存放用户输入的菜单选项,因为主菜单的选项为的选项为0 4之间的数字,所以数据类型可用整型(之间的数字,所以数据类型可用整型(int)或字)或字符型(符型(char)。该任务选用的是整型。)。该任务选用的是整型。3. 变量变量yes_no用于存放是否继续的应答

6、。因为其中将存放用于存放是否继续的应答。因为其中将存放用户输入的字符用户输入的字符“y”、“Y”或其他字符,所以数据类型选用或其他字符,所以数据类型选用。2.1 任务一任务一 项目中数据类型的定义项目中数据类型的定义v任务实现任务实现 根据项目功能描述,定义四个变量根据项目功能描述,定义四个变量 main()float data1,data2; /存放参与运算的两个操作数存放参与运算的两个操作数int choose; /存放用户输入的菜单选项存放用户输入的菜单选项(04)char yes_no; /存放是否继续的应答(存放是否继续的应答(yes/no) 浮点型浮点型整型整型字符型字符型2.1

7、任务一任务一 项目中数据类型的定义项目中数据类型的定义要点总结要点总结数据是计算机程序处理的对象,也是运算产生的结数据是计算机程序处理的对象,也是运算产生的结果。果。在使用数据时,必须先对其类型进行说明或定义。在使用数据时,必须先对其类型进行说明或定义。数据类型一旦确定,其所占用的存储空间和相应的数据类型一旦确定,其所占用的存储空间和相应的操作就随之确定。操作就随之确定。C语言的基本数据类型语言的基本数据类型常量和变量常量和变量运算符和表达式运算符和表达式数据类型转换数据类型转换本章小结本章小结2.2 理论知识理论知识C语言的基本数据类型语言的基本数据类型 基本类型基本类型 指针类型指针类型

8、构造类型构造类型 空类型空类型整型整型 intint字符型字符型 charchar实型实型枚举型枚举型单精度浮点型单精度浮点型 floatfloat双精度浮点型双精度浮点型 doubledouble数组类型数组类型结构体类型结构体类型共用体类型共用体类型2.2 理论知识理论知识2.2 理论知识理论知识C语言的基本数据类型语言的基本数据类型整数类型整数类型数据类型数据类型数据类型符数据类型符占用字节数占用字节数取取 值值 范范 围围有符号整型有符号整型intint 2 2-2-21515(2(21515-1) -1) 即即-32768-327683276732767短整型短整型short sho

9、rt intint 2 2-2-21515(2(21515-1) -1) 即即-32768-327683276732767长整型长整型long long intint 4 4-2-23131(2(23131-1) -1) 即即-2147483648-214748364821474836472147483647无符号整型无符号整型unsigned unsigned intint 2 20 0(2(21616-1) -1) 即即0 06553565535无符号短整无符号短整型型unsigned short unsigned short intint 2 20 0(2(21616-1) -1) 即即

10、0 06553565535无符号长整无符号长整型型unsigned long unsigned long intint 4 40 0(2(23232-1) -1) 即即0 042949672954294967295 不同的整数类型表示的数值范围不同,在编程时,应根据程序对整数范围的实际不同的整数类型表示的数值范围不同,在编程时,应根据程序对整数范围的实际需要,灵活选择上述的整数类型。需要,灵活选择上述的整数类型。int a,b,sum;a=32768;2.2 理论知识理论知识C语言的基本数据类型语言的基本数据类型实数类型实数类型数据类型数据类型数据类型符数据类型符占用字节数占用字节数有效数字有

11、效数字取取 值值 范范 围围单精度单精度floatfloat4 47 7位位-3.4-3.4101038383.43.410103838双精度双精度doubledouble8 81616位位-1.7-1.710103083081.71.710103083080.56544780.5654478546565165162.2 理论知识理论知识C语言的基本数据类型语言的基本数据类型字符类型字符类型数据类型数据类型数据类型符数据类型符占用字节数占用字节数取取 值值 范范 围围字符型字符型charchar1 10 0255255返回返回2.2 理论知识理论知识常量和变量常量和变量常量常量在程序执行过程中

12、,其值不能改变的量在程序执行过程中,其值不能改变的量直接常量和符号常量直接常量和符号常量直接常量直接常量指在程序中不需要任何说明就可直接使用的常量指在程序中不需要任何说明就可直接使用的常量符号常量符号常量指需要先说明或定义后才能使用的常量指需要先说明或定义后才能使用的常量2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量整型常量整型常量实型常量实型常量字符常量字符常量字符串常量字符串常量2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量整型常量整型常量十进制整数 如10八进制整数 如010十六进制整数 如0 x102.2 理论知识理论知识常量和变量常量和变量直接常量直接常量

13、实型常量实型常量十进制小数形式:数字和小数点组成数字和小数点组成如3.141 2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量实型常量实型常量指数形式:小数和指数两部分组成小数和指数两部分组成 如123.45可以表示为0.12345e+31.2345E+212345.0e-2 规范化的指数形式,在字符规范化的指数形式,在字符e(或(或E)之前的小数部分中,小)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字数点左边应有一位(且只能有一位)非零的数字在使用指数形式时,一定要注意在字母在使用指数形式时,一定要注意在字母e或或E之前必须要有数之前必须要有数字,且字母字,且字

14、母e或或E之后的指数必须为整数之后的指数必须为整数如如e6,.e5,-2.4E0.5,5.2e(3+6)(规范化的指数形式)(规范化的指数形式)2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量字符常量字符常量字符常量是用一对单引号括起来的单个字符如如A、5、+单引号只是分界符,表示字符常量的起止范围单引号只是分界符,表示字符常量的起止范围int a,b,c;a=97;b=a; /数据类型的自动转换c=1.2547; /1.2547=1;c=1int m,n;M=;2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量字符常量字符常量转义字符:以反斜杠“”开头的字符转义字符转义

15、字符含含 义义转义字符转义字符含含 义义nn换行,将当前位置移到下一行的开头换行,将当前位置移到下一行的开头反斜杠字符反斜杠字符“”tt横向跳格,跳到下一个横向跳格,跳到下一个tabtab位置位置 单引号字符单引号字符bb退格退格双引号字符双引号字符rr回车,将当前位置移到下行的开头回车,将当前位置移到下行的开头 dddddd1 13 3位位8 8进制数进制数所代表的字符所代表的字符ff换页,将当前位置移到下页的开头换页,将当前位置移到下页的开头 xhhxhh1 12 2位位1616进制进制数所代表的字数所代表的字符符2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量字符常量字符常量

16、将一个字符常量存放到内存中,并不是把该字符本身存放到内存单元中,而是将该字符相应的ASCII码存放到该存储单元中。 字字 符符 类类 别别ASCIIASCII码范围码范围字字 符符 类类 别别ASCIIASCII码范围码范围数字:数字:009948485757小写字母:小写字母:aazz9797122122大写字母:大写字母:AAZZ65659090特殊字符特殊字符空格:空格:3232回车:回车:1313如字符如字符a,在内存中的实际存储形式为,在内存中的实际存储形式为011000012.2 理论知识理论知识常量和变量常量和变量直接常量直接常量字符常量字符常量字符型数据和整型数据之间可以相互转

17、换。一个字符数据既可以字符形式输出,也可以整数形式输出。 举例:举例:#include void main() char c1,c2; Scanf(“%d,%d”,&c1,&c2); /* printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2);2.2 理论知识理论知识字符型输出格式符字符型输出格式符整型输出格式符整型输出格式符Scanf()运行结果:运行结果:2.2 理论知识理论知识举例:举例:#include void main() char c1=97,c2=98; printf(“%c %cn”,c1,c2); printf(“%d

18、 %dn”,c1,c2);char c1=a,c2=b;2.2 理论知识理论知识c1和和c2还可以怎样进行初始化化?还可以怎样进行初始化化?2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量字符常量字符常量可以将整型量赋值给字符变量可以将字符量赋值给整型变量可以对字符数据进行算术运算举例:举例:#include void main() char c1=a,c2=b;unsigned char c=c1+c2;printf(“c=%dn”,c);2.2 理论知识理论知识unsigned char c=c1+c2;运行结果:运行结果:2.2 理论知识理论知识2.2 理论知识理论知识常量和

19、变量常量和变量直接常量直接常量字符串常量字符串常量字符串常量是用一对双引号括起来的零个或多个字符如如,Hello,world!,123等等 双引号仅起定界作用,本身并不是字符串中的内容双引号仅起定界作用,本身并不是字符串中的内容 2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量字符串常量字符串常量字符串的长度 指指一个字符串中所包含的字符个数C语言规定在存储字符串常量时,由系统在字符串的末尾自动加一个0作为结束标志 0在内存中占一个字节,它不引起任何控制动作,也不可显示,只在内存中占一个字节,它不引起任何控制动作,也不可显示,只用于系统判断字符串是否结束。用于系统判断字符串是否结束

20、。 长度为长度为 n的字符串常量,在内存中占用的字符串常量,在内存中占用nl个字节。个字节。 2.2 理论知识理论知识常量和变量常量和变量直接常量直接常量字符串常量字符串常量字符串中若有转义字符,则应把它视为一个整体,当作一个字符来计算字符串字符串“Hello,world!n”的在内存中占据的字节数为的在内存中占据的字节数为142.2 理论知识理论知识字符常量与字符串常量的主要区别字符常量与字符串常量的主要区别1. 定界符不同定界符不同 字符常量使用字符常量使用,而字符串常量使用,而字符串常量使用“ ”2. 占用内存大小不同占用内存大小不同 字符常量占一个字节,而字符串常量除了要存储字符常量占

21、一个字节,而字符串常量除了要存储有效的字符外,还要存储一个结束标志有效的字符外,还要存储一个结束标志03. 长度不同长度不同 字符常量只能是单个字符,字符串常量则可以包字符常量只能是单个字符,字符串常量则可以包含零个或多个字符含零个或多个字符2.2 理论知识理论知识字符常量与字符串常量的主要区别字符常量与字符串常量的主要区别char c1 =“a”;=a;不符合语法规则不符合语法规则为什么呢?为什么呢?字符型变量(字符型变量(char)只占一个字节)只占一个字节970a0字符串常量字符串常量“a”在计算机内占两个字节在计算机内占两个字节 C语言没有专门的字符串变量,如果想将一个字符串存放在变量

22、中,语言没有专门的字符串变量,如果想将一个字符串存放在变量中,可以使用字符数组。可以使用字符数组。2.2 理论知识理论知识常量和变量常量和变量符号常量符号常量用符号表示的常量用符号表示的常量 在使用之前必须先定义在使用之前必须先定义 define 标识符标识符 常量常量不是C语句,不必在行末加分号放在程序开头,函数体之外“标识符”是以字母或下划线开头“标识符”是由字母、数字和下划线组成的字符序列 ; 例例2.1:符号常量的使用符号常量的使用 2.2 理论知识理论知识#define PI 3.1415 /定义符号常量定义符号常量PI,表示圆周率表示圆周率main() float r,area;

23、r=5.0; area= PI *r*r; printf(area=%fn,area); area=78.539815运行结果:运行结果:PI2.2 理论知识理论知识符号常量的两个好处符号常量的两个好处 1. 修改程序方便修改程序方便 2. 见名知意,便于理解程序见名知意,便于理解程序 符号常量的使用符号常量的使用 1. 其值在它的作用域内不能改变,也不能再被赋值其值在它的作用域内不能改变,也不能再被赋值 2. 符号常量名用大写,变量名用小写,以示区别符号常量名用大写,变量名用小写,以示区别 2.2 理论知识理论知识举例:举例:#define PI 3.1415void main() void

24、 main() int PI; PI=3.1415; PI=3.1415; PI=3.14159; 2.2 理论知识理论知识常量和变量常量和变量变量变量在程序执行过程中,其值可以被改变的量在程序执行过程中,其值可以被改变的量 保存程序执行过程中的输入数据、中间结果以及最终结果保存程序执行过程中的输入数据、中间结果以及最终结果在使用变量之前,必须先对其进行定义在使用变量之前,必须先对其进行定义 三个基本要素,即三个基本要素,即变量类型变量类型、变量名变量名和和变量的值变量的值 如:如:int choose=1; char yes_no=y;2.2 理论知识理论知识常量和变量常量和变量变量的定义变

25、量的定义“类型说明符类型说明符”用来指定变量的数据类型用来指定变量的数据类型 当有多个变量时,彼此间要用逗号分隔当有多个变量时,彼此间要用逗号分隔 类型说明符类型说明符 变量变量1,变量变量2, ,变量变量n;2.2 理论知识理论知识注意:注意:1. 变量定义不是可执行语句,必须出现在可执行变量定义不是可执行语句,必须出现在可执行语句之前语句之前2. 同一变量只能定义一次,不能重复同一变量只能定义一次,不能重复3. 变量名不能是变量名不能是C语言的关键字,要见名知意,并语言的关键字,要见名知意,并尽可能简短尽可能简短4. 变量的类型应根据变量的取值范围来选择,以变量的类型应根据变量的取值范围来

26、选择,以占用内存少、操作简便为优占用内存少、操作简便为优5. C语言没有提供字符串类型,字符串是用字符数语言没有提供字符串类型,字符串是用字符数组或指针来处理的组或指针来处理的举例:举例:分期付款的计算分期付款的计算 贷款贷款D元,每月还款元,每月还款P元,月利率元,月利率R,问:多少,问:多少个月个月M能还清?计算能还清?计算M的公式为:的公式为: 若若D=324500元,元,P=3245元,元,R=0.8%,编程求编程求M。2.2 理论知识理论知识logP-log(P-DR)log(1+R)M=思路:思路:1. D和和P都是整数,都是整数,R是小数,是小数,M根据公式计算出根据公式计算出来

27、也不一定是整数,因此将来也不一定是整数,因此将R,M定义为实型变量定义为实型变量2. M的计算公式中的计算公式中2.2 理论知识理论知识log(1+R)#includeC的库函数的库函数#include #includevoid main() int d=324500,p=3245; float r=0.008,m; m=(log(p)-log(p-d*r)/log(1+r); printf(“month=%fn”,m); printf(“total=%fn”,m*p);2.2 理论知识理论知识2.2 理论知识理论知识常量和变量常量和变量变量的赋值变量的赋值在定义变量时赋值在定义变量时赋值 “

28、先定义后赋值先定义后赋值float data1=1.5,data2=2.6;float data1,data2; /变量定义部分变量定义部分data1=1.5;data2=2.6; /变量赋初值变量赋初值返回返回运算符和表达式运算符和表达式描述各种不同运算的符号称为描述各种不同运算的符号称为运算符运算符运算符运算符分类分类一元(单目)运算符、二元(双目)运算符、三元(三目)运算符赋值运算符条件运算符逻辑运算符算术运算符关系运算符2.2 理论知识理论知识!, &, |?:+,-,*,/,%, +, - , = , b?a:b)X=(参数1?参数2:参数3)!2 !4 !0a=2;b=a+

29、;c=+a;a=6;+a;b=+a;c=a;a+;a=a+1;b-;b=b-1;运算符和表达式运算符和表达式运算符运算符优先级优先级当一个表达式中出现多个不同的运算符时运算的先后顺序当一个表达式中出现多个不同的运算符时运算的先后顺序单目运算符单目运算符双目运算符双目运算符 !+,- - 算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符条件运条件运算符算符赋值运算符赋值运算符逗号运算符逗号运算符 2.2 理论知识理论知识#include main()Int a=7,b;b=a!=7; printf(“b=%dn”,b);结果:a=3;b=4,c;c=a!=b;c=+a!=b;c=a-

30、=b;运算符和表达式运算符和表达式运算符运算符结合性结合性当一个表达式中出现两个以上优先级相同的运算符时,运当一个表达式中出现两个以上优先级相同的运算符时,运算的方向是从左到右还是从右到左算的方向是从左到右还是从右到左 赋值运算符和条件运算符是从右往左结合赋值运算符和条件运算符是从右往左结合 除此之外的双目运算符都是从左往右结合的除此之外的双目运算符都是从左往右结合的 2.2 理论知识理论知识a=5,b=2,c=9,d=10,f=6,e=-f=7,g=0;X=ab?c:(da)&(cb)a=1c=(ab)?a:b运算符和表达式运算符和表达式算术算术运算符及其表达式运算符及其表达式双目运

31、算符双目运算符两个整数相除,结果为整数,舍入方式为“向零取整”2.2 理论知识理论知识加加“+”、减、减“-”、乘、乘“*”、除、除“/”、取余、取余“%” 如:如:int a=5,b=3,c; c=a/b; 运行结果运行结果c=? 1 如:如:int a=-5,b=3,c; c=a/b; 运行结果运行结果c=? -1 运算符和表达式运算符和表达式算术算术运算符及其表达式运算符及其表达式双目运算符双目运算符求余运算,两侧均应为整型数据,余数的符号与被求余数符号相同2.2 理论知识理论知识如:如:int a=5,b=3,c; c=a%b; 运行结果运行结果c=?2 如:如:int a=-5,b=

32、3,c; c=a%b; 运行结果运行结果c=?-2 注意:注意:C语言中的算术表达式语言中的算术表达式b2-4ac需写成需写成b*b-4*a*c的形式。的形式。8.5%2.58%2=0举例:举例:鸡兔同笼鸡兔同笼 设鸡与兔同笼,已知鸡与兔的总头数为设鸡与兔同笼,已知鸡与兔的总头数为h=16h=16,总脚数,总脚数f=40f=40,试编写,试编写C C语言程序分别求语言程序分别求出鸡的头数出鸡的头数x x与兔的头数与兔的头数y y。2.2 理论知识理论知识2.2 理论知识理论知识思路:思路:1. x,y,h,f都是整数都是整数2.由数学知识可知:由数学知识可知:x+y=h 2x+4y=f3.由代

33、数知识可得由代数知识可得y=(f-2h)/2 x=h-f#include void main() int h,f,x,y; h=16; f=40; y=(f-2*h)/2; x=h-y; printf(“%d%dn”,x,y);2.2 理论知识理论知识程序清单:程序清单: y=(f-2*h)/2;运算符和表达式运算符和表达式算术算术运算符及其表达式运算符及其表达式单目运算符单目运算符自增运算使单个变量的值增1 自减运算使单个变量的值减12.2 理论知识理论知识自增自增“+”、自减、自减“-” int i=3,a; a=+i; 运行结果:运行结果:i=4; int i=3,a; a=i-; 运行

34、结果:运行结果:i=2; 运算符和表达式运算符和表达式算术算术运算符及其表达式运算符及其表达式单目运算符单目运算符前置运算,运算符放在变量之前先增减,后运算先增减,后运算 2.2 理论知识理论知识j=+i; i=i+1; j=i;运算符和表达式运算符和表达式算术算术运算符及其表达式运算符及其表达式单目运算符单目运算符前置运算,运算符放在变量之前先增减,后运算先增减,后运算 2.2 理论知识理论知识 int i=3,j; j=+i; 运行结果:运行结果:i=j= ?; int i=3,j; j=-i; 运行结果:运行结果:i=j= ?; 4 2 运算符和表达式运算符和表达式算术算术运算符及其表达

35、式运算符及其表达式单目运算符单目运算符后置运算,运算符放在变量之后先运算,后增减先运算,后增减2.2 理论知识理论知识j=i+; j=i; i=i+1;运算符和表达式运算符和表达式算术算术运算符及其表达式运算符及其表达式单目运算符单目运算符后置运算,运算符放在变量之后先运算,后增减先运算,后增减2.2 理论知识理论知识 int i=3,j; j=i+; 运行结果:运行结果: i=4; j=3; int i=3,j; j=i-; 运行结果:运行结果: i=2; j=3; 运算符和表达式运算符和表达式算术算术运算符及其表达式运算符及其表达式单目运算符单目运算符自增、自减运算常用于循环语句以及指针变

36、量中。它使循环控制变量加(或减)1,或使指针指向下(或上)一个地址。 自增、自减运算符不能用于常量和表达式。2.2 理论知识理论知识如,如,5+,-(a+b)a+a=a+15+5=5+1运算符和表达式运算符和表达式赋值赋值运算符及其表达式运算符及其表达式简单运算符简单运算符复合运算符复合运算符2.2 理论知识理论知识=+=,- =,*=,/=,%=运算符和表达式运算符和表达式赋值赋值运算符及其表达式运算符及其表达式赋值运算符的优先级比算术运算符、关系运算符和逻辑赋值运算符的优先级比算术运算符、关系运算符和逻辑运算符低运算符低 结合性为自右向左结合性为自右向左 先求表达式的值,然后将表达式的值赋

37、给变量 2.2 理论知识理论知识如:如:int a=5; a+=5; 运行结果运行结果a= ?10 如:如:int a=5; a*=5; 运行结果运行结果a= ? 25 a=a+5;运算符和表达式运算符和表达式关系关系运算符及其表达式运算符及其表达式用于比较两个操作数之间的关系,若关系成立,则返回一个逻辑真值“1”,否则返回一个逻辑假值“0”2.2 理论知识理论知识“”,“=”,“b; 运行结果运行结果c= ?1 如:如:int a=2,b=3,c; c=ab; 运行结果运行结果c= ?0 运算符和表达式运算符和表达式关系关系运算符及其表达式运算符及其表达式前四种运算符的优先级相同,后两种运算

38、符的优先级相同 前四种运算符的优先级高于后两种关系运算符的优先级比算术运算符低 2.2 理论知识理论知识“”,“=”,“a+b 等价于等价于c(a+b) ;a=6,b=9,c=2;x=a=(b-)=c运算符和表达式运算符和表达式关系关系运算符及其表达式运算符及其表达式关系运算符的优先级比赋值运算符高2.2 理论知识理论知识c=ab 等价于等价于c=(ab) ;运算符和表达式运算符和表达式关系关系运算符及其表达式运算符及其表达式2.2 理论知识理论知识#include void main() int x=2,y=3,i,j,k;i=x=y-;j=x=y;k=1;printf(i=%d, j=%d

39、, k=%dn,i,j,k); 运行结果:运行结果:i=0,j=1,k=1注意:注意:1.等于运算符等于运算符“=”由两个等号组成,中间不能有空由两个等号组成,中间不能有空格格 2.在实际编程时,常用表达式在实际编程时,常用表达式i%2=0判断整数判断整数i的奇的奇偶性偶性 2.2 理论知识理论知识#include void main() int x=2;if(x%2 = 0)printf(%d是偶数是偶数n,x);elseprintf(%d是奇数是奇数n,x);= 运算符和表达式运算符和表达式逻辑逻辑运算符及其表达式运算符及其表达式返回逻辑真值返回逻辑真值(1)或逻辑假值或逻辑假值(0) !

40、:当操作数的值为真时,运算结果为假;当操作数的值为假时,运算结果为真 2.2 理论知识理论知识非非“!”、与、与“&”、或、或“|” 如:如:int a=5,c; c=!a; 运行结果运行结果c=?0 如:如:int a=0,c; c=!a; 运行结果运行结果c=?1 运算符和表达式运算符和表达式逻辑逻辑运算符及其表达式运算符及其表达式用逻辑运算符将一个或多个表达式连接起来的式子用逻辑运算符将一个或多个表达式连接起来的式子 &:当且仅当两个操作数的值都为真时,运算结果为真,否则为假2.2 理论知识理论知识非非“!”、与、与“&”、或、或“|” 如:如:int a=5,b

41、=5,c; c=a & b; 运行结果运行结果c=?1如:如:int a=0,b=5,c; c=a & b; 运行结果运行结果c=?0 运算符和表达式运算符和表达式逻辑逻辑运算符及其表达式运算符及其表达式用逻辑运算符将一个或多个表达式连接起来的式子用逻辑运算符将一个或多个表达式连接起来的式子 |:当且仅当两个操作数的值都为假时,运算结果为假,否则为真 2.2 理论知识理论知识非非“!”、与、与“&”、或、或“|” 如:如:int a=0,b=0,c; c=a | b; 运行结果运行结果c=?0如:如:int a=0,b=5,c; c=a | b; 运行结果运行结果c=?

42、1 注意:注意:1.逻辑运算符两侧的操作数,除可以是逻辑运算符两侧的操作数,除可以是0和非和非0的整数的整数外,也可以是其他任何类型的数据,如实型、字符型外,也可以是其他任何类型的数据,如实型、字符型等,但这些值都要根据规则看成是逻辑值等,但这些值都要根据规则看成是逻辑值 2.2 理论知识理论知识 c & d = 1(逻辑真逻辑真) (逻辑真)(逻辑真) (逻辑真)(逻辑真) 3.4567 & 0 = 0(逻辑真逻辑真) (逻辑假)(逻辑假) (逻辑假)(逻辑假)注意:注意:2.对于逻辑对于逻辑“与与”运算,如果第一操作数被判定为假,运算,如果第一操作数被判定为假,系统不再判定

43、或求解第二操作数系统不再判定或求解第二操作数2.2 理论知识理论知识#include void main() int a=1,b=2,c=3,d=4,m=5,n=6,x=7;x=(m=ab) & (n=cd);printf(m=%d,n=%d,x=%dn,m,n,x); 运行结果:运行结果:m=0,n=6,x=0注意:注意:3.对于逻辑对于逻辑“或或”运算,如果第一操作数被判定为真,运算,如果第一操作数被判定为真,系统不再判定或求解第二操作数系统不再判定或求解第二操作数 2.2 理论知识理论知识#include void main() int a=1,b=2,c=3,d=4,m=5,n

44、=6,x=7;x=(m=ad);printf(m=%d,n=%d,x=%dn,m,n,x); 运行结果:运行结果:m=1,n=6,x=1注意:注意:4. a大于大于b且且b大于大于c 表达式表达式2.2 理论知识理论知识 abc(ab) & (bc)如:如:(43)&(32) =1 432 =(43)2 =12=0运算表达式优先级由低到高运算表达式优先级由低到高赋值运算符赋值运算符 |&关系运算符关系运算符算术运算符算术运算符!2.2 理论知识理论知识如:如: a=3,b=2,c=6; x=!a|ab=b|c等价于等价于 x=(!a)|(ab)=b)|c运算符和表达式运

45、算符和表达式条件条件运算符及其表达式运算符及其表达式三目运算符三目运算符表达式格式表达式格式如果表达式如果表达式1的值为非的值为非0(即逻辑真),则运算结果等于(即逻辑真),则运算结果等于表达式表达式2的值;否则,运算结果等于表达式的值;否则,运算结果等于表达式3的值的值 2.2 理论知识理论知识“? :” 表达式表达式1?表达式?表达式2:表达式:表达式3运算符和表达式运算符和表达式条件条件运算符及其表达式运算符及其表达式2.2 理论知识理论知识#include void main() int a=88,b=456,c=147,min;min=(ab)?a:b;printf(min=%dn,

46、min); 运行结果:运行结果:min=88运算符和表达式运算符和表达式逗号逗号运算符及其表达式运算符及其表达式表达式格式表达式格式自左至右依次计算各表达式的值,自左至右依次计算各表达式的值,“表达式表达式n”的值即为的值即为整个逗号表达式的值整个逗号表达式的值 2.2 理论知识理论知识“,” 表达式表达式1,表达式,表达式2,表达式,表达式nV=(a=3,b=4,c=5,a*b*c ) 60并不是任何地方出现的逗号,都是逗号运算符,很多情况下,逗号仅作分隔符并不是任何地方出现的逗号,都是逗号运算符,很多情况下,逗号仅作分隔符 int a=3,b=5,c=7;运算符和表达式运算符和表达式sizeof运算符及其表达式运算符及其表达式表达式格式表达式格式返回变量、常量的类型在内存中占用的字节数返回变量、常量的类型在内存中占用的字节数 2.2 理论知识理论知识sizeof(类型名或表达式)(类型名或表达式)运算符和表达式运算符和表达式sizeof运算符及其表达式运算符及其表达式2.2 理论知识理论知识#include void main() int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论