级数 |
月应纳税所得额 |
适用税率(%) |
1 2 3 4 5 6 7 8 9 |
不超过500元的部分 501元~2000元的部分 2001元~5000元的部分 5001元~20000元的部分 20001元~40000元的部分 40001元~60000元的部分 60001元~80000元的部分 80001元~100000元的部分 超过100000元的部分 |
5 10 15 20 25 30 35 40 45 |
上表表明,个人收入所得税是按照超额累进的税率来征收的。
设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):
若0<K≤500,则S=K×5%;
若500<K≤2000,则S=500×5%+(K—500)×10%:
若2000<K≤5000,则S=500×5%+1500×10%+(K-2000)×15%:
若5000<K≤20000,则S=500×5%+1500×10%+3000×15%+(K-5000)×20%:
例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。
[程序8]
#include <stdio.h>
#define MaxNum 50
#define BASE 800 /*免税金额基数*/
int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,100000¨:
int taxPrate[]={5,10,15,20,25,30,35,40,45): /*税率表*/
typedef struct{
int ld; /*职工的工号*/ .
long Salary; /*职工的工资*/
}Info;
/* 查找工号为Id的职工在数组employee中的下标,返回值为0表示没有 */
int find(int ld,Info employee[],int m){
int j;
employee[0].Id=Id;
for(j=m;__(1)__;j--);
return j;
}
void main(void)
{ Info employeeCHaxNum+1];
long Wage;
double sum s 0,K,S:
int i,j,N=0,Code;
scanf("M%ld",&Code,&Wage); /*读入职工号、工资或薪金*/
while(Code>0) {
i=find(Code,employee,N);
if (i>0)employee[i].Salary += Wage:
else{ __ (2)__;
employee[N].Id=Code;employee[N].Salary=Wage;
}
scanf("%d%ld",&Code,&Wage):
}
for (i=1;i<=N;i++){
K = __(3)__; /*计算月应纳税所得额*/
S=0; /*月应纳税额赋初值*/
if (K > 0) {
for (j=1;j<=9;j++)
if(__(4)__) /*月应纳税所得额超过第j级*/
S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100;
else{ S=S+(__ (5)__)*taxPrate[j-1]/100;break;}
}
printf("职工%d应缴纳的个人所得税额:%10.21f\n",employee[i].Id,S);
sum += S;
}
printf("全体职工个人所得税总额:%10,21f\n",sum);
}
试题九
阅读以下应用说明及VisualBasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内.
[应用说明9]
本应用程序的运行窗口如下图所示:
窗口中的三个文本框和两个按钮名称分别为Txt_salary、Txt_base、ht_tax、Cmd compute和Cmd_quit.运行时,文本框Txt_base中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框ht_salary中输入月收入(工资或薪金)并单击“计算”按钮Crud_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。
个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算.目前的免税金额基数为800元,税率如下表所示: