
C语言实验习题实验四选择结构程序设计.doc
4页实验四选择结构程序设计【目的与要求】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语句中if else形式第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式Max即为a, b, c中的最大值 include "stdio.h" main(){/*定义四个整型变量*/int 4b,c,max;scanf("a=%d,b=%d,c=%d”,&a,&b,&c);if (a>=b)max=a; /*a>=b*/elsemax=b; /*avb*/if (c>max)max=c; /*c是最大值*/printf(nmax=%dn,max);}若输入下列数据,分析程序的执行顺序并写出运行结果(1) a=l, b=2, c=3(2) a=2, b= 1, c=3(3) a=3, b=2, c=l(4) a=3, b=l, c=2(5) a=3, b=3, c=2(6) a=2, b= 1, c=2【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下:90分以上(包括90): A 80至90分(包括80): B70至80分(包括70): C 60至70分(包括60): D60分以下: E方法一:(用if嵌套') 分析: 由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否 则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60 分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理, 输出出错信息。
因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间include"stdio.hnmain(){int score;char grade;printf("\nplease input a student score:");scanf("%f",&score);if(score> 100llscore<0)printf("\ninput error!");else( if(score>=90)grade=,A';else( if(score>=80)grade='B';else(if(score>=70)grade=,C,;else( if(score>=60)grade='D';else grade=*E';printf(n\nthe student grade:%c",grade);}}输入测试数据,调试程序测试数据要覆盖所有路径,注意临界值,例如此题中得100分, 60分,0分以及小于0和大于100的数据方法二:用switch语句分析:switch语句是用于处理多分支的语句注意,case后的表达式必须是一个常量表达式,所以 在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。
所有A (除100以 外,B, C, D类的成绩的共同特点是十位数相同,此外都是E类贝U山此可得把score除 十取整,化为相应的常数include"stdio.h"main() int g,s; char ch;printf("\ninput a student grade:");scanf(”%d”,&g);s=g/10;if(s<0lls>10)printf(n\ninput error!");else( switch (s)( case 10:case 9: ch='A'; break;case 8: ch='B‘; break;case 7: ch='C'; break;case 6: ch='D'; break;default: ch='E‘;}printf("\nthe student scort:%c",ch);}}输入测试数据,同方法一一样调试程序并写出结果例3】有一函数:x x
所以应使用If语句 main()(int x,y;printf(4
7. 输入4个整数,要求按由小到大的顺序输出。












