欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    江苏省二级(C语言)考试真题重点题型分类总结.ppt

    • 资源ID:85464421       资源大小:286KB        全文页数:72页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    江苏省二级(C语言)考试真题重点题型分类总结.ppt

    结束第 1 页结束第 2 页真题汇总小结真题汇总小结省二级考试省二级考试C C语言真题重点题型分类语言真题重点题型分类 一、线性表建立、删除、插入一、线性表建立、删除、插入 二、文件操作文件翻开、读、写二、文件操作文件翻开、读、写 三、递归问题三、递归问题 四、字符串操作问题四、字符串操作问题 五、变量作用域与静态变量问题五、变量作用域与静态变量问题 六、数列或数字处理问题六、数列或数字处理问题 七、排序问题七、排序问题 八、上机试题八、上机试题结束第 3 页 线性表是线性表是n 个数据元素的有限序列。个数据元素的有限序列。通常记作通常记作a1,a2,a3,an。姓名电话号码蔡颖63214444陈红63217777刘建平63216666王小林63218888张力63215555.一、线一、线 性性 表表例1、数学中的数列11,13,15,17,19,21例2、英文字母表A,B,C,D,EZ。例3、某单位的号码簿。一一 线性表的逻辑结构线性表的逻辑结构号码簿是数据元素的有限序列,每一数据元素包括两个数据项,一个是用户姓名,一个是对应的号码。结束第 4 页说明:设A=a1,a2,.,ai-1,ai,ai+1,an是一线性表1均匀性:线性表的数据元素可以是各种各样的,但同一线性表中的元素必须是同一类型的;2相邻性:每个元素至少有一个元素与之相邻。在表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前趋,ai+1是ai的直接后继;a1,无前驱,an无后继。3有限性:线性表中元素的个数n称为线性表的长度,n=0时称为空表4有序性:ai是线性表的第i个元素,称i为数据元素ai的序号,每一个元素在线性表中的位置,仅取决于它的序号;二线性表根据其存储结构不同可分为:链式存储结构的链表顺序存储结构的顺序表结束第 5 页一一 线性链表的概念线性链表的概念1线性链表1、线性链表线性链表a a4 4a a3 3a a1 1a a2 2 0101010241014101010121014101610181020102210241026用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自身信息外,还保存了直接后继元素的存储位置。用线性链表存储线性表时,数据元素之间的关系 是通过保存直接后继元素的存储位置来表示的结束第 6 页线性链表图示ai-1aia2a1ai+1nan用线性链表存储线性表时,数据元素之间的关系 是通过保存直接后继元素的存储位置来表示的2线性链表图示一般来说,我们并不需要写出直接后继的实际地址,为直观起见,通常用如下所示的图表示链表,其中,箭头表示相应单元中保存的是它所指向结点的存储地址。headhead是头指针是头指针headhead结束第 7 页结点:数据元素及直接后继的存储位置地址组成一个数据元素的存结点:数据元素及直接后继的存储位置地址组成一个数据元素的存储结构,称为一个结点;储结构,称为一个结点;结点的数据域结点的数据域:结点中用于保存数据元素的局部:结点中用于保存数据元素的局部;结点的指针域结点的指针域:结点中用于保存数据元素直接后继存储地址的局部:结点中用于保存数据元素直接后继存储地址的局部;3 线性链表有关术语线性链表有关术语存储数据元素存储数据元素存储后继结点存储后继结点 存储地址存储地址结点结点数据域数据域指针域指针域结束第 8 页头指针:头指针:用于存放线性链表中第一个结点的存储地址存储地址;空指针:空指针:不指向任何结点,线性链表最后一个结点的指针通常是空指针,空指针一般用NULL表示;头结点:头结点:线性链表的第一元素结点前面的一个附加结点,称为头结点;带头结点的线性链表带头结点的线性链表:第一元素结点前面增加一个附加结点的线性链表称为带头结点的线性链表;带头结点的线性链表图示headhead是头指是头指针针ai-1aia2a1ai+1nan 头结点头结点 空指针空指针headhead结束第 9 页线性链表的每个结点中只有一个指针域故也称为单链表单链表ai-1aia2a1ai+1nanheadhead是头指针是头指针headhead注:从以往二级考试来看都是用没有附加头结点的链表,如下图结束第 10 页结点变量图示structnodeintx;structnode*next;;node:结构体类型名;node类型结构变量有两个域:x:用于存放线性表的数据元素,next:用于存放元素直接后继结点的地址;该类型结构变量用于表示线性链表中的一个结点;h和head:指向结构体结点的指针变量,用于存放node类型结构变量的地址;数据域数据域指针域指针域 x next node类型结构变量h h结构体结点指针变量h4线性链表的结点类型定义及指向结点的指针类型定义structnode*h;或structnode*head;结构体指针变量定义结构体类型定义结束第 11 页常用的引用格式常用的引用格式(一般格式一般格式):指针变量名指针变量名-结构体成员名结构体成员名如:如:h-x=10;h=h-next;注意:在引用过程中,数据类型还是成员的数据类型。如:h-x为成员x的数据类型即整形5怎样利用结构体指针变量来引用结构体成员structnode*h;或structnode*head;不常用引用格式:不常用引用格式:*指针变量名指针变量名.结构体成结构体成员名员名如:如:(*h).x=10;*h=(*h).next;结束第 12 页设head是指向链表第一个结点的指针变量,head用来保存线性链表中第一个结点的地址。ai-1aia2a1ai+1nanheadheadHead指向的链表二线性链表根本操作的算法假设线性表用不带头结点的线性链表head的存储。下面讨论在这种存储方式下,线性表各种根本操作的算法。当线性表用线性链表存储时,对线性表各种根本操作实际上就是对存储在内存中的线性链表进行操作。结束第 13 页如何在线性链表如何在线性链表head上实现线性表的根本操作?上实现线性表的根本操作?如何建空表?如何插入?删除?如何建空表?如何插入?删除?结束第 14 页1取元素操作从链表中找到与输入的值m相等的元素功能:1、将线性链表中第i个元素赋值给e2、从链表中找到与输入的值m相等的元素,并将其指针返回取元素操作主要步骤:1查找链表的第i个元素结点;2)将第i个元素结点中的数据元素赋值给e;或将其指针返回;取元素元素操作图示ai-1aia2a1ai+1nanheadheadp1p1p p注:p、p1为工作指针结束第 15 页2插入操作功能:在线性链表head的第i个元素结点之前插入一个新元素结点;插入操作图示:插入前插入后ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1naneheadhead结束第 16 页插入操作主要步骤:1查找链表L的第i-1个元素结点;2为新元素建立结点;3修改第i-1个元素结点的指针和新元素结点指针完成插入;结束第 17 页3删除操作功能:在线性链表L中删除第i个元素,并且用e返回其值删除操作图示:删除前删除后ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1nanheadhead结束第 18 页删除操作主要步骤:1查找链表的第i-1个元素结点;2修改第i-1个元素结点指针,删除第i个元素结点;3)将第i个元素结点中的数据元素赋值给e;4回收被删除结点空间;用free(指针变量)函数释放删除结点的空间结束第 19 页4线性链表归并操作图示131n542n6papb归并31n6papcpb524结束第 20 页以前考过的线性链表的题目以前考过的线性链表的题目lP10 13题即题即2000年秋的填空题中的年秋的填空题中的13题题此题是链表归并问题:此题是链表归并问题:首先要搞清楚每个指针的用途。如首先要搞清楚每个指针的用途。如pt指针变量就指针变量就是用来指向建立的新结点。是用来指向建立的新结点。结束第 21 页P10 13题即题即2000年秋的填空题中的年秋的填空题中的13题题PNODE *paddPNODE *pa,PNODE*pb)PNODE*pcr,*pt,*pc;pc=NULL;while(23)if(pa-y=pb-y)pt=(24)malloc(sizeof(PNODE);pt-x=pa-x+pb-x;pt-y=pa-y;pt-next=NULL;if(pc=NULL)pc=pcr=pt;else pcr-next=pt;(25);pa=pa-next;pb=pb-next;else if(26)pb=pb-next;else pa=pa-next;Return pc;本空显然是控制结束的,只有当pa、pb两个链表中都没有元素时才会结束分配的空间类型判断papb中当前元素y成员的值谁大将新增的结点连到工作指针pcr上结束第 22 页P10 13题答案题答案PNODE *paddPNODE *pa,PNODE*pb)PNODE*pcr,*pt,*pc;pc=NULL;while(23)if(pa-y=pb-y)pt=(24)malloc(sizeof(PNODE);pt-x=pa-x+pb-x;pt-y=pa-y;pt-next=NULL;if(pc=NULL)pc=pcr=pt;else pcr-next=pt;(25);pa=pa-next;pb=pb-next;else if(26)pb=pb-next;else pa=pa-next;Return pc;pa&pbPNODE*pa-ypb-ypcr=pt结束第 23 页P21 14题即题即2001年春的填空题中的年春的填空题中的14题题PNODE *paddPNODE *pa)PNODE*p1,*p2,*p;p1=p2=pa;while(p1)if(p1-x%2=0&(27)p=p1;p1=p1-next;(28)=p1;P-next=pa;(29)else p2=p1;p1=p1-next;Main()PNODE a10=1,2,3,4,5,6,7,8,9,10,*ha=a,*p;int i;for(i=0;i,p-x);p=p-next;链表结尾的指针NULL如果p1指向的结点就是第一个结点,那么不用移本行是从链表中删除结点将p指向的结点插到链表的头部没找着偶数值结点时,指针向后移,P2一直在P1的前一个结点结束第 24 页P21 14题答案题答案PNODE *paddPNODE *pa)PNODE*p1,*p2,*p;p1=p2=pa;while(p1)if(p1-x%2=0&(27)p=p1;p1=p1-next;(28)=p1;P-next=pa;(29)else p2=p1;p1=p1-next;Main()PNODE a10=1,2,3,4,5,6,7,8,9,10,*ha=a,*p;int i;for(i=0;i,p-x);p=p-next;NULLp1!=pap2-next=p1pa=p结束第 25 页P31 14题即题即2001年秋的填空题中的年秋的填空题中的14题题Struct node *deladdstruct node *h,int value)struct node *p1,*p2;int flage=0;p1=p2=h;while(p1&flage=0)if(p1-x=value)flage=1;if(p1=h)h=(27);free(p1);else p2-next=(28);free(p1);else p2=p1;p1=(29);If(flage=0)p1=(struct node*)malloc(sizeof(struct node);p1-x=value;p1-next=0;if(h=0)h=p1;else (30);链表结束或找到结点不执行循环Flage是一个标志变量用来标志是否找到结点如果找到符合每件的结点,就删除结点如果没找到适合每件的结点,那么指针后移如果没找到结点构造一个新结点如果链表为空就直接将构造的结点作为链表的第一个结点,否那么将其插入到链表最后结束第 26 页P31 14题答案题答案Struct node *deladdstruct node *h,int value)struct node *p1,*p2;int flage=0;p1=p2=h;while(p1&flage=0)if(p1-x=value)flage=1;if(p1=h)h=(27);free(p1);else p2-next=(28);free(p1);else p2=p1;p1=(29);If(flage=0)p1=(struct node*)malloc(sizeof(struct node);p1-x=value;p1-next=0;if(h=0)h=p1;else (30);p1-nextp1-nextp1-nextp2-next=p1结束第 27 页P42 14题即题即2002年春的填空题中的年春的填空题中的14题题 (27)createint n)struct node *p,*p1,*p2,*h=NULL;int i=0;if(nx);p-next=NULL;if(h=NULL)(29);else p1=p2=h;while(p2&p-x=p2-x)p1=p2;p2=p2-next;if(p2=h)(30);h=p;else p-next=p2;p1-next=p;i+;Return h;函数返回值类型如果找到的插入位置是第一个结点创立结点个数的控制如果链表为空,直接插入结点作为首结点如果找到的插入位置不是第一个结点就在找到的位置插入结束第 28 页P42 14题答案题答案 (27)createint n)struct node *p,*p1,*p2,*h=NULL;int i=0;if(nx);p-next=NULL;if(h=NULL)(29);else p1=p2=h;while(p2&p-x=p2-x)p1=p2;p2=p2-next;if(p2=h)(30);h=p;else p-next=p2;p1-next=p;i+;Return h;structnode*p-next=p2inext=NULL)return head;if(dir=0)while(p1-next)p2=p1;p1=p1-next;(23)=NULL;p1-next=(24);head=p1;else head=(25);p2=head;while(p2-next)p2=p2-next;(26);p1-next=NULL;return head;右移一次如果是空链表或只有一个结点的链表左移一次找到最后一个结点使得p1指向最后一个结点P2指向倒数第二个结点将最后一个结点p1指向的移到链表头找到最后一个结点P2指向最后一个结点结束第 30 页P51 14题答案题答案Struct node *loopstruct node *head,int dir)struct node *p1,*p2;p1=head;if(p1=NULL|p1-next=NULL)return head;if(dir=0)while(p1-next)p2=p1;p1=p1-next;(23)=NULL;p1-next=(24);head=p1;else head=(25);p2=head;while(p2-next)p2=p2-next;(26);p1-next=NULL;return head;p1-nextp2-nextheadp2-next=p1结束第 31 页P60 14题即题即2003年春的填空题中的年春的填空题中的14题题Struct node *find_delstruct node *head,int *pm)struct node *p1,*p2,*pmax,*pre;if(head=NULL)return NULL;pmax=(23);p2=p1=pmax;while(p1)if(p1-x (24)pre=p2;pmax=p1;p2=p1;p1=p1-next;if(pmax=head)head=pmax-next;else (25)=pmax-next;(26)=pmax;Return head;如果是空链表就结束函数,并返回空指针首先认为第一个结点是x值最大的结点Pmax始终指向当前x值最大的结点P1为工作指针活动指针如果首结点的x值最大就删除首结点删除pmax指向的结点将x值最大的结点地址保存到pm指向指向的指针变量中结束第 32 页P60 14题即题即2003年春的填空题中的年春的填空题中的14题题Struct node *find_delstruct node *head,int *pm)struct node *p1,*p2,*pmax,*pre;if(head=NULL)return NULL;pmax=(23);p2=p1=pmax;while(p1)if(p1-x (24)pre=p2;pmax=p1;p2=p1;p1=p1-next;if(pmax=head)head=pmax-next;else (25)=pmax-next;(26)=pmax;Return head;headpmax-xpre-next*pm结束第 33 页c 2.2 2.2 线性表的顺序表示和实现线性表的顺序表示和实现 一一 线性表的顺序存储结构线性表的顺序存储结构顺序表顺序表 1 1 线性表的顺序存储结构线性表的顺序存储结构 2 2 顺序表的类型定义顺序表的类型定义 二二 顺序表的根本操作算法顺序表的根本操作算法 三三 利用根本操作实现线性表的其他操作利用根本操作实现线性表的其他操作2、顺序链表、顺序链表2、顺序链表、顺序链表结束第 34 页为了存储线性表,至少要保存两类信息:1线性表中的数据元素;2线性表中数据元素的顺序关系;在计算机内部可以采用不同的方式来存储一个线性表,其中最简单的方式就是本节要讲的线性表的顺序存储结构。结束第 35 页线性表的顺序存储结构,就是用一组连续的内存单元依次存放线性表的数据元素。用顺序表存储线性表时,数据元素之间的逻辑关系,是通过数据元素的存储顺序反映出来的a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an n线性表a1,a2,a3,.an的顺序存储结构用顺序存储结构存储的线性表称为顺序表一一 线性表的顺序存储结构线性表的顺序存储结构顺序表顺序表1线性表的顺序存储结构结束第 36 页说明:在顺序存储结构下,线性表元素之间的逻辑关系,可通过元素的存储顺序反映表示出来,所以只需存储数据元素的信息;假没线性表中每个数据元素占用k个存储单元,那么,在顺序存储结构中,线性表的第i个元素的存储位置与第1个元素的存储位置的关系是:Loc(ai)=Loc(a1)+(i1)k这里Loc(ai)是第i个元素的存储位置,Loc(a1)是第1个元素的存储位置,也称为线性表的基址;结束第 37 页怎样在计算机上实现线性表的顺序存储结构?2、顺序表的类型定义以上用自然语言描述了线性表的顺序存储结构,怎样将这种存储方式在计算机上实现?为此,我们用C语言对这种存储方式进行描述,我们知道C语言一维数组的机内表示也是顺序结构,因此,可借用C语言的一维数组实现线性表的顺序存储。结束第 38 页顺序表的类型定义#defineLIST_INIT_SIZE100/线性表存储空间的初始分配量#defineLISTINCREMENT10/线性表存储空间的分配增量typedefstructElemType*elem;/线性表存储空间基址intlength;/当前线性表长度intlistsize;/当前分配的线性表存储空间大小/以sizeof(ElemType)为单位SqList;SqList:类型名,:类型名,SqList类型的变量是结构变量,它的三个域分别是:类型的变量是结构变量,它的三个域分别是:*elem:存放线性表元素的一维数组基址;其存储空间在初始化操作建空:存放线性表元素的一维数组基址;其存储空间在初始化操作建空表时动态分配;表时动态分配;length:存放线性表的表长;:存放线性表的表长;listsize:用于存放当前分配存放线性表元素的存储空间的大小。:用于存放当前分配存放线性表元素的存储空间的大小。结束第 39 页顺序表图示顺序表图示a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an nL.lengthL.lengthL.listsizeL.listsizeL.elemL.elemn nLIST_INIT_SIZELIST_INIT_SIZE存放线性表元素的一维数组设A=a1,a2,a3,.an是一线性表,L是SqList类型的结构变量,用于存放线性表A,那么L在内存中的状态如下图:结束第 40 页如何在顺序表如何在顺序表上实现线性表的根本操作?上实现线性表的根本操作?如何建空表?如何求表长?如何建空表?如何求表长?如何插入?删除?如何插入?删除?设线性表用顺序表L存储,下面我们介绍用顺序表存储线性表时,各种根本操作的算法。当线性表用顺序表存储时,对线性表各种根本操作实际上就是对存储在内存中的顺序表进行操作。二、顺序表的根本操作算法结束第 41 页取元素操作图示1取元素操作GetElem_Sq(SqListL,inti,ElemType&e)功能:将顺序表中第i个元素赋值给e算法:StatusGetElem_Sq(SqList&L,inti,ElemType&e)If(iL.length-1)returnERROR;/i非法e=L.elemi-1;/将顺序表中第i个元素赋值给ereturnOK;/GetElem_Sq算法2.4由于C语言的一维数组下标从0开始,故线性表的第一个元素放在L.elem0,第i个素放L.elemi-1中,最后一个元素放在L.elemL.length-1中。结束第 42 页 取元素操作 n nLIST_INIT_SIZELIST_INIT_SIZEL.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an nn n LIST_INIT_SIZE-1 LIST_INIT_SIZE-1e ea ai i再演示一次结束第 43 页2插入操作ListInsert_Sq(&L,i,e)参数:L:顺序表,i插入位置,e被插入元素;因为插入操作对顺序表进行修改,所以用了引用参数&L;功能:在顺序表L的第i个元素之前插入一个新元素e;插入操作示意图:结束第 44 页插入操作图示插入操作主要步骤:1i是否合法,假设合法转2,否那么算法结束,并返回ERROR;2L是否已满,假设未满转3,否那么算法结束,并返回ERROR;3将顺序表ai及之后的所有元素后移一个位置;4)将新元素写入空出的位置;5表长+1;用鼠标单击图中的绿字结束第 45 页 插入元素操作e eL.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an nn n LIST_INIT_SIZE-1 LIST_INIT_SIZE-1结束第 46 页 插入元素操作L.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1e ea ai ia an nn+1n+1 LIST_INIT_SIZE-1 LIST_INIT_SIZE-1结束第 47 页StatusListInsert_Sq(SqList&L,inti,ElemTypee)/在顺序表L中第i个位置之前插入新的元素e,/i的合法值为1iL.length+1,当i=L.length+1时/e插在表尾if(iL.length+1)returnERROR;/i值不合法if(L.length=L.listsize)returnERROR;/顺序表已满for(j=L.length-1;j=i-1;-j)L.elemj+1=L.elemj;/插入位置及之后的元素后移一个位置L.elemi-1=e;/插入e+L.length;/表长增1returnOK;/ListInsert_Sq算法2.5a插入操作算法为初学者易于理解插入算法,这里通过下标引用L.elem中的元素。结束第 48 页3删除操作ListDelete_sq(SqList&L,inti,ElemType&e)功能:删除顺序表L的第i个元素,并用e返回删除操作图示结束第 49 页删除操作主要步骤:1i不合法或表空,算法结束,并返回ERROR;否那么转22将ai赋值给e;3将顺序表中ai后面的元素依次向前移动一个位置;4表长-1删除操作图示用鼠标单击图中的绿字结束第 50 页 删除元素操作L.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1a ai ia ai+1i+1a an nn n LIST_INIT_SIZE-1 LIST_INIT_SIZE-1结束第 51 页 删除元素操作L.lengthL.lengthL.listsizeL.listsizeL.elemL.elem0 01 1LIST_INIT_SIZE-1LIST_INIT_SIZE-1a a1 1a a2 2a ai-1i-1aiai+1+1a an nn-1n-1 LIST_INIT_SIZE-1 LIST_INIT_SIZE-1结束第 52 页删除操作算法StatusListDelete_Sq(SqList&L,inti,ElemType&e)/在顺序表L中删除第i个元素,并用e返回其值/i的合法值为1iL.length,/表空L.length=0那么iL.lengthif(iL.length)returnERROR;/i值不合法或表空e=L.elemi-1;/被删除元素的值赋给efor(j=i;j=L.length-1;+j)L.elemj-1=L.elemj/被删除元素之后的元素前移-L.length;/表长减1returnOK;/ListDelete_Sq算法2.56a为初学者易于理解插入算法,这里通过下标引用L.elem中的元素。结束第 53 页二级考试以往出现的顺序表试题二级考试以往出现的顺序表试题lP61 2003春春15题题 顺序表排序顺序表排序lP49 2002秋秋12题题 顺序表插入元素顺序表插入元素lP40 2002春春11题题 顺序表处理顺序表处理lP29 2001秋秋12题题 顺序表处理顺序表处理lP20 2001春春12题题 顺序表排序顺序表排序结束第 54 页二、二、文件操作1、文件类型指针变量的定义格式:FILE如:FILE*fp;、文件翻开与关闭翻开文件-fopen()函数如:FILE*fp;if(fp=fopen(“c:tc2example1.txt,w)=NULL)printf(“Filecannoetbeopened!n);exit(0);结束第 55 页文件翻开方式:MODE文件类型文件类型处理方式处理方式指定文件不存在指定文件不存在时时指定文件存在时指定文件存在时“r”文本文件文本文件读取读取出错出错正常打开正常打开“r+”文本文件文本文件读取读取/写入写入出错出错正常打开正常打开“rb”二进制文件二进制文件读取读取出错出错正常打开正常打开“rb+”二进制文件二进制文件读取读取/写入写入出错出错正常打开正常打开“w”文本文件文本文件写入写入建立新文件建立新文件文件原有内容丢失文件原有内容丢失“w+”文本文件文本文件写入写入/读取读取建立新文件建立新文件文件原有内容丢失文件原有内容丢失“wb”二进制文件二进制文件写入写入建立新文件建立新文件文件原有内容丢失文件原有内容丢失“wb+”二进制文件二进制文件写入写入/读取读取建立新文件建立新文件文件原有内容丢失文件原有内容丢失“a”文本文件文本文件追加追加建立新文件建立新文件在文件原有内容后追加在文件原有内容后追加“a+”文本文件文本文件读取读取/追加追加建立新文件建立新文件在文件原有内容后追加在文件原有内容后追加“ab”二进制文件二进制文件追加追加建立新文件建立新文件在文件原有内容后追加在文件原有内容后追加“ab+”二进制文件二进制文件读取读取/追加追加建立新文件建立新文件在文件原有内容后追加在文件原有内容后追加结束第 56 页关闭文件关闭文件-fclose()函数函数关闭文件的功能:是将写入到内容文件指针位置的内容关闭文件的功能:是将写入到内容文件指针位置的内容存储到硬盘上的文件中,并关闭文件,释放文件指针。存储到硬盘上的文件中,并关闭文件,释放文件指针。在程序终止前必须关闭文件。在程序终止前必须关闭文件。否那么,向文件中存入的内容全部没有存入。否那么,向文件中存入的内容全部没有存入。使用格式:使用格式:fclose(文件指针文件指针);结束第 57 页文件的相关函数文件的相关函数文件所有的读写,输入输出函数在使用时,必须包含头文件:stdio.h即:#include1、feof文件指针变量本函数是判断文件是否结束。如果返回值为:真,那么表示已到文件尾;如果返回值为:假,那么表示未到文件尾。、fgetc(文件指针变量从文件中读出一个字符,并将文件当前位置移到下一位置。返回值:读出的值;EOF读出出错、fputc(字符,文件指针变量将字符常量或变量写入文件指针指向的文件当前位置。返回值:写入的值;EOF写入出错结束第 58 页字符串输入输出函数、fgets(字符串变量名,n,文件指针变量从文件中读出一个长度为n-1的字符串,放到字符串变量。返回值:读出字符串的长度;EOF读出出错、fputs(字符串,文件指针变量将字符串常量或变量写入文件指针指向的文件当前位置。返回值:写入的字符数;EOF写入出错结束第 59 页格式化输入输出函数6、fscanf(fp,“输入格式串,输入项完成从文件中读入操作的函数。7、fprintf(fp,“输出格式串,输出项向文件输出数据的函数。向fp指向的文件按“输出格式串中规定,输出到文件中。结束第 60 页块输入输出函数8、fread(buffer,size,count,fp9、fwrite(buffer,size,count,fp参数说明:buffer是一个指针,对于fread来说是读入数据块的存放地址;对fwrite来说,它是输出数据块的地址。这里的地址是指数据块的首地址,通常用数据名或数组指针或结构体数组来代表。size是要读/写数据块的字节数count的值是要读/写多少个size字节的数据块fp是一个文件指针,指示已经翻开的文件由fopen()函数翻开的结束第 61 页文件定位函数8、rewind(fp)将文件读写位置重新设置在文件头部。9、fseek(fp,longoffset,intorigin)参数说明:1fp是指向要进行读写操作的文件结构指针,该文件已由fopen()函数翻开;2origin是计算文件指针位置的起始点;文件指针的起始点可以设置在三个不同的位置上,用三个符号常量或数字代表:SEEK_SET或0代表文件头SEEK_CUR或1代表文件当前位置SEEK_END或2代表文件尾3offset是距起始点的偏移位置,以字节为单位。结束第 62 页二级考试以往出现的文件操作试题二级考试以往出现的文件操作试题lP10 2000秋秋14题题 在文件中查找并替换在文件中查找并替换lP19 2001春春10题题 从文件读入从文件读入/向文件输出向文件输出lP29、30 2001秋秋11、13题题 从文件读入从文件读入lP40 2002春春11题题 从文件读入从文件读入l在每次的上机题中,编写的程序输出内容必须输出在每次的上机题中,编写的程序输出内容必须输出到文件中到文件中结束第 63 页三、递归问题三、递归问题lP7、P8 2000秋秋5题、题、8题题 lP20 2001春春4、12题题 用递归实现排序冒泡排序用递归实现排序冒泡排序lP28 2001秋秋8题题lP49 2002秋秋11题题lP59 2003 春春11题题结束第 64 页四、字符串操作问题四、字符串操作问题lP9 2000秋秋12题题 从字符串中删除子串从字符串中删除子串lP20 2001春春13题题 插入子串插入子串lP30 2001秋秋13题题 读子串读子串lP39 2002春春10题题 字符串加密字符串加密lP51 2002秋秋15题题 在字符串中查找子串在字符串中查找子串lP59 2003 春春12题题 字符串处理字符串处理结束第 65 页五、变量作用域与静态变量问题五、变量作用域与静态变量问题lP6 2000秋秋3题题 变量作用域变量作用域lP27 2001秋秋7题题 静态变量静态变量lP38 2002春春8题题 变量作用域与静态变量变量作用域与静态变量lP47 2002秋秋8题题 变量作用域变量作用域lP57 2003春春8题题 变量作用域变量作用域结束第 66 页六、数列或数字处理问题六、数列或数字处理问题lP9 2000秋秋11题题 lP20 2001春春11题题 lP28 2001秋秋10题题lP50 2002秋秋13题题lP60 2003 春春13题题结束第 67 页七、排序问题七、排序问题l共出现三次排序问题:共出现三次排序问题:使用了使用了1次冒泡排序,次冒泡排序,2次选择排序次选择排序P41 2002春春 13题题结束第 68 页上上 机机 考考 试试-改错题改错题l第一:看函数返回值类型是否正确第一:看函数返回值类型是否正确 03年春年春06第二个错误第二个错误 03年春年春01第一个错误第一个错误 02年秋年秋06第一个错误第一个错误 02年秋年秋04第二个错误第二个错误l第二:看函数形参与实参的对应关系个数、顺序、第二:看函数形参与实参的对应关系个数、顺序、类型是否相同类型是否相同 03年春年春05第三个错误第三个错误 03年春年春03第一个错误第一个错误 03年春年春04第二个错误第二个错误 03年春年春02第一个错误第一个错误 03年春年春01第四个错误第四个错误 02年秋年秋05第四个错误第四个错误 02年秋年秋04第二个错误第二个错误 02年秋年秋03第一个错误第一个错误 02年秋年秋02第一个错误第一个错误 02年秋年秋01第一个错误第一个错误结束第 69 页上上 机机 考考 试试-改错题改错题l第三:看是否少头文件第三:看是否少头文件 03年春年春06第一个错误第一个错误 02年秋年秋04第一个错误第一个错误 02年春年春04第一个错误第一个错误 02年春年春01第一个错误第一个错误 01年秋年秋03第一个错误第一个错误 01年秋年秋02第一个错误第一个错误 01年秋年秋01第一个错误第一个错误 00年秋年秋03第一个错误第一个错误 00年秋年秋01第一个错误第一个错误1、stdio.h 当用到文件输入当用到文件输入/输出函数及常量值输出函数及常量值NULL时,如:时,如:fread(),fwrite(),fopen(),fclose(),fscanf(),fprintf(),scanf(),printf(),gets(),puts(),putchar(),getchar()等函数等函数2、string.h 当用到字符串处理函数时,如:当用到字符串处理函数时,如:strlen(),strcpy(),strcmp(),strcat()等函

    注意事项

    本文(江苏省二级(C语言)考试真题重点题型分类总结.ppt)为本站会员(e****s)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开