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