实验三 选择结构程序设计
一、实验目的:
- 掌握关系运算符和逻辑运算符的使用;
- 掌握if语句的三种形式,并能合理应用;
- 掌握if语句的各种嵌套的用法;
- 理解并掌握switch语句的使用;
- 能够熟练掌握选择结构程序设计的基本方法,进行选择结构程序设计。
二、实验内容
8.求表达式的值。
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c;
scanf("%f%f",&a,&b);
c=sqrt(a*b);
printf("%lf\n",c);
return 0;
}
程序运行结果截图:
9.编一程序根据每个月上网时间计算上网费用,计算方法如下:当上网时长10小时,上网的总费用是30元;当上网时长大于10小于50小时,上网的费用是每小时3元;当上网时长
50小时,每小时上网费用是2.5元。 要求编程当输入每月上网小时数, 计算并显示该月上网总费用。
程序代码:
#include<stdio.h>
int main()
{
float p,c;
int h,a;
printf("please enter hour:");
scanf("%d",&h);
if(h>=50) a=5;
else a=h/10;
switch(a)
{
case 0:p=30.0/h;break;
case 1:
case 2:
case 3:
case 4:p=3;break;
case 5:p=2.5;break;
}
c=p*h;
printf("cost=%5.2f\n",c);
return 0;
}
程序运行结果截图:
10.输入一个圆半径r,当0时,计算并输出圆的面积和周长,否则,输出提示信息。
程序代码:
#include<stdio.h>
int main()
{
float pi=3.14159,r,c,s;
printf("请输入圆的半径:");
scanf("%f",&r);
if(r>=0)
{
c=2*pi*r;
s=pi*r*r;
printf("c=%f,s=%f\n",c,s);
}
else printf("输入信息错误\n");
return 0;
}
程序运行结果截图:
11.键盘上输入一个百分制成绩score,按下列原则输出其等级:,等级为A;80
score<90,等级为B;70
score<80,等级为C;60
score<70,等级为D;score<60,等级为E。
程序代码:
#include<stdio.h>
int main()
{
int score;
char grade;
printf("Please enter the score:");
scanf("%d",&score);
switch(score/10)
{
case 10:
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
default:grade='E';
}
printf("The grade is %c\n",grade);
return 0;
}
程序运行结果截图:
12.输入某年某月某日,判断这一天是这一年的第几天? 用switch实现。以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
程序代码:
#include <stdio.h>
int main()
{
int year,month,day,sum,add;
printf("\n请输入年月日,格式为:年,月,日。如2022年4月1日则输入2022,4,1\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("输入错误,请重新输入月份(在1-12月之间)");
}
sum=sum+day;
if((year%4==0&&year%100!=0)||(year%400==0)) add=1;
else add=0;
if(add==1&&month>2) sum=sum+1;
printf("这是这一年的第 %d 天。\n",sum);
return 0;
}
程序运行结果截图: