资源描述:
《程序员考试下午试题1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、程序员考试下午试题试题一[算法说明]某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。[算法]第一步读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符帝
2、数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。第二步输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。第三步根据变量E的值,用二分法在数组ENG中查找。具体步骤如下:(1)1—>L,N~>H(2)INT((L+H)/2)—>K(3)若E=ENG(K),则C—>CN(K),转向第二步_(1)_;若E>ENG(K),则K+l—>_⑵—(4)若HC,则对I=N,L,-1(始值,终值,增量)循环执行:ENG(I)—>ENG(I+1)CN(T)—>CN仃+1)然后,将E和C分别存入—⑶
3、—和—⑷N+1—>N最后转向第二步否则,转向_(5)—第四步将数组EKG和CN输出,形成新的英汉词典文件,算法结束.试题二[函数2.1说明]函数char*strrchr(charts,charch)的功能是在字符串s中寻找字符ch若ch出现在字符串s中,则返冋最后一次岀现时的位置,否则返回NULL。[函数2.1]char*strrchr(char*s,charch)char*p;P=—(1)—;/*P指冋字符串s的结束标丿Js*/while(一一p>=s)if(—(2)—)returnp;returnNULL;}[函数2.2说明]函数BTREE*SortTreeSoa
4、rch(BTREE*tree,intd)采用非递归方法,在二义排序树(二叉查找树)中查找键值为d的结点。若找到,则返回键值所在结点的指针,否则返冋NULL。二叉查找树的结点类型为:typedefstructnode{intdata;/*结点的键值*/structnode*left;structnodebright;}BTREE;[函数2.2]BTREE*SortTreeSearch(BTREE*tree,intd){BTREE*ptr=tree;while(ptr!=NULL&&d!=ptr->data){if(ddata)—⑶_;else—⑷_;}ret
5、urn(5);试题三[函数3说明]函数ELEM*Proc(FILE*fp)从文件fp屮逐个读入职工的工号及其完成的产品数量,对相同工号的产品数量计入该职工完成的产品总数,并H按照产品总数降序排列,若多个职工完成的产品总数相同,则按工号升序排列。函数屮建立了一个有序链表,来存储每个职工的工号和完成产品总数等数据,其结点类型为:typedefstructELE{intno;/*职工工号*/intnum:/*完成的产品总数*/structELE*next;}ELEM;[函数3]ELEM*proc(FILE*fp){intm,n;ELEM*u,*v,*p,*base;base
6、=NULL;Abase是链表的首指针*/while(fscanf(fp,"%d%d",&n,&m)==2){/*链表中是否存在T号为n的结点*/for(v=base;v!=NULL&&v->n()!二n;_(1));if(v!=NULL){/*若链表中已有工号为n的结点v,则将其从链表中脱钩*/if(_(2)_base二v->next;elseu->next=v->next;v->num+=m;/*累加工号为n的职T完成的产品数最*/}else{/*创建一个工号为n的结点*/v=(ELEM*)malloc(sizeof(ELEM));v->no=n;v-〉nuni=i
7、n;/*寻找结点V的插入位置*/p=base;while(p!=NULL)if(v->num>p-〉nuni
8、
9、v->num==p->num&&(3))break;else{u=p;p=p->next;}/*将结点V插入链表*/if(p==base)_(4)_;elseu->ncxt=v;」5)_;}returnbase;}试题四[函数4说明]函数voidrcr(inta[],intn,intk)的功能是:将数组a中的元素a⑹〜a[nT]循环向右平移k个位置。为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达FI标位置。在函数rcr中