07软考程序员模拟试题2下午da

07软考程序员模拟试题2下午da

ID:13742889

大小:200.00 KB

页数:13页

时间:2018-07-24

07软考程序员模拟试题2下午da_第1页
07软考程序员模拟试题2下午da_第2页
07软考程序员模拟试题2下午da_第3页
07软考程序员模拟试题2下午da_第4页
07软考程序员模拟试题2下午da_第5页
资源描述:

《07软考程序员模拟试题2下午da》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、●试题一阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。【算法说明】某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。【算法】第一步读入英汉词

2、典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。第二步输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。第三步根据变量E的值,用二分法在数组ENG中查找。具体步骤如下:1.1→L,N→H2.INT((L+H)/2)→K3.若E=ENG(K),则C→CN(K),转向第二步若E

3、(始值,终值,增量)循环执行:ENG(I)→ENG(I+1)CN(I)→CN(I+1)然后,将E和C分别存入(3)和(4),N+1→N最后转向第二步否则,转向(5)第四步将数组ENG和CN输出,形成新的英汉词典文件,算法结束。●试题一【答案】(1)H(2)L(3)ENG(L)或等价表达式(4)CN(L)或等价表达式(5)(2)【解析】H,L分别是二分法查找的上界和下界,所以(1)和(2)应分别填入H,L。(3)和(4)处是将L之后的元素依次后移以后,将E和C分别存入L处,所以(3)和(4)处应分别填入ENG(L)和CN(L)或

4、其他等价表达式,比如ENG(H+1)。(5)处是H>L,这说明查找表未空,需要转向(2)继续查找。●试题二阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数MultibaseOutput(longn,intB)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:#defineMAXSIZE32typedefstruct{int*

5、elem;/*栈的存储区*/intmax;/*栈的容量,即栈中最多能存放的元素个数*/inttop;/*栈顶指针*/}Stack;【代码】intInitStack(Stack*S,intn)/*创建容量为n的空栈*/{S->elem=(int*)malloc(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(″Stac

6、kisfull!\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(″Failur

7、e!\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(″%d″,m);/*小于10,输出数字*/elseprintf(″%c″,m+55);/*大于或等于10,输出相应的字符*/}printf(″\n″);}●试题二【答案】(1)S->top(2)S->elem[S->top++](3)S->elem[

8、--S->top](4)n%B(5)n/B【解析】(1)此处初始化栈顶指针,即S->top=0。(2)此处语句是入栈操作,即先将入栈元素放入栈顶,然后修改栈顶指针。(3)此处语句是出栈操作,即修改栈顶指针,然后弹出栈顶元素。(4)此处语句求得将要入栈的数字,即用n%B得到B进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。