省二级C措辞测验真题重点题型分类总结

上传人:人*** 文档编号:568802045 上传时间:2024-07-26 格式:PPT 页数:72 大小:305KB
返回 下载 相关 举报
省二级C措辞测验真题重点题型分类总结_第1页
第1页 / 共72页
省二级C措辞测验真题重点题型分类总结_第2页
第2页 / 共72页
省二级C措辞测验真题重点题型分类总结_第3页
第3页 / 共72页
省二级C措辞测验真题重点题型分类总结_第4页
第4页 / 共72页
省二级C措辞测验真题重点题型分类总结_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《省二级C措辞测验真题重点题型分类总结》由会员分享,可在线阅读,更多相关《省二级C措辞测验真题重点题型分类总结(72页珍藏版)》请在金锄头文库上搜索。

1、结束第 1 页扒促食璃评莆强描妒偿捌如向锅颐景懒贩规绘肤长雀浆锥祸稀驰新嘘盅赋省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 2 页真题汇总小结真题汇总小结省二级考试C语言真题重点题型分类一、线性表建立、删除、插入二、文件操作文件翻开、读、写三、递归问题四、字符串操作问题五、变量作用域与静态变量问题六、数列或数字处理问题七、排序问题八、上机试题贮签租渝偿浚凳宇云必榨怒逞竣她秉找相筐雁碧麓衫靳哲州勘枉了资掘搏省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 3 页线性表是n个数据元素的有限序列。通常记作1,2,3,n。

2、姓名电话号码蔡颖63214444陈红63217777刘建平63216666王小林63218888张力63215555.一、线一、线 性性 表表例1、数学中的数列11,13,15,17,19,21例2、英文字母表,B,C,D,EZ。例3、某单位的号码簿。一线性表的逻辑结构号码簿是数据元素的有限序列,每一数据元素包括两个数据项,一个是用户姓名,一个是对应的号码。夕吏嚏佩撵芯窿刃澈钨扳慕隙惭罕以顿妄佐季浸吓饥孕峰从垛醛篇次刷昧省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 4 页说明:设=1,2,.,i-1,i,i+1,n是一线性表1均匀性:线性表的数据元素可

3、以是各种各样的,但同一线性表中的元素必须是同一类型的;2相邻性:每个元素至少有一个元素与之相邻。在表中i-1领先于i,i领先于i+1,称i-1是i的直接前趋,i+1是i的直接后继;1,无前驱,n无后继。3有限性:线性表中元素的个数n称为线性表的长度,n=0时称为空表4有序性:i是线性表的第i个元素,称i为数据元素i的序号,每一个元素在线性表中的位置,仅取决于它的序号;二线性表根据其存储结构不同可分为:链式存储结构的链表顺序存储结构的顺序表崭娥痕漠稚虎袁族颊家簿克宗留秧山乃璃学棺伏奇雷飞蠢番塌卉鱼役奋集省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 5 页

4、一线性链表的概念1线性链表1、 线性链表线性链表a a4 4a a3 3a a1 1a a2 2 0101010241014101010121014101610181020102210241026用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自身信息外,还保存了直接后继元素的存储位置。用线性链表存储线性表时,数据元素之间的关系是通过保存直接后继元素的存储位置来表示的酌哺捣娜独噎颊涤奴舟菜科鹤馏招相鼠卜法租腆嗡碟桓构桂瀑狄斑滓熊棉省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 6 页线性链表图示ai-1aia2a1ai+1nan用线性链

5、表存储线性表时,数据元素之间的关系是通过保存直接后继元素的存储位置来表示的2线性链表图示一般来说,我们并不需要写出直接后继的实际地址,为直观起见,通常用如下所示的图表示链表,其中,箭头表示相应单元中保存的是它所指向结点的存储地址。hed是头指针hed票率聂咎档映索壕槐枢壶揣我秆呈渊开狱民屠蚤塘跳雪泪很组寇财它署酷省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 7 页结点:数据元素及直接后继的存储位置地址组成一个数据元素的存储结构,称为一个结点;结点的数据域:结点中用于保存数据元素的局部;结点的指针域:结点中用于保存数据元素直接后继存储地址的局部;3线性链

6、表有关术语存储数据元素存储后继结点存储地址结点结点数据域数据域指针域指针域活胸被讶辆蜗戈卷谁辞痘匙坦渊堕师郡斌捣箔荫高濒粱彬挥忘蘑潭诣剧惯省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 8 页头指针:用于存放线性链表中第一个结点的存储地址;空指针:不指向任何结点,线性链表最后一个结点的指针通常是空指针,空指针一般用NULL表示;头结点:线性链表的第一元素结点前面的一个附加结点,称为头结点;带头结点的线性链表:第一元素结点前面增加一个附加结点的线性链表称为带头结点的线性链表;带头结点的线性链表图示hed是头指针ai-1aia2a1ai+1nan头结点空指针

7、hed抒窗臀颂颤平成棚衍苯铆记模饿窘为扔袄瞎旁讽麻赖占摔枣贴堆库抒疥宠省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 9 页线性链表的每个结点中只有一个指针域故也称为单链表ai-1aia2a1ai+1nanhed是头指针hed注:从以往二级考试来看都是用没有附加头结点的链表,如下图杆嗽莱沧诚脆试谆瞅缚浚苦鞠蜘丘钙蹄泣呐游卓实邢绎堂忍脐坎玻拂果锥省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 10 页结点变量图示structnodeintx;structnode*next;;node:结构体类型名;node类型结构变

8、量有两个域:x:用于存放线性表的数据元素,next:用于存放元素直接后继结点的地址;该类型结构变量用于表示线性链表中的一个结点;h和hed:指向结构体结点的指针变量,用于存放node类型结构变量的地址; 数据域数据域指针域指针域xnextnode类型结构变量h h结构体结点指针变量h4线性链表的结点类型定义及指向结点的指针类型定义structnode*h;或structnode*hed;结构体指针变量定义结构体类型定义轰助注毋揍饯静因涩慷硅样寄韵符梗救摘捧厌酋蔑亮序犊画晴把英少郴模省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 11 页常用的引用格式(一

9、般格式):指针变量名-结构体成员名如:h-x=10;h=h-next;注意:在引用过程中,数据类型还是成员的数据类型。如:h-x为成员x的数据类型即整形5怎样利用结构体指针变量来引用结构体成员structnode*h;或structnode*hed;不常用引用格式:*指针变量名.结构体成员名如:(*h).x=10;*h=(*h).next;镁所硅藉恒煽弧命匹俭诗邻郎秆悍蔷克江鼠扇滓殷瘁刽呸饱州灸姚彭彭拢省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 12 页设hed是指向链表第一个结点的指针变量,hed用来保存线性链表中第一个结点的地址。ai-1aia2

10、a1ai+1nanheadheadHed指向的链表二线性链表根本操作的算法假设线性表用不带头结点的线性链表hed的存储。下面讨论在这种存储方式下,线性表各种根本操作的算法。当线性表用线性链表存储时,对线性表各种根本操作实际上就是对存储在内存中的线性链表进行操作。纯疹事坚丽蝇怪腻房棕酚剧雏嘿巾冶筹侮颓拱铰丧味到旗榷佯炎殖题炽劫省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 13 页如何在线性链表hed上实现线性表的根本操作?如何建空表?如何插入?删除?变比绣祖愁火越最腰惨篙礁氨杏擞齿埃挨蜂妙酗怠讫蔬格椰薯琅娟儡运痴省二级(C语言)考试真题重点题型分类总结省

11、二级(C语言)考试真题重点题型分类总结结束第 14 页1取元素操作从链表中找到与输入的值m相等的元素功能:1、将线性链表中第i个元素赋值给e2、从链表中找到与输入的值m相等的元素,并将其指针返回取元素操作主要步骤:1查找链表的第i个元素结点;2)将第i个元素结点中的数据元素赋值给e;或将其指针返回;取元素元素操作图示ai-1aia2a1ai+1nanheadheadp1p1p p注:p、p1为工作指针蛙阳畸尸枚堂睦耍漠斤塌妆溶是简悦妥壶惦糠峰缮搐婴磁店垂译赊哼还汹省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 15 页2插入操作功能:在线性链表hed的第

12、i个元素结点之前插入一个新元素结点;插入操作图示:插入前插入后ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1naneheadhead剂腮茬愉为竖颊匙诬槛同何掏幌配主裕寸砾至那阿洒茅漆赃瞩硬钞官履伐省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 16 页插入操作主要步骤:1查找链表L的第i-1个元素结点;2为新元素建立结点;3修改第i-1个元素结点的指针和新元素结点指针完成插入;靛被量俄墅揽锤谊妆震屑症恩屎堂蝇耕殷映煞末座迷拆核然亮柜危匆术唇省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束

13、第 17 页3删除操作功能:在线性链表L中删除第i个元素,并且用e返回其值删除操作图示:删除前删除后ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1nanheadhead臣疮傀造赔间键炮杨追呜梭挞瘩超欺邹猿流禄旗顽耙抨醚损玉畔榷谅谣糖省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 18 页删除操作主要步骤:1查找链表的第i-1个元素结点;2修改第i-1个元素结点指针,删除第i个元素结点;3)将第i个元素结点中的数据元素赋值给e;4回收被删除结点空间;用ree(指针变量)函数释放删除结点的空间粹挖擦而句他养也吕菊铃同等堑毛佬忱

14、煽续坍剧貌蹲梳扛佑税制字螺矽练省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 19 页4线性链表归并操作图示131n542n6papb归并31n6papcpb524汲有灰恳鹊糕乖种熙逊阁仰径匠篓咳几欲水筐颐蕴止渡甚玉吵鄙军掸凡灿省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 20 页以前考过的线性链表的题目以前考过的线性链表的题目lP10 13题即题即2000年秋的填空题中的年秋的填空题中的13题题此题是链表归并问题:首先要搞清楚每个指针的用途。如pt指针变量就是用来指向建立的新结点。殃魁省盂宁狂置肢谗浦酚极甘蠕翱

15、枢慌杀冶诬肮姜斜摸埃赘认郊录味堪瘸省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 21 页P10 13题即题即2000年秋的填空题中的年秋的填空题中的13题题PNODE*pddPNODE*p,PNODE*pb)PNODE*pcr,*pt,*pc;pc=NULL;while(23)i(p-y=pb-y)pt=(24)mlloc(sizeo(PNODE);pt-x=p-x+pb-x;pt-y=p-y;pt-next=NULL;i(pc=NULL)pc=pcr=pt;elsepcr-next=pt;(25);p=p-next;pb=pb-next;elsei(

16、26)pb=pb-next;elsep=p-next;Returnpc;本空显然是控制结束的,只有当p、pb两个链表中都没有元素时才会结束分配的空间类型判断ppb中当前元素y成员的值谁大将新增的结点连到工作指针pcr上姐浦烷刽儿气返互众它狡察崩套烙桂僧潍撒焊溪脆涨彻般弘萝吟社牌厕纶省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 22 页P10 13题答案题答案PNODE*pddPNODE*p,PNODE*pb)PNODE*pcr,*pt,*pc;pc=NULL;while(23)i(p-y=pb-y)pt=(24)mlloc(sizeo(PNODE);p

17、t-x=p-x+pb-x;pt-y=p-y;pt-next=NULL;i(pc=NULL)pc=pcr=pt;elsepcr-next=pt;(25);p=p-next;pb=pb-next;elsei(26)pb=pb-next;elsep=p-next;Returnpc;p&pbPNODE*p-ypb-ypcr=pt样篆潮神食她燃涣瑰酝篓芝痕昼玛寞咎刁径桅毕岭丁蔗擅当廉碎柞彝隔眶省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 23 页P21 14题即题即2001年春的填空题中的年春的填空题中的14题题PNODE*pddPNODE*p)PNODE*p1

18、,*p2,*p;p1=p2=p;while(p1)i(p1-x%2=0&(27)p=p1;p1=p1-next;(28)=p1;P-next=p;(29)elsep2=p1;p1=p1-next;Min()PNODE10=1,2,3,4,5,6,7,8,9,10,*h=,*p;inti;or(i=0;i,p-x);p=p-next;链表结尾的指针NULL如果p1指向的结点就是第一个结点,那么不用移本行是从链表中删除结点将p指向的结点插到链表的头部没找着偶数值结点时,指针向后移,P2一直在P1的前一个结点蹄互帘隶舅范荒榆顾卿皇竣火买筐翻上值触蓄淮痢螺珊阴钝崇焦胶呜陶市省二级(C语言)考试真题重点

19、题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 24 页P21 14题答案题答案PNODE*pddPNODE*p)PNODE*p1,*p2,*p;p1=p2=p;while(p1)i(p1-x%2=0&(27)p=p1;p1=p1-next;(28)=p1;P-next=p;(29)elsep2=p1;p1=p1-next;Min()PNODE10=1,2,3,4,5,6,7,8,9,10,*h=,*p;inti;or(i=0;i,p-x);p=p-next;NULLp1!=pp2-next=p1p=p擞犬登注逐聋杀液斯椽闪痰文郧窘旬凑窜筷诺凯缸体奠迟消匣毫星胯恼兽省二级(C语言)

20、考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 25 页P31 14题即题即2001年秋的填空题中的年秋的填空题中的14题题Structnode*delddstructnode*h,intvlue)structnode*p1,*p2;intlge=0;p1=p2=h;while(p1&lge=0)i(p1-x=vlue)lge=1;i(p1=h)h=(27);ree(p1);elsep2-next=(28);ree(p1);elsep2=p1;p1=(29);I(lge=0)p1=(structnode*)mlloc(sizeo(structnode);p1-x=vlu

21、e;p1-next=0;i(h=0)h=p1;else(30);链表结束或找到结点不执行循环lge是一个标志变量用来标志是否找到结点如果找到符合每件的结点,就删除结点如果没找到适合每件的结点,那么指针后移如果没找到结点构造一个新结点如果链表为空就直接将构造的结点作为链表的第一个结点,否那么将其插入到链表最后亥请肋牟社璃澳栖赋拔苏搀躲羽欢翠砒推诧掖魁捉脊胡坍垦撇袖奏摄无郧省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 26 页P31 14题答案题答案Structnode*delddstructnode*h,intvlue)structnode*p1,*p2

22、;intlge=0;p1=p2=h;while(p1&lge=0)i(p1-x=vlue)lge=1;i(p1=h)h=(27);ree(p1);elsep2-next=(28);ree(p1);elsep2=p1;p1=(29);I(lge=0)p1=(structnode*)mlloc(sizeo(structnode);p1-x=vlue;p1-next=0;i(h=0)h=p1;else(30);p1-nextp1-nextp1-nextp2-next=p1凹舀捕遇条萄诞模躬界捏卷艰邀狸填抡迫姚婉舔刽奇膏粤那辊淡榨谓厉涅省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重

23、点题型分类总结结束第 27 页P42 14题即题即2002年春的填空题中的年春的填空题中的14题题(27)creteintn)structnode*p,*p1,*p2,*h=NULL;inti=0;i(nx);p-next=NULL;i(h=NULL)(29);elsep1=p2=h;while(p2&p-x=p2-x)p1=p2;p2=p2-next;i(p2=h)(30);h=p;elsep-next=p2;p1-next=p;i+;Returnh;函数返回值类型如果找到的插入位置是第一个结点创立结点个数的控制如果链表为空,直接插入结点作为首结点如果找到的插入位置不是第一个结点就在找到的位

24、置插入慑浓莎悄届炽擎契六诞屹堵矗懒腐伶沧素捅颊掐疯超蹈垫猴拈皮撇棕头凡省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 28 页P42 14题答案题答案(27)creteintn)structnode*p,*p1,*p2,*h=NULL;inti=0;i(nx);p-next=NULL;i(h=NULL)(29);elsep1=p2=h;while(p2&p-x=p2-x)p1=p2;p2=p2-next;i(p2=h)(30);h=p;elsep-next=p2;p1-next=p;i+;Returnh;structnode*p-next=p2inext

25、=NULL)returnhed;i(dir=0)while(p1-next)p2=p1;p1=p1-next;(23)=NULL;p1-next=(24);hed=p1;elsehed=(25);p2=hed;while(p2-next)p2=p2-next;(26);p1-next=NULL;returnhed;右移一次如果是空链表或只有一个结点的链表左移一次找到最后一个结点使得p1指向最后一个结点P2指向倒数第二个结点将最后一个结点p1指向的移到链表头找到最后一个结点P2指向最后一个结点韭伞饼逗勺邱榔糊影柑淤讣稗霸丰芯玄跨铆赴讫幅枫缺政妥便婚道啄众铲省二级(C语言)考试真题重点题型分类总结

26、省二级(C语言)考试真题重点题型分类总结结束第 30 页P51 14题答案题答案Structnode*loopstructnode*hed,intdir)structnode*p1,*p2;p1=hed;i(p1=NULL|p1-next=NULL)returnhed;i(dir=0)while(p1-next)p2=p1;p1=p1-next;(23)=NULL;p1-next=(24);hed=p1;elsehed=(25);p2=hed;while(p2-next)p2=p2-next;(26);p1-next=NULL;returnhed;p1-nextp2-nexthedp2-nex

27、t=p1备焕巫姻卜姻猴跳栅癌顺睁蕊径名葛颅挖繁说金粉情韧蔚钢检诡寄贴篙扩省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 31 页P60 14题即题即2003年春的填空题中的年春的填空题中的14题题Structnode*ind_delstructnode*hed,int*pm)structnode*p1,*p2,*pmx,*pre;i(hed=NULL)returnNULL;pmx=(23);p2=p1=pmx;while(p1)i(p1-x(24)pre=p2;pmx=p1;p2=p1;p1=p1-next;i(pmx=hed)hed=pmx-next;

28、else(25)=pmx-next;(26)=pmx;Returnhed;如果是空链表就结束函数,并返回空指针首先认为第一个结点是x值最大的结点Pmx始终指向当前x值最大的结点P1为工作指针活动指针如果首结点的x值最大就删除首结点删除pmx指向的结点将x值最大的结点地址保存到pm指向的指针变量中喂鄙靶描证遇亢淳别瘸侄猾疼犬奠氟愿而什度狞叁忻倔灌粳最籽左膛粤券省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 32 页P60 14题即题即2003年春的填空题中的年春的填空题中的14题题Structnode*ind_delstructnode*hed,int*p

29、m)structnode*p1,*p2,*pmx,*pre;i(hed=NULL)returnNULL;pmx=(23);p2=p1=pmx;while(p1)i(p1-x(24)pre=p2;pmx=p1;p2=p1;p1=p1-next;i(pmx=hed)hed=pmx-next;else(25)=pmx-next;(26)=pmx;Returnhed;hedpmx-xpre-next*pm阿颅唱丸眷勿熬拣铬禄无霓吁豁骆搬莲侵嘉具盟敢才癣柴途翻矫撵钩绪悔省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 33 页c2.2线性表的顺序表示和实现一线性表的

30、顺序存储结构顺序表1线性表的顺序存储结构2顺序表的类型定义二顺序表的根本操作算法三利用根本操作实现线性表的其他操作2、顺序链表2、顺序链表、顺序链表悬乃索斩肩建蛙鼻漫闲裳戎俄樊杠恐是账虫纬利喧瘸臃适恫异偶绝惑完班省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 34 页为了存储线性表,至少要保存两类信息:1线性表中的数据元素;2线性表中数据元素的顺序关系;在计算机内部可以采用不同的方式来存储一个线性表,其中最简单的方式就是本节要讲的线性表的顺序存储结构。捐览特戒棺尺诉蛀扎麻鲁恬虞朝馏论窄邱显浓此栈舔氢拙株级腐舱娄帽好省二级(C语言)考试真题重点题型分类总结

31、省二级(C语言)考试真题重点题型分类总结结束第 35 页线性表的顺序存储结构,就是用一组连续的内存单元依次存放线性表的数据元素。用顺序表存储线性表时,数据元素之间的逻辑关系,是通过数据元素的存储顺序反映出来的a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an n线性表1,2,3,.n的顺序存储结构用顺序存储结构存储的线性表称为顺序表一线性表的顺序存储结构顺序表1线性表的顺序存储结构次讨勃访琅盛荷盯财东这间允隙澄蛆蹲抖担假设底诀瞥咱朗砖鞍寥贰绍机击省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 36 页说明:在顺序存储结构下,

32、线性表元素之间的逻辑关系,可通过元素的存储顺序反映表示出来,所以只需存储数据元素的信息;假没线性表中每个数据元素占用k个存储单元,那么,在顺序存储结构中,线性表的第i个元素的存储位置与第1个元素的存储位置的关系是:Loc(i)=Loc(1)+(i1)k这里Loc(i)是第i个元素的存储位置,Loc(1)是第1个元素的存储位置,也称为线性表的基址;袖燕瑚遥霞至侥靛虐艳孟闸电伯傀谴妓瘩径疚屈间珐踌姻喘篡辆项叛忆呻省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 37 页怎样在计算机上实现线性表的顺序存储结构?2、顺序表的类型定义以上用自然语言描述了线性表的顺序

33、存储结构,怎样将这种存储方式在计算机上实现?为此,我们用C语言对这种存储方式进行描述,我们知道C语言一维数组的机内表示也是顺序结构,因此,可借用C语言的一维数组实现线性表的顺序存储。惕斌夯拷辛惭返啸矢煌铀赤办惨笋闰揭吧钡抛澎介砌嫡跋亿涟痈嗣姨格鳃省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 38 页顺序表的类型定义#deineLIST_INIT_SIZE100/线性表存储空间的初始分配量#deineLISTINCREMENT10/线性表存储空间的分配增量typedestructElemType*elem;/线性表存储空间基址intlength;/当前线

34、性表长度intlistsize;/当前分配的线性表存储空间大小/以sizeo(ElemType)为单位SqList;SqList:类型名,SqList类型的变量是结构变量,它的三个域分别是:*elem:存放线性表元素的一维数组基址;其存储空间在初始化操作建空表时动态分配;length:存放线性表的表长;listsize:用于存放当前分配存放线性表元素的存储空间的大小。统份概兹蹄诈稻椽恃某啊怜设梧晶距纺甭滔聚闷渝轨疵鸿锈狡斟韦笆煽侈省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 39 页顺序表图示a a1 1a a2 2a ai-1i-1a ai ia a

35、i+1i+1a an nL.lengthL.lengthL.listsizeL.listsizeL.elemL.elemn nLIST_INIT_SIZELIST_INIT_SIZE存放线性表元素的一维数组设=1,2,3,.n是一线性表,L是SqList类型的结构变量,用于存放线性表,那么L在内存中的状态如下图:焦隅鸿堪遏藤粹疹膳蕾哼诫辆青瞒装挤葵悦葱拒潘肆权闯细韵苦摘禁躲朔省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 40 页如何在顺序表上实现线性表的根本操作?如何建空表?如何求表长?如何插入?删除?设线性表用顺序表L存储,下面我们介绍用顺序表存储线

36、性表时,各种根本操作的算法。当线性表用顺序表存储时,对线性表各种根本操作实际上就是对存储在内存中的顺序表进行操作。二、顺序表的根本操作算法佑或见曰击观大敞搜坪寸喉忆表碑竭战漂茬委谎筑鸿痞案恨等串晃白冤巩省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 41 页取元素操作图示1取元素操作GetElem_Sq(SqListL,inti,ElemType&e)功能:将顺序表中第i个元素赋值给e算法:SttusGetElem_Sq(SqList&L,inti,ElemType&e)I(iL.length-1)returnERROR;/i非法e=L.elemi-1;

37、/将顺序表中第i个元素赋值给ereturnOK;/GetElem_Sq算法2.4由于C语言的一维数组下标从0开始,故线性表的第一个元素放在L.elem0,第i个素放L.elemi-1中,最后一个元素放在L.elemL.length-1中。侵隧鉴谤颓鬃瞎弄饵须亦囊非又筒钩喉楞叉艇缚藻列劲睁砾凰忽悲弱菜氛省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 42 页取元素操作 n nLIST_INIT_SIZELIST_INIT_SIZEL.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_

38、SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an nnLIST_INIT_SIZE-1e ei再演示一次冯禁翌鄙规圃戊翅彬蕊位皂菩述答伴得泡镀冬育淘愉斗铲也衙硝右缆东寂省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 43 页2插入操作ListInsert_Sq(&L,i,e)参数:L:顺序表,i插入位置,e被插入元素;因为插入操作对顺序表进行修改,所以用了引用参数&L;功能:在顺序表L的第i个元素之前插入一个新元素e;插入操作示意图:屉琅核霓绦株泼疹缴驯钻臻擒诬阻珠士雪艰鬃莱每俐

39、叫秦板涵旷演雄唆述省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 44 页插入操作图示插入操作主要步骤:1i是否合法,假设合法转2,否那么算法结束,并返回ERROR;2L是否已满,假设未满转3,否那么算法结束,并返回ERROR;3将顺序表i及之后的所有元素后移一个位置;4)将新元素写入空出的位置;5表长+1;用鼠标单击图中的绿字撇锤棚呢露坞桔矩脊逼系挠狰惯樟找抛蔚莹骤踩护抠哦欢既液蠢酥稼邱瑟省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 45 页插入元素操作e eL.lengthL.lengthL.listsize

40、L.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an nnLIST_INIT_SIZE-1欢洪噎痰缓脚仗独竣夸毖烁率啪温反伪彤介警莫底珍康例怪明酬脾既扰馒省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 46 页插入元素操作L.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a

41、2 2a ai-1i-1e ea ai ia an nn+1LIST_INIT_SIZE-1超辱廷百识给咯肩本躁第婉贷蔷满怒沙蔑篡闷棕愿坍刻淘净绵形胯书玲点省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 47 页SttusListInsert_Sq(SqList&L,inti,ElemTypee)/在顺序表L中第i个位置之前插入新的元素e,/i的合法值为1iL.length+1,当i=L.length+1时/e插在表尾i(iL.length+1)returnERROR;/i值不合法i(L.length=L.listsize)returnERROR;/顺序

42、表已满or(j=L.length-1;j=i-1;-j)L.elemj+1=L.elemj;/插入位置及之后的元素后移一个位置L.elemi-1=e;/插入e+L.length;/表长增1returnOK;/ListInsert_Sq算法2.5插入操作算法为初学者易于理解插入算法,这里通过下标引用L.elem中的元素。帅怀韧扇研行送碟骗洒枪牲俊谅咒旨么寝页叶扎慢医削茹方驳等谰匈奔芦省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 48 页3删除操作ListDelete_sq(SqList&L,inti,ElemType&e)功能:删除顺序表L的第i个元素,

43、并用e返回删除操作图示判巴游趁号败羞穿敢凸倪富嘲乖抗粉昧谅痪碍阮贬赶辱搞垦瞥球诲挎涸帧省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 49 页删除操作主要步骤:1i不合法或表空,算法结束,并返回ERROR;否那么转22将i赋值给e;3将顺序表中i后面的元素依次向前移动一个位置;4表长-1删除操作图示用鼠标单击图中的绿字纺邓告萧觅赦捎藏仆结亦布沃舱栈缨遥念警磐孕苞启圭熟逢讣敌捡溯史值省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 50 页删除元素操作L.lengthL.lengthL.listsizeL.listsi

44、zeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an nnLIST_INIT_SIZE-1讨掩备蛊振厦诗万娇蝇椽艺誉男迈羞澎哈槽糖脐伊拈殉殿剂斤篡袒亭玩栅省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 51 页删除元素操作L.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-

45、1i-1aiai+1+1a an nn-1LIST_INIT_SIZE-1搏序渝袖俏瓶寡鲍稻寇翘笺粟婚余曙杨磺铸计柏婉宏坎冠由窘霖汐豆隶绪省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 52 页删除操作算法SttusListDelete_Sq(SqList&L,inti,ElemType&e)/在顺序表L中删除第i个元素,并用e返回其值/i的合法值为1iL.length,/表空L.length=0那么iL.lengthi(iL.length)returnERROR;/i值不合法或表空e=L.elemi-1;/被删除元素的值赋给eor(j=i;j=L.le

46、ngth-1;+j)L.elemj-1=L.elemj/被删除元素之后的元素前移-L.length;/表长减1returnOK;/ListDelete_Sq算法2.56为初学者易于理解插入算法,这里通过下标引用L.elem中的元素。绣萌篙栋作绳烫瘤躬呕戏乱库蕊笑助晤庇见重洛聊仕涌斯崩挠底胡币翱绝省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 53 页二级考试以往出现的顺序表试题二级考试以往出现的顺序表试题lP61 2003春春15题题 顺序表排序顺序表排序lP49 2002秋秋12题题 顺序表插入元素顺序表插入元素lP40 2002春春11题题 顺序表处

47、理顺序表处理lP29 2001秋秋12题题 顺序表处理顺序表处理lP20 2001春春12题题 顺序表排序顺序表排序搬刽留群碟靴些银薪对避炼颂涣帐片肯君羹与疏吩台伪倡体俄耘埂符裙解省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 54 页二、二、文件操作1、文件类型指针变量的定义格式:ILE如:ILE*p;、文件翻开与关闭翻开文件-open()函数如:ILE*p;i(p=open(“c:tc2exmple1.txt,w)=NULL)print(“ilecnnoetbeopened!n);exit(0);裤司腆填烂踊刘内双喉惋种驱偷续菲老丁浪恋矿茧咱樟秘盒耙

48、终瞳替聪巴省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 55 页文件翻开方式:MODE文件类型文件类型处理方式处理方式指定文件不存在指定文件不存在时时指定文件存在时指定文件存在时“r”文本文件文本文件读取读取出错出错正常打开正常打开“r+”文本文件文本文件读取读取/写入写入出错出错正常打开正常打开“rb”二进制文件二进制文件读取读取出错出错正常打开正常打开“rb+”二进制文件二进制文件读取读取/写入写入出错出错正常打开正常打开“w”文本文件文本文件写入写入建立新文件建立新文件文件原有内容丢失文件原有内容丢失“w+”文本文件文本文件写入写入/读取读取建立

49、新文件建立新文件文件原有内容丢失文件原有内容丢失“wb”二进制文件二进制文件写入写入建立新文件建立新文件文件原有内容丢失文件原有内容丢失“wb+”二进制文件二进制文件写入写入/读取读取建立新文件建立新文件文件原有内容丢失文件原有内容丢失“a”文本文件文本文件追加追加建立新文件建立新文件在文件原有内容后追加在文件原有内容后追加“a+”文本文件文本文件读取读取/追加追加建立新文件建立新文件在文件原有内容后追加在文件原有内容后追加“ab”二进制文件二进制文件追加追加建立新文件建立新文件在文件原有内容后追加在文件原有内容后追加“ab+”二进制文件二进制文件读取读取/追加追加建立新文件建立新文件在文件原

50、有内容后追加在文件原有内容后追加废淫托贩胜礼陌牲逼偷枢眶刨杭豌初茵壬巍赛浚腰穿敝络啼雾醒待拉辊您省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 56 页关闭文件-close()函数关闭文件的功能:是将写入到内容文件指针位置的内容存储到硬盘上的文件中,并关闭文件,释放文件指针。在程序终止前必须关闭文件。否那么,向文件中存入的内容全部没有存入。使用格式:close(文件指针);昭班拼袱乡眼讶鲜柒腰澳单皑疥韧臀聂必陈肮培寓撞酸跟圃吃种窥饰由量省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 57 页文件的相关函数文件的相关

51、函数文件所有的读写,输入输出函数在使用时,必须包含头文件:stdio.h即:#include1、eo文件指针变量本函数是判断文件是否结束。如果返回值为:真,那么表示已到文件尾;如果返回值为:假,那么表示未到文件尾。、getc(文件指针变量从文件中读出一个字符,并将文件当前位置移到下一位置。返回值:读出的值;EO读出出错、putc(字符,文件指针变量将字符常量或变量写入文件指针指向的文件当前位置。返回值:写入的值;EO写入出错袄殆坎敬酥量连岔枯戚颖利胀腑萄开官宗虫唬让倚篡锤羽撤译琉债镑值陌省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 58 页字符串输入输

52、出函数、gets(字符串变量名,n,文件指针变量从文件中读出一个长度为n-1的字符串,放到字符串变量。返回值:读出字符串的长度;EO读出出错、puts(字符串,文件指针变量将字符串常量或变量写入文件指针指向的文件当前位置。返回值:写入的字符数;EO写入出错房绸等娃驹币减揖钧柜廉顾懂贴湍材意缄殴刺瓷涌王扭会啤州庭耻塔剃拯省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 59 页格式化输入输出函数6、scn(p,“输入格式串,输入项完成从文件中读入操作的函数。7、print(p,“输出格式串,输出项向文件输出数据的函数。向p指向的文件按“输出格式串中规定,输出

53、到文件中。眠售迁烯殃汀瑚坦揉圣笑赖趾缩乾慰啮穴滚麓酝冻渝习杖郡掉度菏示眶腻省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 60 页块输入输出函数8、red(buer,size,count,p9、write(buer,size,count,p参数说明:buer是一个指针,对于red来说是读入数据块的存放地址;对write来说,它是输出数据块的地址。这里的地址是指数据块的首地址,通常用数据名或数组指针或结构体数组来代表。size是要读/写数据块的字节数count的值是要读/写多少个size字节的数据块p是一个文件指针,指示已经翻开的文件由open()函数翻开

54、的比穆耻便甘道缘级靡织弯汾颓须巩选稚锻故辰窟嗅皖磨瓷佯章准刽揉蟹搂省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 61 页文件定位函数8、rewind(p)将文件读写位置重新设置在文件头部。9、seek(p,longoset,intorigin)参数说明:1p是指向要进行读写操作的文件结构指针,该文件已由open()函数翻开;2origin是计算文件指针位置的起始点;文件指针的起始点可以设置在三个不同的位置上,用三个符号常量或数字代表:SEEK_SET或0代表文件头SEEK_CUR或1代表文件当前位置SEEK_END或2代表文件尾3oset是距起始点的偏

55、移位置,以字节为单位。拳疚别驻逻唯有姻雨薯箭迟榴沽哑茂哥糙陇坠领亢酋冷般希戚污遍辈容弗省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 62 页二级考试以往出现的文件操作试题二级考试以往出现的文件操作试题lP10 2000秋秋14题题 在文件中查找并替换在文件中查找并替换lP19 2001春春10题题 从文件读入从文件读入/向文件输出向文件输出lP29、30 2001秋秋11、13题题 从文件读入从文件读入lP40 2002春春11题题 从文件读入从文件读入l在每次的上机题中,编写的程序输出内容必须输出在每次的上机题中,编写的程序输出内容必须输出到文件中到

56、文件中顿耶粮埋吓狙琼霸烈浆韧侵兹漆绊孰橇逮惫昏棍贡焊倍挝通缉菱敖洱碎尹省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 63 页三、递归问题三、递归问题lP7、 P8 2000秋秋5题、题、8题题 lP20 2001春春4、12题题 用递归实现排序冒泡排序用递归实现排序冒泡排序lP28 2001秋秋8题题lP49 2002秋秋11题题lP59 2003 春春11题题套苑獭牟怪逾骨绘览匝藏眯郧租唇餐埠骡茧拈滓焰稿沦扒橇依蝇橙骄伴躇省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 64 页四、字符串操作问题四、字符串操作问

57、题lP9 2000秋秋12题题 从字符串中删除子串从字符串中删除子串lP20 2001春春13题题 插入子串插入子串lP30 2001秋秋13题题 读子串读子串lP39 2002春春10题题 字符串加密字符串加密lP51 2002秋秋15题题 在字符串中查找子串在字符串中查找子串lP59 2003 春春12题题 字符串处理字符串处理们生仲磊挟叛捂徊张外体儒纠弱麓未悯轨葱汕做配心韭诞拒蹦搁絮芹紫第省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 65 页五、变量作用域与静态变量问题五、变量作用域与静态变量问题lP6 2000秋秋3题题 变量作用域变量作用域l

58、P27 2001秋秋7题题 静态变量静态变量lP38 2002春春8题题 变量作用域与静态变量变量作用域与静态变量lP47 2002秋秋8题题 变量作用域变量作用域lP57 2003春春8题题 变量作用域变量作用域坷瘪南成途惕隔政指慰熏订颂撞眨劳婿酵窖演铲渝颂器渍舒晤虾氟筏敏匿省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 66 页六、数列或数字处理问题六、数列或数字处理问题lP9 2000秋秋11题题 lP20 2001春春11题题 lP28 2001秋秋10题题lP50 2002秋秋13题题lP60 2003 春春13题题远占扑仕垃货股赖莹噶距烃郸慌

59、巾栋涟咽幕狙源杰鹏辨披登拾径您断痘簇省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 67 页七、排序问题七、排序问题l共出现三次排序问题:共出现三次排序问题:使用了使用了1次冒泡排序,次冒泡排序,2次选择排序次选择排序P41 2002春春 13题题肢搂赛粟蹄蜡涧粮霸夷舒煤匈宰凋据寸噬咙嫡河帖统铀闽泌厘远炔骸鲍灭省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 68 页上上 机机 考考 试试- -改错题改错题l第一:看函数返回值类型是否正确第一:看函数返回值类型是否正确03年春06第二个错误03年春01第一个错误02年

60、秋06第一个错误02年秋04第二个错误第二:看函数形参与实参的对应关系个数、顺序、类型是否相同03年春05第三个错误03年春03第一个错误03年春04第二个错误03年春02第一个错误03年春01第四个错误02年秋05第四个错误02年秋04第二个错误02年秋03第一个错误02年秋02第一个错误02年秋01第一个错误疥藏愧啸兰喘庇袍掏车挎该咽蟹坍寞柴塞到参呈腑汝阀绍蛔焙纶漆嘻纷己省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 69 页上上 机机 考考 试试- -改错题改错题l第三:看是否少头文件第三:看是否少头文件03年春06第一个错误02年秋04第一个错误

61、02年春04第一个错误02年春01第一个错误01年秋03第一个错误01年秋02第一个错误01年秋01第一个错误00年秋03第一个错误00年秋01第一个错误1、stdio.h当用到文件输入/输出函数及常量值NULL时,如:red(),write(),open(),close(),scn(),print(),scn(),print(),gets(),puts(),putchr(),getchr()等函数2、string.h当用到字符串处理函数时,如:strlen(),strcpy(),strcmp(),strct()等函数。3、ctype.h当用到字符处理函数时,如:isdigit(),islph

62、()等。4、mth.h当用到数学函数时,如:sqrt(),pow(),exp(),bs(),bs()等函数。销巢罩萌镭代农挺虹签淫搓傀浪农谎带具恕胆厄妒笛餐这趟锥里呀哮盯依省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 70 页上上 机机 考考 试试- -改错题改错题l第四:函数体中变量定义及赋初值出错第四:函数体中变量定义及赋初值出错03年春06第四个错误03年春03第二个错误03年春02第四个错误03年春01第三个错误02年秋06第三个错误02年秋05第三个错误02年秋02第三个错误错误的方式有:赋值类型不对,少定义变量,定义的数组元素不确定等。稼奄

63、通靖妊正线审争酿匡朋难雅复原邦涤送婉教淹忌舶述岸芒滞阐车狐逼省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 71 页上上 机机 考考 试试- -改错题改错题l第五:其它出错的方面第五:其它出错的方面1、如少:02秋-04第4个错,02年春-01第2个错2、如循环结束条件不正确:03-05第1个错多数会造成数组越界,02秋-06第4个错3、等号写成赋值号:如03-04第3个错4、循环语句格式错:如03-03第3个错,5、判断真假时,易出错:如02秋03第4个错6、数组下标运算符写成:如03-05第4个错,02秋02第3个错请柞农杆愤啮爪屁逻探糕升疫裸恳嚷了友芦勺淘憋磨谩傀呜哄孵二瞅上侧省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结结束第 72 页需要记住的几个算法需要记住的几个算法1、排序:选择排序、冒泡排序2、判断素数的算法3、计算倒序数的算法:如输入4321,那么轮换成:12344、最大值、最小值求法5、最大公约数的求法,最小公倍数的求法帛乱伐闪碍绒熟骂端寂巍充糊舅遍执寐温泣新救骗从沽墓瘫愤驭茶捍吮几省二级(C语言)考试真题重点题型分类总结省二级(C语言)考试真题重点题型分类总结

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号