2 有选择功能的C程序.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2 有选择功能的C程序

有选择功能的C程序 第2单元 2.1从键盘输入的任意两个数再按升序输出 两种可能,选择其中一种。这是构成复杂选择的基础。 2.1.1 问题分析与参考代码 问题分析 从键盘输入任意两个数,先后用变量firstNumber和secondNumber存储,且以相同顺序输出欲得到升序序列,则可以按如下方法进行处理: 2.1.2 关系运算符与关系表达式 关系操作的结果只能有两个:true(命题成立,为“真”)和false(命题不成立,为“假”)。 这个概念与数学中的概念不同。例如,在数学中,只能写3 5,而在程序中可以写 3 5,也可以写3 ==5,还可以写3 5。 C99定义取值为1、0的_Bool类型。如果包含了头文件vstdbool.h,则可以使用名字true和false分别代表1和0 (4)在计算机程序中,一个逻辑关系的表达可以有不同的形式。例如,本例中的if-else结构可以改写为 if (firstNumber secondNumber) { temp = firstNumber; firstNumber = secondNumber; secondNumber = temp; }else { firstNumber = firstNumber; secondNumber = secondNumber; } (5)由于浮点数具有近似性,所以不适宜做相等或不相等比较。代替相等比较的方法是测试两个数之差的绝对值是否小于一个比较小的数。 (6)在C语言中,运算符具有两个重要性质:优先级别和结合方向。即在一个表达式中,首先要进行优先级别最高的运算符。若在一个表达式中相同优先级别的运算符相遇,则按照结合方向进行计算。表2.2为已经介绍过的几个运算符的优先级别和结合方向。 表2.2 已经介绍过的几个运算符的优先级别和结合方向 2.1.3 if-else二分支选择结构 if(firstNumber secondNumber){ temp = firstNumber; firstNumber = secondNumber; secondNumber = temp; } 2.1.4 程序测试 (1)语法错误。一个C语言程序中任何不符合C语言语法规则的情况,都会造成语法错误,例如: 主函数名写成Main。 一个语句没有用西文分号结束,而是用了“。”号、“.”号、中文分号(;)等结束。 一个语句块的前后花括号不配对,或配对错误。 文件包含命令后使用了分号。 …… (2)逻辑错误。逻辑错误是指程序没有按照设计者预期的思路执行,虽然可以执行,但得不到预期的结果。下面是几种常见的逻辑错误。 运算符使用不正确。例如将if(a b)写成了if(a b),或写成了if(a = b)。 语句的先后顺序不对。 …… (3)运行中错误,也称程序异常,主要指由于用户操作而造成程序无法运行的错误。例如:数组下标越界,算法溢出(超出数值表达范围),除数为零,无效参数、内存溢出、要使用的文件打不开、网络连接中断等。 2. 程序测试及其观点 实际上前一种观点将指导一种自欺欺人的行为,它对于提高程序的质量毫无价值。正确的观点是后者,Glenford J.Myers把它归结为如下三句话: 3.测试可以有两种方法:静态测试和动态测试。 3. 代码2.2的测试 基于分支覆盖,本例可以采用如下一组测试用例: (1)除数为0,如用6作为被除数,用0作为除数。 (2)除数不为0,如用6作为被除数,用2作为除数。 KR(Kernel)风格: if□ (…) □{ ???????? // … } □ else □{ // … } Allman(BSD,学生)风格: if □ (…) { ?????????// … } else { // … } Whitesmith风格:  if (…) { ????????// … ???? } else { // … } GUN风格: if □(…) { ?????????// … ??? ?} else { // … } 2.2 三中取大 从键盘输入3个数,输出其中最大的一个数。。 2.2.1 算法分析与参考代码 1.基本解题思路: 2. 参考代码——代码2.3:多分支if-else结构的C程序。 #include stdio.h int main(void){ int a,b,c; printf(\nEnter 3 integers separated by spaces:); scanf(

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档