c语言程序设计上机指导习题选解实验四选择结构程序设计北京邮电大学,C语言实验习题实验四 选择结构程序设计.doc...

您所在位置:网站首页 > 海量文档

&nbsp>&nbsp计算机&nbsp>&nbspC/C++资料

7e3e25dd1884ce9b7725a69a698d5758.gif

C语言实验习题实验四 选择结构程序设计.doc4页

本文档一共被下载:2377011b61454b208b34ad77b4c31088.gif次,您可全文免费在线阅读后下载本文档。

072ad097814a33d1ad18e33ca14a5a9e.png

9ec2792a743ebdf4575ee09a03c275ea.png

7af312d1be2cfc1e59f15880bb7a7e7a.png

5f207613e329ca76dc87c76d3ff77e64.png

adf7aa3071c520b8a2063089f549261c.png

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

2.该文档所得收入(下载+内容+预览三)归上传者、原创者。

3.登录后可充值,立即自动返金币,充值渠道很便利

实验四 选择结构程序设计

【目的与要求】

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 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);

}

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

(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): 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嵌套前,应先判断输入的成绩是否在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以外),B,C,D类的成绩的共同特点是十位数相同,此外都是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';

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名:

验证码:

c9f2bced460b0329ba0aadbbc3f0fc71.png

匿名?

发表评论

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值