首页 2004上半年程序员考试真题及答案-下午卷

2004上半年程序员考试真题及答案-下午卷

举报
开通vip

2004上半年程序员考试真题及答案-下午卷HYPERLINK"https://www.51test.net/show/9921991.html"\t"_blank"2004上半年程序员考试真题及答案-下午卷试题一是必答题试题一  阅读下列说明、流程图和算法,将应填入__(n)__处的字句写在答题纸的对应栏内.[流程图说明]  下面的流程图用N—S盒图形式描述了数组A中的元素被划分的过程.其划分方法是:  以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动.当划分结束时,基准数定位于A[i],并且数组...

2004上半年程序员考试真题及答案-下午卷
HYPERLINK"https://www.51test.net/show/9921991.html"\t"_blank"2004上半年程序员考试真题及答案-下午卷试题一是必答题试题一  阅读下列说明、 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图和算法,将应填入__(n)__处的字句写在答题纸的对应栏内.[流程图说明]  下面的流程图用N—S盒图形式描述了数组A中的元素被划分的过程.其划分方法是:  以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动.当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大子i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:[流程图]  [算法说明]  将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数intp(intA[],intlow,inthigh)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数voidsort(intA[],ihtL,intH)的功能是实现数组A中元素的递增排序。[算法] voidsort(intA[],ihtl,intH) { if(L 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示分割时的标志字符。  例如若str的值为“33123333435”,del的值为‘3’,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。[函数2.2] voidf(char*str,chardel) {inti,j,len;  len=strlen(str);  i=0;  while (ielem=(int*)matloc(n*sizeof(int));  if(S->elem==NULL)return-1;  S->max=n;__(1)__=0;return0; } intPush(Stack*S,intitem)   /*将整数item压入栈顶*/ {if(S->top==S->max){printf("Stackisfull!\n");return-1;}  __(2)__;item;return0; } intStackEmpty(StackS){return(!S.top)?1;0;) /*判断栈是否为空*/ intPop(Stack*S)        /*栈顶元素出栈*/ {if(!S->top){printf("Popanemptystack!\n");return-1;)  return__(3)__; } voidMultibaseOutput(longn,intB) {intm;StackS;  if(initStack(&S,MAXSIZE)){printf("Failure!\n");return;}  do{   if(Push(&s,__(4)__)){printf("Failure!\n");return;}   n=__(5)__:  }while(n!=0);  while(!StackEmpty(S)) {     /*输出B进制的数*/   m=Pop(&S);   if(m<10)printf("Kd",m);  /*小于10,输出数字*/   elseprintf("%c,m+55);   /*大于或等于10,输出相应的字符*/  }  printf("\n"); }试题五  阅读以下应用说明及VisualBasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内。[应用说明5.1]  本应用程序的窗体中有一个下拉式列表框(名称为Combol)和两个文本框(名称分别为Txtl和Txt2)。运行时,用户从Combol的列表中进行选择,程序就会将选中条目的内容以及编号(从0开始)分别在文本框Txt1和Txt2中显示出来。[程序代码5.1] PrivateSubCombol_C1ick()  Txtl.Text=Combol.__(1)__  Txt2.Text=Combol.__(2)__ EndSub  (注:可供(2)处选择的选项:List,Index,Listlndex,ListCount,Number)[应用说明5.2]  本应用程序的运行窗口如下图所示:  当用户在输入框(名为Txtln)中输入数值数据,并从下拉式列表框(名为CmbOp)中选择所需的运算后,输出框(名为TxtOut)中就会显示运算的结果。用户单击“清除”按钮(名为CmdClear)后,输入框和输出框都清空。开发该应用的部分程序代码如下:[程序代码5.2] PrivateSubCmbOp_Click()  DimDataInAsDouble,DataOutasDouble  DataIn=__(3)__  SelectCase__(4)__   Case"取整数部分"    DataOut=Int(Dataln)   Case"求平方根"    IfDatalnnext||!Lb->next||len<=0) return-1;  p=La->next;prep=La;  while(p&&p->key!=keyl){   /*查找表A中键值为key1的结点*/   prep=p;p=p->next;  }  if(!p)return-1;        /*表A中不存在键值为key1的结点*/  q=p;k=1;  while(q&&__(1)__){       /*在表A中找出待删除的len个结点*/   __(2)__:k++;  }  if(!q)return-1;        /*表A中不存在要被删除的len个结点*/·  S=Lb->next;__(3)__;  while(s&&s->key!=key2){   /*查找表B中键值为key2的结点*/  pres=s;s=s->next;  }  if(!s)return-1;        /*表B中不存在键值为key2的结点*/  __(4)__q->next;         /*将表A中的len个结点删除*/  q->next:__(5)__  pres->next=p;         /*将len个结点移至表B*/  return0; }试题七  阅读以下应用说明、属性设置及VisualBasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内。[应用说明7]  本应用程序的运行窗口如下图所示:  只要用户单击“闪烁”按钮,文字“欢迎光临”就会以0.3秒消失、0.3秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。  在开发过程中,需要设置的属性如下:[属性设置7]对象对象名属性名属性值窗体Frm1Caption闪烁显示演示标签Labe1Caption欢迎光临命令按钮CmdFCaption闪烁命令按钮CmdTCaption停止定时器Timer1Enabled__(1)__  Interval__(2)__  在开发过程中,需要编写的程序代码如下;[程序代码7] PrivateSubCmdFClick()  Timerl.__(3)__=True  Label.Visible=False EndSub PrivateSubTimerl_Timer()  __(4)__=notLabel.Visible EndSub PrivateSubCmdTClick()  Timerl.Enabled=__(5)__   Label.Visible=true EndSub从下列的2道试题(试题八至试题九)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解答有效。试题八  阅读下列程序说明和C程序,将应填入__(n)__处的字句写在答题纸的对应栏内。[程序8说明]  程序8用于计算某公司每个职工应缴纳的个人所得税额和全体职工缴纳的个人所得税总额。职工的当月收入(工资或薪金)通过键盘输入,每次输入一个职工的工号和工资(或薪金)。由于该公司的工资或薪金是不定时发放的,所以输入过程中每个职工的收入会出现多次输入,整个输入以工号小于等于0结束。  假设个人所得税法规定;个人收入所得,按月计税,以每月收入总额减除免税金额800元后的余额作为该月的月应纳税所得额,适用税率如下表所示。级数月应纳税所得额适用税率(%)123456789 不超过500元的部分 501元~2000元的部分 2001元~5000元的部分 5001元~20000元的部分 20001元~40000元的部分 40001元~60000元的部分 60001元~80000元的部分 80001元~100000元的部分 超过100000元的部分51015202530354045  上表表明,个人收入所得税是按照超额累进的税率来征收的。  设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):  若0 #defineMaxNum50 #defineBASE800     /*免税金额基数*/ intpaylevel[]={0,500,2000,5000,20000,40000,60000,80000,100000,100000¨: inttaxPrate[]={5,10,15,20,25,30,35,40,45):/*税率表*/ typedefstruct{  intld;    /*职工的工号*/.  longSalary;  /*职工的工资*/ }Info; /*查找工号为Id的职工在数组employee中的下标,返回值为0表示没有*/ intfind(intld,Infoemployee[],intm){  intj;  employee[0].Id=Id;  for(j=m;__(1)__;j--);   returnj; } voidmain(void) {InfoemployeeCHaxNum+1];  longWage;  doublesums0,K,S:  inti,j,N=0,Code;  scanf("M%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.21f\n",employee[i].Id,S);   sum+=S;  }  printf("全体职工个人所得税总额:%10,21f\n",sum); }试题九  阅读以下应用说明及VisualBasic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内.[应用说明9]  本应用程序的运行窗口如下图所示:  窗口中的三个文本框和两个按钮名称分别为Txt_salary、Txt_base、ht_tax、Cmdcompute和Cmd_quit.运行时,文本框Txt_base中存放的是免税金额基数(应扣除的基本费用)。当用户在文本框ht_salary中输入月收入(工资或薪金)并单击“计算”按钮Crud_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。  个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算.目前的免税金额基数为800元,税率如下表所示:  个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算.目前的免税金额基数为800元,税率如下表所示:级数月应纳税所得额适用税率(%)123456789 不超过500元的部分 501元~2000元的部分 2001元~5000元的部分 5001元~20000元的部分 20001元~40000元的部分 40001元~60000元的部分 60001元~80000元的部分 80001元~100000元的部分 超过100000元的部分51015202530354045  设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S(元):  若00) Then   Forj=1To9    If __(2)__ Then     S=S+(paylevel(j)-paylevel(j-1))*taxPrate(j-1)/100    Else     S=S+(__(3)__)*taxPrate(j-1)/100     ExitFor    Endlf   Nextj  Endlf  __(4)__=Str$(S) EndSub PrivateSubCmd_quit_C1ick() End EndSub PrivateSubForm_Load()  Txt_tax.Text=""  Txt_salary.Text=""  Txt_base.Text=800  Txt_tax.Locked=True  Txt_base.Enabled=__(5)__ EndSub 参考答案试题一(1)j←j-1(2)I←i+1(3)A[i]←pivot或[j]←pivot(4)A,L,k-I或A,L,k(5)A,k+I,H或A,k,H试题二(1)*pi==*pj(2)pitop(2)S->elem[S->top++]·(3)S->elem[-S->top](4)n%B(5)n/B试题五(1)Text(2)listlndex(3)Val(Txtln.Text)或Txtln.Text(4)CmbOp.Text(5)EndSelect试题六(1)k<1en(2)q=q->next或q=(*q).next(3)pres=Lb(4)prep->next或(*prep).next(5)s或pres->next或(*pres).next试题七(1)false(2)300(3)enabled(4)Label.Visible(5)false试题八(1)employee[j].Id!=Id(2)++N或N++或N=N+1(3)employee[i].Salary-BASE(4)k>payleve[j](5)k>payleve[j-1]试题九(1)Val(Txt_salary.Text)-Val(Txt_base.Text)(2)k>paylevel(j)(3)k-paylevel(j-1)(4)Txt_tax.Text(5)False
本文档为【2004上半年程序员考试真题及答案-下午卷】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_779652
暂无简介~
格式:doc
大小:89KB
软件:Word
页数:0
分类:英语六级
上传时间:2021-09-22
浏览量:0