阅读以下说明和C代码,填补代码中的空缺。 【说明】 下面的程序代码根据某单位职工的月工资数据文件(名称为Salary.dat,文本文件),通过调用函数Get1ncomeTax计算出每位职工每月需缴纳的个人所得税额并以文件(名称为IncomeTax.

admin2016-09-08  65

问题 阅读以下说明和C代码,填补代码中的空缺。
【说明】
    下面的程序代码根据某单位职工的月工资数据文件(名称为Salary.dat,文本文件),通过调用函数Get1ncomeTax计算出每位职工每月需缴纳的个人所得税额并以文件(名称为IncomeTax.dat,文本文件)方式保存。
    例如,有4个职工工资数据的Salary.dat内容如下,其中第一列为工号(整数),第2列为月工资(实数)。
    1030001  6200.00
    1030002  5800.00
    2010001  8500.00
    2010010  8000.00
    相应地,计算所得IncomeTax.dat的内容如下所示,其中第3列为个人所得税额:
    1030001 6200.00  47.20
    1030002 5800.00  35.94
    2010001 8500.00  233.50
    2010010 8000.00  193.00
    针对工资薪金收入的个人所得税计算公式为:
    个人所得税额=应纳税所得额×税率一速算扣除数
    其中,应纳税所得额=月工资一三险一金一起征点
    税率和速算扣除数分别与不同的应纳税所得额对应,如表3一1所示。

    设三险一金为月工资的19%,起征点为3500元。
    例如,某人月工资为5800元,按规定19%缴纳三险一金,那么:
    其应纳税所得额X=5800一5800x19%一3500=1198元,对应税率和速算扣除数分别
为3%和0元,因此,其个人所得税额为1198×3%一0=35.94元。
【C代码】
    #include <stdio.h>
    #define BASE 3500    //起征点
    #define RATE 0.19    //三险一金比例
(1);    //声明函数GetIncomeTax
    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,"ood%lf",(4))!=2)break;
    fprintf(fout, "%d\ too.21f\t%.21f\n", id, salary,(5));
    }
    fclose(fin);
    fclose(fout);
    return 0;
    }
    double GetIncomeTax(double  salary)
{
    double yns_sd;
    yns_sd=
(6)一BASE;    /*计算应纳税所得额*/
    if(yns_sd<=0)return  0.0;
    else  if(yns sd<=1500)return  yr.cs_sd*0.03;
    else  if(yns sd<=4500)return yrs_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;
  }

选项

答案(1)double Get1ncomeTax(double salary)或double GetIncomeTax(double) (2)!fin或fin==NULL或fin==0 (3)!fout或fout==NULL或fout==0 (4)&id,&salary (5)GetIncomeTax(salary) (6)salary*(1一RATE)或等价形式 注:RATE可替换为0.19

解析 本题考查C语言程序设计基本技能。考生需认真阅读题目中的说明,以便理解问题并确定代码的运算逻辑,在阅读代码时,还需注意各变量的作用。
    根据注释,空(1)处应填入“double GetIncomeTax(double salary)”或“double GetIncomeTax(double)”,对函数GetIncomeTax进行声明。
    空(2)、(3)处所在的代码是判断文件打开操作是否成功,因此应分别填入“!fin”、“!fout”。
    根据说明可知,变量id和salary分别表示工号和月工资数。
    空(4)处所在语句为从文件中读取数据的操作,从fscanf的格式控制串可知读取的两个数是整数和双精度浮点数,则输入表列的两个变量分别为接收整数值的变量id和接收整数值的变量salary,因此空(4)应填入“&id, &salary”。
    空(5)处所在代码向fout关联的文件写入计算出的所得税额,显然需调用函数GetIncomeTax来计算,因此应填入“GetIncomeTax(salary)"。
    空(6)处的代码计算应纳税所得额,根据说明中给出的计算公式及三险一金的计算方法:
    应纳税所得额=月工资一三险一金一起征点
    空(6)处应填入“salary *(1一RATE)”。
转载请注明原文地址:https://jikaoti.com/ti/lHW7FFFM
0

最新回复(0)