ImageVerifierCode 换一换
格式:DOCX , 页数:152 ,大小:103.62KB ,
资源ID:2971991      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2971991.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c笔试题大全.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c笔试题大全.docx

1、c笔试题大全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-dataqa-data)ra-next=qa;qa=qa-next;elsera-next=pa;pa=pa

2、-next;if(pa-next!=NULL)ra-next=pa;if(qa-next!=NULL)ra-next=qa;return R;2.单连表的建立,把a-z26个字母插入到连表中,还要打印! node *p=NULL; node *head=(node*)malloc(sizeof(node); head-next=NULL; p=head; int longth=a-z; int i; while(idata = i+a;temp-next=NULL;p=temp; p-next=p; i+; return head;print(head);3、约瑟夫环: 约瑟夫环问题的一种描述

3、是:编号为1.2.3.n的n个人按顺时针方向围坐一圈,每人手持一个密码(正整数),开始任意选一个整数作为报数上限值,从第一 个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他顺时针下一个人开始重新从1开始报数,如此下去直到所有 的人全部都出列为止。试设计程序实现。 要求:利用循环链表存储结构模拟此过程,按照出列的顺序打印各人的编号。 测试数据:m的值初始为20:密码3 ,1,7,2,4,8,4。 正确的结果:6,1,4,7,2,3,5。 提示:程序运行后首先要求用户指定初始报数上限。然后读取各人的密码。设 n30*算法思想:利用循环链表*问题的规模是n

4、个人,每次杀掉第m*个人,n和m由用户输入,程序输出最后*一个活着的人的编号*/ #include using namespace std;/*约瑟夫问题的节点*/typedef struct node int number;node * next;yuesefu_node;/*建立n个人的循环链表*/yuesefu_node * create_chink(int n)yuesefu_node *head; /头指针yuesefu_node * p=new yuesefu_node; /p是第一个约瑟夫节点head=p;p-number=1;p-next=NULL;int i=2;while(

5、inumber=i; if (i=n) q-next=head; else q-next=NULL; p-next=q; p=q; i+;return head;void out_chink(yuesefu_node *head)yuesefu_node *p=head;while(p-next!=head) coutnumbernext;coutnumberendl;void kill_out(yuesefu_node *head,int n,int m)if (nm) cout*endl; cout最后活着的人的编号为: ; out_chink(head); return;yuesefu_

6、node *p=head;int count=1;while(countnext; count+;yuesefu_node *p_pre=p; /记住要删除节点的前一个指针p=p-next;cout本次杀掉的人的编号为:numbernext=p-next;delete(p);head=p_pre-next;/指定刚被杀的人的下一个人为下一轮的第一个 cout本轮后活着的人的编号为: ;out_chink(head);kill_out(head,n-1,m);void main()int n,m;coutplease input n 和 m:nm;yuesefu_node *head=creat

7、e_chink(n);kill_out(head,n,m);4、二叉树的遍历及实现所谓前根遍历,就是根结点最先遍历,其次左子树,最后右子树。 1递归遍历前根遍历二叉树的递归遍历算法描述为:若二叉树为空,则算法结束;否则(1)输出根结点;(2)前根遍历左子树;(3)前根遍历右子树;算法如下:void preorder(bitree *root) bitree *p;p=root;if(p!=NULL)coutdatalchild);preorder (p-rchild); 2非递归遍历利用一个一维数组作为栈,来存储二叉链表中结点,算法思想为: 从二叉树根结点开始,沿左子树一直走到末端(左孩子为空

8、)为止,在走的过程中,访问所遇结点,并依次把所遇结点进栈,当左子树为空时,从栈顶退出某结点,并将指针指向该结点的右孩子。如此重复,直到栈为空或指针为空止。算法如下:void preorder1(bitree *root) bitree *p,*s100;int top=0; /top为栈顶指针p=root;while(p!=NULL)|(top0) while(p!=NULL) coutdatalchild; p=stop-; p=p-rchild; 中根遍历所谓中根遍历,就是根在中间,先左子树,然后根结点,最后右子树。1递归遍历 中根遍历二叉树的递归遍历算法描述为:若二叉树为空,则算法结束;

9、否则中根遍历左子树;输出根结点;中根遍历右子树。 算法如下:void inorder(biteee *root) bitree *p;p=root;if (p!=NULL) inorder(p-lchild);coutdatarchild); 2非递归遍历同样利用一个一维数组作栈,来存贮二叉链表中结点,算法思想为:从二叉树根结点开始,沿左子树一直走到末端(左孩子为空)为止,在走的过程中,把依次遇到的结点进栈,待左子树为空时,从栈中退出结点并访问,然后再转向它的右子树。如此重复,直到栈空或指针为空止。算法如下:void inorder1( bitree *root) bitree *p,*s10

10、0; /s为一个栈int top=0;p=root;while(p!=NULL)|(top0) while(p!=NULL)s+top=p;p=p-lchild;p=stop-;coutdatarchild; 后根遍历所谓后根遍历,就是根在最后,即先左子树,然后右子树,最后根结点。1递归遍历 后根遍历二叉树的递归遍历算法描述为:若二叉树为空,则算法结束;否则(1)后根遍历左子树:(2)后根遍历历子树;(3)访问根结点。 算法如下:void postorder( bitree *root) bitree *p;p=root;if (p!=NULL) postorder (p-lchild);postorder (p-rchild);coutdatalchild;if(top0)b=s2-top; p=s1top;if(b=0)s1top=p;s2top+=1; /第二次进栈标志为1p=p-rchild;else coutdata; p=NULL; while(top0); 另外,在编译原理中,有用二叉 树来表示一个算术表达式的情形。在一棵二叉树中,若用操作数代表树叶,运算符代表非叶子结点,则这样的树可以代表一个算术表达式。若按前序、中序、后序对该二叉树进行遍历,则得到的遍历序列分别称为前缀表达式(或称波兰式)、中缀表达式、后缀表达式(递波兰式)。具体参见图6-12。图6-12

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1