C语言实验三程序、总结 逻辑运算和选择结构程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三逻辑运算和选择结构程序设计
一实验目的
1 掌握C语言表示逻辑量的方法(0代表“假”,1代表“真”);
2 学会正确使用逻辑运算符和逻辑表达式;
3 熟练掌握if语句和switch语句。
二实验内容
1 已知三个整数a,b,c,找出最大值放在max中。
#include
main()
{ 定义整数变量a,b,c,max;
键盘输入3个整数a,b,c;
在a,b中间求出较大数max(如果a>=b,则max=a;否则max=b);
c与max比较,如果c>max,则max=c;
输出最大数max;
}
根据上面的算法,编写程序;若输入下列数据,分析程序的执行顺序并写出输出结果。
程序如下:
#include
main()
{ int a,b,c,max;
printf("请输入3个整数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>=b) max=a;
else max=b;
if(c>max) max=c;
printf("max=%d\n",max);
}
输出如下:
2 输入某学生的成绩,经处理后给出学生的等级,等级如下:
90分以上(包括90):A 80~90分(包括80):B 70~80分(包括70):C
60~70分(包括60):D 60分以下:E
方法一:用嵌套的if语句
#include "stdio.h"
main()
{ 定义整数变量:成绩score,字符型变量:等级grade;
输入学生成绩score;
如果score>100或score<0,则输出信息:“输入成绩错误!”;
否则 { 如果score>=90,则等级grade='A';
否则如果score>=80,则等级grade='B';
否则如果score>=70,则等级grade='C';
否则如果score>=60,则grade='D';
否则grade='E';
输出成绩等级grade;
}
}
输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中100分,60分,0分以及小于0和大于100的数据。如果稍不注意就会出现小的程序缺陷。
程序如下:
#include
main()
{ int score; char grade;
printf("请输入学生成绩:");
scanf("%d",&score);
if(score>100||score<0) printf("\n输入成绩错误!\n");
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成绩等级是%c\n",grade);
}
}
运行结果如下:
方法二:用switch语句
分析:switch语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外)、B、C、D类的成绩的共同特点是十位数相同,此外都是E类。则由此可把score除十取整,化为相应的常数。
请同学们自己根据分析写出完整的程序段,并编译、运行、查看结果。
程序如下:
#include
main()
{ int score; char grade;
printf("请输入学生成绩:");
scanf("%f",&score);
if (score>100||score<0) printf("enter");
else {score=score/10;
c=(int)score;
switch(c)
{case 10:
case 9: printf("等级是A\n");break;
case 8: printf("等级是B\n");break;
case 7: printf("等级是C\n");break;
case 6: printf("等级是D\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: printf("等级是E\n");break;
}}}
3 从键盘上输入三个实数,它们分别代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序;如果能构成三角形,求出三角形的面积(取小数2位)。
用下面的数据运行程序,记录程序的输出结果:
【提示】已知三角形边长a 、b 、c ,计算三角形面积s 的公式是:
求平方根用函数sqrt 。注意,应在程序中加入文件包含命令行:
#include
【算法】
⑴ 定义变量 a,b,c,e,(a,b,c 是三角形三边长,e 是组成三角形的条件),
p,s(计算三角形面积用); ⑵ 输入三角形三边长a ,b ,c ;
⑶ 判定三角形类型并输出结果;
if(组成三角形的条件)
if(等腰三角形) 是等腰三角形;
if(等边三角形) 输出是等边三角形; else 输出是等腰三角形; else 输出是三角形; else 输出不是三角形;
⑷ 如果是三角形,计算并输出面积;
● 组成三角形的条件 a+b>c && b+c>a && c+a>b ● 等腰三角形(Isosceles triangle) a= =b||b= =c||c= =a ● 等边三角形(Equilateral triangle) a= =b && a= =c
程序如下:
#include
float a,b,c,p,s;
printf(“请输入三个实数”); scanf(“%f,%f,%f ”,&a,&b,&c);
if ((a+b) printf(“等腰三角形”); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); 2 c b a p ) c p )(b p )(a p (p s ++= ---=其中