您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言--实验四-选择结构程序设计
实验四选择结构程序设计【目的与要求】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中的最大值。#includestdio.hmain(){inta,b,c,max;/*定义四个整型变量*/scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);if(a=b)max=a;/*a=b*/elsemax=b;/*ab*/if(cmax)max=c;/*c是最大值*/printf(max=%d,max);}若输入下列数据,分析程序的执行顺序并写出运行结果(1)a=1,b=2,c=3(2)a=2,b=1,c=3(3)a=3,b=2,c=1(4)a=3,b=1,c=2(5)a=3,b=3,c=2(6)a=2,b=1,c=2【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下:90分以上(包括90):A80至90分(包括80):B70至80分(包括70):C60至70分(包括60):D60分以下:E方法一:(用if嵌套`)分析:由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。#includestdio.hmain(){intscore;chargrade;printf(\npleaseinputastudentscore:);scanf(%f,&score);if(score100||score0)printf(\ninputerror!);else{if(score=90)grade='A';else{if(score=80)grade='B';else{if(score=70)grade='C';else{if(score=60)grade='D';elsegrade='E';}}}printf(\nthestudentgrade:%c,grade);}}输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。方法二:用switch语句分析:switch语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。#includestdio.hmain(){intg,s;charch;printf(\ninputastudentgrade:);scanf(%d,&g);s=g/10;if(s0||s10)printf(\ninputerror!);else{switch(s){case10:case9:ch='A';break;case8:ch='B';break;case7:ch='C';break;case6:ch='D';break;default:ch='E';}printf(\nthestudentscort:%c,ch);}}输入测试数据,同方法一一样调试程序并写出结果。【例3】有一函数:y=xx12x-11=x103x-11x=10用scanf函数输入x的值(分别为x1,1~10,=10三种情况),求y值。分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。main(){intx,y;printf(“pleaseinputx:”);scanf(“%d”,&x);if(x1){y=x;printf(“y=%d\n”,y);}elseif(x10){y=2*x-1;printf(“y=%d\n”,y);}else{y=3*x-11;printf(“y=%d\n”,y);}【作业】1.c语言如何表示“真”与“假”?系统如何判断一个量的“真”与“假”?2.写出下面各逻辑表达式的值。设a=3,b=4,c=5(1)a+bc&&b==c(2)a||b+c&&b-c(3)!(ab)&&!c||1(4)!(x=a)&&(y=b)&&0(5)!(a+b)+c-1&&b+c/23.有3个整数a、b、c,由键盘输入,输出其中最大的数。4.有一函数:y=xx12x-11=x103x-11x=10写一程序,输入x,输出y。5.给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。6.给一个不多于5位的正整数,要求:a.求出它是几位数;b.分别打出每一位数字;c.按逆序打出各位数字,例如原数为321,应输出123。7.输入4个整数,要求按由小到大的顺序输出。
本文标题:C语言--实验四-选择结构程序设计
链接地址:https://www.777doc.com/doc-4639530 .html