江苏省计算机等级考试二级C语言笔试辅导.ppt

江苏省计算机等级考试二级C语言笔试辅导.ppt

ID:48849780

大小:410.00 KB

页数:40页

时间:2020-01-31

江苏省计算机等级考试二级C语言笔试辅导.ppt_第1页
江苏省计算机等级考试二级C语言笔试辅导.ppt_第2页
江苏省计算机等级考试二级C语言笔试辅导.ppt_第3页
江苏省计算机等级考试二级C语言笔试辅导.ppt_第4页
江苏省计算机等级考试二级C语言笔试辅导.ppt_第5页
资源描述:

《江苏省计算机等级考试二级C语言笔试辅导.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据统计[完善程序]以下程序创建一个链表并实现数据统计功能。函数WORD*create(chara[][20],intn)创建一个包含n个结点的单向链表,结点数据来自a指向的数组中存储的n个单词(字符串)。函数voidcount(WORD*h)统计h指向的单向链表中不同单词各自出现的次数,将统计结果保存到局部数组c中并输出。(2009春)程序运行时输出结果为“red:1green:2blue:3”。#include"stdio.h"#include"stdlib.h"#include"string.h"typedefstruct

2、w{charword[20];structw*next;}WORD;1WORD*create(chara[][20],intn){WORD*p1,*p2,*h=0;inti;for(i=0;inext=p1;p2=p1;}}p2->next=(2);returnh;}答案:(1)p1->word(2)0或NULL2voidcount(WORD*h){struct{cha

3、rword[20];intnum;}c[6]={0};intm=0,i;while(h){if(m==0){strcpy(c[0].word,h->word);c[0].num=1;m++;}else{for(i=0;iword)==0){(3);break;}if(i>=m){strcpy(c[m].word,h->word);c[m++].num=1;}}(4);}for(i=0;i

4、}答案:(1)c[i].num++(2)h=h->next3voidmain(){charwords[6][20]={"red","green","blue","blue","green","blue"};WORD*head=0;head=create(words,6);count(head);}4查找、删除结点[完善程序]设h1和h2分别为两个单链表的头指针,链表中结点的数据结构为:typedefstructnode{intdata;structnode*next;}NODE;sea_del函数的功能是:删除h1指向的链表中首

5、次出现的与h2指向的链表中数据完全匹配的若干个连续结点,函数返回h1指向链表的头指针。例如,初态下,h1指向链表和h2指向链表如下图所示:124790h12470h2调用sea_del函数后h1指向链表为:1h1905NODE*sea_del(NODE*h1,NODE*h2){NODE*p,*ph,*q,*s;ph=NULL;p=q=h1;s=h2;if(h1==NULL

6、

7、(1))returnh1;while(p!=NULL&&s!=NULL){while(q->data==s->data&&q&&s){q=q->next;s

8、=(2);}if(s!=NULL)/*失配时,h1起始结点后移,h2从首结点开始*/{ph=p;p=q=p->next;s=(3);}elseif(ph==NULL)h1=q;elseph->next=q;}(4);}答案:(1)h2==NULL或h2==0(2)s->next(3)h2(4)returnh16查找、删除、插入结点[完善程序]设一个单向链表结点的数据类型定义为:structnode{intx;structnode*next;};fun函数从h指向的链表第二个结点开始遍历所有结点,当遇到x值为奇数的结点时,将该结点

9、移到h链表第一个结点之前,函数返回链表首结点地址。print函数输出p指向的链表中所有结点的x值。程序运行后的输出结果是“1342”。7#include#defineN4structnode{intx;structnode*next;};voidprint(structnode*p){while((1)){printf("%4d",(2));p=p->next;}printf("");}答案:(1)p(2)p->x8structnode*fun(structnode*h){structnode*p1,*p2

10、,*p3;p1=h;p2=p1->next;while(p2){if(p2->x%2){p3=p2;p1->next=(3);p2=p1->next;p3->next=h;(4);}else{p1=p2;p2=p2->next;}}returnh;}main()

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。