欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言第4章 选择结构程序设计习题答案.pdf

    • 资源ID:71697805       资源大小:219.10KB        全文页数:4页
    • 资源格式: PDF        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言第4章 选择结构程序设计习题答案.pdf

    第第 4 4 章章 选择结构程序设计选择结构程序设计习题(习题(P111P111)4.2 C4.2 C 语言中如何表示“真”和“假”?系统如何判断一个量的“真语言中如何表示“真”和“假”?系统如何判断一个量的“真 和“假”和“假”?答:答:C C 语言中用语言中用 1 1 表示真,表示真,0 0 表示假;系统按照“表示假;系统按照“非非 0 0 为真,为真,0 0 为假为假 判断一个逻辑量的真假判断一个逻辑量的真假.4.34.3 写出下面各逻辑表达式的值。设写出下面各逻辑表达式的值。设 a=3,b=4a=3,b=4,c=5.c=5.(1 1)a+bc&b=ca+bc&b=c(2)a|b+c&2)a|b+c&b-cb-c(3(3)!(ab)&(ab)&!c c1 1(4(4)!(x=ax=a)&(y=b)&(y=b)0 0(5 5)!(a+b)+ca+b)+c1 1&b+c/2&b+c/2解:解:该题在求解过程中注意该题在求解过程中注意:一、一、优先级。优先级。逻辑运算符逻辑运算符(&和和)低于算术运算符和关系运算符而高于赋值运算符低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;逻辑非最高,逻辑与其次,逻辑或最低;二、逻辑表达式的求值规则。二、逻辑表达式的求值规则。(P94)P94)所以得以上表达式的值分别为:所以得以上表达式的值分别为:(1)01)0(2)12)1(3 3)1 1(4 4)0 0(5)1(5)14.44.4 有有 3 3 个整数个整数 a a、b b、c c,由键盘输入,由键盘输入,输出其中最大的数。输出其中最大的数。分析分析:这是一个规模较小的这是一个规模较小的求最值求最值的算法,习题的算法,习题1 1。6 6 用函数的方法实现。该题不用函数调用实现,但方用函数的方法实现。该题不用函数调用实现,但方法类似法类似.法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。法二:先假设第一个数法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。参考程序如下参考程序如下:法一法一:mainmain()()int a,bint a,b,c c,max;max;/*/*定义定义 4 4 个整型变量个整型变量,其中其中 a a,b,cb,c 存原始数据,存原始数据,maxmax 存最值存最值*/*/printf(”printf(”ninput the value of aninput the value of a,b b,c:”c:”);/提示输入提示输入*/*/scanfscanf(%d%dd dd”,d”,a a,b b,&c&c);/格式符之间无分隔符,格式符之间无分隔符,输入时可以以空格、输入时可以以空格、回车、回车、跳格分隔跳格分隔/if if(ab)ab)max=amax=a;elseelsemax=b;max=b;if(maxcif(maxc)max=c;max=c;printf(”printf(”nmax=nmax=ddn”n”,max);max);法二:法二:mainmain()int a,b,c,maxint a,b,c,max;printf(”printf(”ninput the value of a,bninput the value of a,b,c:”)c:”)scanfscanf(d%d%d,&a,&b,d%d%d,&a,&b,c c);max=amax=a;if if(maxmaxb b)max=b;max=b;if(maxc)if(maxc)max=cmax=c;printfprintf(nmax=nmax=ddn”,max)n”,max);4 4。6 6 有一个函数有一个函数:写一段程序,写一段程序,输入输入 x x,输出输出 y y 的值。的值。分析分析:这是一个典型的分断函数的求解应用这是一个典型的分断函数的求解应用.运行时从键盘输入运行时从键盘输入 x x 的值的值,再判断其范围根据表达式计算再判断其范围根据表达式计算 y y值并输出即可。该题的关键是如何判断值并输出即可。该题的关键是如何判断x x 值的范围,需要用到嵌套的分支选择语句。具体方法比较多值的范围,需要用到嵌套的分支选择语句。具体方法比较多,可以先可以先确定任意一个范围,在确定其余范围时可以用到前一条件不满足的隐含条件确定任意一个范围,在确定其余范围时可以用到前一条件不满足的隐含条件.注意嵌套语句中注意嵌套语句中 elseelse 和和 if if 的配的配对关系。另外仍然要注意对关系。另外仍然要注意 C C 语言表达式和数学表达式的区别,乘号()在语言表达式和数学表达式的区别,乘号()在 C C 语言表达式中一定不能省略。语言表达式中一定不能省略。参考程序如下参考程序如下:#includestdio#includehmainmain()float xfloat x,y;y;printfprintf(”input x:”)”input x:”);scanfscanf(%f%f,x x);if if(x1)x1)y=x;y=x;else if(x10else if(x=1x=1*/*/y=2*xy=2*x1 1;elseelse/前两个条件都不满足,则隐含条件为前两个条件都不满足,则隐含条件为 x x=10=10*/*/y=3*x-11y=3*x-11;printf(y=printf(y=fn,yfn,y);对上述参考答案中加粗部分语句的改写方法对上述参考答案中加粗部分语句的改写方法:if(x10)if(x=10)if(x=10)if(x=1&x=1&x=10)if(x1)y=x;if(x1)y=x;y=3*x-11;y=3*x-11;y=2*x-1;y=2*x-1;elseelsey=2*x-1;y=2*x-1;elseelseif(x1)if(x10)else if(x10)y=3*x-11;y=3*x-11;else y=3*x-11;else y=3*x-11;elseelsey=2*x-1;y=2*x-1;elseelsey=x;y=x;思考思考:还有其他的改写方法吗?请动手写一写。:还有其他的改写方法吗?请动手写一写。4 4。8 8 给出一给出一百分制成绩百分制成绩,要求输出成绩要求输出成绩等级等级AA、BB、CC、DD、EE。9090 以上为以上为A,8089A,8089 分为分为BB,70707979 分分为为CC,60696069 分为分为DD,6060 分以下为分以下为EE.分析分析:该题是一个多分支选择的应用。该题是一个多分支选择的应用。C C 语言中实现多分支选择的方法可以用语言中实现多分支选择的方法可以用 ifelseifelse 嵌套语句或用嵌套语句或用 switchswitch语句,该题这两种方法都可以实现。在用语句,该题这两种方法都可以实现。在用 if ifelseelse 实现的时候注意实现的时候注意 elseelse 和和 if if 的配对,方法同上题;用的配对,方法同上题;用 switchswitch语句实现的时候注意成绩处理为可以列举的值,方法是将成绩取整后整除语句实现的时候注意成绩处理为可以列举的值,方法是将成绩取整后整除 1010,这样百分制的成绩只有,这样百分制的成绩只有 1111 种种可能了可能了.参考程序如下:参考程序如下:法一法一(if(ifelseelse 语句实现)语句实现):main(main()float score;float score;/存放输入的百分制成绩存放输入的百分制成绩*/*/char grade;char grade;/存放等级存放等级*/*/printf(”printf(”nPlease input the scorenPlease input the score:);/提示输入提示输入*/*/scanf(”%fscanf(”%f,score)score);/完成输入完成输入/while(scorewhile(score100100|score|score 0)0)/*/*对输入的成绩进行合法性检查对输入的成绩进行合法性检查/printf(Score input error printf(Score input error!nPlease input the score:nPlease input the score:);/*/*若不合法则提示重新输入若不合法则提示重新输入*/*/scanf(”scanf(”f”,&scoref”,&score);/*/*重新输入重新输入*/*/printf(”printf(”n”n”);/以下对成绩进行判断以下对成绩进行判断,计算出对应的等级计算出对应的等级*/*/if(score=90)grade=Aif(score=90)grade=A;else ifelse if(score=80score=80)grade=Bgrade=B;else ifelse if(score=70)score=70)grade=Cgrade=C;else if(score=60else if(score=60)grade=Dgrade=D;else grade=Eelse grade=E;printf(Score=printf(Score=%g%gGrade isGrade is%c%c n”n”,scorescore,gradegrade);/输出结果输出结果*/*/法二(法二(switchswitch 语句实现语句实现):mainmain()()float scorefloat score;char gradechar grade;printf(”printf(”nPlease input the scorenPlease input the score:);scanf(”scanf(”f,f,scorescore);whilewhile(score100|score100|score 0score 99999num99999)/*/*检查输入数据的合法性检查输入数据的合法性*/*/printf printf(”nInput ErrornInput Error!Please rePlease reenterenter:);scanf(”%ld”,&num)scanf(”%ld”,&num);/*/*一组一组 ifelseifelse 的嵌套确定输入的的嵌套确定输入的 numnum 是几位数是几位数/if if(numnum1010)w=1w=1;else if(numelse if(num100100)w=2w=2;else if(numelse if(num10001000)w=3;w=3;else if(numelse if(num1000010000)w=4;w=4;else w=5else w=5;/*/*根据位数分解根据位数分解 numnum 的各位数字的各位数字*/*/switchswitch(w w)case 5 case 5:e=num/10000;e=num/10000;/万位存于变量万位存于变量 e e 中中*/*/case 4case 4:d=num/1000d=num/10001010;/千位存于变量千位存于变量 d d 中中*/*/case 3:c=num/100%10case 3:c=num/100%10;/*/*百位存于变量百位存于变量 c c 中中*/*/case 2case 2:d=num/10d=num/1010;10;/*/*十位存于变量十位存于变量 b b 中中/case 1:a=num%10;case 1:a=num%10;/*/*个位存于变量个位存于变量 a a 中中/*/*顺序、逆序输出分解后的各位数字顺序、逆序输出分解后的各位数字/switchswitch(w)w)case 5:printfcase 5:printf(Shunxu:Shunxu:d dd%dd%dd%dnd%dn,e,de,d,c,b,a)c,b,a);printf(Nixuprintf(Nixu:d dd%dd%dd%dd%dn”,n”,a,b a,b,c c,d d,e);e);break;break;case 4:printfcase 4:printf(ShunxuShunxu:%d%d%d%dd%dd%dn”n”,a,b,c,da,b,c,d);printfprintf(Nixu:Nixu:d%dd%dd%dd%dn”,d,c,b,a)n”,d,c,b,a)break;break;case 3:printfcase 3:printf(ShunxuShunxu:%d%d%d%d%d%dn”n”,a a,b,c)b,c);printfprintf(”Nixu”Nixu:%d%dd dddn”n”,c,b,ac,b,a);breakbreak;case 2case 2:printfprintf(Shunxu:Shunxu:d ddn,adn,a,b b);printf(Nixuprintf(Nixu:%d%dddn”,bn”,b,a);a);break;break;case 1:printf(Shunxucase 1:printf(Shunxu:%d%dddn”,an”,a,b b);printf(Nixu:%d%dprintf(Nixu:%d%dn”,b,a)n”,b,a);break;break;4 4。1111 输入输入 4 4 个整数,要求按照由小到大的顺序输出个整数,要求按照由小到大的顺序输出.分析分析:小规模数据的简单排序可参考:小规模数据的简单排序可参考 P88P88 例例 4.3,4.3,先将第一个变量和其后各变量逐一比较,逆序交换,最先将第一个变量和其后各变量逐一比较,逆序交换,最终将最值存于第一个变量中;然后将第二个变量和其后各变量再逐一比较,逆序交换,将第二个最值存于第终将最值存于第一个变量中;然后将第二个变量和其后各变量再逐一比较,逆序交换,将第二个最值存于第二个变量中;以此类推,直到最的两个变量比较二个变量中;以此类推,直到最的两个变量比较,逆序交换。最后按顺序输出各变量的值即为有序。逆序交换。最后按顺序输出各变量的值即为有序。参考程序如下:参考程序如下:mainmain()()int aint a,b,cb,c,d d,t t;printf(”printf(”nn 请输入请输入 4 4 个整数个整数:);scanf(”%d%d%dscanf(”%d%d%dd”,&a,&b,&c,d”,&a,&b,&c,d d);if if(a ab b)t=a;a=bt=a;a=b;b=tb=t;if if(a ac c)t=at=a;a=c;c=t;a=c;c=t;if(aif(ad)d)t=a;a=d;d=t;t=a;a=d;d=t;if(bcif(bc)t=bt=b;b=c;c=t;b=c;c=t;if if(bdbd)t=b;b=d;d=t;t=b;b=d;d=t;if(cd)t=c;c=dif(cd)t=c;c=d;d=t;d=t;printfprintf(排序的结果是:排序的结果是:d,d,d d,%d%d,%dn,a%dn,a,b,c,d)b,c,d);补充题:输入三个整数 a,b,c,判断其是否能构成三角形?是何种三角形(等腰/等边/普通)?

    注意事项

    本文(c语言第4章 选择结构程序设计习题答案.pdf)为本站会员(ylj18****70940)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开