全国计算机等级考试二级C2.ppt_第1页
全国计算机等级考试二级C2.ppt_第2页
全国计算机等级考试二级C2.ppt_第3页
全国计算机等级考试二级C2.ppt_第4页
全国计算机等级考试二级C2.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计主讲教师 崔玲玲计算机与通信工程学院电话Q群 15851984 第三章顺序结构程序设计 3 1C语句概述 C语句 基本语句 复合语句 控制语句 表达式语句 表达式的末尾加上一个分号所组成的语句 空语句 仅由一个分号组成的语句 选择控制语句 if switch 循环控制语句 for while do while 流程控制语句 continue break return 用左右括号括起来的语句序列 格式 语句1 语句2 语句n 3 2 基本的输出输入函数 1 格式化输出函数printf2 格式化输入函数scanf3 字符输出函数putchar4 字符输入函数getchar 在使用输入输出函数时 通常需要在程序的开头添加预处理命令 include 一 格式化输出函数printf 1 功能 用于向标准输出设备按规定的格式输出信息 2 格式 printf 格式控制 输出表列 说明 格式控制是用双引号引起来的一串字符 它包括两种信息 1 格式控制参数 由 和格式字符组成 它的作用是将输出的数据转换为指定的格式输出 2 普通字符或转义字符 需要原样输出的字符 输出表列是需要输出的一些数据 常量 变量 表达式 他们之间用逗号分隔 格式控制中控制参数的个数应与输出表列中输出项的个数一致 printf 函数中常用的格式控制符及其功能 printf 函数的转义字符及其功能 include stdio h main inta 2 b 5 printf a d b d n a b 输出结果 a 2 b 5 在 和格式字符之间还可以插入以下附加说明符 1 长度修正符l对整型指长整型 对实型指双精度类型 2 域宽及精度描述符m和nm 域宽 即对应的输出项在输出设备上所占的最小宽度 如果指定的宽度m小于数据实际所需的宽度 系统按数据的实际位数输出 如果指定的输出宽度m大于数据实际所需的宽度 数据右对齐 左边补以空格 n 精度 对于实型数 用于说明输出的实型数的小数位数 对于字符串 用于指定最多输出的字符个数 3 输出数据左对齐 在域宽之前加一个 用于指定输出数据左对齐 4 在输出数据前加前导0在域宽之前加一个数字0 用于指定数据前面的多余空格用0填补 includevoidmain intb 12 longc 1234567 floatf 123 456 printf d 4d 4d 04d n b b b b printf ld n c printf 10 2f 10 2f 2f n f f f printf s 10s 10s 10 4s n string string string string 输出结果 12 12 12 00121234567123 46 123 46 123 46string string string stri eg3 1 格式控制参数的完整格式 0m nL格式字符 指定输出的数据类型输出长度的修正指定输出域宽及精度指定空位填0指定左对齐输出格式说明的引导符号 格式字符 练习 1 下列程序的输出结果是 main inta b c a 25 b 025 c 0 x25 printf d d d n a b c 2 有以下程序段 intn1 10 n2 20 printf n1 n2 要求按以下格式输出n1和n2的值 每个输出行从第一列开始 请填空 n1 10n2 20 二 格式化输入函数scanf 1 功能 用于从标准输入设备按规定的格式为变量输入数据 2 格式 scanf 格式控制 地址表列 说明 地址表列是接收输入数据的变量的内存地址 他们之间用逗号分隔 变量地址的表示形式如下 变量名注意事项 1 格式控制中控制参数的个数必须与变量地址的个数一致 2 地址表列中应该是地址 而不是普通的变量名 3 可以在 和格式字符之间加上数字m 表示读操作中的最大位数 4 在 和格式字符之间插入 可以实现数据虚读 5 若遇到非法输入 自动结束输入过程 includevoidmain inti a charb floatr c scanf 3d 4d f 若输入以下数据 12345678267 921234k2638 638 输出结果为 i 123 r 8627 92a 1234 b k c 3638 638 eg3 2 格式控制参数的完整格式 mL格式字符 指定输入的数据类型长度修正说明符域宽说明符虚读说明符格式说明的引导符号 格式字符 注意 输入数据应该严格按照格式输入 格式控制参数按照指定类型输入数据 普通字符原样输入 输入数字和字符的注意事项 输入数字 如果有分隔符 就输入分隔符 如果没有可用空格或回车分隔 输入字符 不能有任何分隔符 练习 1 输入123456 abc 以下程序的输出结果是 main inta charc1 scanf 4d 3c 2 有以下程序 main intm n p scanf m dn dp d 若想从键盘输入数据 使变量m中的值为123 n中的值为456 p中的值为789 则正确的输入是 三 字符输出函数putchar 1 功能 用于向标准输出设备输出一个字符 2 格式 putchar ch 其中ch为一个字符变量或常量 也可以是一个整型变量或常量 四 字符输入函数getchar 1 功能 用于从标准输入设备读入一个字符 2 格式 ch getchar 其中ch为一个字符变量或整型常量 说明 从键盘输入的字符存储在内存的键盘输入缓冲区中 执行getchar 函数时 若该缓冲区有未读字符 当前字符即使getchar 函数的值 当键盘缓冲区无可读字符时 getchar 请求输入数据 计算机进入等待状态 直到从键盘输入字符串并按回车键后 getchar 取输入字符串的第一个字符为函数值 此时若再执行一次getchar 则getchar 取输入字符串的第二个字符为函数值 include stdio h main charc1 c2 c1 B putchar c1 putchar O putchar 89 putchar n c2 getchar putchar c2 eg3 3 输出结果为 BOYGG 3 3 顺序结构程序设计 例1分析下列程序的功能 includevoidmain intx y t printf Enterx 从键盘输入两个整数x和y 然后输出x和y 再交换x和y中的值后输出x和y 3 3 顺序结构程序设计 例2分析下列程序的功能 includevoidmain doublex scanf lf 从键盘输入一个double类型的数据 使该数保留小数点后两位小数 第三位进行四舍五入处理后输出该数 第四章选择结构程序设计 4 1if语句 1if语句的一般形式2if语句的简单形式3if语句的嵌套结构4if elseif结构 一般if语句的流程图 1 if语句的一般形式 if 表达式 语句组1 else 语句组2 执行过程 如果表达式的值为非0 则执行 语句组1 然后执行if语句的下一条语句 否则 就跳过 语句组1 而执行 语句组2 然后执行if语句的下一条语句 举例 2 if语句的简单形式 if 表达式 语句组 简单if语句流程图 执行过程 若表达式的值非0 即真 则执行 语句组 然后继续执行if语句的下一条语句 否则 不执行 语句组 而直接执行if语句的下一条语句 举例 可以是一条语句 也可以是多条语句 多条语句用 括起来 还可以是空语句 一般为逻辑表达式或关系表达式 也可以是其他表达式 3 if语句的嵌套结构 嵌套举例 if 表达式 语句组1 else 语句组2 if 表达式1 if 表达式2 语句组1 else 语句组2 else if 表达式3 语句组3 else 语句组4 4 if else if结构 else与if的配对规则 分析下列程序的输出结果 includevoidmain intx y scanf d d if x y printf d d n x y elseprintf d d n y x eg4 1 例4 1 计算下面分段函数的值 includevoidmain intx y scanf d 练习 输入一个年份 判断其是否为闰年 返回 分析下列程序的输出结果 includevoidmain intx y max scanf d d if max y max y eg4 4 分析下列程序的输出结果 includevoidmain intx y z scanf d d if x y z x x y y z 20 10 20 10 20 eg4 5 if语句的有效执行语句是下面的第一句 如果有效语句在2句以上 必须加花括号作为复合语句来至执行 例4 3 输入一个整数x 若是偶数 则输出它 返回 includevoidmain intx scanf d eg4 6 例4 4 求两个整数的最大值 问题分析 1 设两个数为x y且用max表示最大数 2 假设x为最大数 即max x 3 判断max和y的大小 若max y max y 返回 eg4 7 分析下列程序的输出结果 includevoidmain intx 2 y 1 z 2 if x y if y 0 z 0 elsez 1 printf d n z if x y if y 0 z 0 elsez 1 eg4 8 if嵌套结构中else与if的配对规则 C语言规定 在else语句无明确配对结构时 else语句与最近的一个尚未配对的if语句配对 程序段二 if a1 printf Good elseprintf Bad 程序段一 if a1 printf Good elseprintf Bad if else 如果想改变这种配对关系 可以在相应的if语句上加花括号来确定新的配对关系 例4 5 求下列分段函数的值 includevoidmain floatx y scanf f 返回 eg4 9 一般格式 if 表达式1 语句组1 elseif 表达式2 语句组2 elseif 表达式n 语句组n else 语句组n 1 4 if elseif结构 具体执行过程如下 从上到下逐个对条件进行判断 一旦发现条件满足就执行与它有关的语句组 其下的所有条件都不再判断 当任何一个条件都不满足时 执行最后一个 语句组n 1 返回 举例 分析下列程序的运行结果 includevoidmain floatx y scanf f 返回 eg4 10 4 2switch语句 1 语句的一般格式 switch 表达式 case常量1 语句组1case常量2 语句组2 case常量n 语句组ndefault 语句组n 1 2 执行过程 首先计算switch表达式的值 然后与各个case的 常量 进行比较 若相等 则从其下的语句组开始 依次向下执行各语句组的语句 直至遇到一个强制中断语句break或执行完最后一个语句组语句为止 当所有case都不符合要求时 执行default下的语句组语句 返回 举例 整型值或字符型值 常量类型应与表达式的类型对应 任何一个语句组允许为空 includevoidmain inti scanf d 返回 注意break语句的使用 eg4 11 break语句 break语句为中断语句 其功能为终止switch语句的执行 使程序流程转到switch语句的后续语句执行 例4 6输入1 7七个数 判断并输出它对应的是一个星期的哪一天 算法分析 1 Mon2 Tues3 Wed4 Thurs5 Frid6 Sat7 Sun includevoidmain intx scanf d eg4 12 练习 学生有数学和英语两门课的成绩 要求输入各门课的成绩 按平均成绩分等级显示 优秀 平均成绩 90良好 80 平均成绩 90中等 70 平均成绩 80及格 60 平均成绩 70不及格 平均成绩 60 采用switch编程时 要注意精选switch后的表达式 1 若采用平均值ave将有101种可能 2 若采用 ave 10只有11种结果 再经过合并后仅剩下5种 返回 eg4 13 第五章循环结构程序设计 5 1 while循环语句 图5 1while语句的逻辑结构 1 while语句的格式 while 表达式 语句组 计算表达式的值 当值为真 非0 时 执行循环体 重复过程 直到表达式的值为0时结束while语句 2 while语句的执行过程 返回 其中 表达式是循环执行的条件 语句组是循环体 例5 1分析下列程序的运行结果 includevoidmain inti sum i 1 sum 0 while i 100 sum sum i i i 1 printf sum d n sum while i 100 sum sum i i i 1 图5 2算法流程图 includevoidmain inti t t 1 i 1 while i 10 t t i i printf Result d n t 例5 2用while语句求10 图5 3算法流程图 返回 5 2 dowhile循环语句 图5 4dowhile语句逻辑结构 1 dowhile语句的格式 do 语句组 while 表达式 执行循环体语句组 当表达式为真 非0 时返回 直到表达式为0时结束while语句执行 2 dowhile语句的执行过程 返回 3 do while与while的区别 1 do while语句至少要执行一次循环体语句 2 do while语句中while 表达式 之后有一个 不能省略 includevoidmain inti sum 0 i 1 do sum sum i i while i 100 printf sum d n sum 例5 3分析下列程序的输出结果 图5 5算法流程图 返回 do sum sum i i while i 100 includevoidmain inti t 1 i 1 do t t i i while i 10 printf Result d n t 例5 4用do while语句求10 5 3 for循环语句 图5 6for循环处理流程 1 for循环语句的格式 for 表达式1 表达式2 表达式3 循环体语句组 2 for循环语句的执行过程 第一步 求解表达式1 第二步 求解表达式2 若其值非0 则执行第三步 否则 结束循环 第三步 执行循环体语句 第四步 求解表达式3 第五步 转第二步 其中 表达式1通常用来给循环变量赋初值 表达式2用来控制循环进行的条件 表达式3用来修改循环变量的值 for循环语句的循环控制过程与下列结构等价 表达式1 while 表达式2 循环体语句组表达式3 例5 5分析下列程序的运行结果 includevoidmain inti sum sum 0 for i 1 i 100 i sum sum i printf sum d n sum for i 1 i 100 i sum sum i 图5 2算法流程图 例5 6用for语句计算10 返回 includevoidmain inti t 1 for i 1 i 10 i t t i printf Result d n t 3 for语句使用应该注意的问题 1 for循环中的表达式1 表达式2和表达式3都可以省略 但 不能缺省 3 for循环中的循环体可以是基本语句 也可以是复合语句 还可以是空语句 2 for循环中的表达式1和表达式3可以是简单表达式 也可以是逗号表达式 i 1 for i 100 i sum sum i for i 1 i sum sum i for i 1 i 100 sum sum i i for i 1 sum 0 i 100 i sum sum i for i 1 sum 0 i 100 sum sum i i 死循环 5 4 三种循环语句的比较 for while和do while三种循环控制语句各有其特点 主要有以下方面 1 三种不同的循环语句都能实现相同的循环控制 但不同的循环语句 在进行循环控制时灵活性不同 使用最多的是for语句 任何循环都可以用它实现 2 while循环和do while循环的循环控制初始化 是在执行循环语句之前进行的 而for循环的循环控制初始化 是在执行for语句的初期进行的 这里所说的 循环控制初始化 通常就是对循环控制变量赋初值 3 while循环和for循环都是先判断循环条件 然后决定是否执行循环体 当一开始就不满足循环条件时 循环体一次也不会执行 而do while是先执行一次循环体后 再判断循环条件 这就使得不管循环条件如何 至少能执行一次循环体 返回 5 5 多重循环 1 多重循环的概念 在循环结构中 如果在一个循环体内又包含了另一个完整的循环结构 就构成了多重循环 也称为循环的嵌套 嵌在循环体内的循环称为内循环 嵌有内循环的循环称为外循环 2 多重循环的结构 while while do do while while for for while do while for while 返回 3 双重循环程序举例 例5 7打印图形 先编程打印一行十个 再修改成打印十行十列 最后修改成打印 形三角形图案 双重循环的执行过程 外循环每执行一次 内循环执行一个周期 设计双重循环的关键是明确每一重循环完成的任务 通常外循环用来对内循环进行控制 内循环用来实现具体的操作 3 双重循环程序举例 例5 8打印九九乘法表 5 6 循环体中的控制语句 1 break语句 1 break语句的一般格式 break 2 break语句的功能 break语句的功能是提前

温馨提示

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

评论

0/150

提交评论