收藏 分销(赏)

计算机等级考试二级语言指导.pptx

上传人:精*** 文档编号:10285053 上传时间:2025-05-15 格式:PPTX 页数:71 大小:377.19KB
下载 相关 举报
计算机等级考试二级语言指导.pptx_第1页
第1页 / 共71页
计算机等级考试二级语言指导.pptx_第2页
第2页 / 共71页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,计算机等级考试二级语言,计算机科学与技术学院,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机等级考试二级语言指导,C,语言复习考试得五大要点,了解试卷,胸中有数,深刻理解,强化概念,归纳整理,适当记忆,注重实践,融会贯通,多做练习,查漏补缺,命题基本原则及考核点,语法,:,一、源程序结构,二、基本类型数据得表示和引用,系统预定义数据类型,基本类型常量得表示,基本类型变量得声明和直接引用,基本类型变量得间接引用(指针应用),三、表达式,四、标准输入,/,输出,五、语句,命题基本原则及考核点,难题,:,语法,:,单选,基本概念填空,阅读程序部分,算法和数据结构得综合应用,:,阅读程序,完善程序,上机,填空,改错,:,语法错,语义错,算法错,编程,:,主函数,功能函数,命题基本原则及考核点,语法,:,六、函数,1、,函数定义,2、,函数声明,3、,函数直接调用、间接调用(指针应用),4、,递归函数得定义与调用执行流程,5、,标识符作用域规则,七、构造类型数据成员得引用,数组声明和数组元素得直接引用,结构定义、结构变量声明和结构变量成员得直接引用,数组元素、结构变量成员得间接引用(指针应用),八、文件输入,/,输出,九、预处理命令,命题基本原则及考核点,一、常用算法,分类,(,排序,),算法冒泡,选择,插入,检索,(,查找,),算法,(1),无序数据序列得查找,(,见遍历算法,)(2),有序数据序列得查找,:,二分法,遍历算法,(1),一维数组和二维数组得遍历,(2),单向链表得遍历,(3),文件得遍历,其她基本算法递推法,穷举法,二分法,牛顿法求方程根,梯形法求定积分等,、,命题基本原则及考核点,二、典型问题,数值问题,素数问题,求因子,3、,整数拆位、反序数、回文数,4、,最大公约数,最小公倍数,5、,求最值、平均值,6、,累加,累乘、阶乘、级数,(,近似值计算,),命题基本原则及考核点,三、典型问题,一维数组数据处理,生成(数列),变换(编码,/,解码,压缩,/,还原,循环移位等,),查找(指定值,最大值,最小值),排序,插入(一个数),删除(一个数,重复得多个数),更新(一个数),统计,合并(两个数列),集合运算,模拟高精度算术运算,四、典型问题,字符串数据处理,子串查找,子串统计,子串删除,子串替换,整型,/,实型机器数与字符串表示相互转换,字符串变换(编码,/,解码,压缩,/,还原),命题基本原则及考核点,大家有疑问的,可以询问和交流,可以互相讨论下,但要小声点,命题基本原则及考核点,五、典型问题,二维数组,数据处理,生成(矩阵),变换(改变数值,改变数据存储位置),查找(指定值,最小值,最大值),排序(按行排序,按列排序),插入(一个数,一行数,一列数),删除(一个数,一行数,一列数),更新(一个数,一行数,一列数),统计,合并(两个矩阵),命题基本原则及考核点,六、典型问题,一维结构数组,数据处理,查找,(直接查找,通过指向结构数组得指针数组查找),排序,(结构数组排序,指向结构数组得指针数组排序),插入(一条记录),删除(一条记录),更新(一条记录),统计,考试形式,无纸化考试:理论部分,40+,操作部分,60,(共,4,个大题),理论部分有:全部为单选题,公共,基础知识,(数据结构与算法,3,5,程序设计基础,1,2,分,软件工程基础,2,3,数据库设计基础,3,5,分):,10,道选择题,共,10,分;,c,语言程序设计,30,道选择题,共,30,分,操作部分:,(,程序填空题,3*6,18,程序修改题,2*9,18,分,程序设计题,24,)共,60,分。,改错题:改错题中所存在得错误主要就是语法错误,(,如数组得声明错误、函数定义错误等,),、运行错误,(,如包含不正确得头文件,),、逻辑错误等。,编程题:编程题程序中,通常都涉及一个有一定难度得算法,考生须按题目要求实现,时间:,130,分钟,满分,100,分,C语言程序设计,C,语言结构:选择题,1,分,改错题,7%,数据类型及运算:选择题,3,分,3,种题型均有,55%,基本语句:选择题,1,分,3,种题型均有,35%,选择结构程序设计:选择题,4,分,3,种题型均有,35%,循环结构程序设计:选择题,6,分,3,种题型均有,40%,数组得定义与引用:选择题,2,分,3,种题型均有,35%,函数:选择题,4,分,3,种题型均有,40%,编译预处理:选择题,3,分,带参数得宏定义,2%,指针:选择题,4,分,3,种题型均有,35%,结构体与共用体:选择题,3,分,3,种题型均有,7%,位运算:,1,分,文件:选择题,2,分,多以改错和填空题,几率低,二、,C,语言概述,、,C,程序得结构、,main,函数,一个程序可由多个函数构成,其中必有唯一得一个主函数。她就是整个程序得入口,也就是整个程序得出口。,、标识符得命名规则,规则:字母或下划线开始得字母、下划线和数字串。,语句中得保留字不能作为标识符。(教材,375,),所有得函数名可以作为标识符。,、,C,程序得上机过程,编辑,编译,连接,运行,三、数据类型及其运算,1,、常量、变量,常量:固定不变得量。,整型常量:,十进制(,29,)、八进制(,029,)和十六进制(,0 x29,),实型常量:,小数表示(,123、456,)、指数表示,(1、23456e+002),字符常量:,普通字符(,A a 2 +,)、转义字符(,qqq xhh,),符号常量:(一般用大写字符表示),#define PI 3、1415936,三、数据类型及其运算(续一),变量:,整型:,基本整型:,2,字节,int (-32768-+32767),无符号基本整型:,2,字节,unsigned int (065535),长整型:,4,字节,long int,或,long,无符号长整型:,4,字节,unsigned long int,或,unsigned long,实型:,单精度,:4,字节,float,双精度,:8,字节,double,字符型:,有符号字符,:1,字节,char (-128127),无符号字符,:1,字节,unsigned char (0255),三、数据类型及其运算(续二),2,、不同类型数据之间得混合运算,表达式值得类型由该式子中最长得数据类型决定。,float,型无条件转换成,double,型。,char,型无条件转换成,int,型。,*注意强制类型转换得用法。(类型名),(,int,),x+y,等价于(,int,),x,),+y,参与运算得数据类型改变了,x,得类型不变。,3,、算术运算符和运算表达式(,+-*/%,),/:a/b a,b,都就是整型 结果就是整型,%,:,a%b a,b,都必须就是整型,三、数据类型及其运算(续三),4,、赋值运算符和赋值表达式(右结合性),号 左边只能出现变量,具有强制类型转换作用,if (c=getchar()!=n),复合赋值运算,a*=x+y,等价于,a=a*(x+y),5,、逗号运算符和逗号表达式,加;号构成表达式语句,作为其她语句得一部分或函数得参数时要加括号,6,、表达式得类型识别,7,、有关运算符,功能:优先级:结合性:表达式得值:,三、数据类型及其运算(续四),8,、关系运算符和关系表达式,=(6,级,),=!=(7,级,),注意:,等于零和不等于零得表示方式,a !a,两个实数判相等和判不相等得方法,ax&xb,不能写成,ax b?x:y?m:n,y,应先与后面得运算符结合,12,、位运算符,(按位取反,2,级),&,(按位与,8,级),(按位异或,9,级),|,(按位或,10,级),13,、,数学算式得,C,语言表示,三、数据类型及其运算(续八),14,、输入输出函数,输入函数:,getchar()gets()scanf(),输出函数:,putchar()puts()printf(),注意:,1),getchar(),就是无参函数,从输入设备读取一个字符,包括不可显示字符(一般形式,c=getchar(),)。,2),gets(),和,puts(),函数只有一个参数,且为字符串得首地址。,3),scanf(),函数得格式控制符中得普通字符照原样输入。,4),printf(),函数中得实参得求值顺序从右向左。,四、语句,、表达式语句,、函数调用语句,、复合语句,、空语句,、控制语句,四、语句(选择语句),(一),if,语句一般格式,if,(表达式)语句,或,if,(表达式)语句,1,else,语句,2,注意:,“表达式”应有括号,且可为各种类型得表达式,“语句”如就是复合语句应有括号,“语句”还可以就是,if,语句,数学分段函数得求值问题,繁琐得二维数组填值问题(结合循环语句,几乎每次都考),四、语句(选择语句,_,续),(二),switch,语句一般格式,switch,(表达式),case,常量表达式,1:,语句,1,;,break;,case,常量表达式,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,语句时得情况:,do,break;,continue;,while,(表达式);,四、语句(循环语句,_3,),(二),for,型循环语句一般格式,for,(表达式,1,;表达式,2,;表达式,3,),语句,注意,:,“语句”为复合语句时应加大括号,在语句中应有使“表达式,2”,趋于不成立得语句存在,在复合语句中含有,break,和,continue,语句时得情况:,繁琐得二维数组填值问题(结合循环语句,几乎每次都考),三种循环语句相互嵌套使用得情况,五、数组(一维数组),(一)一维数组,定义:类型名数组名,常量表达式,;,定义并初始化:类型名数组名,常量表达式,表达式列表;,或:类型名数组名,表达式列表;,引用:只能引用下标变量。,注意:,、不能定义动态数组如:,int n;int an;,、只能在定义数组得时候初始化,以后不可整体赋值,、除字符数组外,不可整体引用数组,、一般用单循环语句引用数组元素,、内存中连续存储,数组名为其存储得首地址,五、数组(二维数组),(二)二维数组,定义:类型名数组名,常量表达式,1,常量表达式,2,;,定义并初始化:,类型名数组名,常量表达式,;,引用:只能引用下标变量。,注意:、不能定义动态数组,、只能在定义数组得时候初始化,以后不可整体赋值,、不可整体引用数组,、一般用双重循环语句引用数组元素,、按行在内存中连续存储,数组名为行得行地址,ai,为第,i,行第个元素得地址如:,int a33,引用,a05,正确,、与双重循环语句一起应用(二维数组填值问题),五、数组(字符数组),(三)字符数组(一维、二维),具有普通一维数组和二维数组得性质。,特点:、可以定义时初始化,也可以后用,strcpy(),赋值。,、可以引用下标变量,也可整体引用(一维),、一般用于存放字符串,、字符串得基本概念,)串结束符 )内存单元地址,字符串,、字符串操作函数得使用,)串长度(编程实现)串复制(赋值),)串拼接(编程实现)串比较(不能用关系运算符),、字符串得输入和输出,(char c20;),),gets(c);,和,scanf(“%s”,c);,区别,、二维字符数组得引用有下标引用法和数组名加第一维下标引用法,六、函数,主要内容,(,一,),、函数得定义,(,二,),、函数得参数,(,三,),、函数得返回值,(,四,),、函数得调用,(,五,),、数组作为函数得参数,(,六,),、局部变量和全局变量,(,七,),、变量得存储类别,六、函数(函数得定义),(,一,),、函数得定义,函数可理解为一个程序段,给予一定得输入就会产生一定得输出。函数得定义就就是在使用函数前对函数功能得完整性描述。,一般形式:,函数类型函数名(参数列表),函数体,注意:、函数得定义就就是函数得说明,、函数由“头部”和“函数体”构成,、函数类型指函数返回值得类型(可以无返回值,void,),六、函数(函数得参数),(,二,),、函数得参数,参数列表中得参数为形式参数,她们和函数体中定义得变量一起构成该函数得局部变量,形参就是接受数据得通道,由于就是第一次出现,因此要作类型说明。,注意:,、形参要一一说明,、实参和形参要做到类型、顺序和数量一致,、实参和形参可以同名,但她们都就是所处函数内部得局部数据,、实参可以就是常量、量变、函数和表达式,形参只能就是变量,、在发生函数调用时,实参就是将值(或地址)赋给形参得,六、函数(函数得返回值),(,三,),、函数得返回值,通过调用函数,从被调函数中得到得值称函数得返回值。,注意:,、调用函数得到返回值有三种途径:,)在被调用函数中用,return,语句可以(且只可)得到一个返回值,)使用全局变量,全局变量对所有函数都有效,)实参和形参采用地址复用得方法(考点),、被调用函数有时没有返回值,此时定义为,void,型,、被调用函数返回值类型由函数得类型确定,、,return,表达式;,、被调用函数返回后,在主调函数中继续执行调用语句得下一个语句,六、函数(函数得调用),(,四,),、函数得调用,函数调用就是将程序得执行流程转向被调用函数,被调用函数执行完毕后再回到主调用函数继续执行。,注意:,、根据被调用函数得类型函数调用有三种形式:,)函数调用作为表达式得一部分(被调用函数有返回值),)函数调用作为其她函数得参数(被调用函数有返回值),)函数调用加“;”号构成函数调用语句(被调用函数无返回值),、函数调用得形式,)嵌套调用,)递归调用:递归函数得编程特点,递归函数得阅读特点,六、函 数(数组作函数得参数,_1,),(,五,),、数组作为函数得参数,由于可以从数组名得到数组在内存储单元存储得起始位置,她就是一个地址常量,因此在计论数组作为函数参数时结合指针一并讨论。,()一维数组(指向变量得指针)作为函数得参数,在实参和形参位置上共有四种情况,:(假定,int a 10;int *p;,),实参(调用点)形参(定义点),x=max(a,10);,地址复用关系,int max(int b,int n),x=max(a,10);,赋值调用关系,int max(int*p,int n),x=max(p=a,10);,地址复用关系,int max(int b,int n),x=max(p=a,10);,赋值调用关系,int max(int*p1,int n),六、函 数(数组作函数得参数,_2,),()二维数组(指向行得指针)作为函数得参数,在实参和形参位置 上共有四种情况,:(假定,int a 34;int (*p)4;,),实参(调用点)形参(定义点),x=max(a,3,4);,地址复用关系,int max(int b4,int m,int n),x=max(a,3,4);,赋值调用关系,int max(int(*p)4,int m,int n),x=max(p=a,3,4);,地址复用关系,int max(int b4,int m,int n),x=max(p=a,3,4);,赋值调用关系,int max(int(*p1)4,int m,int n),六、函数(局部和全局变量),(,六,),、局部变量和全局变量(变量得空间观),局部变量,、某函数内部定义得变量,只在该函数内部有效,、分程序(复合语句)内部定义得变量,只在分程序中有效,、形参属于局部变量,全局变量,、函数外部定义得变量,作用范围从定义点开始到程序最后,定义点之前得函数可用,extern,进行申明来扩展其作用范围,、在全局变量得作用范围内如遇同名得宏定义,则在宏定义之后,同名应该用宏名置换(,2004,年秋选择题,26,题),六、函数(变量得存储类别),(,七,),、变量得存储类别(变量得时间观),存储方法分两大类:,、静态存储区:,全局变量,(,程序开始执行赋值,),、,局部静态变量,(,编译时赋初值,只赋一次,),、动态存储区:,局部变量,(,含形参、函数内定义得变量和分程序中定义得变量,),具体分四种:,、自动变量,auto,动态局部变量,、,static,申明得变量 静态局部变量,、,register,变量 动态局部变量,、,extern,申明变量 扩展全局变量作用范围,七、编译预处理,处理工作在编译前完成。,(,一,),、宏定义,用宏体置换程序中得宏名。不要将宏体化简后代入,有嵌套定义得宏名需逐层代入。,(,二,),、文件包含,和“”得搜索包含文件区别:,在库函数头文件所在得目录中寻找(标准方式)、“”先在用户得当前目录中寻找,找不至再按标准方式寻找。,文件包含不但可以包含函数得头文件,也可包含*,、,文件。,(,三,),、条件编译,八、指针(基本概念),(,一,),、地址和指针,变量,i,地址变量,i_point (,存储其她变量地址得变量,),指针变量作为函数得参数,i_point,2000,i,2000,指针变量,i_point,指向变量,i,八、指针(数组和指针),(,二,),、数组得指针和指向数组得指针变量,由于数组连续存放得特性,当指针指向数组(即数组元素)时,通过指针指向得连续变化来指向数组中不同得元素以获取对数组元素得操作。,例:,int a5,*p;,p=,*p a3,*p,得计算结果找到了整型数组成员,a3,*,&a3 a3,对,a3,得地址作间接存取运算,结果为变量,a3,&*p&a3,对*,p,得计算结果进行取址运算得到,a3,得地址,a0,a1,a2,a3,a4,p,八、指针(数组和指针,_,续),数组名作函数参数,实参(调用点)形参(定义点),x=max(a,10);,地址复用关系,int max(int b,int n),x=max(a,10);,赋值调用关系,int max(int*p,int n),x=max(p=a,10);,地址复用关系,int max(int b,int n),x=max(p=a,10);,赋值调用关系,int max(int*p1,int n),指向多维数组得指针,实参(调用点)形参(定义点),x=max(a,3,4);,地址复用关系,int max(int b4,int m,int n),x=max(a,3,4);,赋值调用关系,int max(int(*p)4,int m,int n),x=max(p=a,3,4);,地址复用关系,int max(int b4,int m,int n),x=max(p=a,3,4);,赋值调用关系,int max(int(*p1)4,int m,int n),八、指针(表达式类型得判断),如何判断一个就是数组元素、数组元素得地址?,一、一维数组,int aN;,、,a,就是该数组在内存中得起始地址。,、取地址运算,、间接访问运算*,、下标运算,二、二维数组,int aMN;,、,a,就是该数组得行起始地址。,、*,(a+i),或,ai,表示第行得第一个元素地址,、取地址运算,、间接访问运算*,、下标运算,取地址,间接访问,元素:,ai,、*,(a+i),、*,&ai,、*,a,地址:,a,、,a+i,、,&ai,行地址:,a+i,i,行第个元素地址:*,(a+i),、,ai,元素:,aij,、*,(*(a+i)+j),、*,(ai+j),、,(*(a+i)j,地址:,&aij,、*,(a+i)+j,、,ai+j,、,&(*(a+i)j,八、指针(字符串得指针),字符串概念,、以内存某一起始字节开始到,0,字符结束得若干字节。,、字符,0,得,ASCII,码值为。,、字符串所占内存空间为串长加。,、从语言角度对字符串得理解:从内存某一起始字节开始,向地址值增大得方向以字节为单位连续寻找,如,ASCII,码不等于,则其所代表得字符为字符串中有效字符,如,ASCII,码等于,则字符串结束。,、内存单元某一字节得地址。,、可用一维字符数组存放。,、可用指向字符变量得指针存放。,、看见常量字符串应将其理解为第一个字符得地址。,八、指针(字符串得指针,_,续),例:,main(),printf(,“,%s,%u,%cn,”,”,We,”,”,love,”,*,”,figs,”,);,运行结果:,We,417,f,说明:,“,love,”,为指针,以,%u,格式输出,“,love,”,得值,即输出该字符串得首地址。,*,“,figs,”,为该字符串得第一个字符。,例:,main(),if(,“,abc,”,=,“,abc,”,)printf(,“,Same!n,”,);,else printf(,“,Not same!n,”,);,运行结果:,Not same!,说明:比较两个字符串得起始地址,她们不可能相同。,八、指针(指针数组),(3),使用指针数组处理二维数组,例:,int a34,*p3,i;(*p3,就是指针数组,),for(i=0;i3;i+)pi=ai;,说明:,p,数组得三个元素,分别就是指向整型变量得指,针(元素指针),指针数,组名,p,得增值为一维数组,长度,。,a00,a10,a20,p0,p1,p2,p,p+1,p+2,通过指针,p,引用数组元素得方式:,pij,*(pi+j),*(*(p+i)+j),(*(p+i)j,注意:,a,为二维字符数组得情况,为地址得地址,即指针得指针,八、指针(指针得指针),指针得指针(二级间址访问),指向指针数据得指针变量又称为指针得指针,或,指针链。其定义得一般格式:,类型说明符*指针变量名,例:,static char*name=“book”,”print”,”gread”;,char*p;,定义指针得指针,p,p=name;p,指向指针数组,name,则:,*,p,即,name0,*,(p+1),即,name1,*,(p+i),即,namei,name,name0,name1,name2,b,o,o,k,0,p r i n t 0,g r e a d 0,p,name,数组,字符串,八、指针(指针得指针,_,续),例:,main(),char*p;,static char*d=“up”,”down”,”left”,”right”;,int i;,p=d;,for(i=0;i4;i+),printf(“%sn”,*p+);,八、指针(返回指针值得函数),返回指针值得函数,(,指针函数,),一个函数得返回值为某种数据类型得地址值,即指针类型数据,称该函数为指针型函数。,说明返回指针型函数得格式:,类型说明符*函数名,(,参数表,),;,例:,int*a(x,y);,八、指针(返回指针值得函数,_,续),void main(),static float score4=;,float*search();,/*search(),返回指向实型数据得指针*,/,float*p;int i,m;,/*p,为指向实型数据得指针*,/,scanf(“%d”,printf(“The scores of No、%d are:n”,m);,p=search(score,m);/*score,为行指针*,/,for(i=0;iy)z=x;,else z=y;,return(z);,八、指针(函数得指针,_,续),/*函数,max(),min(),add(),定义略*/,main(),int max(),min(),add();,int a,b;,printf(,“,Enter a and b:,”,);,scanf(,“,%d%d,”,printf(,“,max=,”,);process(a,b,max);,printf(,“,min=,”,);process(a,b,min);,printf(,“,sum=,”,);process(a,b,add);,process(int x,int y,int(*fun)(),int result;,result=(*fun)(x,y);,printf(,“,%dn,”,result);,三次调用传递了三个,不同得函数入口地址,利用函数指针调用不同,得函数,增加了函数调,用得灵活性,九、结构体与共用体,结构体,一、结构体变量得定义,struct,结构体名,类型标识符 成员名,1,类型标识符 成员名,2,、,类型标识符 成员名,n,;,只定义了结构体类型,struct,结构体名,类型标识符 成员名,1,类型标识符 成员名,2,、,类型标识符 成员名,n,a,b,c3,;,定义了结构体类型和变量,struct,类型标识符 成员名,1,类型标识符 成员名,2,、,类型标识符 成员名,n,a,b,c3,;,只定义了结构体变量,typedef struct,DATE,a,b,c3,;,定义,为结构体变量,类型标识符 成员名,1,类型标识符 成员名,2,注意:考试中多采用此种形式,、,类型标识符 成员名,n,(可嵌套定义),DATE,;,定义,DATE,为结构体类型,九、结构体与共用体,二、结构体变量得引用,只可引用最低级成员,struct data,int month;,int day;,int year;,;,struct,int num;,char name20;,char sex;,int age;,struct data birthday;,char addr30;,stud;,串首地址,0,正确引用,stud、birthday、day,stud、birthday、year,注意:,、运算符“,、”,为左结合性,第一级,、成员类型决定引用类型,、引用结构体成员可像普通变量一样,赋值、输入、输出、运算,九、结构体与共用体,三、指向结构体类型数据得指针,#include string、h,main(),struct student,long int num;,char name20;,char sex;,float score;,;,struct student stu_1;,struct student*p;,p=,stu_1、num=89101;,strcpy(st,Li Lin);,stu_1、sex=M;,stu_1、score=89、5;,定义结构体变量,stu_1,定义结构体类型指针,P,指向,stu_1,首地址,九、结构体与共用体,有了指向结构体变量得指针,对结构体变量中成员引用得三种方法,:,1,、结构体变量名,、,成员名,2,、,(*p)、,成员名,3,、,p-,成员名,“*”,号运算低于“,、”,运算,P-n+,+p-n,(+p)-n,九、结构体与共用体,四、用指针处理链表,、有关函数,malloc(size);malloc(sizeof(,数据类型,),calloc(n,size);calloc(n,sizeof(,数据类型,),free(p);,、链表结点得数据结构:,struct student,int num;,float score;,struct student *next;,/*,特殊成员链接需要,*,/,;,结点自身需要,九、结构体与共用体,、链表得操作,链表创建,结点插入,结点删除,链表输出,注意:,得到链表只要得到链首指针。,调用函数对已知链表实施操作只要传递链首指针,被调用函数都就是返回指针值得函数,九、结构体与共用体,共用体,一、共用体变量得定义,union data,char ch;,float f;,int i;,;,union data a,b,c;,union data,char ch;,float f;,int i;,a,b,c;,union,char ch;,float f;,int i;,a,b,c;,union data,char ch10;,float f;,int b5;,a;,占,10,个字节内存空间,九、结构体与共用体,二、共用体变量得引用,只可引用最低级成员,共用体变量名,、,成员名,不能引用共用体变量,只能引用其成员。,出现在结构体得定义中。,#include stdio、h,struct,int num;,char name10;,char sex;,char job;,union,int class;,char position10;,category;,person2;,同一内存段放不同类型成员,某一时刻只有一个即最后存放得成员起作用。,九、结构体与共用体,枚举类型,一、枚举类型定义和枚举变量,:,enum weekday sun,mon,tue,wed,thu,fri,sat day;,变量,day,只可取,sun,到,sat,之间得单个值,二、枚举类型得引用说明,:,1,、枚举元素就是用户自定义得常量,不可赋值。,2,、,C,语言按定义顺序使枚举元素得值为,0,1,2、,定义时可改变枚举元素得值,后继元素在其基础上顺序加,1,enum week sun=1,mon=7,tue wed fri sat day;,3,、枚举元素可进行比较,按定义时得顺序值来比较。,if (day=mon )、,4,、枚举变量可赋值,但要注意类型。,day=(enum week)2;,day=tue;/*,二者等价*,/,九、结构体与共用体,用,typedef,定义类型,概念,:,用,typedef,定义新类型符号来替代已有得类型名。,注意:没有创建新类型。只定义了,类型得别名。,定义:,typedef,原类型名 新类型名;,方法:,1,、按定义变量得方法写定义体。,int i;,2,、将变量名换成类型别名。,int count;,3,、在最前面加,typedef,。,typedef int count;,4,、用类型别名去定义变量,count,九、结构体与共用体,语言中几种数据类型得重新定义:,typedef int NEW;,typedef float NEW;,typedef char NEW;,typedef int NEW10;,typedef int *NEW;,typedef int (*NEW)();,typedef struct,类型标识符 成员名,1,类型标识符 成员名,2,、,类型标识符 成员名,n,DATE,;,十、位运算,位运算符,右移 级,按位与级,按位异或级,按位或级,左结合性,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服