问答题

试题九
阅读以下应用说明及Visual Basic 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[应用说明9]
本应用程序的运行窗口如下图所示:

窗口中的三个文本框和两个按钮名称分别为Txt_salary、Txt_base、Txt_tax、Cmd_compute和Cmd_quit。运行时,文本框Txt_base 中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框Txt_salary 中输入月收入(工资或薪金)并单击“计算”按钮Cmd_compute 后,Txt_tax 框中就显示计算所得的应纳税额。文本框Txt_base 和Txt_tax 在运行时不接受用户输入,Txt_base 的内容以灰色显示。
个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为800 元,税率如下表所示:

设一个人的月应纳税所得额为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 元。
在开发过程中,需要编写的程序代码如下:
[程序代码9]
Option Base 0
Private Sub Cmd_compute_Click()
Dim paylevel, taxPrate
paylevel = Array(0,500,2000,5000,20000,40000, 60000, 80000, 100000, 1000001)
taxPrate = Array(5, 10, 15, 20, 25, 30, 35, 40, 45)
K = (1)
S = 0
If (K > 0) Then
For j = 1 To 9
If (2) Then
S = S + (paylevel(j) - paylevel(j - 1)) * taxPrate(j - 1) / 100
Else
S = S + ( (3) ) * taxPrate(j - 1) / 100
Exit For
End If
Next j
End If
(4) = Str$(S)
End Sub

Private Sub Cmd_quit_Click()
End
End Sub

Private Sub Form_Load()
Txt_tax.Text = ""
Txt_salary.Text = ""
Txt_base.Text = 800
Txt_tax.Locked = True
Txt_base.Enabled = (5)
End Sub

【参考答案】

(1)Txt_salary.Text-Txt_base.Text (2)k>paylevel(j) (3)k-payle......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
试题八 阅读下列程序说明和C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 [程序8 说明] 程序8 用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0 结束。 假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800 元后的余额作为该月的月应纳税所得额。适用税率如下表所示。 上表表明,个人收入所得税是按照超额累进的税率来征收的。 设一个人的月应纳税所得额为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 #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 Id; *职工的工号* long Salary; *职工的工资* }Info; *查找工号为Id 的职工在数组employee 中的下标,返回值为0 表示没有* int find(int Id, 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 %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.2lf n , employee[i].Id, S); sum += S; } printf( 全体职工个人所得税总额: %10.2lf n , sum); }