




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言运算符及优先次序 5 长度运算 sizeof 返回变量或数据类型的字节长度例如 intx printf d n sizeof x printf d n sizeof int 使用长度运算符可以增强程序的移植性 不受具体计算机数据类型长度的限制 C语言运算符及优先次序 6 位运算 C语言可用来代替汇编语言完成大部分编程工作 支持位运算就是体现处之一位运算是对字节或字中的实际二进制位进行检测 设置或移位位运算符位逻辑运算符 按位与 按位或 按位异或 取反 移位运算符 右移 必须是char型 int型和它们的变体 不能用于float double void或其它更复杂数据类型位运算不改变原操作数的值 移位运算 a b表示将a的二进制右移b位 a 20000110000000011 十进制4 三种移位实现方式 与具体编译器有关 循环移位 移入的位等于移出的位逻辑移位 移出的位丢失 移入的位取0算术移位 移出的位丢失 左移入的位取0 右移入的位取符号位 常用 移位运算的功能 例如 a 15 a a 20001000000000100 十进制4 在数据可表达的范围里 左移1位相当于乘2 左移2位相当于乘4 无符号数 右移1位相当于除2 右移2位相当于除4 a 15 a a 10000111100000111 十进制7 位逻辑运算 运算规则 先将两个操作数化为二进制数 然后按位运算 且只有对应位进行运算 相邻位之间没有关系例如 01010100 十进制84 00111011 十进制59 00010000 十进制16 练习1 表达式0 x13 0 x17的值是 0 x170 x130 x1e0 xf8 B 练习2 下列程序运行后变量z的二进制值是 charx 3 y 6 z z x y 2 00010100000110110000000000011000 B 练习3 设二进制x数的值是10100011 若要通过x y使x高四位取反 低四位不变 则y的二进制数是 设二进制x数的值是11001101 若要通过x y运算使x中低四位不变 高四位清零 则y的二进制数是 11110000 00001111 C语言运算符及优先次序 7 关系运算 关系运算 比较数值之间的关系 返回逻辑量 用零或非零代替 关系运算符 大于 小于 小于等于 9 又如 A B 输出为1 输出为0 关系运算的优先级和结合次序 关系运算符 的优先级相同 如在表达式中同时出现 则自左向右顺序运算 C语言运算符及优先次序 关系运算的优先级和结合次序 关系运算符 3 1 而 优先级低于前四种例如 printf d n 11 111 12等价于10 1 12 输出为0 输出为0 练习 定义ch a inta 2 b 3 c 1 d x 10 写出下列表达式的值 a b c d a b ch b 1 d a b c b 1 a c 3 x 5 0 0 0 1 0 1 C语言运算符及优先次序 8 逻辑运算 逻辑运算 用形式逻辑原则来建立数值间关系 运算对象和运算结果均为逻辑量 任何非零的数均表示逻辑真 零表示逻辑假 逻辑运算符 与 或 非 共三种 真值表 逻辑运算的优先级 优先级高于 例如 a b c等价于a b c 的优先级高于 例如 a b等价与 a b逻辑运算优先级低于关系运算例如 ch a ch a ch z 逻辑运算的例子 写出满足下列条件的c语言表达式1 ch是空格或回车2 number是偶数3 year是润年 即year能被4整除但不能被100整除 或year能被400整除 4 判断ch是否为英文字符 ch ch n number 2 0 year 4 0 year 100 0 year 400 0 ch a ch z 逻辑运算 逻辑表达式求解中 并非所有逻辑运算符的操作数都被执行 只是在执行下一个操作数才能求出表达式的值时才执行下一个操作数 例如 a b 当a为真不再求b 直接取值为真 a b 当a为假不再求b 直接取值为假 逻辑运算间可以转换例如 a b 可写成 a b a b 可写成 a b 练习1 要求当A的值为奇数时 表达式的值为真 A的值为偶数时 表达式的值为假 以下不满足要求的表达式是 A 2 1 A 2 0 A 2 A 2 C 练习2 能正确表示a和b同时为正或同时为负的逻辑表达式是 A a 0 b 0 a 0 b 0 a0 a b0 D 练习3 若intx 3 y 4 z 0 则表达式 x y x z 的值是 z x 3 y的值是 1 0 练习4 设inta 3 结果为0的表达式为 A 2 aa a a a C C语言运算符及优先次序 9 条件运算 条件运算符 条件表达式的一般形式 表达式1 表达式2 表达式3 运算过程 先计算表达式1的值 如果为真 非0 将表达式2的值作为条件表达式的值 否则 将表达式3的值作为条件表达式的值用法 例如 求出a b中最大值 再赋给zz a b a b优先级位于逻辑运算和赋值运算之间 结合顺序由右至左例如 a b a c d c d等价于a b a c d c d C语言运算符及优先次序 10 顺序求值运算 逗号既可做分隔符 也可作运算符 逗号做分隔符用于分隔说明语句中的变量或函数中参数 例如 inta b c printf d d a b 逗号作运算符使用 将若干独立表达式连接在一起 组成逗号表达式 一般形式为 表达式1 表达式2运算时 先计算表达式1的值 再计算表达式2的值 将表达式2的值作为整个表达式的值 因此也称为顺序求值运算符 练习1 写出下列代码段的结果 inta1 a2 b 2 c 7 d 5 a1 b c d 3 a2 b c d 3 printf d d n a1 a2 8 4 本章内容提要 常量 变量和数据类型输入与输出格式C语言中的运算结构化的程序设计思想 结构化程序设计思想 2 5 2 程序的质量标准初期 程序占用内存容量的大小和运行时间长短现今 具有良好的结构 容易理解和阅读结构化程序设计方法强调程序设计的风格和程序结构的规范化 提倡清晰的结构 其基本思路是将一个复杂问题的求解过程划分为若干阶段 每个阶段要处理的问题都容易被理解和处理 结构化程序设计方法的核心 自顶向下 逐步细化 模块化 结构化编码 1 自顶向下的分析方法 把大的复杂问题分解成小问题后再解决 面对复杂问题 首先进行上层 整体 分析 按组织或功能 将问题分解为子问题 如果子问题仍然复杂 再做进一步分解 直到处理对象相对简单 容易处理为止 当所有子问题都解决了 整个问题就解决了 每一次分解都是对上一层问题进行细化和逐步求精 最终形成类似树形的层次结构 来描述分析的结果 学生成绩统计程序的层次结构图 开发一个学生成绩统计程序 输入一批学生的5门课程的成绩 要求输出每个学生的平均分和每门课程的平均分 找出平均分最高的学生 学生成绩统计程序 成绩输入 数据计算 数据查找 输出成绩 计算学生平均分 计算课程平均分 2 模块化设计 将模块组织成良好的层次系统 顶层模块调用其下层模块以实现程序的完整功能 每个下层模块再调用更下层的模块 从而完成程序的一个子功能 最下层的模块完成最具体的功能 模块可以是一条语句 一个程序段 或一个函数 遵循模块独立性的原则 即模块之间的联系应尽量简单 一个模块只完成一个指定的功能 模块之间只通过参数进行调用 一个模块只有一个入口和一个出口 模块内慎用全局变量 学生成绩统计程序的层次结构图 开发一个学生成绩统计程序 输入一批学生的5门课程的成绩 要求输出每个学生的平均分和每门课程的平均分 找出平均分最高的学生 学生成绩统计程序 成绩输入 数据计算 数据查找 输出成绩 计算学生平均分 计算课程平均分 3 结构化编码 按照结构化程序设计的观点 任何功能的程序都可以通过三种基本结构的组合来实现 即顺序 分支和循环 顺序控制结构 一个程序模块执行完后 按自然顺序执行下一个模块 分支 选择 控制结构 根据不同的条件选择要执行的模块 循环控制结构 反复执行某些相同的处理过程 每一个结构可以包含若干条语句和其它基本结构 4 流程图 a 顺序结构 b 简单分支结构 c 选择分支结构 d 当型循环 e 直到型循环 基本的程序流程图 4 c语句分类 根据结构化程序设计的三个模块分为 用于顺序结构的 表达式语句 表达式后加一分号 用于分支结构的 if语句 switch语句用于循环结构的 while语句 for语句 do while语句根据c语言的句法分为 单个语句复合语句 用一对 将若干语句顺序组合在一起就形成了一个程序段 空语句 仅一分号构成的语句 5 程序书写的风格 对变量 函数 常量等命名时 要见名知意 有助于对变量含义或函数功能的理解 在程序中增加必要的注释 增加程序的可读性 程序要清晰易懂 语句构造要简单直接 一行写一条语句 采用缩进格式 程序有良好的交互性 输入有提示 输出有说明 并尽量采用统一整齐的格式 顺序结构程序设计举例1 长方体体积计算器 includemain intx y z v printf inputx yandz scanf d d d 开始 结束 输入 输出 v x y z 顺序结构程序设计举例2 用临时变量交换两个变量的值数据结构x y temp 开始 结束 temp x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商铺门面转让合同协议书
- 合作司机合同协议书模板
- 中铁十六局电子合同范本
- 借用中间公司签合同协议
- 劳动合同外签订提成协议
- 合伙股份合同协议书模板
- 信用贷款协议合同书模板
- 医院编制内聘用合同范本
- 2025年消防安全主管面试题及答
- 伤残转运车转让合同范本
- 《如何说孩子才会听怎么听孩子才肯说》读书分享
- 2022年贵州省注册安全工程师考试题库合集(含各科真题和典型题)
- 康复科讲课课件
- 《蒙牛乳业集团财务共享服务中心优化研究》
- 工业互联网安全防护措施手册
- 2024年新版人教精通版三年级英语上册单词带音标
- 电力建设工程施工安全管理导则
- 2025年软件资格考试信息处理技术员(初级)(基础知识、应用技术)合卷试卷及解答参考
- 2023-2024学年江苏省盐城市盐都区八年级(下)期末物理试卷(含答案)
- 外研版英语四年级下册阅读理解练习(含答案)
- DZT 0447-2023 岩溶塌陷调查规范(1:50000)
评论
0/150
提交评论