




已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机等级考试二级语言考前辅导,主要内容,一、试卷分析二、语言概述三、数据类型及其运算四、语句五、数组六、函数七、编译预处理八、指针九、结构体与共用体十、文件十一、主要算法分析,C语言复习考试的五大要点,了解试卷,胸中有数深刻理解,强化概念归纳整理,适当记忆注重实践,融会贯通多做练习,查漏补缺,命题基本原则及考核点,语法:一、源程序结构二、基本类型数据的表示和引用系统预定义数据类型基本类型常量的表示基本类型变量的声明和直接引用基本类型变量的间接引用(指针应用)三、表达式四、标准输入/输出五、语句,命题基本原则及考核点,难题:语法:单选,基本概念填空,阅读程序部分算法和数据结构的综合应用:阅读程序完善程序上机填空改错:语法错,语义错,算法错编程:主函数,功能函数,命题基本原则及考核点,语法:六、函数1.函数定义2.函数声明3.函数直接调用、间接调用(指针应用)4.递归函数的定义与调用执行流程5.标识符作用域规则七、构造类型数据成员的引用数组声明和数组元素的直接引用结构定义、结构变量声明和结构变量成员的直接引用数组元素、结构变量成员的间接引用(指针应用)八、文件输入/输出九、预处理命令,命题基本原则及考核点,一、常用算法分类(排序)算法冒泡,选择,插入检索(查找)算法(1)无序数据序列的查找(见遍历算法)(2)有序数据序列的查找:二分法遍历算法(1)一维数组和二维数组的遍历(2)单向链表的遍历(3)文件的遍历其它基本算法递推法,穷举法,二分法,牛顿法求方程根,梯形法求定积分等.,命题基本原则及考核点,二、典型问题数值问题素数问题求因子3.整数拆位、反序数、回文数4.最大公约数,最小公倍数5.求最值、平均值6.累加,累乘、阶乘、级数(近似值计算),命题基本原则及考核点,三、典型问题一维数组数据处理生成(数列)变换(编码/解码,压缩/还原,循环移位等)查找(指定值,最大值,最小值)排序插入(一个数)删除(一个数,重复的多个数)更新(一个数)统计合并(两个数列)集合运算模拟高精度算术运算,四、典型问题字符串数据处理子串查找,子串统计,子串删除,子串替换,整型/实型机器数与字符串表示相互转换字符串变换(编码/解码,压缩/还原),命题基本原则及考核点,命题基本原则及考核点,五、典型问题二维数组数据处理生成(矩阵)变换(改变数值,改变数据存储位置)查找(指定值,最小值,最大值)排序(按行排序,按列排序)插入(一个数,一行数,一列数)删除(一个数,一行数,一列数)更新(一个数,一行数,一列数)统计合并(两个矩阵),命题基本原则及考核点,六、典型问题一维结构数组数据处理查找(直接查找,通过指向结构数组的指针数组查找)排序(结构数组排序,指向结构数组的指针数组排序)插入(一条记录)删除(一条记录)更新(一条记录)统计,笔试形式,基础知识和c语言程序设计两部分组成基础知识全部为单选题c语言程序设计部分分为单选题和填空题答题要求:单选题的答案必须涂划在专用答题卡上;填空题的答案必须写在专用答题纸上(填空时注意:每个填空要按标号顺序填,一空占一行,不是一题一行;因为有的题目一题包含多个空)。,上机考试形式,上机题总分为填空题改错题:改错题中所存在的错误主要是语法错误(如数组的声明错误、函数定义错误等)、运行错误(如包含不正确的头文件)、逻辑错误等。编程题:编程题程序中,通常都涉及一个有一定难度的算法,考生须按题目要求实现,二、C语言概述,、C程序的结构、main函数一个程序可由多个函数构成,其中必有唯一的一个主函数。它是整个程序的入口,也是整个程序的出口。、标识符的命名规则规则:字母或下划线开始的字母、下划线和数字串。语句中的保留字不能作为标识符。(教材375)所有的函数名可以作为标识符。、C程序的上机过程,三、数据类型及其运算,1、常量、变量常量:固定不变的量。整型常量:十进制(29)、八进制(029)和十六进制(0 x29)实型常量:小数表示(123.456)、指数表示(1.23456e+002)字符常量:普通字符(Aa2+,)、转义字符(qqqxhh)符号常量:(一般用大写字符表示)#definePI3.1415936,三、数据类型及其运算(续一),变量:整型:基本整型:2字节int(-32768-+32767)无符号基本整型:2字节unsignedint(065535)长整型:4字节longint或long无符号长整型:4字节unsignedlongint或unsignedlong实型:单精度:4字节float双精度:8字节double字符型:有符号字符:1字节char(-128127)无符号字符:1字节unsignedchar(0255),三、数据类型及其运算(续二),2、不同类型数据之间的混合运算表达式值的类型由该式子中最长的数据类型决定。float型无条件转换成double型。char型无条件转换成int型。*注意强制类型转换的用法。(类型名)(int)x+y等价于(int)x)+y参与运算的数据类型改变了,x的类型不变。3、算术运算符和运算表达式(+-*/%)/:a/ba,b都是整型结果是整型%:a%ba,b都必须是整型,三、数据类型及其运算(续三),4、赋值运算符和赋值表达式(右结合性)号左边只能出现变量,具有强制类型转换作用if(c=getchar()!=n)复合赋值运算a*=x+y等价于a=a*(x+y)5、逗号运算符和逗号表达式加;号构成表达式语句作为其它语句的一部分或函数的参数时要加括号6、表达式的类型识别7、有关运算符功能:优先级:结合性:表达式的值:,三、数据类型及其运算(续四),8、关系运算符和关系表达式=(6级)=!=(7级)注意:等于零和不等于零的表示方式a!a两个实数判相等和判不相等的方法axcase常量表达式2:语句2;break;case常量表达式n:语句n;break;default:语句n+1;注意:执行流程“语句”可为多个单个语句,此时不必加大括号default语句可缺省switch语句嵌套使用时,break语句只跳出它所处的哪层switch,整型、字符型或枚举类型,根据需要选择,四、语句(循环语句_1),(一)当型循环语句一般格式while(表达式)语句注意:“表达式”应有括号“语句”为复合语句时应加大括号在语句中应有使“表达式”趋于不成立的语句存在在复合语句中含有break和continue语句时的情况:while(表达式)break;continue;,四、语句(循环语句_2),(二)直到型循环语句一般格式do语句while(表达式);注意:无论表达式是否成立,循环体至少执行一遍“表达式”应有括号,后面的“;”号不能丢“语句”为复合语句时应加大括号在语句中应有使“表达式”趋于不成立的语句存在在复合语句中含有break和continue语句时的情况:dobreak;continue;while(表达式);,四、语句(循环语句_3),(二)for型循环语句一般格式for(表达式1;表达式2;表达式3)语句注意:“语句”为复合语句时应加大括号在语句中应有使“表达式2”趋于不成立的语句存在在复合语句中含有break和continue语句时的情况:繁琐的二维数组填值问题(结合循环语句,几乎每次都考)三种循环语句相互嵌套使用的情况,五、数组(一维数组),(一)一维数组定义:类型名数组名常量表达式;定义并初始化:类型名数组名常量表达式表达式列表;或:类型名数组名表达式列表;引用:只能引用下标变量。注意:、不能定义动态数组如:intn;intan;、只能在定义数组的时候初始化,以后不可整体赋值、除字符数组外,不可整体引用数组、一般用单循环语句引用数组元素、内存中连续存储,数组名为其存储的首地址,五、数组(二维数组),(二)二维数组定义:类型名数组名常量表达式1常量表达式2;定义并初始化:类型名数组名常量表达式;引用:只能引用下标变量。注意:、不能定义动态数组、只能在定义数组的时候初始化,以后不可整体赋值、不可整体引用数组、一般用双重循环语句引用数组元素、按行在内存中连续存储,数组名为行的行地址,ai为第i行第个元素的地址如:inta33引用a05正确、与双重循环语句一起应用(二维数组填值问题),五、数组(字符数组),(三)字符数组(一维、二维)具有普通一维数组和二维数组的性质。特点:、可以定义时初始化,也可以后用strcpy()赋值。、可以引用下标变量,也可整体引用(一维)、一般用于存放字符串、字符串的基本概念)串结束符)内存单元地址字符串、字符串操作函数的使用)串长度(编程实现)串复制(赋值)串拼接(编程实现)串比较(不能用关系运算符)、字符串的输入和输出(charc20;))gets(c);和scanf(“%s”,c);区别、二维字符数组的引用有下标引用法和数组名加第一维下标引用法,六、函数,主要内容(一)、函数的定义(二)、函数的参数(三)、函数的返回值(四)、函数的调用(五)、数组作为函数的参数(六)、局部变量和全局变量(七)、变量的存储类别,六、函数(函数的定义),(一)、函数的定义函数可理解为一个程序段,给予一定的输入就会产生一定的输出。函数的定义就是在使用函数前对函数功能的完整性描述。一般形式:函数类型函数名(参数列表)函数体注意:、函数的定义就是函数的说明、函数由“头部”和“函数体”构成、函数类型指函数返回值的类型(可以无返回值void),六、函数(函数的参数),(二)、函数的参数参数列表中的参数为形式参数,它们和函数体中定义的变量一起构成该函数的局部变量,形参是接受数据的通道,由于是第一次出现,因此要作类型说明。注意:、形参要一一说明、实参和形参要做到类型、顺序和数量一致、实参和形参可以同名,但它们都是所处函数内部的局部数据、实参可以是常量、量变、函数和表达式,形参只能是变量、在发生函数调用时,实参是将值(或地址)赋给形参的,六、函数(函数的返回值),(三)、函数的返回值通过调用函数,从被调函数中得到的值称函数的返回值。注意:、调用函数得到返回值有三种途径:)在被调用函数中用return语句可以(且只可)得到一个返回值)使用全局变量,全局变量对所有函数都有效)实参和形参采用地址复用的方法(考点)、被调用函数有时没有返回值,此时定义为void型、被调用函数返回值类型由函数的类型确定、return表达式;、被调用函数返回后,在主调函数中继续执行调用语句的下一个语句,六、函数(函数的调用),(四)、函数的调用函数调用是将程序的执行流程转向被调用函数,被调用函数执行完毕后再回到主调用函数继续执行。注意:、根据被调用函数的类型函数调用有三种形式:)函数调用作为表达式的一部分(被调用函数有返回值)函数调用作为其它函数的参数(被调用函数有返回值)函数调用加“;”号构成函数调用语句(被调用函数无返回值)、函数调用的形式)嵌套调用)递归调用:递归函数的编程特点递归函数的阅读特点,六、函数(数组作函数的参数_1),(五)、数组作为函数的参数由于可以从数组名得到数组在内存储单元存储的起始位置,它是一个地址常量,因此在计论数组作为函数参数时结合指针一并讨论。()一维数组(指向变量的指针)作为函数的参数,在实参和形参位置上共有四种情况:(假定inta10;int*p;)实参(调用点)形参(定义点)x=max(a,10);地址复用关系intmax(intb,intn)x=max(a,10);赋值调用关系intmax(int*p,intn)x=max(p=a,10);地址复用关系intmax(intb,intn)x=max(p=a,10);赋值调用关系intmax(int*p1,intn),六、函数(数组作函数的参数_2),()二维数组(指向行的指针)作为函数的参数,在实参和形参位置上共有四种情况:(假定inta34;int(*p)4;)实参(调用点)形参(定义点)x=max(a,3,4);地址复用关系intmax(intb4,intm,intn)x=max(a,3,4);赋值调用关系intmax(int(*p)4,intm,intn)x=max(p=a,3,4);地址复用关系intmax(intb4,intm,intn)x=max(p=a,3,4);赋值调用关系intmax(int(*p1)4,intm,intn),六、函数(局部和全局变量),(六)、局部变量和全局变量(变量的空间观)局部变量、某函数内部定义的变量,只在该函数内部有效、分程序(复合语句)内部定义的变量,只在分程序中有效、形参属于局部变量全局变量、函数外部定义的变量,作用范围从定义点开始到程序最后定义点之前的函数可用extern进行申明来扩展其作用范围、在全局变量的作用范围内如遇同名的宏定义,则在宏定义之后,同名应该用宏名置换(2004年秋选择题26题),六、函数(变量的存储类别),(七)、变量的存储类别(变量的时间观)存储方法分两大类:、静态存储区:全局变量(程序开始执行赋值)、局部静态变量(编译时赋初值,只赋一次)、动态存储区:局部变量(含形参、函数内定义的变量和分程序中定义的变量)具体分四种:、自动变量auto动态局部变量、static申明的变量静态局部变量、register变量动态局部变量、extern申明变量扩展全局变量作用范围,七、编译预处理,处理工作在编译前完成。(一)、宏定义用宏体置换程序中的宏名。不要将宏体化简后代入,有嵌套定义的宏名需逐层代入。(二)、文件包含和“”的搜索包含文件区别:在库函数头文件所在的目录中寻找(标准方式)、“”先在用户的当前目录中寻找,找不至再按标准方式寻找。文件包含不但可以包含函数的头文件,也可包含*.文件。(三)、条件编译,八、指针(基本概念),(一)、地址和指针变量i地址变量i_point(存储其它变量地址的变量)指针变量作为函数的参数,八、指针(数组和指针),(二)、数组的指针和指向数组的指针变量由于数组连续存放的特性,当指针指向数组(即数组元素)时,通过指针指向的连续变化来指向数组中不同的元素以获取对数组元素的操作。例:inta5,*p;p=*pa3*p的计算结果找到了整型数组成员a3*地址复用关系intmax(intb,intn)x=max(a,10);赋值调用关系intmax(int*p,intn)x=max(p=a,10);地址复用关系intmax(intb,intn)x=max(p=a,10);赋值调用关系intmax(int*p1,intn)指向多维数组的指针实参(调用点)形参(定义点)x=max(a,3,4);地址复用关系intmax(intb4,intm,intn)x=max(a,3,4);赋值调用关系intmax(int(*p)4,intm,intn)x=max(p=a,3,4);地址复用关系intmax(intb4,intm,intn)x=max(p=a,3,4);赋值调用关系intmax(int(*p1)4,intm,intn),八、指针(表达式类型的判断),如何判断一个是数组元素、数组元素的地址?一、一维数组intaN;、a是该数组在内存中的起始地址。、取地址运算、间接访问运算*、下标运算二、二维数组intaMN;、a是该数组的行起始地址。、*(a+i)或ai表示第行的第一个元素地址、取地址运算、间接访问运算*、下标运算,取地址,间接访问,元素:ai、*(a+i)、*运行结果:We,417,f说明:“love”为指针,以%u格式输出“love”的值,即输出该字符串的首地址。*“figs”为该字符串的第一个字符。例:main()if(“abc”=“abc”)printf(“Same!n”);elseprintf(“Notsame!n”);运行结果:Notsame!说明:比较两个字符串的起始地址,它们不可能相同。,八、指针(指针数组),(3)使用指针数组处理二维数组例:inta34,*p3,i;(*p3是指针数组)for(i=0;in+p-n(+p)-n,九、结构体与共用体,四、用指针处理链表、有关函数malloc(size);malloc(sizeof(数据类型)calloc(n,size);calloc(n,sizeof(数据类型)free(p);、链表结点的数据结构:structstudentintnum;floatscore;structstudent*next;/*特殊成员链接需要*/;,结点自身需要,九、结构体与共用体,、链表的操作链表创建结点插入结点删除链表输出注意:得到链表只要得到链首指针。调用函数对已知链表实施操作只要传递链首指针被调用函数都是返回指针值的函数,九、结构体与共用体,共用体一、共用体变量的定义,uniondatacharch;floatf;inti;;uniondataa,b,c;,uniondatacharch;floatf;inti;a,b,c;,unioncharch;floatf;inti;a,b,c;,uniondatacharch10;floatf;intb5;a;,占10个字节内存空间,九、结构体与共用体,二、共用体变量的引用只可引用最低级成员共用体变量名.成员名不能引用共用体变量,只能引用其成员。出现在结构体的定义中。,#includestdio.hstructintnum;charname10;charsex;charjob;unionintclass;charposition10;category;person2;,同一内存段放不同类型成员,某一时刻只有一个即最后存放的成员起作用。,九、结构体与共用体,枚举类型一、枚举类型定义和枚举变量:enumweekdaysun,mon,tue,wed,thu,fri,satday;变量day只可取sun到sat之间的单个值二、枚举类型的引用说明:1、枚举元素是用户自定义的常量,不可赋值。2、C语言按定义顺序使枚举元素的值为0,1,2.定义时可改变枚举元素的值,后继元素在其基础上顺序加1enumweeksun=1,mon=7,tuewedfrisatday;3、枚举元素可进行比较,按定义时的顺序值来比较。if(day=mon).4、枚举变量可赋值,但要注意类型。day=(enumweek)2;day=tue;/*二者等价*/,九、结构体与共用体,用typedef定义类型概念:用typedef定义新类型符号来替代已有的类型名。注意:没有创建新类型。只定义了类型的别名。定义:typedef原类型名新类型名;方法:1、按定义变量的方法写定义体。inti;2、将变量名换成类型别名。intcount;3、在最前面加typedef。typedefintcount;4、用类型别名去定义变量count,九、结构体与共用体,语言中几种数据类型的重新定义:typedefintNEW;typedeffloatNEW;typedefcharNEW;typedefintNEW10;typedefint*NEW;typedefint(*NEW)();typedefstruct类型标识符成员名1类型标识符成员名2.类型标识符成员名nDATE;,十、位运算,位运算符右移级按位与级按位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳动理论考试题及答案
- 2025年中国纸制生日帽数据监测报告
- 口腔验收考试题及答案
- 教师招聘之《幼儿教师招聘》考前冲刺练习试题附参考答案详解【a卷】
- 科技考试题目及答案
- 押题宝典教师招聘之《幼儿教师招聘》通关考试题库含答案详解(典型题)
- 热力网值班员技能比武考核试卷及答案
- 轻冶料浆配料工协同作业考核试卷及答案
- 手工织毯工操作考核试卷及答案
- 铝吸出工专业知识考核试卷及答案
- 药物罐疗法及临床应用
- 消毒供应室课件
- 安全生产重要论述课件
- 2025年房东租房合同模板电子版
- 海运订舱流程图
- 大学生劳动教育概论知到智慧树章节测试课后答案2024年秋南昌大学
- 2025苏教版小学数学二年级上册教学计划
- 盆底肌筋膜筛查及手法治疗
- 景观设计客户需求洞察
- 第五讲铸牢中华民族共同体意识-2024年形势与政策
- 车用驱动电机原理与控制基础(第2版)课件:三相交流绕组及其磁场
评论
0/150
提交评论