国家计算机二级考试上机题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计上机题 第1套题 学号: 姓名: 1.程序填空题 题目: 给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更该程序的结构! #include stdio.h #include stdlib.h #define N 8 typedef struct list { int data; struct list *next; } SLIST; void fun( SLIST *p) { SLIST *t, *s; t=p-next; s=p; while(t-next != NULL) { s=t; /**********found**********/ t=t-___1___; } /**********found**********/ printf( %d ,___2___); s-next=NULL; /**********found**********/ free(___3___); } SLIST *creatlist(int *a) { SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; iN; i++) { q=(SLIST *)malloc(sizeof(SLIST)); q-data=a[i]; p-next=q; p=q; } p-next=0; return h; } void outlist(SLIST *h) { SLIST *p; p=h-next; if (p==NULL) printf(\nThe list is NULL!\n); else { printf(\nHead); do { printf(-%d,p-data); p=p-next; } while(p!=NULL); printf(-End\n); } } main() { SLIST *head; int a[N]={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); printf(\n\n); printf(\nOutput from head again :\n); outlist(head); } } 答案: 第1空为 next 第2空为 t-data 第3空为 t 解析: 本题是对已经建立的链表,通过调用一次函数就输出链表尾部的数据。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。   第一处:由于本题要求输出链表尾部的数据,函数是利用while循环语句找出链表尾部的指针并存入临时变量s中,那么每循环一次就要判断链表是否已结束位置,如果是,则退出循环,进行输出,由于是通过t指针变量进行操作的,因此,都要取t的next指针重新赋给t来实现,所以本处应填next。   第二处:输出最后一个结点的数据,所以应填t-data或(*t).data。   第三处:输出最后一个结点数据后,并把此结点删除了,程序要求释放内存,所以应填t。 2.程序改错题 题目: 给定程序MODI1.C中的函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。 例如,若字符串为abcd,则应输出,dcba。 请改正程序中的错误,使它能计算出正确的结果。 不要改动main函数,不得增行或删行,也不得更改程序的结构! #include stdio.h /************found************/ fun (char a) { if ( *a ) { fun(a+1) ; /************found************/ printf(%c *a) ; } } main( ) { char s[10]=abcd;

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档