C语言实验三程序、总结 逻辑运算和选择结构程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 #include main() {

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 ++=

---=其中

相关文档
最新文档