选择结构程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嘉应学院计算机学院
实验报告
课程名称程序设计基础实验名称实验地点
指导老师实验时间提交时间
班级姓名座号
一、实验目的和要求
(1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
(2)学会正确使用逻辑运算符和逻辑表达式。
(3)熟练掌握if语句的使用(包括if语句的嵌套)。
(4)熟练掌握多分支选择语句—switch语句。
(5)结合程序掌握一些简单的算法。
(6)进一步学习调试程序的方法。
二、实验环境和方法
实验方法:
(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。
(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。
(三)根据实验内容,编译程序。
实验环境:Windows xp Visual C++6.0
三、实验内容及过程描述
实验步骤:
①进入Visual C++ 6.0集成环境。
②输入自己编好的程序。
③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时
改正。
④进行编译和连接。
如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提
示找到出错位置和原因,加以改正。
再进行编译,如此反复直到不出错为止。
⑤运行程序并分析运行结果是否合理。
在运行是要注意当输入不同的数据时所得结果是否正
确,应运行多次,分别检查在不同情况下结果是否正确。
实验内容:
本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
(1)有一函数:
()
()
()⎪
⎩
⎪
⎨
⎧
≥
-
<
≤
-
<
=
10
x
11
3
10
x
1
1
2
1
x
x
x
x
y
写程序,输入x的值,输出y相应的值。
用scanf函数输入x的值,求y的值。
程序如下:#include<stdio.h>
int main()
{float x,y;
int i;
while(i<1000)
{
printf("请输入x的值:");
scanf("%f",&x);
if(x<1)
y=x;
else if(1<=x&&x<10)
y=2*x-1;
else
y=3*x-11;
printf("y的值为:%f\n",y);
}
程序运行结果如下:
(2)从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。
要求在输入数据后先对其进行检查是否小于1000的正数。
若不是,则要从新输入。
编写程序如下:
#include<stdio.h>
#include<math.h>
int main()
{int a, b;
printf("请输入一个小于1000的正数:");
scanf("%d",&a);
while(a<=0||a>1000)
{printf("您输入的数不符合要求!请重新输入:");
scanf("%d",&a);
}
b=sqrt(a);
printf("%d的平方根的整数部分是%d\n",a,b);
return 0;
}
运行结果为:
(3)给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。
90分以上为A,81~89分为
B,70~79分为C,60~69分为D,60分以下为E。
①用if语句编写程序如下:
#include<stdio.h>
int main()
{float score;
char grade;
int a,i;
while(i<10000)
{
printf("请输入学生成绩:");
scanf("%f",&score);
while(score>100||score<0)
{printf("\n您的输入有误!请重新输入");
scanf("%f",&score);
}
a=(score/10);
if(a>=9)
grade='A';
else if(a==8)
grade='B';
else if(a==7)
grade='C';
else if(a==6)
grade='D';
else if(a<6)
grade='E';
printf("成绩是%5.1f,相应的等级是%c\n",score,grade);
}
i++;
return 0;
}
运行结果如图:
用switch 语句编写程序如下:
运行结果如图:
(4)输入4整数,要求按由小到大顺序输出。
编写程序如下:#include<stdio.h>int main(){float score;char grade;int i;while (i<1000){printf("请输入学生成绩:");scanf("%f",&score);while(score>100||score<0){printf("您的输入有错!请重新输入:");scanf("%f",&score);}
switch((int)(score/10)){case 10:case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0:grade='E';}printf("成绩是%5.1f ,相应的等级是%c\n",score,grade);}i=i++;return 0;}
#include<stdio.h>int main()
{int t,a,b,c,d;printf("请输入4个数:");scanf("%d,%d,%d,%d",&a,&b,&c,&d);if(a>b){t=a,a=b,b=t;}if(a>c){t=a,a=c,c=t;}if(a>d)
运行结果如图:
修改程序使之由大到小顺序输出。
修改程序如下:运行结果如图:#include<stdio.h>
int main()
{int t,a,b,c,d;
printf("请输入4个数:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a<b)
{t=a,a=b,b=t;}
if(a<c)
{t=a,a=c,c=t;}
if(a<d)
{t=a,a=d,d=t;}
if(b<c)
{t=b,b=c,c=t;}
if(b<d)
{t=b,b=d,d=t;}
if(c<d)
{t=c,c=d,d=t;}
printf("排序结果如下:\n");
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}
{t=a,a=d,d=t;}if(b>c){t=b,b=c,c=t;}if(b>d){t=b,b=d,d=t;}if(c>d){t=c,c=d,d=t;}printf("排序结果如下:\n");printf("%d %d %d %d\n",a,b,c,d);return 0;}。