计算机上机第五课件

上传人:石磨 文档编号:291645310 上传时间:2022-05-12 格式:PPT 页数:46 大小:636.50KB
返回 下载 相关 举报
计算机上机第五课件_第1页
第1页 / 共46页
计算机上机第五课件_第2页
第2页 / 共46页
计算机上机第五课件_第3页
第3页 / 共46页
计算机上机第五课件_第4页
第4页 / 共46页
计算机上机第五课件_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《计算机上机第五课件》由会员分享,可在线阅读,更多相关《计算机上机第五课件(46页珍藏版)》请在金锄头文库上搜索。

1、C语言运算符及优先次序优先级优先级运算符运算符特征特征1(), , .,-双目双目2!, , (t), +(正号)(正号), -(负号)(负号), *, &(取地址)(取地址), +, -, sizeof 单目单目3 4*, /, % , +, -双目双目56 7, , =, =, !=8 9 10&, , |11 12 &, |13?:三目三目14=, +=, -=, *=, /=, %=, &=, =, |=; =; 双目双目2!, , (t), +(正号)(正号), -(负号)(负号), *, &(取地址)(取地址), +, -, sizeof 单目单目3 4*, /, % , +, -

2、双目双目56 7, , =, =, !=8 9 10&, , |11 12 &, |13?:三目三目14=, +=, -=, *=, /=, %=, &=, =, |=; =; = 双目双目15,双目双目6、位运算C语言可用来代替汇编语言完成大部分编程工作,支持位语言可用来代替汇编语言完成大部分编程工作,支持位运算就是体现处之一运算就是体现处之一位运算是对字节或字中的实际二进制位进行检测、设置或位运算是对字节或字中的实际二进制位进行检测、设置或移位移位位运算符位运算符位逻辑运算符位逻辑运算符 :&(按位与)(按位与), |(按位或)(按位或), (按位异或),(按位异或),(取反)(取反)移位

3、运算符:移位运算符:(右移)(右移)必须是必须是char型、型、int型和它们的变体,不能用于型和它们的变体,不能用于float、double、void或其它更复杂数据类型或其它更复杂数据类型 位运算不改变原操作数的值位运算不改变原操作数的值位运算不改变原操作数的值位运算不改变原操作数的值移位运算ab表示将表示将a的二进制右移的二进制右移b位,位,ab表示将表示将a的二进的二进制左移制左移b位,其中位,其中a、b均为整型,均为整型,b为正数为正数例如,例如,a12;a=a20000110000000011(十进制(十进制4)三种移位实现方式三种移位实现方式(与具体编译器有关)(与具体编译器有关

4、):循环移位:移入的位等于移出的位循环移位:移入的位等于移出的位逻辑移位:移出的位丢失,移入的位取逻辑移位:移出的位丢失,移入的位取0算术移位:移出的位丢失,左移入的位取算术移位:移出的位丢失,左移入的位取0,右移入的,右移入的位取符号位(常用)位取符号位(常用)移位运算的功能例如:例如:a15;a=a20001000000000100(十进制(十进制4)在数据可表达的范围里,在数据可表达的范围里,左移左移1位相当于乘位相当于乘2,左移,左移2位位相当于乘相当于乘4(无符号数),右移(无符号数),右移1位相当于除位相当于除2,右移,右移2位相当于除位相当于除4。a15;a=a100001111

5、00000111(十进制(十进制7)位逻辑运算ABA&BA|BABA000001010111100110111100运算规则:先将两个操作数化为二进制数,然后按位运算规则:先将两个操作数化为二进制数,然后按位运算,且运算,且只有对应位进行运算只有对应位进行运算,相邻位之间没有关系,相邻位之间没有关系例如:例如:01010100(十(十进进制制84)&)00111011(十(十进进制制59)00010000(十(十进进制制16)练习1表达式表达式0 x13&0 x17的值是()的值是()A)0 x17B)0 x13C)0 x1eD)0 xf8B练习2下列程序运行后变量下列程序运行后变量z的二进制

6、值是()的二进制值是()char x=3,y=6,z;z=xy双目双目2!, , (t), +(正号)(正号), -(负号)(负号), *, &(取地址)(取地址), +, -, sizeof 单目单目3 4*, /, % , +, -双目双目56 7, , =, =, !=8 9 10&, , |11 12 &, |13?:三目三目14=, +=, -=, *=, /=, %=, &=, =, |=; =; ),小于(),小于(=),小于等于(),小于等于(=9);又如:又如:AB输出为输出为1输出为输出为0关系运算的优先级和结合次序关系运算符关系运算符,=,双目双目2!, , (t), +

7、(正号)(正号), -(负号)(负号), *, &(取地址)(取地址), +, -, sizeof 单目单目3 4*, /, % , +, -双目双目56 7, , =, =, !=8 9 10&, , |11 12 &, |13?:三目三目14=, +=, -=, *=, /=, %=, &=, =, |=; =; ,=,31); 而而=,!= 优先级低于前四种优先级低于前四种例如:例如:printf(“%dn”, 11=111+12等价于等价于10(1+12)输出为输出为0输出为输出为0练习定义定义ch=a;inta=2,b=3,c=1,d,x=10;写出下列表达式的值写出下列表达式的值:

8、1)ab=c;2)d=ab;3)chb+1;4)d=a+bc;5)b-1=a!=c;6)3=x双目双目2!, , (t), +(正号)(正号), -(负号)(负号), *, &(取地址)(取地址), +, -, sizeof 单目单目3 4*, /, % , +, -双目双目56 7, , =, =, !=8 9 10&, , |11 12 &, |13?:三目三目14=, +=, -=, *=, /=, %=, &=, =, |=; =; =a&ch=a)&(ch=a)&(ch=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b0D练习3若若int x=3, y=-4, z=0;则

9、表达式则表达式(x&y)=(x|z)的值是()的值是()z|x-3&y的值是()的值是()10练习4设设inta=3;结果为结果为0的表达式为()的表达式为()A)2%aB)a/=aC)!aD)aCC语言运算符及优先次序优先级优先级运算符运算符特征特征1(), , .,-双目双目2!, , (t), +(正号)(正号), -(负号)(负号), *, &(取地址)(取地址), +, -, sizeof 单目单目3 4*, /, % , +, -双目双目56 7, , =, =, !=8 9 10&, , |11 12 &, |13?:三目三目14=, +=, -=, *=, /=, %=, &=

10、, =, |=; =; b)?a:b优先级位于逻辑运算和赋值运算之间,结合顺序优先级位于逻辑运算和赋值运算之间,结合顺序由右至左由右至左例如:例如:ab?a:cd?c:d等价于等价于ab?a:(cd?c:d)C语言运算符及优先次序优先级优先级运算符运算符特征特征1(), , .,-双目双目2!, , (t), +(正号)(正号), -(负号)(负号), *, &(取地址)(取地址), +, -, sizeof 单目单目3 4*, /, % , +, -双目双目56 7, , =, =, !=8 9 10&, , |11 12 &, |13?:三目三目14=, +=, -=, *=, /=, %

11、=, &=, =, |=; =; = 双目双目15,双目双目10、顺序求值运算l“,”逗号既可做分隔符,也可作运算符。逗号做分隔逗号既可做分隔符,也可作运算符。逗号做分隔符用于分隔说明语句中的变量或函数中参数。符用于分隔说明语句中的变量或函数中参数。例如:例如:int a, b, c;printf(“%d %d”, a, b);l逗号作运算符使用,将若干独立表达式连接在一起,逗号作运算符使用,将若干独立表达式连接在一起,组成逗号表达式,一般形式为:组成逗号表达式,一般形式为:表达式表达式1,表达式,表达式2运算时,先计算表达式运算时,先计算表达式1的值,再计算表达式的值,再计算表达式2的值,的

12、值,将表达式将表达式2的值作为整个表达式的值,因此也称为的值作为整个表达式的值,因此也称为顺序顺序求值运算求值运算符。符。练习1写出下列代码段的结果:写出下列代码段的结果:inta1,a2,b=2,c=7,d=5; a1=(+b,c-,d+3); a2=+b,c-,d+3;printf(“%d,%dn”,a1,a2);8,4本章内容提要常量、变量和数据类型常量、变量和数据类型输入与输出格式输入与输出格式C语言中的运算语言中的运算结构化的程序设计思想结构化的程序设计思想结构化程序设计思想( 2.5.2 )程序的质量标准程序的质量标准初期:程序占用内存容量的大小和运行时间长短初期:程序占用内存容量

13、的大小和运行时间长短现今:具有良好的结构,容易理解和阅读现今:具有良好的结构,容易理解和阅读结构化程序设计方法结构化程序设计方法强调程序设计的风格和程序结构的规范化,提倡清晰的结强调程序设计的风格和程序结构的规范化,提倡清晰的结构,其基本思路是构,其基本思路是将一个复杂问题的求解过程划分为若干将一个复杂问题的求解过程划分为若干阶段,每个阶段要处理的问题都容易被理解和处理阶段,每个阶段要处理的问题都容易被理解和处理。结构化程序设计方法的核心结构化程序设计方法的核心“自顶向下,逐步细化,模块化自顶向下,逐步细化,模块化”结构化编码结构化编码1.自顶向下的分析方法把大的复杂问题分解成小问题后再解决。

14、把大的复杂问题分解成小问题后再解决。面对复杂问题,首先进行上层(整体)分析,按组织面对复杂问题,首先进行上层(整体)分析,按组织或功能,将问题分解为子问题,如果子问题仍然复杂,或功能,将问题分解为子问题,如果子问题仍然复杂,再做进一步分解,直到处理对象相对简单,容易处理再做进一步分解,直到处理对象相对简单,容易处理为止。当所有子问题都解决了,整个问题就解决了。为止。当所有子问题都解决了,整个问题就解决了。每一次分解都是对上一层问题进行细化和逐步求精,每一次分解都是对上一层问题进行细化和逐步求精,最终形成类似树形的层次结构,来描述分析的结果。最终形成类似树形的层次结构,来描述分析的结果。开发一个

15、学生成绩统计程序,输入一批学生的开发一个学生成绩统计程序,输入一批学生的5门课程门课程的成绩,要求输出每个学生的平均分和每门课程的平的成绩,要求输出每个学生的平均分和每门课程的平均分,找出平均分最高的学生。均分,找出平均分最高的学生。学生成绩统计程序学生成绩统计程序成绩输入成绩输入数据计算数据计算数据查找数据查找输出成绩输出成绩计算学生平均分计算学生平均分计算课程平均分计算课程平均分2.模块化设计将模块组织成良好的层次系统,顶层模块调用其下层模块将模块组织成良好的层次系统,顶层模块调用其下层模块以实现程序的完整功能,每个下层模块再调用更下层的模以实现程序的完整功能,每个下层模块再调用更下层的模

16、块,从而完成程序的一个子功能,块,从而完成程序的一个子功能,最下层的模块完成最具最下层的模块完成最具体的功能体的功能。模块可以是一条语句,一个程序段,或一个函数。模块可以是一条语句,一个程序段,或一个函数。遵循遵循模块独立性模块独立性的原则,即模块之间的联系应尽量简单。的原则,即模块之间的联系应尽量简单。一个模块一个模块只完成一个指定的功能只完成一个指定的功能。模块之间只模块之间只通过参数进行调用通过参数进行调用。一个模块只有一个模块只有一个入口和一个出口一个入口和一个出口。模块内慎用全局变量。模块内慎用全局变量。开发一个学生成绩统计程序,输入一批学生的开发一个学生成绩统计程序,输入一批学生的5门课程门课程的成绩,要求输出每个学生的平均分和每门课程的平的成绩,要求输出每个学生的平均分和每门课程的平均分,找出平均分最高的学生。均分,找出平均分最高的学生。学生成绩统计程序学生成绩统计程序成绩输入成绩输入数据计算数据计算数据查找数据查找输出成绩输出成绩计算学生平均分计算学生平均分计算课程平均分计算课程平均分3.结构化编码 按照结构化程序设计的观点,任何功能的程序都可以通按照结构化程序设计的观

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号