第一范文网 - 专业文章范例文档资料分享平台

2007年11月程序员模拟试题(5)下午试卷

来源:用户分享 时间:2025/7/27 3:37:36 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

●试题一

阅读下列说明和流程图,将应填入(n)的语句写在答题纸的对应栏内。 【流程图】

图1

下面的流程图描述了对16位二进制整数求补的算法。计算过程是:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到\1\时,停止查看。然后,对该\1\位左面的更高位(如果有的话),逐位求反,所得的结果就是对原二进制数求补的结果。

例如:对二进制整数10111001 10101000求补的结果是01000110 01011000。

设16位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[16]中。例如,二进制整数10111001 10101000存放在数组BIT后,就有BIT1[1]=0,BIT[2]=0,……,BIT[15]=0,BIT[16]=1。

流程图(如图1所示)中 (1) 处按\循环变量名:循环初值,增量,循环终值\格式描述。若流程图中存在空操作,则用NOP表示。

●试题二

阅读下列程序说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额,职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。

假设个人所得税法规定:个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额。适用税率如表2所示。

上表表明,个人收入所得税是按照超额累进的税率来征收的。

设一个人的月应纳税所得额为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≤20 000,则S=500×5%+1500×10%+3000×15%+(K-5000)×20%; …

例如,某人某月收入总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。 【程序】

# include # define MaxNum50

# 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,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) ;/*计算月应纳税所得额*/ 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应缴纳的个人所得税额:.21f\n″,employee[i].Id,S); sum+=S; }

printf(″全体职工个人所得税总额:.21f\n″,sum); }

●试题三

阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】

下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCⅡ值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上 例如:位置:0 1 2 3 4 5 6 7 源字符串:h g f e a b c d

则处理后字符串:d c b a h g f e

函数ReadDat()实现从文件in.dat中读取数据(每行字符串长度均小于80),函数WriteDat()把结果dat输出到文件out.dat中。 【程序】

#include #include #include 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

ch=dat[i][j]; dat[i][j]=dat[i][k]; dat[i][k]=ch; }

for(j=0; (3) j++)/*前后两部分进行交换*/ {

ch=dat[i][j]; dat[i][j]=dat[i][(strl+1)/2+j]; dat[i][(strl+1)/2+j]=ch; }

搜索更多关于: 2007年11月程序员模拟试题(5)下午试卷 的文档
2007年11月程序员模拟试题(5)下午试卷.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c24la73xoy085bn78arf2570pk9t7uz00b2n_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top