C 语 言 教 程 _ 4.ppt_第1页
C 语 言 教 程 _ 4.ppt_第2页
C 语 言 教 程 _ 4.ppt_第3页
C 语 言 教 程 _ 4.ppt_第4页
C 语 言 教 程 _ 4.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

C语言教程 4 中国福利会儿童计算机活动中心www sng 回顾 上一次学习了条件语句并介绍了关系运算和关系运算符 C语言中提供的关系运算符共有六种 大于 大于等于 等于 请注意这和赋值运算符 是不同的 不等于 通过 例2 数字分类显示程序 遇到了if语句中的执行语句又是if语句的嵌套形式 知道了else总是与它前面最近的if配对 在探索学习的几个例程中 探讨了数据比较大小的方法 并提供了一种打擂台的数据比较法 这是一种直观有效的方法 在今后的程序中我们还会多次使用到 C语言提供三种逻辑运算符 a b逻辑与 只有当a与b都是为真时 结果才为真 a b逻辑或 只有当a与b都是为假时 结果才为假 a逻辑非 当a为假时结果为真 否则结果为假 下面举出一些逻辑表达式的例子 条件 逻辑表达式 a大于零或者b大于零if a 0 b 0 a大于零与b小于零if a 0 b 1 x a b a b都能被5整除if a 5 0 b 5 0 字符c是否为数字if c 0 c 9 逻辑运算和逻辑运算符 探索1 请依据下面给出的条件写出逻辑表达式 1 x是一个两位正整数 2 a b c三个数都不相同 3 a b c三个数都不是负数 例1 从键盘上输入一个字符 如果它是大写字母 则把它转换成小写字母输出 否则 直接输出 main charch printf Inputacharacter scanf c 例1 写一程序 从键盘上输入某年份year 4位十进制 判断其是否闰年 闰年的条件是 能被4整除 但不能被100整除 或者能被400整除 设计要点 1 如果 能被 整除 则余数为 即如果 的值等于 则表示 能被 整除 2 首先将是否闰年的标志flag预置为0 非闰年 这样仅当year为闰年时将flag置为1即可 这种处理两种状态值的方法 对优化算法和提高程序可读性非常有效 请读者仔细体会 参考程序如下 main intyear flag 0 flag 0 标志flag预置为非闰年 printf Pleaseinputtheyear scanf d 利用逻辑运算能描述复杂条件的特点 可将上述程序优化如下 main intyear printf Pleaseinputtheyear scanf d 在C语言中 for循环语句使用最为灵活 它的一般形式为 for 表达式1 表达式2 表达式3 语句 它的执行过程如下 先求解表达式1 求解表达式2 若其值为真 非0 则执行for语句中的内嵌语句 然后执行下面第 步 若其值为假 0 则结束循环 转到第 步 求解表达式3 转回上面第 步继续执行 循环结束 执行for语句下面的一个语句 教学 计算1 100之和main inti total 0 for i 0 i 100 i total i printf 1 2 3 100 d n total 探索2 聪明的数学家高斯曾经给出一个简单的算式 1 100 50来计算1到100的和 同样的 C循环程序也可以利用这个算式来计算 想一想如何修改 如果我们希望我们的程序具有通用性 可以计算任意前1 n个数字的和呢 应该如何编写C程序 我们把这个i称为循环变量 它是用于循环语句的变量 相当于total total i 程序举例 韩信点兵 现有士兵100 150人 5人一排多2人 7人一排多1人 问到底有几个士兵 请编程实现 main intn for n 100 n 150 n if n 5 2 探索3 思考一下 5人一排多2人 7人一排多1人 这两个条件是否可在循环设计步长中预先满足一个条件 哪么是否可以提高程序的运行速度了 程序举例 main inttotal 0 i for i 0 i 100 i if i 2 0 total i printf 2 4 6 100 d n total getch 探索4 试一试 利用改变循环语句的步长来写这个程序 程序是否更简捷有效了 计算100以内偶数之和 程序举例 练习题 4 c401 请用for循环编程求在下面等式中 内填入的同一个数是几 3X324 3 X567 c402 打印出所有 水仙花数 所谓 水仙花数 是指一个 位数 其各位数字立方和等于该数本身 例如 153是一水仙花数 因为153 1 3 5 3 3 3 请用for循环编程实现 c403 有一数列 1 1 2 3 5 8 13 21 编写一个whil循环程序依据规律显示出该数列前10个数 并且求出他们的累加和 该数列从第三个数起 每个数都是前两个数的和 该数列称斐波那契数列 c404 从键盘上输入a b两个数 求这两个数的最大公约数r 在此有如下的要求 1 如果这两个数均为零 没有最大公约数 2 这里不对负数求最大公约数 3 如果只有一个数为零 则最大公约数就是另一个数 自学指导 4for语句 for语句是 语言所提供的功能更强 使用更广泛的一种循环语句 其一般形式为 for 表达式1 表达式2 表达3 语句 表达式1通常用来给循环变量赋初值 一般是赋值表达式 也允许在for语句外给循环变量赋初值 此时可以省略该表达式 表达式2通常是循环条件 一般为关系表达式或逻辑表达式 表达式3通常可用来修改循环变量的值 一般是赋值语句 这三个表达式都可以是逗号表达式 即每个表达式都可由多个表达式组成 三个表达式都是任选项 都可以省略 一般形式中的 语句 即为循环体语句 for语句的语义是 1 首先计算表达式1的值 2 再计算表达式2的值 若值为真 非0 则执行循环体一次 否则跳出循环 3 然后再计算表达式3的值 转回第2步重复执行 在整个for循环过程中 表达式1只计算一次 表达式2和表达式 3则可能计算多次 循环体可能多次执行 也可能一次都不执行 自学指导 4for语句 用for语句计算s 1 2 3 99 100intn s 0 for n 1 n0 a n printf d a 2 本例的for语句中 表达式1已省去 循环变量的初值在for语句之前由scanf语句取得 表达式3是一个逗号表达式 由a n 两个表达式组成 每循环一次a自增1 n自减1 a的变化使输出的偶数递增 n的变化控制循次数 自学指导 4for语句 在使用for语句中要注意以下几点1 for语句中的各表达式都可省略 但分号间隔符不能少 如 for 表达式 表达式 省去了表达式1 for 表达式 表达式 省去了表达式2 for 表达式 表达式 省去了表达式3 for 省去了全部表达式 2 在循环变量已赋初值时 可省去表达式1 如省去表达式2或表达式3则将造成无限循环 这时应在循环体内设法结束循环 例题即属于此情况 main inta 0 n printf ninputn scanf d 本例中省略了表达式1和表达式3 由循环体内的n 语句进行循环变量n的递减 以控制循环次数 自学指导 4for语句 3 循环体可以是空语句 include stdio h main intn 0 printf inputastring n for getchar n n printf d n getch 本例中 省去了for语句的表达式1 表达式3也不是用来修改循环变量 而是用作输入字符

温馨提示

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

评论

0/150

提交评论