面向对象程序设计第三章基本数据类型与基本运算.ppt_第1页
面向对象程序设计第三章基本数据类型与基本运算.ppt_第2页
面向对象程序设计第三章基本数据类型与基本运算.ppt_第3页
面向对象程序设计第三章基本数据类型与基本运算.ppt_第4页
面向对象程序设计第三章基本数据类型与基本运算.ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

第三章基本数据类型与基本运算 包含简单计算的C 程序 基本类型及其派生类型 说明语句 基本运算符 3 4基本运算符 一 运算符和表达式的概念 单目运算 双目运算 三目运算 3 4基本运算符 二 赋值运算 1 赋值运算是一种双目运算 其形式为 变量名 表达式 赋值运算的操作是 计算表达式的值 把该值赋给左端的变量 例如 a b c a 3 4基本运算符 三 算术运算 1 增量和减量 3 4基本运算符 1 增量和减量 inta 3 intb a 相当于a a 1 b a cout a b endl intc a 相当于c a a a 1 cout a c endl 例1 输出结果 4454 三 算术运算 3 4基本运算符 1 增量和减量 例2 输出结果 2212 inta 3 intb a 相当于a a 1 b a cout a b endl intc a 相当于c a a a 1 cout a c endl 三 算术运算 3 4基本运算符 1 增量和减量 说明 由于增量与减量操作包含有赋值操作 所以操作数不能是常量 例如 3 error 增量与减量操作符是两个 或 的一个整体 中间不能有空格 如果有多于两个 或 连写的情况 则编译首先识别前面两个 或 为增量或减量操作符 三 算术运算 3 4基本运算符 1 增量和减量 inta 5 b 5 c 5 例3 三 算术运算 a b c a b c a b c 15 6 5 16 5 6 3 4基本运算符 2 数据类型转换 自动类型转换 两个运算分量应为同一类型 如果不同 应遵循类型转换原则 即由 短 类型向 长 类型转换 例如 三 算术运算 3 4基本运算符 2 类型转换 强制类型转换 三 算术运算 1 类型说明符 表达式 2 类型说明符 表达式 includevoidmain doublex intn x 123 123 n int x n int x cout x endl cout n endl 3 4基本运算符 四 关系运算 1 运算符 比较 大于 小于 大于等于 小于等于 不等于 3 4基本运算符 四 关系运算 2 比较运算符 比较 用于测试给定的两个操作数是否相等 因此产生的结果是比较的结果 即0 false 或1 true x 8 if x 9 cout xisnot0 n 3 4基本运算符 四 关系运算 3 不等于运算符 if x 9 cout xisn t9 n 例 3 4基本运算符 五 逻辑运算 逻辑非 逻辑与 逻辑或 inttemp 90 humi 80 if temp 80 例2 输出结果 wow it shot Theroomisuncomfortable 3 4基本运算符 六 位运算 位运算是对整型数的二进制表示的每一位进行运算 包括 与 或 异或 右移位 左移位 取反 3 4基本运算符 六 位运算 inta 39 b 45 例 则a b的值为 39 00100111 45 00101101 37 00100101 3 4基本运算符 六 位运算 inta 39 b 45 例 则a b的值为 39 00100111 45 00101101 47 00101111 3 4基本运算符 六 位运算 inta 39 b 45 例 则a b的值为 39 00100111 45 00101101 10 00001010 3 4基本运算符 六 位运算 inta 39 b 45 例 则 a的值为 39 00100111 11011000 3 4基本运算符 六 位运算 inta 39 b 45 例 则a 1的值为 00100111 01001110 则a 3的值为 00111000 则a 1的值为 则a 3的值为 00010011 00000100 3 4基本运算符 七 条件运算符 条件为真时的表达式 条件为假时的表达式 x a b a b 例 3 4基本运算符 八 逗号运算符 表达式2 表达式n inta b c a b b a 2 c b 3 说明1 C 顺序计算各个表达式的值 a 1 b a 2 c b 3 3 4基本运算符 八 逗号运算符 表达式2 表达式n inta b c d d a 1 b a 2 c b 3 cout d endl 说明2 逗号表达式是有值的 其值为第n个表达式的值 所以又称顺序求值运算符 输出为 6 3 4基本运算符 九 字长提取符 格式 sizeof 返回值 某数据在系统内分配的内存空间 includevoidmain intn shorts longl unsignedintu1 unsignedshortintu2 unsignedlongintu3 floatf doubled charc 例 编写一个程序求各种类型数据的存储长度 cout 整型 8 sizeof n endl cout 短整型 8 sizeof s endl cout 长整型 8 sizeof l endl cout 无符号整型 8 sizeof u1 endl cout 无符号短整型 8 sizeof u2 endl cout 无符号长整型 8 sizeof u3 endl cout 单精度实型 8 sizeof f endl cout 双精度实型 8 sizeof d endl cout 字符型 8 sizeof c endl 3 4基本运算符 十 运算的优先级 1 括号优先 2 没有括号的地方 不同的运算按照优先级的顺序进行计算 优先级高的先计算 比如 算术运算的优先级 单目 双目 3 4基本运算符 十 运算的优先级 3 具有相同优先级的运算符 按两种顺序决定先后次序 3 4基本运算符 括号 从左向右一元 从右向左乘 从左向右加 从左向右插入 读取 从左向右关系 从左向右相等 从左向右条件 从右向左赋值 从右向左逗号 从左向右 类型 运算符 结合律 3 4基本运算符 十 运算的优先级 例 z p r q w x y 第四章基本控制结构 控制语句 分支语句 循环语句 转向语句 4 1控制语句 控制语句 条件控制语句 无条件控制语句 分支语句 循环语句 break语句 continue语句 return语句 goto语句 for语句 while语句 do while语句 if语句 switch语句 4 2分支语句 一 if语句 称为单项选择结构语句 if语句的语法是 if 条件表达式 语句 if 条件表达式 语句序列 或 其结构流程图 t f 4 2分支语句 一 if语句 include include 控制台输入输出voidmain cout Inputthebkey n charch getche if ch b cout a 例 4 2分支语句 二 if else语句 称为双项选择结构语句 if语句的语法是 if 条件表达式 语句1 else 语句2 其结构流程图 t f 4 2分支语句 二 if else语句 if grade 60 cout passed elsecout failed 说明 C 提供的条件运算符与if else语句是密切相关的 可以改写成 cout 60 passed failed grade 60 cout passed cout failed 或 4 2分支语句 二 if else语句 intx 20 if x 0 if x 50 cout xisok n elsecout xisnotok n 说明 2 解决二义性 C 规定 else连接到前面最近的一个没有配对的且为可见的if上 4 2分支语句 二 if else语句 if 条件 第一个ifif 条件 第二个if if 条件 第三个if语句 else语句 说明 2 解决二义性 此例中else连接到第二个if上 因为第三个if不可见 4 2分支语句 三 switch语句 称为开关语句或分情况语句 switch语句的语法是 switch 表达式 case常量表达式1 语句组1case常量表达式2 语句组2 case常量表达式n 语句组ndefault 语句组n 1 4 2分支语句 三 switch语句 称为开关语句或分情况语句 chargrade switch grade case A cout 85 100 n case B cout 70 84 n case C cout 60 69 n case D cout 60 n default cout error n 例 4 2分支语句 三 switch语句 说明 switch后面括号中的表达式只能是整型 字符型或枚举型表达式 case后面常量表达式的类型必须与其匹配 floatf 4 0 switch f error 用浮点类型作为switch的表达式 会引起编译错误 4 2分支语句 三 switch语句 说明 2 当表达式的值与某一个case后面的常量表达式值相等时 就执行此case后面的语句 若所有case中的常量表达式都没有与表达式的值匹配 就执行default后面的语句 4 2分支语句 三 switch语句 说明 省略switch结构中case字样与测试值之间的空格可能造成逻辑错误 例如 写成case3 而不是case3 只会造成一个无用标号 4 2分支语句 三 switch语句 说明 5 case与default并不改变控制流程 例如 chargrade switch grade case A cout 85 100 n case B cout 70 84 n case C cout 60 69 n case D cout 60 n default cout error n 4 2分支语句 三 switch语句 switch和break联用的结构流程图 4 2分支语句 三 switch语句 chargrade B switch grade case A cout 85 100 n break case B cout 70 84 n break case C cout 60 69 n break case D cout 60 n break default cout error n 最后一个分支可以省略break 将上例改为switch和break联用的结构 4 2分支语句 三 switch语句 说明 6 各个case 包括default 的出现次序可以任意 4 2分支语句 三 switch语句 说明 7 多个case可以共用一组执行语句 例如 case A case B case C cout60 n 当grade的值为 A B C 时 都输出 60 不能写成 case1 2 3 cout hello n error 4 2分支语句 三 switch语句 说明 8 default语句是可选的 当default不出现时 则当表达式的值与所有常量表达式的值都不相等时 越过switch语句 4 2分支语句 三 switch语句 说明 9 switch语句可以嵌套 例如 inti j switch i case1 case2 switch j case1 case2 case3 4 3循环语句 一 for语句 for语句的一般表现形式是 for 表达式1 表达式2 表达式3 语句序列 for语句结构流程图 4 3循环语句 一 for语句 for i 1 i 100 i sum i 例 从1加到100 说明1 表达式1可省略 此时应在for语句之前给循环变量赋初值 若省略表达式1 其后的分号不能省略 inti 1 for i 100 i sum i 4 3循环语句 一 for语句 for i 1 i 100 i sum i 例 从1加到100 说明2 表达式2可省略 即不判断条件 循环无终止进行下去 也就是认为表达式永远为真 此时 需要在循环体内有跳出循环的控制语句 for i 1 i sum i if i 100 break 4 3循环语句 一 for语句 for i 1 i 100 i sum i 例 从1加到100 说明3 表达式3可省略 但此时应设法让循环变量递进变化 以保证循环能正常结束 for i 1 i 100 sum i 4 3循环语句 一 for语句 for i 1 i 100 i sum i 例 从1加到100 说明4 表达式1和表达式3可同时省略 for i 100 sum i 4 3循环语句 一 for语句 for i 1 i 100 i sum i 例 从1加到100 说明5 三个表达式都可省略 即不设初值 不判断条件 循环变量不增值 无终止执行循环体 for sum i if i 100 break 4 3循环语句 一 for语句 for i 1 i 100 i sum i 例 从1加到100 说明6 表达式1可以是循环变量定义 C 的变量定义可以在任何语句的位置 for inti 1 i 100 i sum i 4 3循环语句 一 for语句 for sum 0 i 1 i 100 i sum i 说明7 表达式1可以是逗号表达式 表达式1和3都可以是逗号表达式 如 for i 0 j 100 k 0 i j i j k i j 4 3循环语句 一 for语句 for i 1 i 100 sum i 说明8 表达式2和3可以是赋值或算术表达式 for i 0 sum i i 100 循环体为空语句 表达式3省略 循环体为空语句 4 3循环语句 一 for语句 includevoidmain longm cout m for inti 2 i m i if m i 0 找m的因数break if m i cout misprime n elsecout misnotprime n 例 判定素数 析 m是素数的条件是不能被2 3 m 1整除 4 3循环语句 二 while语句 while语句的作用是判断一个条件表达式 以便决定是否应进入和执行循环体 当满足条件时进入循环体 不满足则不执行循环体 while 条件表达式 语句序列 格式 4 3循环语句 二 while语句 while语句结构流程图 例 班里有10个学生参加测验 可以提供0 100的整数值成绩 以确定全班平均成绩 includevoidmain inttotal 0 gradeCounter 1 grade average while gradeCounter grade total total grade gradeCounter gradeCounter 1 avage total 10 cout Classaverageis average endl 4 3循环语句 三 do while语句 do 语句序列 while do while语句的格式是 do while语句结构流程图 例 求sum 1 2 100 includevoidmain inti 1 sum 0 do sum sum i i i 1 while i 100 cout sum sum endl 4 3循环语句 三 do while语句 说明 do while循环至少执行一次 因为直到程序到达循环体的尾部遇到while时 才知道继续条件是什么 4 3循环语句 三 do while语句 继续条件必须不断变化 如果该值恒定不变 将导致死循环 do while循环中 while 继续条件 后面的分号不要遗忘 不要把do while循环与while循环使用空语句作为循环体的形式相混淆 例 4 3循环语句 三 do while语句 dosum i while i 100 do while求和代码段 while i 100 while时间延迟代码段 4 4转向语句 一 break语句 又称为跳出语句 break语句用于强制退出循环语句以及switch语句的执行 当程序遇到这一语句后 将直接执行循环体后面的语句 4 4转向语句 二 continue语句 又称为继续语句 continue语句用在循环语句中 作用为结束本次循环 即跳过循环体中尚未执行的语句接着进行下一次是否执行循环的判定 includeintmain intx for x 1 x 10 x if x 5 break cout x cout nBrokeoutofloopatxof x endl return0 输出结果 1234Brokeoutlfloopatxof5 includeintmain for intx 1 x 10 x if x 5 continue cout x cout Usecontinuetoskipprinting5 endl return0 输出结果 1234678910Usecontinuetoskipprinting5 习题 1C 语言规定 以字符来作为字符串的结束标志 0 50 1 50 25 3执行完下列语句后 a b c的值各是多少 a 30 b a c a 设inta 2 b 2 则 a b的结果是 a的结果是 b的结果是 A2 B3 C4 D5 D B A 5选择出合法的if语句 设有intx a b c Aif a b x Bif a b x Cif ab x Dif a b x A 6下列关于switch语句的描述中 正确的是 Aswitch语句中default子句可以没有 也可有一个 Bswitch语句中每个语句序列中必须有break语句 Cswitch语句中default子句只能放在最后 Dswitch语句中case子句后边可以是整型表达式 A includevoidmain ints 0 k for k 7 k 0 k switch k case1 case4 case7 s break case2 case3 case6 break case0 case5 s 2 break cout s s

温馨提示

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

评论

0/150

提交评论