欢迎来到天天文库
浏览记录
ID:26300879
大小:252.00 KB
页数:10页
时间:2018-11-26
《2007年11月程序员模拟试题(4)下午试卷》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、www.woxia.net2007年11月程序员模拟试题(4)下午试卷●试题一阅读下列说明和流程图,将应填入(n)处的语句写在答题纸的对应栏内。【说明】下列流程图用于从数组K中找出一切满足:K(I)+K(J)=M的元素对(K(I),K(J))(1≤I≤J≤N)。假定数组K中的N个不同的整数已按从小到大的顺序排列,M是给定的常数。【流程图】此流程图1中,比较"K(I)+K(J)∶M"最少执行次数约为 (5) 。 图1 ●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数print(BinTreeN
2、ode*t;DateType 路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要做下去!·············我下资源网www.woxia.net&x)的功能是在二叉树中查找值为x的结点,并打印该结点所有祖先结点。在此算法中,假设值为x的结点不多于一个。此算法采用后序的非递归遍历形式。因为退栈时需要区分右子树。函数中使用栈ST保存结点指针ptr以及标志tag,Top是栈顶指针。【函数】voidprint(BinTreeNode*t;DateType&x){stackST;inti,t
3、op;top=0;∥置空栈while(t!=NULL&&t->data!=x‖top!=0){while(t!=NULL&&t->data!=x){∥寻找值为x的结点 (1) ;ST[top].ptr=t;ST[top].tag=0; (2) ;}if(t!=Null&&t->data==x){∥找到值为x的结点for(i=1; (3) ;i++)printf("%d",ST[top].ptr->data);}else{while( (4) )top--;if(top>0){ST[top].tag=1; (5) ;}}} ●试题三
4、阅读下列函数说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数DelA_InsB(LinkedListLa,LinkedListLb,intkey1,intkey2,intlen)的功能是:将线性表A中关键码为key1的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为typedefstructnode{intkey;structnode*next;}*Lin
5、kedList;路过··走过···需要的时候记得回来看看····因为容易得到所以得不到大家的珍惜·即使这样我们也要做下去!·············我下资源网www.woxia.net【函数】intDelA_InsB(LinkedListLa,LinkdeListLb,intkey1,intkey2,intlen){LinkedListp,q,s,prep,pres;intk;if(!La->next
6、
7、!Lb->next
8、
9、len<=0)return-1;p=La->next;prep=La;while(p&&p->key!=key
10、1){/*查找表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中不存在键值为
11、key2的结点*/ (4) =q->next;/*将表A中的len个结点删除*/q->next= (5) ;pres->next=p;/*将len个结点移至表B*/return0;} ●试题四阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a
12、[10][9]中,分别求出这10个新序列。例:序列 {6,8,9,1,2,5,4,7,3}经重排后成为{3,4,5,2,1,6,8,9,7}【函数】#include#includevo
此文档下载收益归作者所有