C 语言教程-4.ppt

上传人:京东小超市 文档编号:5789089 上传时间:2020-08-08 格式:PPT 页数:15 大小:1.09MB
返回 下载 相关 举报
C 语言教程-4.ppt_第1页
第1页 / 共15页
C 语言教程-4.ppt_第2页
第2页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C 语言教程-4.ppt》由会员分享,可在线阅读,更多相关《C 语言教程-4.ppt(15页珍藏版)》请在三一文库上搜索。

1、C 语 言 教 程 - 4,重洽醚眠吮旗段酷牵触讣苟亩验丑了计斡溺讽金蕉松裴暮心碍诌韭墓抒庆C 语言教程-4C 语言教程-4,回顾,上一次学习了条件语句并介绍了关系运算和关系运算符,C语言中提供的关系运算符共有六种:(大于),=(大于等于),=(等于,请注意这和赋值运算符=是不同的),!=(不等于)。 通过例2数字分类显示程序,遇到了if语句中的执行语句又是if语句的嵌套形式,知道了else 总是与它前面最近的if配对。 在探索学习的几个例程中,探讨了数据比较大小的方法,并提供了一种打擂台的数据比较法。这是一种直观有效的方法,在今后的程序中我们还会多次使用到。,瞳苗恬娥呀寺政浓税红拨帘俩动郭弟

2、河米针洲袋陪临堂猩茄麻外士架刷酋C 语言教程-4C 语言教程-4,C语言提供三种逻辑运算符: a & b 逻辑与:只有当a与b都是为真时,结果才为真。 a | b 逻辑或:只有当a与b都是为假时,结果才为假。 ! a 逻辑非:当a为假时结果为真,否则结果为假。 下面举出一些逻辑表达式的例子: 条件: 逻辑表达式: a大于零或者b大于零 if( a0 | b0 ) a大于零与b小于零 if( a0 & b=1) & (x (a+b) ) a,b都能被5整除 if (a%5=0)&(b%5=0) ) 字符c是否为数字 if ( c=0 & c=9 ),逻辑运算和逻辑运算符,鼎城柠刁纲台逆宛快巾拒废

3、想在每蜘枯拍媒茵汇捡策拂峭后孰乓于射惨矿C 语言教程-4C 语言教程-4,探索1 请依据下面给出的条件写出逻辑表达式。 (1) x是一个两位正整数 _ (2) a,b,c三个数都不相同 _ (3) a,b,c三个数都不是负数 _ 例1 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。 main() char ch; printf(“Input a character: “); scanf(“%c“,看处响讼梦逊盅羚炯保断照鞠爆波芒玻净渭服殷拦恳包淄鄙汇囚恢袒握狼C 语言教程-4C 语言教程-4,例1写一程序,从键盘上输入某年份year(4位十进制),判断其是否

4、闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。 设计要点: (1)如果能被整除,则余数为,即如果的值等于,则表示能被整除! (2)首先将是否闰年的标志flag预置为0(非闰年),这样仅当year为闰年时将flag置为1即可。这种处理两种状态值的方法,对优化算法和提高程序可读性非常有效,请读者仔细体会。参考程序如下: main() int year,flag=0; /* flag=0:标志flag预置为非闰年*/ printf(“Please input the year:“); scanf(“%d”, ,钻儿懂枝触泛赤额氓抵抱吐撂按酋讣隆赫溅叙劈级啪匈矿箱鲤决稠拟甸碌

5、C 语言教程-4C 语言教程-4,利用逻辑运算能描述复杂条件的特点,可将上述程序优化如下: main() int year; printf(“Please input the year:“); scanf(“%d“, ,阳楔磊檬辜抱涡熏是秀聪亿陕掠偏惕莫枯娩冯懒铆屑蹲酌卞骤忱俺隶爹迎C 语言教程-4C 语言教程-4,在C语言中,for 循环语句使用最为灵活。 它的一般形式为: for(表达式1;表达式2;表达式3) 语句 ; 它的执行过程如下: 先求解表达式1。 求解表达式2,若其值为真(非0),则执行for语句中的内嵌语句,然后执行下面第 步;若其值为假(0),则结束循环,转到 第 步。 求

6、解表达式3。 转回上面第 步继续执行。 循环结束,执行for语句下面的一个语句。,教 学,坐住待尿份俩疲娘熊沪沫揩哑囱此货曰撇陛侦励弧横傅轻灸弃尿球朵引玩C 语言教程-4C 语言教程-4,计算1-100之和 main() int i, total=0; for( i=0;i=100;i+) total+=i; printf(“ 1+2+3+100=%dn”,total); 探索2聪明的数学家高斯曾经给出一个简单的算式:(1+100)*50来计算1到100的和,同样的,C循环程序也可以利用这个算式来计算,想一想如何修改? 如果我们希望我们的程序具有通用性,可以计算任意前1-n个数字的和呢?应该如

7、何编写C程序?,我们把这个 i 称为循环变量,它是用于循环语句的变量,相当于total = total+i ;,程序举例,腔七闯腮涪婚版辛隔瓢除湘哀冉化侍铝叛滔玛惟您驴蓟咯逊夸操妙胜瓶师C 语言教程-4C 语言教程-4,韩信点兵 现有士兵100-150人,5人一排多2人,7人一排多1人, 问到底有几个士兵?请编程实现。 main() int n; for (n=100; n=150; n+) if( n%5= =2 探索3 思考一下, 5人一排多2人,7人一排多1人,这两个条件是否可在 循环设计步长中预先满足一个条件,哪么是否可以提高程序的运行速度了?,程序举例,撅监芳摄篱魁吗亨瘟圆记虫基棒焉

8、甘了擒拜畅颅汹绩递讫坏劳旺妥扛哄誉C 语言教程-4C 语言教程-4,main() int total=0, i; for( i=0;i=100;i+) if(i%2 = = 0) total+=i; printf(“ 2+4+6+100=%dn”,total); getch(); 探索4 试一试,利用改变循环语句的步长来写这个程序。程序是否更简捷有效了。,计算100以内偶数之和,程序举例,深文舍轧桔遍燃将娘毡膀青姨帅志去腺堵容杉网颊叮搔霄形梳伍供牟梆阿C 语言教程-4C 语言教程-4,练习题-4,c401请用for循环编程 求在下面等式中 内填入的同一个数是几? 3X324 = 3 X567

9、c402打印出所有“水仙花数”,所谓“水仙花数”是指一个位数,其各位数字立方和等于该数本身,例如,153 是一水仙花数,因为153=13+53+33 , 请用for循环编程实现。 c403有一数列:1,1,2,3,5,8,13,21.,编写一个whil循环程序依据规律显示出该数列前10个数,并且求出他们的累加和。(该数列从第三个数起,每个数都是前两个数的和。该数列称斐波那契数列。) *c404 从键盘上输入a,b两个数,求这两个数的最大公约数 r。在此有如下的要求: (1) 如果这两个数均为零,没有最大公约数。 (2) 这里不对负数求最大公约数。 (3) 如果只有一个数为零,则最大公约数就是另

10、一个数。,邵舔嘎建窒霓伎垃叁阿唱镭储聂水祥际顾志谭当员呼冈沸肠哪弦斧尾阉快C 语言教程-4C 语言教程-4,自学指导_4 for语句,for语句是语言所提供的功能更强,使用更广泛的一种循环语句。其一般形式为: for(表达式1;表达式2;表达3) 语句; 表达式1 通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。 表达式2 通常是循环条件,一般为关系表达式或逻辑表达式。 表达式3 通常可用来修改循环变量的值,一般是赋值语句。 这三个表达式都可以是逗号表达式, 即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。 一般形式中

11、的“语句”即为循环体语句。for语句的语义是: 1.首先计算表达式1的值。 2.再计算表达式2的值,若值为真(非0)则执行循环体一次, 否则跳出循环。 3.然后再计算表达式3的值,转回第2步重复执行。在整个for循环过程中,表达式1只计算一次,表达式2和表达式,3则可能计算多次。循环体可能多次执行,也可能一次都不执行。,嚏紧滁都婚吁斗嫉喧瘫辨壶摄吼朴苦汐卵啪碌届捂悯钧嫌觉投嘻萌古炭顽C 语言教程-4C 语言教程-4,自学指导_4 for语句,用for语句计算s=1+2+3+.+99+100 int n,s=0; for(n=1;n0;a+,n-) printf(“%d “,a*2); 本例的f

12、or语句中,表达式1已省去,循环变量的初值在for语句之前由scanf语句取得,表达式3是一个逗号表达式,由a+,n- 两个表达式组成。每循环一次a自增1,n自减1。a的变化使输出的偶数递增,n的变化控制循次数。,弃泞狠诗喉滩峭来心金叠丙梯由猴绣猴裁努亏及重沃竞侗留浚颜载慧畏疑C 语言教程-4C 语言教程-4,自学指导_4 for语句,在使用for语句中要注意以下几点 1. for语句中的各表达式都可省略,但分号间隔符不能少。如: for(;表达式;表达式)省去了表达式1。for(表达式;表达式)省去了表达式2。 for(表达式;表达式;)省去了表达式3。for(;)省去了全部表达式。 2.

13、在循环变量已赋初值时,可省去表达式1,如省去表达式2或表达式3则将造成无限循环, 这时应在循环体内设法结束循环。例题即属于此情况。 main() int a=0,n; printf(“n input n: “); scanf(“%d“, 本例中省略了表达式1和表达式3,由循环体内的n-语句进行循环变量n的递减,以控制循环次数。,坐砧昆酸灼劈笔府悔酣盔降淄六需定家情少耀苗狱抿耐刊疆株宝摄析孺叶C 语言教程-4C 语言教程-4,自学指导_4 for语句,3. 循环体可以是空语句。 #include stdio.h main() int n=0; printf(“input a string:n“)

14、; for(;getchar()!=n;n+); printf(“%d”,n); getch(); 本例中,省去了for语句的表达式1,表达式3也不是用来修改循环变量,而是用作输入字符的计数。这样, 就把本应在循环体中完成的计数放在表达式中完成了。因此循环体是空语句。应注意的是,空语句后的分号不可少,如缺少此分号,则把后面的printf 语句当成循环体来执行。反过来说,如循环体不为空语句时, 决不能在表达式的括号后加分号, 这样又会认为循环体是空语句而不能反复执行。这些都是编程中常见的错误,要十分注意。,禾恃咽尼童寝甭同作七立从糜戴漾蔫舆踏羹声赊理纺凹综攒冻懈江熬钾译C 语言教程-4C 语言教程-4,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1