- 1、本文档共81页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3 选择结构程序设计 学习方法: 课前按照授课计划上指明的进度预习 上课认真听讲,课件可下载作为笔记 课下参照教材理解课件上所讲的内容和相关知识点 完成作业上机调试 例1:比较两个数 从键盘输入两个数,输出其中最大的一个数。 问题分析 程序1 涉及的语法 选择结构语句格式 if(条件表达式) { … … } else { … … } 涉及的语法-关系运算符 = = == != 大于,小于,大于等于,小于等于,等于,不等于 运算结果只有两个值:0和非0,0表示假,即该关系不成立;非0,表示真,即该关系成立 例如:2006%4==0的结果是? 0,表示假(关系不成立) 程序2 例2:判断闰年 从键盘上输入一个年份,然后判断这个年份是否为闰年。 分析结果(算法) 输入year 判断year是否为闰年 输出yes或no 分析 year能被4整除且不能被100整除,或者year能被400整除 (?)或者(?) (?且?)或者(?) (??)||(?) (year%4==0year%100!=0)||(year%400==0) 结果 #include stdio.h void main()/*判断闰年*/ { int year; printf(“please input year:”); scanf(“%d”,year); if((year%4==0year%100!=0)||(year%400==0)) { printf(“%d is a leap year!”,year);/*一般要缩进*/ } else { printf(“%d is not a leap year!”,year); /*缩进与上边一致*/ } } 简单的程序测试 一次输入,得到正确的输出结果并不能说明问题,要精心选择不同的输入,反复进行测试,才能逐渐发现程序里的问题 程序测试分为结构测试和功能测试两类 结构测试又为分: 语句覆盖法 分支覆盖法 条件覆盖法 组合条件覆盖法 对于前一个例题,最好根据条件中的三个表达式的组合,即选择2*2*2=8个输入进行程序的测试。 涉及的语法-逻辑运算符 逻辑运算也被称为布尔(Boolean)运算,即参与运算的数据和运算结果都只有两个值:0和非0,0表示假(条件不成立);非0表示真(条件成立) 与运算(相当于而且) a b当且仅当两者都为真,则结果为真 ( a b b c);a大于b,并且b大于c 或运算|| (相当于或者) a || b只要两者中有一个为真,结果就为真 ( a b || b c); a大于b,或者b大于c 求反! 单目运算符 ( !a );如果a是0,结果非0;如果a是非0,结果是0 并不改变a的值 练习1:从键盘上输入一个字符,判断它是否是小写字母? #include stdio.h void main() { char c; printf(“please input a character:”); c=getchar();/*从键盘上输入一个字符并存储到变量C中*/ if( (c=’a’c=‘z’) ) { printf(“%c is a letter!”,c); } else { printf(“%c is not a letter!”,c); } } 作业1 求三个数的最大值。 验证题:练习1中的表达式写成’a’ =c=‘z’ ,并分别选取三种数据:小于‘a’的,小字字母,大于‘z’的字符输入,验证这种写法是否正确?再写成c=’a’c=‘z’验证一下。 选做:求一元二次方程ax2+bx+c=0的根,整数系数从键盘输入。(应该根据输入的系统判断是否为一元二次方程,是否有根等情况) 作业1讲评 求三个数的最大值 #includestdio.h void main()/*方法1*/ { int a,b,c,max; printf(Please input 3 integers:); scanf(%d %d %d,a,b,c); if (ab)/*求出a,b的最大值,放入max*/ max=a; else max=b; if (maxc) /*求出max,c的最大值并输出*/ printf(The Max is :%d\n,max); else printf(The Max is :%d\n,c); getchar(); } 作业1讲评-写法2 #includestdio.h void main()/*方法
文档评论(0)