C语言代码复习训练

目录

计算个人所得税

 输出三角形面积和周长

三天打鱼两天晒网

查询水果价格

两个数的简单计算器

统计字符

输出闰年

统计学生成绩


计算个人所得税

假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:

  • 当工资不超过1600时,税率为0;
  • 当工资在区间(1600, 2500]时,税率为5%;
  • 当工资在区间(2500, 3500]时,税率为10%;
  • 当工资在区间(3500, 4500]时,税率为15%;
  • 当工资超过4500时,税率为20%。

输入格式:

输入在一行中给出非负工资。

输出格式:

在一行输出个人所得税,精确到小数点后2位。

输入样例1:

1600

输出样例1:

0.00

输入样例2:

1601

输出样例2:

0.05

输入样例3:

3000

输出样例3:

140.00

输入样例4:

4000

输出样例4:

360.00

输入样例5:

5000

输出样例5:

680.00

 代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int n = 0;
	float fm;
	scanf("%d", &n);
	if (n <= 1600)
		fm = 0;
	else if (n > 1600 && n <= 2500)
		fm = 0.05 * (n - 1600);
	else if (n > 2500 && n <= 3500)
		fm = 0.1 * (n - 1600);
	else if (n > 3500 && n <= 4500)
		fm = 0.15 * (n - 1600);
	else
		fm = 0.2 * (n - 1600);
	printf("%.2f", fm);
	return 0;
}

输出三角形面积和周长

本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=s(s−a)(s−b)(s−c)​,其中s=(a+b+c)/2。

输入格式:

输入为3个正整数,分别代表三角形的3条边a、b、c。

输出格式:

如果输入的边能构成一个三角形,则在一行内,按照

area = 面积; perimeter = 周长

的格式输出,保留两位小数。否则,输出

These sides do not correspond to a valid triangle

输入样例1:

5 5 3

输出样例1:

area = 7.15; perimeter = 13.00

输入样例2:

1 4 1

输出样例2:

These sides do not correspond to a valid triangle
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <math.h>//添加数学函数库
int main()
{
	
	int a=0, b=0, c=0;
	double s,area, perimeter;
	scanf("%d %d %d", &a, &b, &c);
	s = (a + b + c) / 2.0;
	if (a + b > c && a + c > b && b + c > a)
	{
		area = sqrt(s*(s - a) * (s - b) * (s - c));
		perimeter = a+b+c;
		printf("area = %.2lf; perimeter = %.2lf", area,perimeter);
	}
	else
	{
		printf("These sides do not correspond to a valid triangle");
	}
	return 0;
}

三天打鱼两天晒网

中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?

输入格式:

输入在一行中给出一个不超过1000的正整数N。

输出格式:

在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。

输入样例1:

103

输出样例1:

Fishing in day 103

输入样例2:

34

输出样例2:

Drying in day 34

 代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//#include <math.h>//添加数学函数库
int main()
{
	int day,fd;
	scanf("%d", &day);
	fd = day % 5;
	if (fd <= 3&&fd>0)
		//dayu
		printf("Fishing in day %d",day);
	else
	{
		//shaiwang
		printf("Drying in day 34", day);
	}
	return 0;
}

查询水果价格

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

首先在屏幕上显示以下菜单:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit

用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。

输入格式:

输入在一行中给出用户连续输入的若干个编号。

输出格式:

首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。

输入样例1:

3 -1 0 2

输出样例1:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00

输入样例2:

1 2 3 3 4 4 5 6 7 8

输出样例2:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//#include <math.h>//添加数学函数库
int main()
{
	int n=0;
	double price;
	printf("[1] apple\n");
	printf("[2] pear\n");
	printf("[3] orange\n");
	printf("[4] grape\n");
	printf("[0] exit\n");
	for (int i = 0; i < 5; i++)
	{
		scanf("%d", &n);
		switch (n)
		{
		case 0:break;
		case 1:price = 3.00; break;
		case 2:price = 2.50; break;
		case 3:price = 4.10; break;
		case 4:price = 10.20; break;
		default:price = 0; break;
		}
		printf("price = %.2lf", price);
	}
	return 0;
}

 

两个数的简单计算器

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。

输入格式:

输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。

输出格式:

当运算符为+-*/%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR

输入样例1:

-7 / 2

输出样例1:

-3

输入样例2:

3 & 6

输出样例2:

ERROR
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//#include <math.h>//添加数学函数库
int main()
{
	int num1, num2,num=0;
	char mat;
	scanf("%d %c %d",&num1,&mat,&num2);
	if (mat == '+')
	{
		num = num1 + num2; printf("%d\n", num);
	}
	else if (mat == '-')
	{
		num = num1 - num2; printf("%d\n", num);
	}
	else if (mat == '*')
	{
		num = num1 * num2; printf("%d\n", num);
	}
	else if (mat == '/')
	{
		num = num1 / num2; printf("%d\n", num);
	}
	else if (mat == '%')
	{
		num = num % num2; printf("%d\n", num);
	}
	else
		printf("ERROR\n");
	//printf("%d\n", num);
	return 0;
}

 

统计字符

本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

输入格式:

输入为10个字符。最后一个回车表示输入结束,不算在内。

输出格式:

在一行内按照

letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数

的格式输出。

输入样例:

aZ &
09 Az

输出样例:

letter = 4, blank = 3, digit = 2, other = 1

 代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
//#include <math.h>//添加数学函数库
int main()
{
	char ch;
	int letter=0,blank=0,digit=0,other=0;
	for (int i = 0; i < 10; i++)
	{
		ch = getchar();
		if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
			letter++;
		else if (ch == ' ' || ch == '\n')
			blank++;
		else if (ch >= '0' && ch <='9')
			digit++;
		else
			other++;
	}
	printf("letter = %d, blank = %d, digit = %d, other = %d", letter, blank, digit, other);
	return 0;
}

 

输出闰年

输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。

输入格式:

输入在一行中给出21世纪的某个截止年份。

输出格式:

逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。

输入样例1:

2048

输出样例1:

2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048

输入样例2:

2000

输出样例2:

Invalid year!
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//#include<string.h>
//#include <math.h>//添加数学函数库
int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n <= 2000 || n > 3000)
		printf("Inalid year!");
	else if (n < 2004 && n>2000)
		printf("None");
	else
	{
		for (int i = 2004; i <= n; i += 4)
		{
			if (i % 100 == 0 && i % 400 != 0)
				continue;
			printf("%d\n", i);
		}
	}
	return 0;
}

统计学生成绩

本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:

  • 大于等于90分为A;
  • 小于90且大于等于80为B;
  • 小于80且大于等于70为C;
  • 小于70且大于等于60为D;
  • 小于60为E。

输入格式:

输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。

输出格式:

在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

输入样例:

7
77 54 92 73 60 65 69

输出样例:

1 0 2 3 1

 

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//#include<string.h>
//#include <math.h>//添加数学函数库
int main()
{
	int n=0,grade=0,A=0,B=0,C=0,D=0,E=0;
	scanf("%d", &n);
	//grade = getchar();
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &grade);
		//grade = getchar();
		if (grade >= 90)
			A++;
		else if (grade >= 80 && grade < 90)
			B++;
		else if (grade >= 70 && grade < 80)
			C++;
		else if (grade >= 60 && grade < 70)
			D++;
		else
			E++;

	}
	printf("%d %d %d %d %d", A, B, C, D, E);

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值