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

上传人:za****8 文档编号:20570637 上传时间:2021-03-31 格式:PPT 页数:76 大小:229.50KB
收藏 版权申诉 举报 下载
计算机等级考试二级C语言指导.ppt_第1页
第1页 / 共76页
计算机等级考试二级C语言指导.ppt_第2页
第2页 / 共76页
计算机等级考试二级C语言指导.ppt_第3页
第3页 / 共76页
资源描述:

《计算机等级考试二级C语言指导.ppt》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言指导.ppt(76页珍藏版)》请在装配图网上搜索。

1、计算机等级考试二级语言 计算机科学与技术学院 计算机二级考试指导 语言程序设计 主讲人:黄海军 QQ: 113958033 电话: 15926901196 计算机等级考试二级语言 计算机科学与技术学院 主 要 内 容 一、试卷分析 二、语言概述 三、数据类型及其运算 四、语句 五、数组 六、函数 七、编译预处理 八、指针 九、结构体与共用体 十、文件 十一、主要算法分析 计算机等级考试二级语言 计算机科学与技术学院 C语言复习考试的五大要点 了解试卷,胸中有数 深刻理解,强化概念 归纳整理,适当记忆 注重实践,融会贯通 多做练习,查漏补缺 计算机等级考试二级语言 计算机科学与技术学院 命题基本

2、原则及考核点 语法 : 一、源程序结构 二、基本类型数据的表示和引用 1. 系统预定义数据类型 2. 基本类型常量的表示 3. 基本类型变量的声明和直接引用 4. 基本类型变量的间接引用(指针应用) 三、表达式 四、标准输入 /输出 五、语句 计算机等级考试二级语言 计算机科学与技术学院 命题基本原则及考核点 难题 : 语法 : 单选 , 基本概念填空 , 阅读程序部分 算法和数据结构的综合应用 : 阅读程序 完善程序 上机 填空 改错 :语法错 ,语义错 ,算法错 编程 :主函数 ,功能函数 计算机等级考试二级语言 计算机科学与技术学院 命题基本原则及考核点 语法 : 六、函数 1. 函数定

3、义 2. 函数声明 3. 函数直接调用、间接调用(指针应用) 4. 递归函数的定义与调用执行流程 5. 标识符作用域规则 七、构造类型数据成员的引用 1. 数组声明和数组元素的直接引用 2. 结构定义、结构变量声明和结构变量成员的直接引用 3. 数组元素、结构变量成员的间接引用(指针应用) 八、文件输入 /输出 九、预处理命令 计算机等级考试二级语言 计算机科学与技术学院 命题基本原则及考核点 一、常用算法 1. 分类 (排序 )算法 冒泡 ,选择 ,插入 2. 检索 (查找 )算法 (1) 无序数据序列的查找 (见遍历算法 ) (2) 有序数据序列的查找 :二分法 3. 遍历算法 (1) 一

4、维数组和二维数组的遍历 (2) 单向链表的遍历 (3) 文件的遍历 4. 其它基本算法 递推法 ,穷举法 ,二分法 ,牛顿法求方程根 ,梯形法求定积分等 . 计算机等级考试二级语言 计算机科学与技术学院 命题基本原则及考核点 二、典型问题 数值问题 1. 素数问题 2. 求因子 3. 整数拆位、反序数、回文数 4. 最大公约数 ,最小公倍数 5. 求最值、平均值 6. 累加 ,累乘、阶乘、级数 (近似值计算 ) 计算机等级考试二级语言 计算机科学与技术学院 命题基本原则及考核点 三、典型问题 一维数组数据处理 1. 生成(数列) 2. 变换(编码 /解码,压缩 /还原 , 循环移位等 ) 3.

5、 查找(指定值,最大值,最小值) 4. 排序 5. 插入(一个数) 6. 删除(一个数,重复的多个数) 7. 更新(一个数) 8. 统计 9. 合并(两个数列) 10. 集合运算 11. 模拟高精度算术运算 计算机等级考试二级语言 计算机科学与技术学院 四、典型问题 字符串数据处理 1. 子串查找, 2. 子串统计, 3. 子串删除, 4. 子串替换 , 5. 整型 /实型机器数与字符串表示相互转换 6. 字符串变换(编码 /解码,压缩 /还原) 命题基本原则及考核点 计算机等级考试二级语言 计算机科学与技术学院 命题基本原则及考核点 五、典型问题 二维数组 数据处理 1. 生成(矩阵) 2.

6、 变换(改变数值,改变数据存储位臵) 3. 查找(指定值,最小值,最大值) 4. 排序(按行排序,按列排序) 5. 插入(一个数,一行数,一列数) 6. 删除(一个数,一行数,一列数) 7. 更新(一个数,一行数,一列数) 8. 统计 9. 合并(两个矩阵) 计算机等级考试二级语言 计算机科学与技术学院 命题基本原则及考核点 六、典型问题 一维结构数组 数据处理 1. 查找 (直接查找,通过指向结构数组的指针数组查找) 2. 排序 (结构数组排序,指向结构数组的指针数组排序) 3. 插入(一条记录) 4. 删除(一条记录) 5. 更新(一条记录) 6. 统计 计算机等级考试二级语言 计算机科学

7、与技术学院 考试形式 无纸化考试:理论部分 40+操作部分 60(共 4个大题) 理论部分有: 全部为 单选题 公共 基础知识 (数据结构与算法 3 5,程序设计基础 1 2分,软 件工程基础 2 3,数据库设计基础 3 5分): 10道选择题,共 10 分; c语言程序设计 , 30道选择题,共 30分 操作部分: ( 程序填空题 3*6 18,程序修改题 2*9 18分,程序 设计题 24)共 60分。 改错题 :改错题中所 存在的错误 主要是 语法错误 (如数组的声明错 误、函数定义错误等 )、 运行错误 (如包含不正确的头文件 )、 逻辑 错误 等。 编程题:编程题程序中,通常都涉及一

8、个 有一定难度的算法 ,考 生须按题目要求实现 时间: 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种题

9、型均有 35% 结构体与共用体:选择题 3分, 3种题型 均有 7% 位运算: 1分 文件:选择题 2分, 多以改错和填空题,几率低 计算机等级考试二级语言 计算机科学与技术学院 二、 C语言概述 、 C程序的结构、 main函数 一个程序可由多个函数构成,其中必有唯一的一个主函数。 它是整个程序的入口,也是整个程序的出口。 、标识符的命名规则 规则:字母或下划线开始的字母、下划线和数字串。 语句中的保留字不能作为标识符。(教材 375) 所有的函数名可以作为标识符。 、 C程序的上机过程 编辑 编译 连接 运行 计算机等级考试二级语言 计算机科学与技术学院 三、数据类型及其运算 1、 常量

10、、 变量 常量:固定不变的量 。 整型常量: 十进制 ( 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 ( 06553

11、5 ) 长整型: 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型

12、 。 * 注意强制类型转换的用法 。 ( 类型名 ) ( 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、 逗号运算

13、符和逗号表达式 加 ; 号构成表达式语句 作为其它语句的一部分或函数的参数时要加括号 6、 表达式的类型识别 7、 有关运算符 功能: 优先级: 结合性: 表达式的值: 计算机等级考试二级语言 计算机科学与技术学院 三、数据类型及其运算(续四) 8、关系运算符和关系表达式 = (6级 ) = != (7级 ) 注意: 等于零和不等于零的表示方式 a !a 两个实数判相等和判不相等的方法 ax case 常量表达式 2 : 语句 2; break; case 常量表达式 n : 语句 n; break; default : 语句 n+1 ; 注意: 执行流程 语句可为多个单个语句,此时不必加大括

14、号 default 语句可缺省 switch 语句嵌套使用时, break语句只跳出它所处的哪层 switch 整型、字符型或枚举类型 根据需要选择 计算机等级考试二级语言 计算机科学与技术学院 四、语 句(循环语句 _1) (一)当型循环语句一般格式 while (表达式) 语句 注意: 表达式应有括号 语句为复合语句时应加大括号 在语句中应有使表达式趋于不成立的语句存在 在复合语句中含有 break和 continue语句时的情况: while (表达式) break; continue; 计算机等级考试二级语言 计算机科学与技术学院 四、语 句(循环语句 _2) (二)直到型循环语句一般

15、格式 do 语句 while (表达式) ; 注意 : 无论表达式是否成立,循环体至少执行一遍 表达式应有括号,后面的;号不能丢 语句为复合语句时应加大括号 在语句中应有使表达式趋于不成立的语句存在 在复合语句中含有 break和 continue语句时的情况: do break; continue; while (表达式) ; 计算机等级考试二级语言 计算机科学与技术学院 四、语 句(循环语句 _3) (二) for 型循环语句一般格式 for (表达式 1;表达式 2;表达式 3) 语句 注意 : 语句为复合语句时应加大括号 在语句中应有使表达式 2”趋于不成立的语句存在 在复合语句中含有

16、 break和 continue语句时的情况: 繁琐的二维数组填值问题(结合循环语句,几乎每次都考) 三种循环语句相互嵌套使用的情况 计算机等级考试二级语言 计算机科学与技术学院 五、数 组(一维数组) (一)一维数组 定义: 类型名 数组名 “ 常量表达式 ” ; 定义并初始化: 类型名 数组名 “ 常量表达式 ” 表达式列表; 或:类型名 数组名 “” 表达式列表; 引用: 只能引用下标变量。 注意: 、不能定义动态数组 如: int n ; int an; 、只能在定义数组的时候初始化,以后不可整体赋值 、除字符数组外,不可整体引用数组 、一般用单循环语句引用数组元素 、内存中连续存储,

17、数组名为其存储的首地址 计算机等级考试二级语言 计算机科学与技术学院 五、数 组(二维数组) (二)二维数组 定义: 类型名 数组名 “ 常量表达式 1”“ 常量表达式 2” ; 定义并初始化: 类型名 数组名 “”“ 常量表达式 ” ; 引用: 只能引用下标变量。 注意: 、不能定义动态数组 、只能在定义数组的时候初始化,以后不可整体赋值 、不可整体引用数组 、一般用双重循环语句引用数组元素 、按行在内存中连续存储,数组名为行的行地址, ai为 第 i行第个元素的地址 如: int a33 引用 a05 正确 、与双重循环语句一起应用(二维数组填值问题) 计算机等级考试二级语言 计算机科学与

18、技术学院 五、数 组(字符数组) (三)字符数组(一维、二维) 具有普通一维数组和二维数组的性质。 特点: 、可以定义时初始化,也可以后用 strcpy()赋值。 、可以引用下标变量,也可整体引用(一维) 、一般用于存放字符串 、字符串的基本概念 )串结束符 )内存单元地址 字符串 、字符串操作函数的使用 )串长度(编程实现) )串复制(赋值) )串拼接(编程实现) )串比较(不能用关系运算符) 、字符串的输入和输出 ( char c20 ; ) ) gets (c) ; 和 scanf ( “%s” , c ) ; 区别 、二维字符数组的引用有下标引用法和数组名加第一维下标引用法 计算机等级

19、考试二级语言 计算机科学与技术学院 六、函 数 主要内容 (一 )、函数的定义 (二 )、函数的参数 (三 )、函数的返回值 (四 )、函数的调用 (五 )、数组作为函数的参数 (六 )、局部变量和全局变量 (七 )、变量的存储类别 计算机等级考试二级语言 计算机科学与技术学院 六、函 数(函数的定义) (一 )、函数的定义 函数可理解为一个程序段,给予一定的输入就会产生一定的 输出。函数的定义就是在使用函数前对函数功能的完整性描述。 一般形式: 函数类型 函数名(参数列表) 函数体 注意: 、函数的定义就是函数的说明 、函数由头部和函数体构成 、函数类型指函数返回值的类型(可以无返回值 vo

20、id) 计算机等级考试二级语言 计算机科学与技术学院 六、函 数(函数的参数) (二 )、函数的参数 参数列表中的参数为形式参数,它们和函数体中定义的变量 一起构成该函数的局部变量,形参是接受数据的通道,由于是第 一次出现,因此要作类型说明。 注意: 、形参要一一说明 、实参和形参要做到类型、顺序和数量一致 、实参和形参可以同名,但它们都是所处函数内部的局部数据 、实参可以是常量、量变、函数和表达式,形参只能是变量 、在发生函数调用时,实参是将值(或地址)赋给形参的 计算机等级考试二级语言 计算机科学与技术学院 六、函 数(函数的返回值) (三 )、函数的返回值 通过调用函数,从被调函数中得到

21、的值称函数的返回值。 注意: 、调用函数得到返回值有三种途径: )在被调用函数中用 return语句可以(且只可)得到一个返回值 )使用全局变量,全局变量对所有函数都有效 )实参和形参采用地址复用的方法(考点) 、被调用函数有时没有返回值,此时定义为 void 型 、被调用函数返回值类型由函数的类型确定 、 return 表达式; 、被调用函数返回后,在主调函数中继续执行调用语句的下一 个语句 计算机等级考试二级语言 计算机科学与技术学院 六、函 数(函数的调用) (四 )、函数的调用 函数调用是将程序的执行流程转向被调用函数, 被调用函数执行完毕后再回到主调用函数继续执行。 注意: 、根据被

22、调用函数的类型函数调用有三种形式: )函数调用作为表达式的一部分(被调用函数有返回值) )函数调用作为其它函数的参数(被调用函数有返回值) )函数调用加;号构成函数调用语句(被调用函数无 返回值) 、函数调用的形式 )嵌套调用 )递归调用:递归函数的编程特点 递归函数的阅读特点 计算机等级考试二级语言 计算机科学与技术学院 六、函 数(数组作函数的参数 _1) (五 )、数组作为函数的参数 由于可以从数组名得到数组在内存储单元存储的起始位臵, 它是一个地址常量,因此在计论数组作为函数参数时结合指针一 并讨论。 ()一维数组(指向变量的指针)作为函数的参数,在实参和形 参位臵上共有四种情况 :

23、(假定 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) ()二维数组(指向行的

24、指针)作为函数的参数,在实参和形参位臵 上共有四种情况 : (假定 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,

25、int m,int n ) 计算机等级考试二级语言 计算机科学与技术学院 六、函 数(局部和全局变量) (六 )、局部变量和全局变量(变量的空间观) 局部变量 、某函数内部定义的变量,只在该函数内部有效 、分程序(复合语句)内部定义的变量,只在分程序中有效 、形参属于局部变量 全局变量 、函数外部定义的变量,作用范围从定义点开始到程序最后 定义点之前的函数可用 extern进行申明来扩展其作用范围 、在全局变量的作用范围内如遇同名的宏定义,则在宏定义 之后,同名应该用宏名臵换( 2004年秋选择题 26题) 计算机等级考试二级语言 计算机科学与技术学院 六、函 数(变量的存储类别) (七 )、

26、变量的存储类别(变量的时间观) 存储方法分两大类: 、静态存储区: 全局变量 (程序开始执行赋值 )、 局部静态变量 (编译时赋初值,只赋一次 ) 、动态存储区: 局部变量 (含形参、函数内定义的变量和分程序中定义的变量 ) 具体分四种: 、自动变量 auto 动态局部变量 、 static 申明的变量 静态局部变量 、 register 变量 动态局部变量 、 extern 申明变量 扩展全局变量作用范围 计算机等级考试二级语言 计算机科学与技术学院 七、编译预处理 处理工作在编译前完成。 (一 )、宏定义 用宏体臵换程序中的宏名。不要将宏体化简后代入,有嵌套 定义的宏名需逐层代入。 (二

27、)、文件包含 和 的搜索包含文件区别: 在库函数头文件所 在的目录中寻找(标准方式)、先在用户的当前目录中寻找, 找不至再按标准方式寻找。 文件包含不但可以包含函数的头文件,也可包含 *.文件。 (三 )、条件编译 计算机等级考试二级语言 计算机科学与技术学院 八、指 针(基本概念) (一 )、地址和指针 变量 i 地址变量 i_point (存储其它变量地址的变量 ) 指针变量作为函数的参数 i_point 2000 i 2000 指针变量 i_point 指向变量 i 计算机等级考试二级语言 计算机科学与技术学院 八、指 针(数组和指针) (二 )、数组的指针和指向数组的指针变量 由于数组

28、连续存放的特性,当指针指向数组(即数组元素)时, 通过指针指向的连续变化来指向数组中不同的元素以获取对数组元 素的操作。 例: int a5,*p ; p= *p a3 *p的计算结果找到了整型数组成员 a3 * 地址复用关系 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 ) 指向多维

29、数组的指针 实参(调用点) 形参(定义点) 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 ) 计算机等级考试二级语言 计算机科学与技术学院 八、指 针(表达式类型的判断)

30、如何判断一个是数组元素、数组元素的地址? 一、一维数组 int aN; 、 a是该数组在内存中的起始地址。 、取地址运算 、间接访问运算 * 、下标运算 “” 二、二维数组 int aMN; 、 a是该数组的行起始地址。 、 *(a+i) 或 ai 表示第行的第一个元素地址 、取地址运算 、间接访问运算 * 、下标运算 “” 取地址 间接访问 元素: ai、 *(a+i)、 * 运行结果: We,417,f 说明 : love”为指针,以 %u格式输出 love”的值 , 即输出该字符串的首地址。 * figs”为该字符串的第一个字符。 例: main() if(“abc”=“abc”) pr

31、intf(“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

32、 *(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

33、 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+); 计算机等级考试二级语言 计算机科学与技术学院 八、指 针(返回指针值的函数) 返回指针值的函数 (指针函数 ) 一个函数的返回值为某种数据类型的地址值,即指针类型数 据,称该函数为

34、指针型函数。 说明返回指针型函数的格式: 类型说明符 *函数名 (参数表 ); 例: 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为行指针 */

35、 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

36、 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; 定义了结

37、构体类型和变量 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; ; struc

38、t int num; char name20; char sex; int age; struct data birthday; char addr30; stud; stud.name 串首地址 stud.name0 正确引用 stud.birthday.day stud.birthday.year 注意: 、运算符 .”为左结合性,第一级 、成员类型决定引用类型 、引用结构体成员可像普通变量一样 赋值、输入、输出、运算 计算机等级考试二级语言 计算机科学与技术学院 九、结构体与共用体 三、指向结构体类型数据的指针 # include string.h main() struct stude

39、nt long int num; char name20; char sex; float score; ; struct student stu_1; struct student *p; p= stu_1.num=89101; strcpy(stu_1.name,Li Lin); stu_1.sex=M; stu_1.score=89.5; 定义结构体变量 stu_1 定义结构体类型指针 P指向 stu_1首地址 计算机等级考试二级语言 计算机科学与技术学院 九、结构体与共用体 有了指向结构体变量的指针,对结构体变量中成 员引用的三种方法 : 1、结构体变量名 .成员名 2、 (*p).成

40、员名 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; /*特殊成员 链接需要 */ ; 结点自身需要 计算机等级考试二级语言 计算机科学与技术学院 九、结构

41、体与共用体 、链表的操作 链表创建 结点插入 结点删除 链表输出 注意: 得到链表只要得到链首指针。 调用函数对已知链表实施操作只要传递链首指针 被调用函数都是返回指针值的函数 计算机等级考试二级语言 计算机科学与技术学院 九、结构体与共用体 共用体 一、共用体变量的定义 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; f

42、loat f; int b5 ; a; 占 10个字节内存空间 计算机等级考试二级语言 计算机科学与技术学院 九、结构体与共用体 二、共用体变量的引用 只可引用最低级成员 共用体变量名 .成员名 不能引用共用体变量,只能引用其成员。 出现在结构体的定义中。 #include stdio.h struct int num; char name10; char sex; char job; union int class; char position10; category; person2; 同一内存段放不同类型成员 ,某一 时刻只有一个即最后存放的成员起作用。 计算机等级考试二级语言 计算机科

43、学与技术学院 九、结构体与共用体 枚举类型 一、枚举类型定义和枚举变量 : 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、枚

44、举变量可赋值,但要注意类型。 day=(enum week) 2; day=tue; /*二者等价 */ 计算机等级考试二级语言 计算机科学与技术学院 九、结构体与共用体 用 typedef 定义类型 概念 : 用 typedef 定义新类型符号来替代已有的类型名。 注意:没有创建新类型。只定义了 类型的别名。 定义: typedef 原类型名 新类型名; 方法: 1、按定义变量的方法写定义体。 int i; 2、将变量名换成类型别名。 int count; 3、在最前面加 typedef。 typedef int count; 4、用类型别名去定义变量 count 计算机等级考试二级语言 计

45、算机科学与技术学院 九、结构体与共用体 语言中几种数据类型的重新定义: typedef int NEW; typedef float NEW; typedef char NEW; typedef int NEW10; typedef int *NEW; typedef int (*NEW)(); typedef struct 类型标识符 成员名 1 类型标识符 成员名 2 . 类型标识符 成员名 n DATE; 计算机等级考试二级语言 计算机科学与技术学院 十、位 运 算 位运算符 右移 级 按位与 级 按位异或 级 按位或 级 左结合性 计算机等级考试二级语言 计算机科学与技术学院 十一、文

46、 件 一、文件的基本操作 # include “stdio.h” main() FILE *fp1,*fp2; fp1=fopen(“d:文件名 ,“读打开方式 ); fp2=fopen(“d:文件名 ,“写打开方式 ); fscanf (fp1, “格式控制 , 输入列表 ); fprintf (fp2, “格式控制 , 输出列表 ); fclose (fp1); fclose (fp2); 打开方式: 只读 只写(如文件存在则覆 盖) 在文件尾追加 可读可写(文件已存在) 先写后读(新建文件) 在已知文件尾追加、可 读 计算机等级考试二级语言 计算机科学与技术学院 十二、算 法 主要算法

47、、累加和、累乘积 、最大公约数、最小公倍数 、素数 、排序(冒泡法、选择法、插入法) 、一维数组 )求最大(小、平均)值、逆序存放 )满足条件元素之和 )字符数组或数值数组的移位或循环移位问题 )一维数组查找(顺序、折半)、插入和删除元素 、二维数组 )求最大(小、平均)值 )满足条件元素之和 对角线、周边、奇数、偶数、下三角、上三角等等 )转臵 )二维字符数组存放字符串 ai的含义 计算机等级考试二级语言 计算机科学与技术学院 十二、算 法 、数的拆分与拼装 满足条件的数。如:水仙花数,掌握循环分解方法。 、字符串 子串、子串替换、单词数、数制转换、排序、合并、四文 )编程实现字符串处理函数

48、 )牛顿迭代法、二分法求方程的根 )链表操作 创建、插入、删除、输出结点、逆臵、排序、循环链表。 )其它注意事项 实数判零 整除及求余 gets()和 scanf() 的区别 二维数组的输出问题 计算机等级考试二级语言 计算机科学与技术学院 十二、算 法 字符串处理函数 注意 strcmp(s1,s2)的用法 char *s,c20; 的含义及用法 函数:类型、调用、实参、形参、返回值 c=getchar()的使用 注意整数相除的表达式 分段函数求解 逻辑表达式求解及 axb含义表达式的书写 计算机等级考试二级语言 计算机科学与技术学院 十三、上机考试注意事项 、填空 、改错题可能出现的情况(四个错误) *函数调用(类型、调用方式、参数对应等) *文件包含缺少 *变量的使用 *前面提到的其它注意事项 *主要算法 、编程题(算法文件操作) *一定是文件操作题(五个要素) *文件名,输出位臵一定按题目要求进行 *算法有一定难度(一般都是小算法的综合)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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