c51程序设计语言选择结构有哪几种语句,C语言--实验四-选择结构程序设计.doc

C语言--实验四-选择结构程序设计.doc

实验四 选择结构程序设计 【目的与要求】 1了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”); 2学会正确使用逻辑运算符和逻辑表达式; 3 熟练掌握if语句和switch语句。【上机内容】【一般示例】【例1】 已知三个数a,b,c,找出最大值放于max中。分析由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中ifelse 形式。第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。Max即为a,b,c中的最大值。include stdio.hmain int a,b,c,max; /*定义四个整型变量*/scanf“ad,bd,cd”,a,b,c;if abmaxa; /*ab*/else maxb; /*ab*/if cmax maxc; /*c是最大值*/printfmaxd,max; 若输入下列数据,分析程序的执行顺序并写出运行结果(1)a1,b2,c3 (2)a2,b1,c3 (3)a3,b2,c1 (4)a3,b1,c2 (5)a3,b3,c2 (6)a2,b1,c2 【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下 90分以上(包括90) A 80至90分(包括80)B 70至80分(包括70)C 60至70分(包括60)D 60分以下 E方法一用if嵌套分析由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0100之间。includestdio.hmain int score;char grade;printfnplease a student score;scanff,score;ifscore100score0 printfn error;else ifscore90 gradeA; else ifscore80 gradeB; else ifscore70 gradeC; else ifscore60 gradeD; else gradeE; printfnthe student gradec,grade; 输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。 方法二用switch语句分析switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。includestdio.hmainint g,s;char ch;printfn a student grade;scanfd,g;sg/10;ifs0s10printfn error;else switch s case 10 case 9 chA; break; case 8 chB; break; case 7 chC; break; case 6 chD; break; default chE; printfnthe student scortc,ch; 输入测试数据,同方法一一样调试程序并写出结果。【例3】有一函数yxx12x-11x103x-11x10用scanf函数输入x的值分别为x1,110,10三种情况,求y值。分析y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。main int x,y;printf“please x ”;scanf“d”,x;if x1yx;printf“ydn”,y;else if x10 y2*x-1;printf“ydn”,y;else y3*x-11;printf“ydn”,y; 【作业】1. c语言如何表示“真”与“假”系统如何判断一个量的“真”与“假”2. 写出下面各逻辑表达式的值。设a3,b4,c51 abcb c2 abcb-c3 abc14 xayb05 abc-1bc/23. 有3个整数a、b、c,由键盘输入,输出其中最大的数。4有一函数yxx12x-11x103x-11x10写一程序,输入x, 输出y。5给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089为B, 7079分为C,6069分为D,60分以下为E。6 给一个不多于5位的正整数,要求a. 求出它是几位数;b. 分别打出每一位数字;c. 按逆序打出各位数字,例如原数为321,应输出123。7输入4个整数,要求按由小到大的顺序输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值