



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 真题 二级 C语言机试真题 2010 年 03 月一、填空题第 1 题:给定程序中已建立一个带有头结点的单向链表,在 main 函数中将多次调用 fun 函数,每调用一次 fun 函数,输出链表尾部结点中的数据,并释放该结点,使 链表缩短。 注意 部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的横线上填入所 编写的若干表达式或语句。 试题源程序 #include #include #define N 8typedef struct listint data;struct list *next;SLIST;void fun(SLIST *p)SLIST
2、 *t, *s;t=P- next;s=p;while(t- next!=NULL)s=t;*found*/t=t- (1) ;foundprintf( ”%d”, (2) ); s- next=NULL:foundfree( (3) );SLIST *creatlist(int *a)SLIST *h, *p, *q;int i;h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; i data=ai;p- next=q;p=q;P- next=0;return h;void outlist(SLIST *h)SLIST *p;p=h- next; if(p
3、=NULL) printf( “ nThe list is NULL!n); elseprintf(nHead);doprintf(- %d, P- data);p=p- next;while(P!=NULL);printf(- Endn);main()SLIST *head;int aN=(11, 12, 15, 18, 19, 22, 25, 29);head=creatlist(a);printf(nOutput from head:n);outlist(head);printf(nOutput from tail:n);while(head- next!=NULL) fun(head)
4、;printf(nn);printf (nOutput from head again:n);outlist(head);参考答案:(1) next (2) t- data (3) t填空 1:要求输出链表尾部的数据,函数利用 while 循环语句找出链表尾部的指针并存入临时变量 s 中,即每循环一次就要判断链表是否已结束位置, 如果 是,则退出循环,进行输出,由于是通过 t 指针变量进行操作的,因此,都要取 t 的 next 指针重新赋给 t 来实现,所以本处应填 next 。 填空 2 :输出最后一个 结点的数据,所以应填 t- data 或(*t).data 。 填空 3:输出最后一个结
5、点的 数据后,并把此结点删除,程序要求释放内存,故应填 t 。二、改错题第 2 题:给定程序中函数 fun 的功能是:将一个由八进制数字字符组成的字符串转换为 与其值相等的十进制整数。规定输入的字符串最多只能包含 5 位八进制数字字 符。例如,若输入: 77777,则输出将是: 32767。 请改正程序中的错误,使它能得到正确结果。 注意 不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题源程序 #include #include #include int fun(char *p) int n;foundn=*p- o;p+;while(*p!=0) n=n*8+*p- o
6、;foundp+; return n;main()char s6; int i; int n;printf(Enter a string(Ocatal digits):); gets(s);if(strlen(s) 5)printf(Error: String too longer!nn); exit(0);for(i=0; si; i+)if(si 7)printf(Error: %c not is ocatal digits!nn, si);exit(0);printf(The original string:); puts(s);n=fun(s);printf(n%s is conver
7、ed to integer number: %dnn, s, n);参考答案:(1) 错误:*p 正确:*p (2) 错误:o; 正确:o;错误 1:函数的形参用的是小写 p,而函数中调用参数时用了大写 p, *p 错 写成了*p 。 错误 2:编译后可知,o错写成了o。三、编程题第 3 题:请编写函数 fun() ,它的功能是:实现两个字符串的连接 ( 不使用库函数 strcat() ,即把 p2 所指的字符串连接到 p1 所指的字符串后。 例如,分别输入下面两个字符串:FirstString-SecondString则程序输出:FirstString-SecondString 注意 部分源
8、程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入 所编写的若干语句。 试题源程序 #include #include void fun(char p1, char p2)main()char s180, s240;clrscr();printf(Enter s1 and s2:n); scanf(%s%s, s1, s2);printf(s1=%sn, s1);printf(s2=%sn, s2); printf(Invoke fun(s1, s2):n);fun(s1, s2);printf(After invoking:n);printf(%sn, s1);参考答案:void fun(char p1, char p2) int i=0, n=0; char *p=p1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供用苗木合同范本
- 加盟教育协议合同范本
- 与收款合同范本
- 仪器协议合同范本
- 化验用品购销合同范本
- 2024年四川旅游学院引进考试真题
- 2024年省厦门市梧村小学招聘考试真题
- 第二单元 遵守社会规则 大单元教学设计-2023-2024学年统编版道德与法治八年级上册
- 买卖物品交易合同范本
- 保温发泡板合同范本
- 分布式网络处理方案
- CNAS-CL02-A001:2023 医学实验室质量和能力认可准则的应用要求
- 土壤侵蚀分类分级标准SL190一2007
- 【《幼儿园安全教育研究文献综述》3300字】
- 网店运营管理(第二版)课件 1-网店运营基本原理
- 网络安全架构设计和网络安全设备部署
- 小学体育-快速跑-途中跑教学课件设计
- 动力管道设计手册-第2版
- 看不见的森林
- 安全用梯专题培训
- 危险作业申请表
评论
0/150
提交评论