1.题目:
该题为编程题,计算个人所得税。
题目内容:
请编写程序计算应缴的个人所得税,其中税率定义为:
当工资不超过5000时,税率为0;
当工资在区间(5000, 8000]时,超过5000部分,税率为3%;
当工资在区间(8000, 12000]时,超过8000部分,税率为10%;
当工资在区间(12000, 25000]时,超过12000部分,税率为20%;
当工资超过25000时,超过25000部分,税率为25%。
例如:假设某程序员月收入扣除保险金、公积金以后为 12900 元。起征点为 5000,则扣除起征点以后的余额 7900 元需要纳税。 其中前 3000 元按 3% 纳税 90 元, 3000 ~ 7000 之间的 4000 元按 10% 纳税 400 元, 7000 ~ 2000 元之间的 900 元按 20% 纳税 180 元, 个人所得税款合计为 3000 × 3% + 4000 × 10% + 900 × 20% = 90+ 400 + 180 = 670(元)
输入格式:
输入在一行中给出非负工资。
输出格式:
在一行输出个人所得税,精确到小数点后2位。
输入样例1:
5000
输出样例1:
0.00
输入样例2:
8000
输出样例2:
90.00
输入样例3:
12000
输出样例3:
490.00
输入样例4:
25000
输出样例4:
3090.00
输入样例5:
45000
输出样例5:
8090.00
#include<stdio.h>
int main ()
{
int wage=0;
int pay;
// printf("输入工资");
scanf("%d",&wage);
if (wage<=5000)
{
pay =0;
}
else if(wage>5000 && wage<=8000)
{
pay=(wage-5000)*0.03;
}
else if(wage>8000 && wage<=12000)
{
pay=90+(wage-8000)*0.1;
}
else if(12000<wage && wage<25000)
{
pay=490+(wage-12000)*0.2;
}
else if(wage>=25000)
{
pay=3090+(wage-25000)*0.25;
}
printf("%.2f",(float)pay);
return 0;
}
2.题目:
本题要求实现一个根据学生成绩设置其等级,并完成统计不及格人数的函数。
题目内容:
结构体以及函数接口定义:
struct student{
int num;
char name[20];
int score;
char grade;
};
Void SetGrade( struct student stu[], int n,int &cnt );
说明:其中stu是学生信息的结构体数组,n是数组元素个数。学号num、姓名name和成绩score均已经存储,引用类型cnt用来返回不及格人数个数。SetGrade函数需要根据学生的成绩score设置其等级grade。等级设置:90-100为A,80-89为B,70-79为C,60 - 69为D,0-59为E。SetGrade需要通过cnt返回不及格的人数,如果所有学生都及格,返回0。
程序样例:
#include <iostream>
using namespace std;
#define MAXN 10
struct student{
int num;
char name[20];
int score;
char grade;
};
void SetGrade( struct student stu[], int n ,int &cnt);
int main()
{
struct student stu[MAXN];
int n, i, cnt;
cin>>n;
for(i = 0; i < n; i++){
cin>>stu[i].num>>stu[i].name>>stu[i].score;
}
SetGrade(stu, n,cnt);
cout<<"The count: "<<cnt<<endl;
cout<<"The grades:"<<endl;
for(i = 0; i < n; i++)
cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].grade<<endl;
return 0;
}
//请完成相应的SetGrade函数,并提交完整的程序
输入样例:
10
31001 annie 85
31002 bonny 75
31003 carol 70
31004 dan 84
31005 susan 90
31006 paul 69
31007 pam 60
31008 apple 50
31009 nancy 100
31010 bob 78
输出样例:
The count: 1
The grades:
31001 annie B
31002 bonny C
31003 carol C
31004 dan B
31005 susan A
31006 paul
31007 pam D
31008 apple E
31009 nancy A
31010 bob C
测试用例数据说明:
该试题共三个测试用例
测试用例1:测试数据同样例
测试用例2:没有不及格同学
测试用例3:所有同学都在60分以上
#include <iostream>
using namespace std;
#define MAXN 10
struct student{
int num;
char name[20];
int score;
char grade;
};
void SetGrade( struct student stu[], int n ,int &cnt);
int main()
{
struct student stu[MAXN];
int n, i, cnt;
cin>>n;
for(i = 0; i < n; i++){
cin>>stu[i].num>>stu[i].name>>stu[i].score;
}
SetGrade(stu, n,cnt);
cout<<"The count: "<<cnt<<endl;
cout<<"The grades:"<<endl;
for(i = 0; i < n; i++)
cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].grade<<endl;
return 0;
}
void SetGrade( struct student *p, int n ,int &cnt)
{
int i ;
cnt =0;
struct student ;
for(i=0;i<n;i++)
{
if (p[i].score>=90)
{
p[i].grade ='A' ;
} else if ( p[i].score >=80)
{
p[i].grade ='B';
}else if (p[i].score>= 70)
{
p[i].grade = 'C';
} else if (p[i].score >=60)
{
p[i].grade ='D';
}else
{
p[i].grade = 'E';
cnt++;
}
}
}
3.题目:
引用作函数形参交换两个整数
设计一个void类型的函数Swap,该函数有两个引用类型的参数,函数功能为实现两个整数交换的操作。
裁判测试程序样例:
#include <iostream>
using namespace std;
void Swap(int &a, int &b);
int main()
{
int a, b;
cin >> a >> b;
Swap(a, b);
cout << a << " " << b << endl;
return 0;
}
//请完成相应的Swap函数,并提交完整的程序
输入样例:
3 5
输出样例:
5 3
测试用例数据说明:
该试题共2个测试用例
测试用例1:测试数据同样例
测试用例2:a>b
#include <iostream>
using namespace std;
void Swap(int &a, int &b);
int main()
{
int a, b;
cin >> a >> b;
Swap(a, b);
cout << a << " " << b << endl;
return 0;
}
void Swap(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}