word文档 可自由复制编辑
实验二 选择结构程序设计
一、实验目的
1、掌握分支语句的格式和功能。
2、掌握选择结构程序设计的方法。
3、学会正确使用逻辑运算符和逻辑表达式。
4、熟练掌握if语句,并能够正确使用switch语句。
二、实验内容和步骤
1、编程:计算下列分段函数值。
x
x x<1
2x-1 1<=x<10
3x-11 x>=10
y=
要求:
用if语句实现分支。自变量x和函数值y均采用双精度类型。
自变量x值利用scanf函数从键盘输入。
运行时输入x的值分别按x<1,1~10,>=10 三种情况),求y值。
参考程序如下:
if(x<1) y=x;
if(x<1) y=x;
else
{if(x<10) y=2*x-1;
else y=3*x-11;}
void main()
{ double x,y;
printf(“please input x :”);
scanf(“%lf”,&x);
if (x<1) y=x;
else if (x<10) y=2*x-1;
else y=3*x-11;
printf(“y=%f\n”,y);
}
2.编程序:已知三个数a,b,c,找出最大值放于max中。
要求:
(1)用if语句实现分支。变量均采用单精度类型。
(2)三个数a,b,c值利用scanf函数从键盘输入。
(3)运行时输入下列数据,分析程序的执行顺序并写出运行结果
①a=1,b=2,c=3
②a=2,b=1,c=3
③a=3,b=2,c=1
④a=3,b=1,c=2
⑤a=3,b=3,c=2
⑥a=2,b=1,c=2
参考程序如下:
#include "stdio.h"
void main()
{ float a,b,c,max;
scanf(“a=%f,b=%f,c=%f”,&a,&b,&c);
if (a>=b)
max=a;
else max=b;
if (c>max)
max=c;
printf("max=%f",max);
}
3、按下列要求编程:
输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
90 分以上(包括90):A
80至90 分(包括80):B
70至80 分(包括70):C
60至70 分(包括60):D
60 分以下: E
方法一:用if语句
输入测试数据,调试程序。分别输入105,100,65,60,45,0,-15等数据,记录输出结果。
参考程序如下:
#include"stdio.h"
void main()
{ float 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);
} }
方法二:用switch语句
输入测试数据,调试程序。分别输入105,100,65,60,45,0,-15等数据,记录输出结果。
参考程序如下:
#include"stdio.h"
void main()
{ float g;
int s;
char ch;
printf("\ninput a student grade:");
scanf("%f",&g);
s=(int)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';
}
printf("\nthe student scort:%c",ch);
} }
三、作业
1、给一个不多于5位的正整数,要求:
(1)求出它是几位数;
(2)分别打出每一位数字;
(3)按逆序打出各位数字,例如原数为321,应输出123。
2、输入4 个整数,要求按由小到大的顺序输出。