閱讀以下說明和 C 代碼,填補代碼中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
下面的程序代碼根據(jù)某單位職工的月工資數(shù)據(jù)文件(名稱為 Salary.dat,文本文件) ,通過調(diào)用函數(shù) GetIncomeTax 計算出每位職工每月需繳納的個人所得稅額并以文件(名稱為IncomeTax.dat ,文本文件)方式保存。
例如,有 4 個職工工資數(shù)據(jù)的 Salary.dat 內(nèi)容如下,其中第一列為工號(整數(shù)),第2 列為月工資(實數(shù))。
1030001 6200.00
1030002 5800.00
2010001 8500.00
2010010 8000.00 相應(yīng)地,計算所得 IncomeTax.dat 的內(nèi)容如下所示,其中第 3 列為個人所得稅額:
1030001 6200.00 47.20
1030002 5800.00 35.94
2010001 8500.00 233.50
2010010 8000.00 193.00 針對工資薪金收入的個人所得稅計算公式為:
個人所得稅額=應(yīng)納稅所得額×稅率-速算扣除數(shù)
其中,應(yīng)納稅所得額=月工資-三險一金-起征點
稅率和速算扣除數(shù)分別與不同的應(yīng)納稅所得額對應(yīng),如表 3-1 所示。
設(shè)三險一金為月工資的 19%,起征點為3500元。
例如,某人月工資為 5800元,按規(guī)定 19%繳納三險一金,那么:
其應(yīng)納稅所得額 X=5800- 5800x19%-3500=1198 元,對應(yīng)稅率和速算扣除數(shù)分別
為 3%和 0 元,因此,其個人所得稅額為 1198X3%-0=35.94 元。
【C 代碼】
#include <stdio.h>
#define BASE 3500 //起征點
#define RATE 0.19 //三險一金比例
(1) ; //聲明函數(shù) GetlncomeTax
int main ( )
{
int id;
double salary;
FILE *fin,*fout;
fin = fopen("Salary.dat" ,"r");
if ( (2) ) return 0;
fout = fopen("IncomeTax.dat" ,"w");
if ( (3) ) return 0;
while (!feof(fin)) {
if (fscanf(fin,“%d%lf”, (4) )!=2) break;
fprintf(fout ,“%d\t%.2lf\t%.2lf\n”,id,salary, (5) ;
}
fclose(fin);
fclose(fout);
return 0;
}
double GetlncomeTax(double salary)
{
double yns_sd;
yns_sd = (6) - BASE; /*計算應(yīng)納稅所得額*/
if (yns_sd<=0) return 0.0;
else if (yns_sd<=1500) return yns_sd*0.03;
else if (yns_sd<=4500) return yns_sd*0.1 - 105;
else if (yns_sd<=9000) return yns_sd*0.2 - 555;
else if (yns_sd<=35000) return yns_sd*0.25 - 1005;
else if (yns_sd<=55000) return yns_sd*0.3 - 2755;
else if (yns_sd<=80000) return yns_sd*0.35 - 5505;
return yns_sd*0.45 - 13505;
}