计算机二级复习资料第二章PPT课件.ppt_第1页
计算机二级复习资料第二章PPT课件.ppt_第2页
计算机二级复习资料第二章PPT课件.ppt_第3页
计算机二级复习资料第二章PPT课件.ppt_第4页
计算机二级复习资料第二章PPT课件.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

第二章C程序设计 2 1 顺序结构程序设计2 2 选择结构程序设计2 3 循环控制程序设计 可编辑 2 1 顺序结构程序设计 程序是按照书写的顺序自上而下一步步执行 程序中的每一条语句都被执行一次 且仅能被执行一次 main 语句1 语句2 语句n 程序结束 自上而下 可编辑 C语句概述 表示一条语句结束所以每条语句必须有 1 表达式语句 1 赋值语句 例如 sum a b 2 自动增1 减1运算符构成的表达式语句 例如 i a 3 逗号表达式语句 例 x 1 y 2 2 空语句语句仅有一个分号 可编辑 3 控制语句 如if else for do while 4 函数调用语句由一个函数调用加上一个分号组成一个语句 如 printf a d b d n a b 5 复合语句由 和 把一些变量定义和执行语句组合在一起 称之为复合语句 又称语句块 复合语句的语句形式如下 语句1 语句2 语句n C语句概述 可编辑 C语句概述 例如 if a b c a a b b c 知识点 复合语句的 内可能会有多个语句 但在语法上把它整体上视为一条语句看待 复合语句中 又可以再嵌套其它的复合语句 可编辑 对于在复合语句中说明的变量 其作用范围只在这个复合语句中 如果在复合语句的内外都出现了同样的变量定义 则按 局部优先 的原则处理 inta 9 c 10 在这个范围c a的值各为多少 intb 8 a 8 在这个范围c a的值各为多少 复合语句 可编辑 C数据的输入与输出 C语言格式输入格式化输入函数 scanf 功能 用于从键盘上接收各种类型的数据 形式 scanf 格式控制 输入项地址列表 可编辑 常用格式控制 d从键盘上接收int型数据scanf d C数据的输入与输出 可编辑 C数据的输入与输出 格式符和意义如下表所示 可编辑 C数据的输入与输出 C语言字符输入函数getchar 功能 从标准输入设备 键盘 读入一个字符 一般格式为 c getchar includemain charc d c getchar d getchar printf c c n c d 当执行程序时 按下列方式输入数据 从第一列开始 代表回车 注意 回车是一个字符 1234则输出结果是 12 可编辑 C数据的输入与输出 C语言格式输出格式输出函数printf 一般格式 printf 格式控制 输出项表 例 输出普通字符 printf Hello 例 输出整型 浮点型 字符型数据 printf a d b f d c a b c 普通字符 可编辑 注意 o不输出前导符0 x不输出前导符0 x o x u都不会输出负数 C数据的输入与输出 intm 1 printf d u o m m m A 1 1 1B 1 32767 177777C 1 32768 177777D 1 65535 177777 答案 D 可编辑 C数据的输入与输出 C语言字符输出函数putchar 一般格式为 putchar c 功能 在标准输出设备 显示器 上输出c对应的一个字符 如 includemain charc a intb 97 putchar c putchar b 1 可编辑 scanf 常见错误 1 在使用scanf输入数据时忘记取地址运算符 如 scanf d d a b 正确写法 scanf d d 正确输入 a 90 7 错误输入 90 7 可编辑 3 连续输入多个数值型数据时 数据之间要用空格 Tab键或回车键作分隔符 如scanf d d 正确输入 AB 错误输入 A B或AB或AB scanf 常见错误 可编辑 scanf 常见错误 5 数据型数据和字符型数据交叉输入时 如可加空格 Tab键和回车键作分隔符scanf c d 正确输入 7a错误输入 7a 可编辑 scanf 常见错误 6 输入数据时 可以指定数据所占列数 系统自动按它截取所需数据 如 scanf 3d 3d 是不合法的 可编辑 练习 读程序 以下程序的输出结果是 main charc z printf c c 25 参考答案 a 解析 z 的ASCII码值为122 经过c 25运算后 得97 以字符形式输出是a 可编辑 练习 读程序 下列程序的输出结果是main doubled 3 2 intx y x 1 2 y x 3 8 5 0 printf d n d y 解题要点 本题中 程序先执行语句x 1 2 根据赋值运算的类型转换规则 先将double型的常量1 2转换为int型 即取整为1 然后将1赋值给变量x 接下来执行语句y x 3 8 5 0 得到4 8 5 0 其结果为0 96 赋值号左边变量y的类型为整型 于是对这个小于1 0的中间结果进行取整 结果为0 于是变量y的值为0 d y的值也为0 0 可编辑 执行以下程序时输入1234567 则输出结果是 includemain inta 1 b scanf 2d 2d 练习 读程序 参考答案1234 解析 本题scanf函数的输出格式说明中 变量a和b的格式控制都为 2d 即a和b都只获取两个字符的输入 输入的前4个字符被分别赋给了a和b 其值分别为12和34 例 任意从键盘输入一个三位整数 要求正确地分离出它的个位 十位和百位数 并分别在屏幕上输出 程序设计的分析 例如 输入的是456 则输出的分别是4 5 6 最低位数字可用对10求余的方法得到 如456 10 6 最高位的百位数字可用对100整除的方法得到 如456 10 4 中间位的数字既可通过将其变换为最高位后再整除的方法得到 如 456 4 100 10 5 也可通过将其变换为最低位再求余的方法得到 如 456 10 10 5 根据以上的分析 这个程序应这样设计 1 定义一个整型变量x 用于存放用户输入的一个三位整数 再定义三个整型变量b0 b1 b2 用于存放计算后个位 十位和百位数 2 调用scanf函数输入该三位整数 3 利用上述计算方法计算该数的个位 十位和百位数 4 输出计算后的结果 新航线培训中心 includevoidmain intx b0 b1 b2 变量定义printf pleaseinputanintegerx 提示用户输入一个整数scanf d 输出结果 新航线培训中心 可编辑 例 输入大写字母 转换为小写字母 includemain charch printf 输入大写字母 scanf c 可编辑 2 2 选择结构程序设计 if语句 main if a 5 复合语句块1 复合语句块2 else 程序结束 a 5为真 a 5为假 可编辑 2 2 选择结构程序设计 if语句有两种形式 如果有多条语句要用 括起来 1 不含else子句的if语句if 例 如果a的值大于b则交换ab的值 include stdio h main inta 7 b 0 t if a b t a a b b t printf a d b d a b 可编辑 2 2 选择结构程序设计 2 含else子句的if语句if else 可编辑 if语句的条件表达式 分支条件的类型不限于逻辑 关系表达式 可以是任意的C语言有效表达式 如赋值表达式 算术表达式等等 因此也可以是作为表达式特例的常量或变量 例 if 7 8 x 9 if 7 可编辑 if语句的条件表达式 例 判断a的值是否等于2 include stdio h main inta 1 if a 2 printf a 2 elseprintf a 2 想一想输出a 2还是输出a 2 a 2 可编辑 例 以 变量 为分支条件的实例 include stdio h main intx y scanf d 现把程序中if x 改成if x 0 此时虽然条件表达式写法不同 但是完成的功能是相同的 下面两种表示方法经常使用 重点 if x 等价于if x 0 if x 等价于if x 0 可编辑 if语句的嵌套 在一个if语句中又包含另一个if语句 从而构成了if语句的嵌套使用 内嵌的if语句既可以嵌套在if子句中 也可以嵌套在else子句中 可编辑 if语句的嵌套 可编辑 if语句的嵌套 例 输入两数并判断其大小关系 includemain intx y printf Enterintegerx y scanf d d 新航线培训中心 可编辑 if语句的嵌套 if else配对原则缺省 时 else总是和它上面离它最近的未配对的if配对 if的嵌套时二义性的问题如 y 0 if x 0 if x 0 y 1 elsey 1 思考 else是与if x 0 配对还是与if x 0 配对 解决此类问题 最好的方法是用 明确从属关系 y 0 if x 0 if x 0 y 1 elsey 1 可编辑 练习 读程序 阅读下面语句 则程序的执行结果是 include stdio h main inta 1 b 1 k if a 0 解析 运算的短路特性 a 0表达式的值0为假 b 0 表达式就不被执行 1 0 可编辑 练习 读程序 以下程序用于判断a b c能否构成三角形 若能 输出YES 否则输出NO 请填空 main floata b c scanf f f f a b c a c b b c a 可编辑 练习 读程序 程序的执行结果是main inta 3 b 5 c 7 if a b a b c a if c a c b printf d d d n a b c 3 5 3 可编辑 多路分支switch语句 switch语句的一般形式switch case case case default 用 括起来的内容表示可选 可编辑 switch语句的执行过程 先计算表达式的值 当该值与某一个case后的常量表达式的值相等时 就执行此case后的语句 若所有的case值与表达式的值均不匹配 则执行default后的语句 执行完一个case语句后 并不会跳过它后面的case语句 而是顺序执行它下面的case语句 若想终止switch结构的执行 可以用一个break语句来中断switch的执行 可编辑 例1 根据变量i的值输出字符 includevoidmain inti printf pleaseinputi scanf d i的值分别为1 2 3 4时屏幕输出结果为 1 ABCD 2 BCD 3 CD 4 D 可编辑 例2 根据变量i的值输出字符 includevoidmain inti printf pleaseinputi scanf d 1 A 2 BC 3 C 4 DBC i的值分别为1 2 3 4时屏幕输出结果为 可编辑 switch知识点 switch后的运算结果只能是整型 字符型或枚举型 floata b 4 0 scanf f 可编辑 switch知识点 case后面的的值在运行前必须是确定的 不能改变 如 intx 3 y 7 switch x y case1 2 是正确的 casex y 是错误的 case1 2 是错误的 可编辑 switch知识点 default可以出现在语句体中任何标号位置上 在switch语句体中也可以无default标号 如果case之后的语句最后有break语句则跳出switch语句体 否则继续执行下面case语句 intz 2 switch z case1 printf 1 case2 printf 2 break case10 printf 10 可编辑 switch嵌套 例voidmain intx 1 y 0 a 0 b 0 switch x case1 switch y case0 a break case1 b break case2 a b break case3 a b printf na d b d a b 运行结果 a 2 b 1 知识点 break只能跳出离它最近的switch 可编辑 练习 读程序 以下程序的运行结果是main inta 2 b 7 c 5 switch a 0 case1 switch b 0 case1 printf break case2 printf break case0 switch c 5 case0 printf break case1 printf break case2 printf break default printf 可编辑 练习 读程序 运行下面程序时 从键盘输入字母H 则输出结果是 includemain charch ch getchar switch ch case H printf Hello n case G printf Goodmorning n default printf Bye Bye n Hello Goodmorning Bye Bye 可编辑 2 3 循环控制程序设计 while语句一般形式 while while语句的执行过程 1 计算while后的值 当值为非零时 则执行步骤 2 当值为零时 则执行步骤 3 2 执行后 转去执行步骤 1 3 退出while循环 可编辑 例 显示1 10的平方 includevoidmain inti 1 while i 10 printf d d d n i i i i i 运行结果 1 1 12 2 43 3 94 4 165 5 256 6 367 7 498 8 649 9 8110 10 100 可编辑 while语句知识点 1 先判断表达式 后执行循环体 循环体有可能一次也不执行 inta 0 b 0 while a 0 a 0为假 b 不可能执行b 2 如果是多条语句 就一定要加 构成复合语句 3 表达式恒为非0常量时无限循环 死循环 如 while 1 printf hello 例用while循环语句实现从1加到100 并将结果打印出来 include stdio h main intsum 0 i 1 while i 100 sum i i printf 其和是 d n sum 运行结果 其和是5050 新航线培训中心 可编辑 练习 读程序 设有以下程序段intx 0 s 0 while x 0 s x printf d s 解析 表示逻辑非运算符 表示不等于运算符 逻辑非运算符比不等于运算符的优先级高 1 可编辑 do while语句 do while语句的一般形式do while do while语句的执行过程 1 执行do后面的 2 计算while后一对括号中的的值 当值为非零时 转去执行步骤 1 当值为零时 则执行步骤 3 3 退出while循环 可编辑 do while语句知识点 1 先执行循环体 后判断表达式 至少执行一次循环体 例 inta 0 b 0 do b while a 0 printf d b 1 可编辑 do while语句知识点 2 在while结束后必须有分号 它表示该语句的结束 3 注意区别while循环与do while循环分号问题 如 inti 9 while i 0 i i 1 inti 9 do i i 1 while i 0 如果有 表示没有循环体即语句i i 1与while循环无关系 例 将输入的正整数按逆序输出 例如 若输入135则输出531 请填空 includemain intn s printf Enteranumber scanf d n 10或n n 10 新航线培训中心 可编辑 for语句 for语句的一般形式for 循环体语句 for语句的执行过程 首先计算 求的值 若其值为非零 则转去执行 若的值为零 则转去执行 结束for语句 执行一次for循环体 求解 转 执行 结束循环 执行循环之后的语句 可编辑 例 读程序 includemain inty 9 for y 0 y if y 3 0 printf d y 852 可编辑 for语句知识点 1 三个表达式之间的必须用分号 隔开 for i 0 i用于计算循环变量初始值只执行一次循环体是否执行的条件循环变量的调整 可编辑 for语句知识点 3 无限循环for循环的三个表达式中 任何一个都可以省略 但是分号 不可省略 所以下面的写法 for 语句 是一死循环 可编辑 循环的嵌套 在一个循环内又完整地包含另一个循环 称为循环的嵌套 即循环体自身包含循环语句 while while for 知识点 1 三种循环可互相嵌套 层数不限 2 外层循环可包含两个以上内循环 但不能相互交叉 外循环 内循环 内循环 外循环 可编辑 例 读下列程序 程序的运行结果是 includemain inti j m 55 for i 1 i i j printf d n m j 110111 可编辑 例 读下列程序 程序运行后的输出结果是main inti j for i 1 i 4 i for j i j 4 j printf d d d i j i j printf n 1 1 11 2 21 3 32 2 42 3 63 3 9 可编辑 break语句和continue语句 break语句在循环结构中 也可以用break语句使流程跳出本层循环体 从而提前强制性结束本层循环 知识点 1 只能在switch语句体或循环体内使用break语句 2 break语句的作用跳出switch语句体或终止循环体 最近一层 可编辑 break语句 while 表达式1 if 表达式2 break 语句 do if 表达式2 break while 表达式1 语句 for 表达式1 if 表达式2 break 语句 可编辑 break语句和continue语句 2 continue语句结束本次循环 跳过循环体中尚未执行的语句 继续进行下一次是否执行循环体的条件判断 知识点 仅用于循环体语句中 可编辑 continue语句 for while if continue 可编辑 例 求输入的十个整数中正数的个数及其平均值 includevoidmain inti a num 0 floatsum 0 for i 0 i 10 i scanf d 假设输入的10个整数为 23 45 678910 例 求1 100之间的所有素数 素数是指除了能被1和它本身整除外 不能被其它任何整数整除的数 例如 17就是一个素数 除了1和17之外 它不能被2 16之间的任何整数整除 includevoidmain intx i for x 1 x 100 x 1 100之间 for i 2 i x i if x i 0 break if i x print

温馨提示

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

评论

0/150

提交评论