欢迎来到天天文库
浏览记录
ID:47162191
大小:114.50 KB
页数:32页
时间:2019-08-14
《c语言编程笔试题大全》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、c语言编程笔试题大全2007年03月19日星期一00:151、线形表a、b为两个有序升序的线形表,编写一程序,使两个有序线形表合并成一个有序升序线形表答案在请化大学严锐敏《数据结构第二版》第二章例题,数据结构当中,这个叫做:两路归并排序Linklist*unio(Linklist*p,Linklist*q){linklist*R,*pa,*qa,*ra;pa=p;qa=q;R=ra=p;while(pa->next!=NULL&&qa->next!=NULL){if(pa->data>qa->data){ra->next=qa;qa=qa->next;
2、}else{ra->next=pa;pa=pa->next;}}if(pa->next!=NULL)ra->next=pa;if(qa->next!=NULL)ra->next==qa;returnR;}2.单连表的建立,把'a'--'z'26个字母插入到连表中,还要打印! node*p=NULL; node*head=(node*)malloc(sizeof(node)); head->next=NULL; p=head; intlongth='a'-'z'; inti;
3、 while(i<=longth) { node*temp; temp=(node*)malloc(sizeof(node)); temp->data=i+'a';temp->next=NULL;p=temp; p->next=p; i++; } returnhead;print(head);3、约瑟夫环:约瑟夫环问题的一种描述是:编号为1.2.3…….n的n个人按顺时针方向围坐一圈,每
4、人手持一个密码(正整数),开始任意选一个整数作为报数上限值,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他顺时针下一个人开始重新从1开始报数,如此下去直到所有的人全部都出列为止。试设计程序实现。要求:利用循环链表存储结构模拟此过程,按照出列的顺序打印各人的编号。测试数据:m的值初始为20:密码3,1,7,2,4,8,4。正确的结果:6,1,4,7,2,3,5。提示:程序运行后首先要求用户指定初始报数上限。然后读取各人的密码。设n<30******算法思想:利用循环链表*************问题的规
5、模是n个人,每次杀掉第m******个人,n和m由用户输入,程序输出最后******一个活着的人的编号*************/#includeusingnamespace std;/*****约瑟夫问题的节点*******/typedef structnode{int number;node*next;}yuesefu_node;/**********建立n个人的循环链表*******/yuesefu_node*create_chink(intn){yuesefu_node*head;//头指针yuesefu_node*
6、p=newyuesefu_node;//p是第一个约瑟夫节点head=p;p->number=1;p->next=NULL;inti=2;while(i<=n){ yuesefu_node*q=newyuesefu_node;//新增一个约瑟夫节点 q->number=i; if(i==n) { q->next=head; } else { q->next=NULL; } p->next=q; p=q; i++;}return head;}voidout_chink(yuesefu_node*head){yuese
7、fu_node*p=head;while(p->next!=head){ cout<number<<" "; p=p->next;}cout<number<8、ntnext; count++;}yuesefu_node*p_p
8、ntnext; count++;}yuesefu_node*p_p
此文档下载收益归作者所有