问题 填空题

【说明】
程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额,职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。
假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额。适用税率如表2所示。
表 2

级数月应纳税所得额适用税率(%)

1
2
3
4
5
6
7
8
9

不超过500元的部分
501元~2000元的部分
2001元~5000元的部分
5001元~2000元的部分
2001元~4000元的部分
4001元~6000元的部分
6001元~8000元的部分
8001元~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元。
【程序】
#include<stdio.h>
#define MaxNum 50
#define BASE 800 /*免税金额基数*/
int paylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,1000001};
int taxPrate[]={5,10,15,20,25,30,35,40,45}; /*税率表*/
typedef struct{
int ld; /*职工的工号*/
long Salary; /*职工的工资*/
} Info;
/*查找工号为ld的职工在数组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 employee[MaxNum+1];
long Wage;
double sum=0, K,S;
int i,j,N=0,Code;
scanf("%d %Id",&Code,&Wage);
while(Code>0){
i=find (Code, empolyee, N );
if(i>0)employee [i]. Salary+=Wage;
else{ (2) ;
employee[N]. Id=Code;employee[N]. Salary =Wage;
}
scanf("%d %Id", &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);
}

答案

参考答案:employee[j].Id!=Id (2) ++N 或N++或N=N+1

解析:(3) employee [i]. Salary-BASE (4) K>paylevel[j] (5)K-paylevel[j-1] (1)find函数的功能是找到了号为Id的职工在数组employee中的下标。显然,循环进行下去的条件是employee[j].Id!=Id。 (2)当i=0时,表明该职工的信息是第一次录入,所以应当在数组employee中创建一个新元素,于是此处应填入N++或其他等价表达式。 (3)K表示该月应纳的所得税额,所以应填入employee[i].SalaryBASE。(4)此处是判断当前职工的工资是否超过第j级,所以应填入 K>paylevel[j])。(5)当前职工的工资不超过第j级,应当计算它与第j-1级的差额的所得税,所以应填入K-paylevel[j-1]。

单项选择题
单项选择题

长江股份有限公司(以下称长江公司)属于增值税一般纳税人,适用增值税税率17%。原材料(只有一种甲材料)采用计划成本法核算,单位计划成本1.5万元/吨。2010年8月初“原材料”账户余额为195万元(其中暂估入账的原材料成本15万元),“材料成本差异”账户为借方余额4.5万元。长江公司8月份发生以下经济业务:
(1)1日,收到上月暂估入账的原材料发票,载明数量10吨,实际成本14.7万元,无其他相关费用。
(2)2日,购入甲材料62吨,增值税专用发票上注明的价款为90万元,增值税税额为15.3万元;发生运输费用(不考虑增值税抵扣)、装卸费用和保险费共计7.5万元。
(3)5日,上述甲材料运抵企业,验收入库甲材料实际数量为60吨,短缺的2吨是运输途中发生的合理损耗。
(4)10日,长江公司和A公司签订协议,接受A公司以账面价值150万元(双方确认的公允价值为135万元)的100吨甲材料对长江公司进行投资,长江公司以增发的60万股(每股面值1元)普通股作为对价。该批甲材料验收入库并收到对方开具的税额为22.95万元的增值税专用发票一张。
(5)20日,长江公司就应收B公司货款36万元(已计提坏账准备1.8万元)与其进行债务重组。经协商,长江公司同意B公司以20吨账面成本为19.5万元、公允价值为24万元的甲材料偿还全部债务。该批甲材料验收入库并收到对方开具的税额为4.08万元的增值税专用发票一张。
(6)31日,经汇总,本月共领用甲材料计划成本360万元用于生产乙产品。本月乙产品的成本资料为:月初在产品0件,本月完工100件,月末在产品20件,本月发生直接人工150万元,制造费用195万元。原材料在开工后陆续投入,月末在产品完工程度为50%。
(7)31日,月末对库存乙产品进行实地盘点,发现实存数小于账存数5件,经查实,系管理不善造成丢失。
根据上述资料,回答下列各题(计算结果保留两位小数)。

长江公司2010年8月份完工甲产品的单位成本为( )万元。

A.5.82

B.5.88

C.6.34

D.6.42