实验5选择结构答案.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上机实验五 选择结构程序设计 学号 姓名 一.目的要求 掌握运用关系运算和逻辑运算表示各种条件; 掌握字符型变量的定义方法和输入字符的方法; 掌握if语句的使用方法;掌握switch语句的语法规则、执行流程; 掌握break语句在switch语句和循环语句中的作用。 二.实验内容 【实验题1】. 程序填充:输入年份year, 判断并输出该年份是否是闰年(leap year)?如输入2000,则显示“2000 is a leap year!”,输入2100,则显示“2100 is not a leap year!”. 提示:判断年份year是闰年的条件是: (1) 能被400整除, 或者 (2) 能被4整除但不能被100整除. 如何用逻辑或“||”和逻辑与“”,结合求余运算“%”以及关系运算“==”和“!=”表示该条件? 源程序: 编译、连接并运行该程序:如果输入2000,则显示2000 is a leap year!;如果输入2008,则显示2008 is a leap year!;如果输入2100,则显示 2100 is not a leap year! 。 【实验题2】程序填充:输入15个字符,统计英文字母、空格、数字和其它字符的个数。 源程序如下: 编译、连接并运行程序,输入aB 5cd *!221?, 则结果显示:digit=4, letter=4, blank=2, other=5 如果删除标有/*line 5 */的语句行,并将标有/*line 3*/的语句行改写为“int i,digit=blank=letter=other=0;”,重新编译时是否正确?应如何修改这一行才能保证程序的正确性? 不正确。编译时系统提示错误:blank、letter、other等变量不可识别(undentified)。在定义变量时不可用连等式对多个变量同时赋值,而应当分别赋值,故line 3应改为 int i, digit=0, blank=0, letter=0, other=0; 【实验题3】.阅读程序并回答问题:输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”,其中90~100分为“A”,81~89分为“B”,70~79为“C”,60~69为“D”,60分以下为“E”。源程序如下: 编译、连接并运行该程序,测试结果如下: score grade 45 E 65 D 77 C 89 B 92 A 100 A 问题1:在line 4中,为何将变量grade定义为char型? 在程序中,变量grade的取值为A、B、C、D、E,是典型的字符型(char)变量。 问题2:在line 8中,switch(s)能否改为“switch(score)”? 不能——尽管score也是整型,但其取值范围太广泛,无法在switch语句的case中一一列举,而s取值范围有限(0、1、2、3、4、5、6、7、8、9、10),更适合于在switch中一一列举。 问题3:如果将line 9改写为“case 10: ”,程序是否依然能正确地将100分对应为’A’? 能,按照switch语句段执行流程,当某个case分支中无任何对应的语句时,将会自动执行下一个case分支中的语句。程序中Line9与line 10对应的都是等级为‘A’的情况,因此,完全可以省略case 10:后面的语句。 问题4:如果删除line 9~line 14中所有的break语句,程序运行结果是否正常? 不正常,如果删除default分支之外的其他case分支中的break语句,会导致执行完对应的case分支之后继续执行后面其他分支的语句。在该程序中,则是输入任意成绩,等级都将显示为‘E’。 问题5:在line 16中的函数putchar(grade)的功能是什么?将该行改写为“printf(%c”, grade); ”程序运行时显示结果是否相同? 函数putchar(grade)的功能也是输出字符变量grade的值。相同。 【实验题4】程序设计:输入一个三位数的整数n,判断n是否为Amstrong数。所谓Amstrong数,是指该数的个、十、百位上的数字的立方和恰好等于该数本身,如153,370,371和407都是Amstrong数。 【分析】难点1:如何解析出一个三位数n的个位数g、十位数s、百位数b? ~~三位数n除以10,余数正好是该整数的个位数,故可以用求余运算“%”求g,即g= n%10; ~~三位数n除以100,商正好是n的百位数,故可以用整除运算“/”求b, 即b= n/100; ~~三位数n除以10,商是n的百位与十位 ,再将该商除以10,余数正好是n的十位数s,即

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档