C语言程序设计 实验报告2--选择结构
- 格式:doc
- 大小:103.50 KB
- 文档页数:7
福建农林大学金山学院实验报告
系(教研室):专业:年级:
实验课程:C语言程序设计姓名:学号:实验室号:
计算机号:实验时间:指导教师签字:成绩:
实验2:选择结构程序设计
一、实验目的和要求
1.了解C语言表示逻辑量的方法
2.正确使用逻辑运算符和逻辑表达式,掌握if语句和switch语句
3.结合程序掌握一些简单算法,并学习调试程序
二、实验内容和原理
1.有一函数:
x2+2x-6(x<0,x≠-3)
y = x2-5x+6(0≤x<10,x≠2,x≠3)
x2-x-15(x=-3,x=2,x=3,x≧10)
写一程序,用scanf函数输入x,输出y值。
2.分别用if语句和switch语句编程实现:给出一个百分制成绩,要求输出成绩等级A、
B、C、D、E。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60
分以下为E。
3.输入4个整数,要求按由小到大顺序输出。
4.有三个整数a,b,c,由键盘输入,输出其中最大的数,请编写程序。(用两种方法实
现)
5.输入出租车类型和里程,计算打车的费用。计算方式为:3公里以内10元;3公里
以上0车型每公里1.5元,1车型每公里2元。
三、实验环境
1. 硬件:PC机;
2. 软件:Windows操作系统、Visual C++ 6.0,DEV-CPP 。
四、算法描述及实验步骤
1、先用scanf函数输入,再用if语句的嵌套来计算该方程。
2、(1)用switch语句时,对输入的数据进行检查,在用score/10将其强制转换得到一个
整型。最后用switch语句执行使其得到一个字符型字母。
(2)用if语句分成各个分数段将符合要求的输出对应的字符。
3、用if语句依次比较的方法排出其大小顺序。
4、(1)先用scanf函数输入,再用if语句的嵌套比较其大小顺序。
(2)带入一个中间数用条件表达式比较其大小顺序。
5、在标题写入条件,3公里以下直接输出。3公里以上判断车型,再带入相应车型计算车
费。
五、调试过程
第2题中,在做if语句时模仿了switch语句,造成输出没有结果,应该在每个if后都要加上输出printf。
第5题中,类型你是整型,应该用int不是float。在有个大前提下,用while语句会出现一些错误,可改为用if语句,或在第一次输出时标出备注。
六、实验结果
1、
2、(1)switch语句:
(2)if语句:
3、
4(1)、
(2)、
5、
七、总结
通过此次实验本人更加熟练的掌握了程序C语言逻辑运算符和逻辑表达式的应
用,也深深了解到了,C语言的强大,同时是我对这门语言的兴趣更加深厚。做完本次实验,我纠正了以往的一个观点,学习一门语言不要以为看书看明白了就以为对这方面的知识掌握了,学习语言更为重要的是要会使用,不能仅仅是以为明白就可以了事,合上书本,能够应用这方面的知识写出一个程序来,才能算对它的初步掌握
附录:
1、#include
int main()
{int x,y;
printf("输入x:");
scanf("%d",&x);
if(x<0&&x!=-3)
{y=x*x+2*x-6;
printf("x=%3d,y=x*x+2*x-6=%d\n",x,y);
}
else if(x<10&&x!=2&&x!=3)
{y=x*x-5*x+6;
printf("x=%d,y=x*x-5*x+6=%d\n",x,y);
}
else
{y=x*x-x-15;
printf("x=%d,y=x*x-x-15=%d\n",x,y);
}
return 0;
}
2、(1)switch语句:
#include
int main()
{float score;
char grade;
printf("请输入学生成绩:");
scanf("%f",&score);
while(score>100||score<0)
{printf("\n输入有误,请重输");
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); return 0;
}
(2)if语句:
#include
int main()
{float score;
char grade;
printf("请输入学生成绩:");
scanf("%f",&score);
while(score>100||score<0)
{printf("\n输入有误,请重输");