设为首页 加入收藏

TOP

实验四 选择结构程序设计
2014-11-23 17:37:11 来源: 作者: 【 】 浏览:4
Tags:实验 选择 结构 程序设计

实验四 选择结构程序设计


【目的与要求】


1.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);


2.学会正确使用逻辑运算符和逻辑表达式;


3 熟练掌握if语句和switch语句。


【上机内容】


【一般示例】


【例1 已知三个数abc,找出最大值放于max中。


分析:由已知可得在变量定义时定义四个变量abcmaxabc是任意输入的三个数,max是用来存放结果最大值的。第一次比较ab,把大数存入max中,因ab都可能是大值,所以用if语句中if——else 形式。第二次比较maxc,把最大数存入max中,用if语句的第一种形式if形式。Max即为abc中的最大值。


include "stdio.h"


main()


{


int a,b,c,max; /*定义四个整型变量*/


scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);


if (a>=b)


max=a; /*a>=b*/


else


max=b; /*a


if (c>max)


max=c; /*c是最大值*/


printf("max=%d",max);


}


若输入下列数据,分析程序的执行顺序并写出运行结果


1a=1b=2c=3


2a=2b=1c=3


3a=3b=2c=1


4a=3b=1c=2


5a=3b=3c=2


6a=2b=1c=2


【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下:


90分以上(包括90): A


8090分(包括80):B


7080分(包括70):C


6070分(包括60):D


60分以下: E


方法一:(if嵌套`)


分析:


由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。


#include"stdio.h"


main()


{


int score;


char grade;


printf("\nplease input a student score:");


scanf("%f",&score);


if(score>100||score<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("\nthe student grade:%c",grade);


}


}


输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。



方法二:用switch语句


分析:


switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),BCD类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。


#include"stdio.h"


main()


{


int g,s;


char ch;


printf("\ninput a student grade:");


scanf("%d",&g);


s=g/10;


if(s<0||s>10)


printf("\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】有一函数:


scanf函数输入x的值(分别为x<1,1~10,>=10三种情况),y值。


分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。


main()


{


int x,y;


printf(“please input x :”);


scanf(“%d”,&x);


if (x<1)


{


y=x;


printf(“y=%d\n”,y);


}


else if (x<10)


{


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+b>c&&b= =c


(2) a||b+c&&b-c


(3) (a>b)&&!c||1


(4) !(x=a)&&(y=b)&&0


(5) !(a+b)+c-1&&b+c/2


3. 3个整数abc,由键盘输入,输出其中最大的数。


4.有一函数:


写一程序,输入x, 输出y


5.给出一百分制成绩,要求输出成绩等级ABCDE90分以上为A80~89B 70~79分为C60~69分为D60分以下为E


6 给一个不多于5位的正整数,要求:


a. 求出它是几位数;


b. 分别打出每一位数字;


c. 按逆序打出各位数字,例如原数为321,应输出123


7.输入4个整数,要求按由小到大的顺序输出。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇实验五 循环结构程序设计 下一篇实验三 简单的C程序设计

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: