C程序设计(第五版) 第四章选择结构程序设计(二)

实验三  选择结构程序设计

一、实验目的:

  1. 掌握关系运算符和逻辑运算符的使用
  2. 掌握if语句的三种形式,并能合理应用;
  3. 掌握if语句的各种嵌套的用法;
  4. 理解并掌握switch语句的使用;
  5. 能够熟练掌握选择结构程序设计的基本方法,进行选择结构程序设计。

二、实验内容

8.求表达式c=\sqrt{ab}的值。

程序代码:

#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.编一程序根据每个月上网时间计算上网费用,计算方法如下:当上网时长\leqslant10小时,上网的总费用是30元;当上网时长大于10小于50小时,上网的费用是每小时3元;当上网时长\geq50小时,每小时上网费用是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,当r\geqslant0时,计算并输出圆的面积和周长,否则,输出提示信息。

程序代码:

#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,按下列原则输出其等级:score\geqslant90,等级为A;80\leqslantscore<90,等级为B;70\leqslantscore<80,等级为C;60\leqslantscore<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;
}

程序运行结果截图:

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荪葭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值