C语言-习题4

1. (20分) C4-2 编程 百分制成绩转换为等级

题目描述
给出一个百分制成绩,要求输出成绩等级’A’、‘B’、‘C’、‘D’、‘E’。90分以上为’A’,8089为’B’,7079为’C’,60~69为’D’,60分以下为’E’。其他情况请输出“Input Error”。

输入描述
一个整数:输入百分制成绩

输出描述
输出该成绩对应的等级

输入样例
//以下为多组测试数据
70
100
85
66
45
102

输出样例
//以下为多组数据对应的结果
Level C
Level A
Level B
Level D
Level E
Input Error

用户代码

#include<stdio.h>
int main()
{
	int a;
		scanf("%d",&a);
		if(60<=a&&a<=100)
		{
		a=a/10;
		switch(a)
		{
			case 10:printf("Level A");break;
			case 9:printf("Level A");break;
		    case 8:printf("Level B");break;
			case 7:printf("Level C");break;
			case 6:printf("Level D");break;
		}
		}
		else if(a<60&&a>=0)
		{
		  printf("Level E");
		}
		else 
	      printf("Input Error");
	return 0;
} 

2. (20分) C4-3 编程 求点的建筑高度

题目描述
有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。图示见教材P109,题12

输入描述
一个点的坐标:输入坐标值(x,y)

输出描述
输出该点的高度

输入样例
以下为两组测试数据
2.0,2.0
0.0,0.0

输出样例
height is 10
height is 0

用户代码


#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c,d,x,y;
	scanf("%lf,%lf",&x,&y);
	a=sqrt(pow(x-2,2)+pow(y-2,2));
	b=sqrt(pow(x-2,2)+pow(y+2,2));
	c=sqrt(pow(x+2,2)+pow(y+2,2));
	d=sqrt(pow(x+2,2)+pow(y-2,2));
	if(a<1||b<1||c<1||d<1)
		printf("height is 10");
	else
		printf("height is 0");
	return 0;
} 

3. (20分) C4-4 编程 用嵌套的if语句编程

题目描述
用嵌套的if语句写程序,求y的值,a(a值为正)和x,通过键盘输入。
当x为+a或者-a时,y为0;
当-a<x<a时,y为sqrt(aa-xx);
当x>a或者x<-a, y为x。

输入描述
输入a(正数)和x的值。

输出描述
输出a、x和y的值。

输入样例
a=5.5,x=12.5

输出样例
a=5.50,x=12.50,y=12.50

用户代码

#include<stdio.h>
#include<math.h>
int main()
{
	double a,x,y;
	scanf("a=%lf,x=%lf",&a,&x);
	if(x==a||x==-a)
		y=0;
	else if(-a<x&&x<a)
		y=sqrt(a*a-x*x);
	else if(x>a||x<-a)
		y=x;
	printf("a=%.2f,x=%.2f,y=%.2f",a,x,y);
	return 0;
} 

4. (20分) C4-5 编程 计算代理费

题目描述
某公司规定代理商代理费按下表计算:
交易金额(元) 代理费
(0,3000) 18+本金的1.2%
[3000,6000) 36+本金的0.6%
[6000~10000) 54+本金的0.3%
编程计算并打印本金在10000元以下的任一笔交易金额所应提取的代理费。(1、用switch语句完成;2、用if语句完成)
输入错误数据时,给出“data error!”的提示。

输入描述
输入交易金额。

输出描述
输出代理费。

输入样例
3500.00

输出样例
the cost is 57.00 RMB

用户代码


#include<stdio.h>
int main()
{
	double x,y;
	int z;
	scanf("%lf",&x);
	z=x/1000;
	if(0<x&&x<10000)
	{
	switch(z)
	{
		case 0:
		case 1:
		case 2:y=18+x*0.012;break;
		case 3:
		case 4:
		case 5:y=36+x*0.006;break;
		case 6:
		case 7:
		case 8:
		case 9:y=54+x*0.003;break;
	}
	printf("the cost is %.2f RMB",y);
	}
	else printf("data error!");
  return 0;
}
 
发布了37 篇原创文章 · 获赞 10 · 访问量 747

猜你喜欢

转载自blog.csdn.net/qq_43608850/article/details/104320580