…
例如,某人某月收入總額為4100元,減去800元后,應(yīng)納稅所得額為3300元,其應(yīng)繳納的個(gè)人所得稅額為500*5%+1500*10%+1300*15%=370元。
【程序】
# include <stdio.h>
# define MaxNum50
# define BASE 800/*免稅金額基數(shù)*/
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;/*職工的工號(hào)*/
long Salary;/*職工的工資*/
}Info;
/*查找工號(hào)為Id的職工在數(shù)組employee中的下標(biāo),返回值為0表示沒(méi)有*/
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);/*讀入職工號(hào)、工資或薪金*/
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 %ld″,&Code,&Wage);
}
for(i=1;i<=N;i++){
K= (3) ;/*計(jì)算月應(yīng)納稅所得額*/
S=0;/*月應(yīng)納稅額賦初值*/
if(K>0){
for(j=1;j<=9;j++)
if (4) /*月應(yīng)納稅所得額超過(guò)第j級(jí)*/
S=S+(paylevel[j]-paylevel[j-1])*taxPrate[j-1]/100;
else{S=S+ (5) *taxPrate[j-1]/100;break;}
}
printf(″職工%d應(yīng)繳納的個(gè)人所得稅額:%10.21f\n″,employee[i].Id,S);
sum+=S;
}
printf(″全體職工個(gè)人所得稅總額:%10.21f\n″,sum);
}
●試題三
閱讀下列程序說(shuō)明和C代碼,將應(yīng)填入(n)處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
下面的程序功能的功能是以行為單位對(duì)字符串按下面的條件進(jìn)行排序。排序條件為:從字符串中間一分為二,右邊部分按字符的ASCⅡ值降序排序,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長(zhǎng)度為奇數(shù),則最中間的字符不參加排序,字符仍放在原位置上
例如:位置:0 1 2 3 4 5 6 7
源字符串:h g f e a b c d
則處理后字符串:d c b a h g f e
函數(shù)ReadDat()實(shí)現(xiàn)從文件in.dat中讀取數(shù)據(jù)(每行字符串長(zhǎng)度均小于80),函數(shù)WriteDat()把結(jié)果dat輸出到文件out.dat中。
【程序】
#include<stdio.h>
#include<siring.h>
#include<conio.h>
char dat[20][80];
void jsSort()
{
int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{
strl=strlen(dat[i]);
for(j= (1) ;j<strl;j++)/*對(duì)后半部分的字符串進(jìn)行排序*/
for(k=j+1;k<strl;k++)
if( (2) )
{
ch=dat[i][j];
dat[i][j]=dat[i][k];
dat[i][k]=ch;
}
for(j=0; (3) j++)/*前后兩部分進(jìn)行交換*/
{
ch=dat[i][j];
dat[i][j]=dat[i][(strl+1)/2+j];
dat[i][(strl+1)/2+j]=ch;
}
}
}
void main()
{
readDat();
jsSort();
writeDat();
}
readDat()
{
FILE*in;
int i=0;
char*p;
(4) ;
while(i<20 && fgets(dat[i],80,in)!=NULL)
{
p=strchr(dat[i],"\n");
if(p)*p=0;
i++;
}
fclose(in);
}
writeDat()
{
FILE*out;
int i;
clrscr();
out=fopen("out.dat","W");
for(i=0;i<20;i++)
{
printf("%s\n",dat[i]);
printf( (5) );
}
fclose(out);
}
2007計(jì)算機(jī)軟件水平考試考前沖刺專(zhuān)題
希望與其他軟考考生進(jìn)行交流?點(diǎn)擊進(jìn)入軟考論壇>>>
更多信息請(qǐng)?jiān)L問(wèn):考試吧軟件水平考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |