全国计算机等级考试培训教材(2级C)全套教学课件_第1页
全国计算机等级考试培训教材(2级C)全套教学课件_第2页
全国计算机等级考试培训教材(2级C)全套教学课件_第3页
全国计算机等级考试培训教材(2级C)全套教学课件_第4页
全国计算机等级考试培训教材(2级C)全套教学课件_第5页
已阅读5页,还剩198页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机等级考试第一章公共基础知识【ch01】公共基础知识.pptx【ch02】C语言概述.pptx【ch03】运算符与表达式.pptx【ch04】顺序结构.pptx【ch05】选择结构.pptx【ch06】循环结构.pptx【ch07】数组.pptx【ch08】函数.pptx【ch09】指针.pptx【ch10】结构体和共用体.pptx【ch11】编译预处理.pptx【ch12】文件.pptx全套可编辑PPT课件数据结构与算法01ONE1.1数据结构与算法01考点1算法1.算法定义算法是指对解题方案准确而完整的描述。算法不等于数学上的计算方法,也不等于程序。2.算法的特征算法的特征有4个:可行性、确定性、有穷性、拥有足够的情报。(1)可行性:在算法的执行过程中,每一个步骤都要可行、可通。经过执行能够得到一个结果。(2)确定性:算法中的每一个步骤都要有确切的含义,不能有二义性,对于相同的输入必须能得出相同的执行结果。(3)有穷性:一个算法包含的操优步骤是有限的。也就是说,在执行若干个操作步骤之后算法结束,而且每一个步骤都要在合理的时间内完成。(4)拥有足够的情报:即拥有足够的输入数据。通过大量的算法输入数据来验证算法输出的结果是否有误。1.1数据结构与算法3.算法复杂度(1)算法的复杂度是指运行该算法所需要的计算机资源的多少,所需的资源越多,该算法的复杂度越高:反之,所需资源越少,复东度越低。也就是说,算法的复杂度是对算法中的各种方法进行衡量的标准。(2)算法的复杂度有两种:算法的时间复杂度和算法的空问复杂度。①算法的时间复杂度:执行算法所需要的(计算工作量)基本运算次数。②算法的空间复杂度:执行算法所需要的内存空问。【注意】算法时间复杂度的好与坏不会影响空问复杂度的好与坏。01考点1算法1.1数据结构与算法01考点2数据结构1.数据的逻辑结构(1)数据结构定义数据结构主要研充和讨论了个方面的内容:逻辑结构、存储结构和运算。逻辑结构讨论的是现实世界中数据与数据之间的关系:存储结构也称物理结构,指的是逻辑结构在计算机存储空问的存放形式。(2)数据的逻辑结构满足逻辑结构的的条件:①表示数据元素的信息;②表示各数据元素之问的前后件关系。逻辑结构的分类:线性结构、非线性结构。①线性结构:有且只有一个根节点:每一个节点最多有一个前件,也最多有一个后件。在二级公共基础中,线性结构主要讲到的有:线性表、栈、队列。②非线性结构:不满足线性结构条件的就属于非线性结构。在二级公共基础中,非线性结构主要讲到的有:树、二叉树。1.1数据结构与算法01考点2数据结构2.数据的存储结构(1)概念:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。(2)数据的逻辑结构在计算机存储空间中的存储形式通常有两种:顺序存储结构、链式存储结构。①顺序存储结构:数据在存储空间中必须连续,且元素之问一定要有前后件的关系。②链式存储结构:数据在存储空问中不一定连续,且各元素的存储顺序是任意的。(3)两种存储结构的优缺点如下。①顺序存储结构:优点是查找方便;缺点是插入、刪除不方便。②链式存储结构:优点是插入、删除方便;缺点是查找不方便。1.1数据结构与算法01考点3线性表及顺序存储结构(1)一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,那么该数据结构称为线性结构,也称为线性表。(2)线性表往计算机中进行存放,不仅可以采用顺序存储结构存放,还可以采用链式存储结构存放。①顺序表:线性表采用顺序存储结构存放。②线性链表:线性表采用链式存储结构存放。(3)顺序表和线性链表的特点如下。①顺序表:随机(访问〉存取、查找方便,插入、删除不方便,事先估计存储空间。②线性链表:顺序(访问)存取、插入、刪除方便,查找不方便,不必事先估计存储空间。1.1数据结构与算法01考点4栈和队列1.栈(1)栈是一种特殊的线性表,其特殊性是插入与删除运算都只在线性表的一端进行。即栈的一个考点:入栈和退栈都是在一端(栈顶)进行的。(2)栈在计算机中进行存储时通常采用的存储方式有顺序存储结构、链式存储结构。(3)栈的原则是先进后出、后进先出。2.队列(1)队列是一个允许在一端进行插入,而在另一端进行删除的线性表。即队列的一个考点:队列的入队运算是在队尾进行的,而退队运算是在队头进行的。(2)队列在计算机中进行存储时通常买用的存储方式有顺序存储结构、链式存储结构。(3)队列的原则是先进先出、后进后出。(4)循环队列是队列在计算机存储空间中采用顺序存储结构进行存储的一种形式。1.1数据结构与算法01考点4栈和队列3.循环队列循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。1.1数据结构与算法01考点5树与二叉树(1)树是一种简单的非线性结构。在树中,所有数据元素之间的关系具有明显的层次特性。树的根书点可以没有或有一个。(2)二叉树的性质如下。性质1:在二叉树的第上层上至多有2k-1个节点(k≥1)。性质2:深度为四的二叉树至多有2m-1个节点。性质3:对任何一棵二叉树,度为0的节点(即叶子节点)总是比度为2的节点多一个。性质4:具有n个节点的完全二叉树的深度至少为[log2n]+1,其中[log2n]表示log2n的整数部分。(3)二叉树的特殊情记:满二叉树、完全二叉树。满二叉树:每一层的节点都达到了最多。完全二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干节点。完全二叉树中的度为1的节点个数为1或0。满二叉树也是完全二叉树,反之,完全二叉树不一定是满二叉树。性质5:具有n个节点的完全二叉树深度为[log2n]+1或[log2(n+1)]。1.1数据结构与算法01考点5树与二叉树2.二叉树的遍历方法二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。前序遍厉(先序遍厉)在不重复访问二叉树时,先访问根节点,再访问左子树,最后访问右子树。并且,在访问左子树和右子树时仍先访问根节点,再访问左子树,最后访问右子树。(2)中序遍厉在不重复访问二叉树时,先访问左子树,再访问根节点,最后访问右子树。并且,在访问左子树和右子树时仍先访问左子树,再访问根节点,最后访问右子树。(3)后序遍历在不重复访问二叉树时,先访问左子树,再访问右子树,最后访问根节点。并且,在访问左子树和右子树时仍先访问左子树,再访问右子树,最后访问根节点。1.1数据结构与算法01考点6查找技术查找的方法有两种:顺序查找、二分法查找(对分查找)。①顺序查找:顺序查找在最坏的情况下需要比较n次,即时间复杂度为n。②二分法查找(对分查找):二分法查找在最坏的情况下需要比较log2n次,即时间复杂度为log2n。注意:只有在顺序存储,并且是有序表的情况下才可以进行二分法查找。1.1数据结构与算法01考点7排序技术排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。常见排序的比较次数如下。①交换类:冒泡排序法:n(n-1)/2;快速排序法:最坏情况下也比较n(n-1)/2次。②插入类:简单插入排序法:n(n-1)/2;希尔排序法:O(n1.5)。③选择类:简单选择排序法:n(n-1)/2;堆排序法:O(nlog2n)。程序设计基础02TWO1.2程序设计基础01考点8程序设计方法与风格考点9结构化程序设计(1)程序设计的风格注重的是清晰第一、效率第二。(2)要使程序的清晰达到最好,我们在程序设计的过程中将源程序文档化。①符号名的命名应具有一定的实际含义,以便于读者理解。②程序中的注释要尽量多,程序中的注释又分为序言性注释、功能性注释。③视觉组织要合理。(1)结构化程序设计的基本结构有3种:顺序结构、选择结构、循环结构。(2)结构化程序设计的基本原则有4种:自顶向下、逐步求精、模块化、限制使用语句。1.2程序设计基础01考点10面向对象的程序设计(1)对象:客观世界中任何的实体称为对象。对象的特点:标识唯一性、分类性、多态性、封装性、模块独立性。(2)类:具有共同属性、共同方法的对象的集合,即类是从对象抽象出来的。(3)实例:类中的实例称为对象;对象是类的实例。(4)消息:对象间传递信息的手段。(5)继承:类之间共享属性和操作的机制。继承的优点是可以提高软件的可重用性。(6)总结:类具有封装性,模块具有独立性,信息具有隐蔽性,继承具有传递性。软件工程基础03THREE1.3软件工程基础01考点11软件工程的基本概念1.软件(1)软件是包括程序、数据及其相关文档的完整集合。(2)软件按功能分为应用软件、系统软件、支撑软件(工具软件)。2.软件工程(1)定义:软件工程是指应用计算机科学、数学及管理科学等原理、采用工程化原则和方法开发软件系统。它不仅可以解决软件开发中的技术问题,还可以解决软件项目的管理问题和软件产品的生产率问题。(2)3个要素:方法、工具和过程。(3)核心思想:尽可能多地使用工程科学的原理来指导工作。(4)达到目标,要研究的内容:软件开发技术、软件工程管理。(5)原则:抽象、信息隐薇、模块化、局部化等。(6)软件开发环境:软件工具的集合。1.3软件工程基础01考点11软件工程的基本概念3.软件生命周期(1)软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期分为以下3个阶段。①定义阶段:提出、分析和定义。②开发阶段:编码、测试。③维护阶段:维护软件的功能,对软件的功能进行增加和删改。此阶段最重要,而且所花费用也最高。1.3软件工程基础01考点12结构化分析方法需求分析任务:准确地确定软件系统必须做什么,确定软件系统必领具备哪些功能。阶段:①需求获取;②需求分析:③编写需求规格说明书;④需求评审。在需求分析中,分析方法可以分为结构化分析方法和面向对象的分析方法。结构化分析方法是常用的一种,其目的是帮助弄清用户对软件的需求。结构化分析方法中常使用的工具有4种:数据流图、数据字典、判定表、判定树。(1)数据流图(DFD):图形中的箭头表示“数据流”。(2)数据字典(DD):字典的作用是解释;也是结构化分析方法的核心。2.软件需求规格说明书软件需求规格说明书的作用如下。(1)便于用户、开发人员进行理解和交流。(2)反映出用户问题的结构,可以作为软件开发工作的基础和依据。(3)作为确认测试和验收的依据。(4)软件需求规格说明书的特点:无歧义性这一特点是其中最为重要的。1.3软件工程基础(1)按技术观点来分类:结构设计、数据设计、接口设计、过程设计。(2)按工程管理角度分类:概要设计、详细设计。①概要设计:将软件的功能进行分解。•概要设计的工具:结构图(SC)。•结构图中的箭头表示调用关系;深度表示控制的层数;宽度表示跨度主数目。②详细设计:确定每个模块的实现算法和局部数据结构。•详细设计的工具:程序流程图(PFD)、N-S、PAD、HIPO、判定表、PDL。•程序流程图中的箭头表示控制流。•N-S是用方框图来代替传统的程序流程图的。01考点13结构化设计方法1.3软件工程基础01考点13结构化设计方法(3)软件设计的《原则)原理:抽象、模块化、信息隐蔽、模块独立性。其中模块独立性这一原则非常重要,其考点是:模块要想尽可能独立,必须要遵循“高可聚、低耜合”的设计原则。模块的独立程度可以由两个定性标准度量:一个是男合性,日来衡量不同模块彼此问互相依赖(连接)的紧密程度:另一个是内聚性,用来衡量一个其块内部各个元素彼此结合的紧密程度。(4)数据流的类型有两类:变换型、事务型。1.3软件工程基础01考点14软件测试(1)软件测试的实施(过程):单元测试、集成测试、确认测试(验收测试)、系统测试。①单元测试:目的是发现各模块内部可能存在的各种错误。②集成测试:目的是发现与接口有关的错误。③确认测试(验收测试):测试是否满足需求分析。④系统测试:将软件系统与硬件系统、外设等其他部件结合到一起,对整个软件系统测试。1.3软件工程基础01考点14软件测试(2)软件测试的方法如下。按是否需要执行被测软件可以分为静态测试、动态测试。①静态测试:不由计算机执行程序代码,主要是通过人看出程序错误。②动态测试:有计算机执行程序进行测试,是基于计算机的测试。按照功能划分,可以分为白盒测试和黑盒测试。①白盒测试:内部结构的测试,又称为“路径测试”。白盒测试的方法包括:逻辑覆盖测试、基本路径测试等。②黑盒测试:外部接口的功能测试。黑盒测试的方法包括:等价类划分法、边界值分析法、错误推测法、因果图法等。1.3软件工程基础01考点15程序调试(1)程序调试的目的:改正错误。(2)程序调试的方法:强行排错法、回溯法、原因排除法。数据库设计基础04FOUR1.4数据库设计基础01考点16数据库系统的基本概念1.基本概念(1)数据库系统(DBS)的组成主要有数据库(DB)、数据库管理系统(DBMS)。①数据库(DB):存储在计算机存储设备上的结构化的相关数据集合。②数据库管理系统(DBMS):对数据库进行建立、使用和维护而配置的软件。其中数据库管理系统是数据库系统的核心。(2)数据库管理系统提供的数据语言:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)。①数据定义语言(DDL):负责数据的模式定义与数据的物理存储构建。②数据操纵语言(DML):负责数据的操纵,包括查询及增、删、改等操作。③数据控制语言(DCL):负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。1.4数据库设计基础01考点16数据库系统的基本概念2.数据管理的发展(1)数据管理发展至今己经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。(2)数据库系统的特点如下。①数据的共享性高。②数据的冗余性低。③数据的独立性高。其中的数据独立性是指数据与程序之间互不依赖。数据独立性叉分为物理独立性、逻辑独立性。3.数据库系统的体系结构(1)三级模式:外模式、概念模式、内模式。①外模式是用户可以见到的模式。也称子模式或用户模式。②内模式是和物理数据库打交道的,也称物理模式。(2)两级映射:概念模式→内模式、外模式→概念模式。1.4数据库设计基础01考点17数据模型1.E-R模型(1)E-R模型又称E-R图,由一些基本图形组成,图形有矩形、補圆、菱形。①矩形:表示实体。②椭圆:表示属性。③菱形:表示联系。(2)实体与实体之间的联系有了种:一对一、一对多、多对多。1.4数据库设计基础2.数据模型(1)数据库的数据模型分为层次、关系和网状3种。①用树形结构表示实体及其之间联系的模型称为层次模型,模型中节点是实体,树枝是联系,从上到下是一对多的关系。②用网状结构表示实体及其之间联系的模型称为网状模型,它是层次模型的扩展,表示多个从属关系的层次结构,呈现一种交叉关系。③关系模型的数据结构非常单一,在关系模型中,现实世界的实体以及实体问的各种联系均用关系来表示。01考点17数据模型1.4数据库设计基础(2)关系模型就是用二维表来组织数据的,关系模型中又涉及如下概念。①关系:一张二维表。②属性:二维表中的列(字段)。③元组:二维表中的行(记录)。④域:二维表中列的取值范围。⑤关键字:能区分关系中每一行的列。⑥关系中的数据约束:实体完整性约束、参照完整性约東、用户定义的完整性约束。01考点17数据模型1.4数据库设计基础01考点18关系代数(1)并运算:两个关系进行并运算,就是把两个关系上下合并。(2)差运算:两个关系进行差运算,就是把两个关系中相同的行去掉,剩下来的就是结果。(3)交运算:两个关系进行交运算,就是把两个关系中相同的行留下,作为结果。(4)专门的关系运算(查询):选择、投影、连接。①选择:对满足条件的记录进行筛选,选择行。②投影:对想要的列进行操作,投影列。③连接:通常考察自然连接和笛卡儿积连接。•笛卡儿积连接,就是用第一个关系的每个记录连接第二个关系的每个记录,新关系的记录数为两个关系记录的乘积,属性为两个关系的和,重复序列只出现一次。•自然连接:相对于笛卡儿积,必须有相同属性,且属性值相等时两个记录才连接,如关系R有C属性,工关系也有C属性,同时相同值为C1和C2。1.4数据库设计基础01考点19数据库的设计与管理数据库设计是数据应用的核心。数据库设计的两种方法如下。(1)面向数据:以信息需求为主,兼顾处理需求。(2)面向过程:以处理需求为主,兼顾信息需求。数据库设计阶段包括需求分析、概念分析、逻辑设计、物理设计。计算机等级考试感谢观看计算机等级考试第二章C语言概述C语言基础知识01ONE2.1C语言基础知识考点1C语言程序(1)C语言是一种结构化程序设计语言,有3中基本结构:顺序、选择、循环。(2)C语言的执行过程如图所示。2.1C语言基础知识考点2C语言程序的构成(1)C语言程序由函数构成,一个C语言程序有且仅有一个main函数。(2)一个函数由两部分组成:函数的首部和函数体。函数体包括声明部分和执行部分。(3)一个C语言程序总是从main函数开始执行,即程序的入口,由main函数结束,即程序的出口。标识符02TWO2.2标识符考点3标识符1.命名规则(1)标识符中只能包含字母(a~z,A~Z),数字(0~9),下画线(_)。(2)第一个字符必须是字母或下面线。(3)区分大小写宇母,即main和Main不同。2.标识符的分类(1)关键字(32个)。有固定含义,不可改变。类型说明符:int、float、double等;语句定义符:if、for、while等。(2)预定义标识符。有特殊含义,可以改变。库函数的名字:printf、scanf等;编译预处理命令名:include等。(3)用户自定义的标识符。格式合法;不能使用关键字;见名知意。常量03THREE2.3常量考点4常量1.整型常量(1)十进制整常数:没有前缀,其数码为0~9。例如,65539,-568。(2)八进制整常数:以0开头,其数码为0~7。例如,015。(3)十六进制整常数:以0X或0x开头,其数码为0~9,A~F或a~f。例如,0x2A。(4)长整型数:整型常数后缀为L或l。例如,358000L。(5)无符号数:整型常数后级为U或u。例如,158u。2.实型常量的形式小数形式:必须有小数点,小数点前后不能同时没有数字。指数形式:aEn(其中a表示十进制数,E阶码标志,n阶码)。E前、E后必须有数字,E后必为整数,可以带符号。例如,2.1E-3、5E8。2.3常量考点4常量3.字符常量用单引号’’括起来的一个宇符。包括普通宇符常量和转义宇符。(1)普通宇符常量:如‘a’、’A’、‘1’。(2)转义字符:由一对单引号引起来的以’\’开头的若干字符的组合。如’\n’表示回车换行、’\\’表示反斜线符、’\’’表示单引号符、’\‘’’表示双引号、’\ddd’表示八进制数、’\xhh’表示十六进制数。变量04FOUR2.4变量考点5

变量1.整型变量和实型变量以考试标准Visual++6.0为例,说明各类型变量所占的位数。2.字符变量一个字符变量只能存放一个字符。字符串不能存放在字符变量中,只能用字符数组或指针存放字符串。2.4变量考点6ASCII码(1)空格的ASCII码值是0;‘0’的ASCII码值为48;‘A’的ASCII码值为65;‘a’的ASCII码值为97。(2)大写字母与小写字母的ASCII码值相差32。考点7

进制转换(1)十进制转换成二进制、八进制、十六进制:将十进制的数字除以2(8、16),得到的商数继续除以2,直到商为。为止,然后将各次相除所得的余数从后往前排列。(2)二进制、八进制、十六进制转换成十进制:将二(八、十六)进制数的每一位数从高位到低位乘以2的n-1次幂,n为该位所在的位数。(3)二进制与八进制之间的转换:从低位到高位,3位二进制数字转换成八进制数字。(4)二进制与十六进制之间的转换:从低位到高位,4位二进制数字转换成十六进制数字。数据类型05FIVE2.5数据类型考点8数据类型数据类型是现实数据的呈现。例如,一个人的身高、年龄、性别等信息。身高定义成实型(float)1.8,年龄定义成整型(int)20,性别定义成字符型(char)m男性。计算机等级考试感谢观看计算机等级考试第三章运算符与表达式C语言运算符01ONE3.1C语言运算符01考点1C语言运算符简介01考点2运算符的优先级C语言的运算符分为算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符和逗号运算符等。另外,按照参与运算的对象的个数可以分为单目运算符、双目运算符、三目运算符。(1)C语言运算符中,单日运算符、条件运算符和赋值运算符及其扩展运算符,结合方向都是从右向左,其余运算符的结合方向为从左向右。(2)运算优先级由大到小:逻辑非>算术运算符>关系运算符>逻辑与>逻辑或>条件运算符>赋值运算符>逗号运算符。算数运算符02TWO3.2算数运算符01考点3算术运算符算数运算符的分类:+、+、ー、*、/、%注意:•%:參与运算的量均为整型。•/:当除号左右两边都是整数时,商也要是整数,如果不是整数则舍弃小数部分,相当于求整运算;当参与运算量有一个为实型时,则商为double型。自增和自减运算符03THREE3.3自增和自减运算符01考点4自增自减运算符・++i:i自加1后再参与运算。・--i:

i自减1后再参与运算。・i++:i参与运算后再自加1。・i--:i参与运算后再自减1。例如,若有定义语句:inta=5,b;,则表达式:b=a++;b的值是5。因为,b的值为表达式a++的值是a未加1之前的值,即5。注意:(1)++和--的运算对象只能为变量,不能是常量或表达式。(2)当++或--与printf语句结合时,若++/--x的形式,则先自增/自减,然后输出;若x++/--的形式,则先输出x原值,在进行自增/自减操作。赋值表达式04FOUR3.4赋值表达式01考点5赋值表达式(1)一般形式:变量名一表达式。注意:①赋值运算符左边必须是变量,而不是表达式。②=是赋值符号,==是等号。强制类型转换05FIVE3.5强制类型转换01考点6强制类型转换运算符一般形式:(类型说明)(表达式)功能:把表达式的运算结果强制转换成类型说明符所表示的类型。逗号表达式06SIX3.6逗号表达式01考点7逗号表达式一般形式:表达式1,表达式2,…,表达式n。求值过程:自左向右依次求解,最后一个表达式的值为整个逗号表达式的值。位运算07SEVEN3.7位运算01考点8位运算C语言提供了6种位运算符。说明:(1)位运算符中除~以外,都是二元运算符,即要求运算符两侧各有一个操作数。(2)位运算只能作用于整型或字符型数据,不能是实型数据。(3)位运算符的优先性从高到低的顾序为:“~”→“>>、<<”→“&”→“^”→“|”。计算机等级考试感谢观看计算机等级考试第四章顺序结构语句的分类01ONE4.1语句的分类01考点1C语句的分类1.控制语句控制语句实现对程序流程执行的控制,可以是选择、循环、转向和返回等控制语句。C语言包括8种控制语句。2.函数调用语句函数调用语句是函数后面加一个分号,例如:Printf(“HelloWorld”);3.表达式语句表达式语句是表达式后面加一个分号,例如:a+b;4.1语句的分类01考点1C语句的分类4.复合语句在C语言中,{}不仅可以用于函数体开始和结束的标记,也可以作为复合语句开始和结束的标记。5.空语句在C语言中,语句结束的标志是“;”,如果只有一个分号,则该语句就是空语句。虽然什么也不做,但它是一条语句。提示:语句的标志是“;”,在for循环、if等语句中注意分号位置,错误添加“;”,导致循环体或分支语句逻辑错误。数据的输入与输出02TWO4.2数据的输入与输出01考点2

格式输出函数printf()printf函数是标准输出函数,其功能是在终端设备上按指定格式进行输出。(1)一般形式:printf("格式控制",输出项序列);例如:Printf("a=%d,b=%c",a,b)其中,“a=%d,b=%c"称为格式控制字符串,a、b是输出项序列中的输出项,是printf函数的两部分参数。说明:①格式控制字符串。遇到控制字符,按照控制字符的规定输出,遇到非格式字符串按原样输出。控制字符由%和格式字符组成。②输出列表。准备输出的一些数据,可以是常量、变量或表达式。4.2数据的输入与输出01考点2

格式输出函数printf()(2)格式字符。可以在%和格式字符之间插入“宽度说明”、左对齐符“-”等。①d格式字符。用来输出十进制整数。其用法如下:(a)%d,按型数据的实际长度输出,例如:printf(“%d,\n”,x);如果x=789,则输出结果为:789(b)%ld,输出长整型数据,例如:printf(“%ld,\n",a);如果a被定义为:longinta=56789;则输出结果为:56789如果用%d格式输出就会出错,因为整型数据的范国是-32768~-32767。对超出此范国的1ong型数据应用%ld格式输出。(c)%-md,m是指定的輸出字符宽度。如果数据的位数小于m,則输出共占m位,数据左靠齐,右边补空格,若省路“-”号,则右靠齐,左边补空格;如果数据的位数大于m,则按实际位数输出。4.2数据的输入与输出01考点2

格式输出函数printf()②f格式字符。用来輸出安数(包括単精度、双精度),以小数形式輸出。其用法如下。(a)%f,实数的整数部分全部输出,小数部分保留6位。需要指出的是,并非全部数宇都是有效数字。单精度实数的有效位数一般是7位,双精度实数的有效位数一般是16位。(b)%mf,输出的实数共占m位,小数部分保留6位。(c)%.nf,输出的实数,总宽度按实际宽度,小数部分占n位。(d)%-m.nf,输出的实数包括小数点在内共占m位,其中小数部分占n位。如果数据的实际宽度小于m,则左靠齐,右边补空格,省略“-”时,右靠齐,左边补空格。③c格式字符。用来输出一个字符。4.2数据的输入与输出01考点2

格式输出函数printf()④s格式字符。用来输出一个字符串。其用法如下。(a)%s,按原样输出一个字符串。(b)%-ms,与整数输出格式“%-md”类似。(c)%m.ns,输出占m列,但只取字符串中左边n个字符。这n个字符输出在m列的右边,左边补空格。(d)%-m.ns,n个字符输出在m列范围的左边,右边补空格。若n>m,则m自动取n值,即保证n个字符正常输出。(3)附加格式字符4.2数据的输入与输出01考点3

格式输入函数scanf()一般形式:scanf("格式控制字符串”,地址列表)。(2)说明:若格式控制字符串中有非格式字符串,则按原样输入。若格式控制字符串中没有非格式字符作输入数据之间的问隔,则可用空格、Tab、回车做间隔。(3)在输入字符数据时,若格式控制字符串中无非格式字符,则认为所有输入的字符均为有效字符。空格会被当作字符赋值给变量。(4)格式字符串。一般形式:%[*][输入数据宽度][长度]类型。*表示该输入项,读入后不赋予相应的变量。输入数据宽度:用十进制数制定输入的字符数。4.2数据的输入与输出01考点4字符输出函数putchar()调用putchar和getchar时,必须在程序开头包含头文件“stdio.h”,如#include<stdio.h>或#nclude"stdio.h"。功能:putchar函数的作用是向终端输出一个字符。一般形式:putchar(宇符)。说明:字符可以是字符常量、变量,也可以是ASCII字符。4.2数据的输入与输出01考点5

字符输入函数getchar()功能:getchar函数的作用是从终端输入一个字符。一般形式:getchar();或ch=getchar();。说明:如果输入一串字符,只能接收首字母。getchar经常作为while循环条件,判断输入哪一个字符时,循环结束。计算机等级考试感谢观看计算机等级考试第五章选择结构关系运算符和表达式01ONE5.1关系运算符和表达式考点1关系运算符和表达式1.逻辑值C语言中,参与逻辑运算的量为非零值或整数零,非零值和整数零分别表示运算量为“真”或“假”。逻辑运算的结果值,即逻辑表达式的值应是一个逻辑值“真”或“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。2.关系运算关系运算实际上就是“比较运算”,将两个数进行比较,判斯比较的结果是否符合指定的条件。关于关系运算符的说明如下。(1)<、<=、>=的优先级别相同,==、!=也相同。前4种优先级别高于后两种。(2)关系运算符与算术运算符、赋值运算符的优先级关系如下。算术运算符(高)→关系运算符(中)→赋值运算符(低),即算术运算符优先级别高于关系运算符,关系运算符优先级别又高于赋值运算符。(3)关系运算符的结合方向是“自左向右”。逻辑运算符和表达式02TWO5.2逻辑运算符和表达式考点2逻辑运算符和表达式通过逻辑运算符运算就是逻辑还算,C语言提供3种逻辑运算符,分别是与(&&)、或(||)和非(!)。关于逻辑运算符的说明如下。(1)逻辑运算符优先级从高到低:!、&&、||。(2)进行逻辑运算时,若&&左边的值为0,则不再对右边的运算对象进行运算,整个表达式的值为0。(3)进行逻辑运算时,若||左边的值为1,则不再对在边的运算对象进行运算,整个表达式的值为1。(4)逻辑运算符连接起来的表达式为逻辅表达式。If语句03THREE5.3if语句考点3

if语句1.If语句的3种形式(1)if单分支语句。If(表达式)语句体(2)if双分支语句。If(表达式)语句体1else语句体2(3)f语向的嵌套。If(表込式)If表込式)语句体1else语句体2elseif表达式)语句体3else语句体5.3if语句考点3

if语句2.if语句的顺序表达式成立,执行if后面的语句或语句体,不成立则执行else语句,无else语句则退出if语句。3.if语句的说明(1)if(表达式),其中表达式可以是任意合法的C语言表达式,如a>1。(2)对于单个if语句,其后跟随的受if控制的只能是1个语句或者1个复合语句。(3)else不能作为独立的语句存在,它必须与if配对使用。(4)内嵌结构中,else总是与前面最近的且未曾配对的if语句配对,组成一对if-else语句。条件表达式04FOUR5.4条件表达式考点4

条件表达式1.一般形式表达式1?表达式2:表达式32.执行过程表达式1的值为真,条件表达式取表达式2的值;表达式1的值为假,条件表达式取表法式3的値。提示:条件表达式和if语句可以相互转换,但在输出语句中,可以直按写条件表达式,以便于阅读和书写。Switch语句05FIVE5.5switch语句一条if语句实现两个分支的选择执行,嵌套多个if语句可以实现多分支语句,有些情况下利用switch实现分支更直观。switch语句格式switch(表达式){case常量表达式1;

语句1;break;case常量表达式2;

语句2;break;……case常量表达式n;

语句n;break;default;语句n+1;}考点5

switch语句5.5switch语句考点5

switch语句2.switch语句执行过程(1)计算switch后面圆括号中表达式的值。(2)用其结果依次与各个case的常量表达式相比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句。(3)若圆括号中表达式的值与所有case后面的常量表达式的值都不相同,则执行default后面的语句n+1。(4)执行后退出switch语句,退出后程序流程转向switch语句的下一个语句。3.switch语句的说明(1)switch语句的圆括号中表达式的值必须是整型或字符型,不能为实型。(2)case后的表达式可以是求得整型和字符型的常量表达式,但不能含有变量。(3)default的位置对程序的执行没有影响。5.5switch语句考点5

switch语句计算机等级考试感谢观看计算机等级考试第六章循环结构While语句01ONE6.1while语句01考点1while循环结构1.一般格式while((表达式){循环体}2.执行过程(1)判断表达式是否成立(非0成立,0不成立)。(2)如果成立执行循环体;不成立退出循环。(3)如果执行循环体,需要再次执行步骤(1)和(2)。(4)直至退出循环。提示:(1)循环体可以是空语句,循环本身没完成任务,但有时通过空语句循环,控制时间。(2)如果第一次判断表达式的值为0,则一次循环也不执行。即while循环体最少执行0次。do-while语句02TWO6.2do-while语句01考点2do-while循环结构1.一般格式Do{循环体}while((表达式)2.执行过程(1)执行循环体。(2)判断表达式是否成立(非0成立,0不成立);如果成立继续执行循环体;不成立退出循环。(3)直至退出循环。提示:do-while循环体最少执行1次循环体。for语句03THREE6.3for语句01考点3for语句1.基本格式for(表达式1;表达式2;表达式3){

循环体;}说明:(1)表达式1,通常为循环变量赋初值。(2)表达式2,通常为循环条件,不成立则停止循环。(3)表达式3,通常用于修政循环变量,从初值向结束变化。(4)表达式1、表达式2、表达式3可以省略,但两个分号不能省略。(5)表达式1和表达式3也可以是逗号表达式。6.3for语句01考点3for语句2.执行过程(1)执行表达式1。(2)执行表达式2,若成立执行(3),若不成立执行(5)。(3)执行循环体。(4)执行表达式了,再执行(2)。(5)结束循环,执行for语句后面的语向。循环的嵌套04FOUR6.4循环的嵌套01考点4

循环嵌套一个循环的循环体内可以包含一个完整的循环,称之为嵌套循环。通常把外层的循环叫外循环,内层的循环叫内循环。外层循环、内层循环可以是3种循环(for、while、do-while)中的任意一种。外层循环执行一次,内层循环执行一遍。例如,for(i=1;i<=10;i++)for(j=1;j<=10;i++){循环体;}执行过程:当i=1时,j从0递增到10,执行循环体;当i=2时,j从0递增到10,执行循环体:.....当i=10时,j从0递增到10,执行循环体。break与continue语句05FIVE6.5break与continue语句01考点5break语句01考点6continue语句(1)功能:跳出整个switch语句;跳出循环体,防止死循环。(2)break语句只能出现在switch、while、do-while、for循环中,不能出现在其他地方。(3)作用范围:所在循环体从属的最内层循环,而不是外层的某个循环。(1)功能:结束本次循环,接着判断是否继续下一次循环。(2)continue语句只能出现在while、do-while、for循环中,不能出现在其他地方。(3)作用范围:所在循环体从属的最内层循环,而不是外层的某个循环。计算机等级考试感谢观看计算机等级考试第七章数组一维数组的定义和引用01ONE7.1一维数组的定义的引用考点1一维数组的定义一维数组是由一个下标的数组元素组成的数组。在C语言中必须“先定义,后使用”。定义格式:类型说明符数组名[常量表达式]例如,inta[10]这里定义了一个一维数组,数组当中元素的类型为整型,数组的名称为a,数组的长度为10,下标从0开始到9。说明:类型说明符:可以是基本数据类型,整型、宇符型、单精度等,也可以是构造类型如结构体等。表示每个元素的类型。数组名:必须是合法标识符,即代表数组的名称,同时也是数组的首地址,常量值,内容不可以改变;常量表达式:表示数组的长度,为数组分配相应的存储单元。可以整型常量或者表达式,不可以是变量。7.1一维数组的定义的引用考点2

一维数组元素的引用考点3一维数组的初始化定义数组Inta[10]数组元素由数组名和下标构成,如a[i],其中i的取值从0开始,到9结束,即a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]。注意,从0开始,a[10]为下标越界。(1)顺序列出数组元素的全部初值,如inta[5]={1,2,3,4,5};。(2)只给数组的前面一部分元素设定初值,未赋初值的元素自动取值0。例如,inta[5]={1,2};。(3)对全部数组元素赋初值时,可以不指定数组元素的个数。例如,inta[]={1,2,3,4,5};。二维数组的定义和引用02TWO7.2二维数组的定义的引用考点4

二维数组的定义当数组元素的下标为两个时,该数组称为二维数组。二维数组的定义格式:类型标识符数组名[常量表达式11[常量表达式2];功能:定义一个二维数组,有“长度1×长度2”个元素。说明:(1)存储类型、数据类型、数组名和长度的含义和选取方法同一维数。(2)数组元素的各维下标从。开始,最大下标为“长度-1”。说明:数组名是分配给该数组的存储区起始地址。(1)二维数组名a是地址常量,存放整个二维数组的起始地址。(2)a[0]、a[1]、a[2]也是地址常量,存放本行元素的起始地址。在逻辑结构上,可以将二维数组理解为矩形矩阵,在实际存储中,二维数组是按照逐行依次存储的方式进行存储的。7.2二维数组的定义的引用考点5二维数组元素的引用考点6

二维数组的初始化二维数组元素也可以作为变量进行操作,引入方法为:数组名[行下标表达式][列下标表达式]例如,inta[3][4]。数组元素为a[i][j],i的取值为0~2,j的取值为0~3,即a[0][0]~a[2][3]均正确,而a[3][4]的行、列下标都超过最大值。(1)按行分段给二维数组赋初值,如inta[2][3]={{1,2,3},{4,5,6},{7,8,9}};。(2)按行连续賦值,如inta[2][3]={1,2,3,4,5,6,7,8,9};。(3)对部分元素赋初值,未赋初值的元素自动取0值,如inta[2][3]={1,2,3};,其他元素为0。(4)若对全部元素赋初值,则第一维的长度可以不指定,如inta[][3]={1,2,3,4,5,6,7,8,9};。7.2二维数组的定义的引用考点7二维数组的嵌套for语句字符数组03THREE7.3字符数组考点8字符串考点9

字符数组的定义及初始化考点10字符数组的输入与输出C语言中没有字符串变量类型。通常是字符串常量或者字符数组。定义:由双引号“”引起来的,由若干个字符所组成的序列。字符串的结束标志:’\0’。字符数组名是地址常量,不能赋值给数组名。7.3字符数组考点11

字符串处理函数C语言提供了一些用于字符串处理的库函数。这些标准库函数在头文件string.h中。常用的库函数见表。计算机等级考试感谢观看计算机等级考试第八章函数函数01ONE8.1函数考点1函数的概述C语言的函数是具有一定功能的代码的集合。对于C语言的函数有以下几点需要注意。(1)C源程序是由函数组成的,函数由函数首部与函数体组成,函数体包括声明部分和执行语句部分。(2)C语言程序可以由多个源程序组成,其中一个源程序文件包含main函数,其他函数可以写在另外的源程序文件中,为单独文件,并可以单独编译。(3)C程序的执行总是从main函数开始的,完成对其他函数的调用后再返回到main函数,最后由main函数結束整个程序。4)main函数可以调用其他函数,而不允许被其他函数调用。一个C源程序必须有,也只能有一个主函数main。(5)在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。定义函数02TWO8.2定义函数考点2

函数的定义函数定义的基本格式:类型名函数名(数据类型形式参数1,数据类型形式参数2……){函数体}说明:(1)类型名。定义函数返回值类型,可以是任何数据类型,如整型、字符型、结构体等,默认值为int,也可没有返回值,则为void类型。(2)函数名。合法标识符,表明函数的名称,一般做到见名知意。(3)形参列表。参数用逗号分开,定义时形参需要明确数据类型。如果没有参数,此次可以为void或省略。(4)函数体。一般包括说明部分和执行语句部分。此次可以为空,则为空函数,空函数当下没有具体功能,但对程序扩展很有用。8.2定义函数考点3函数的返回值函数返回return语句的一般形式:return表达式或return(表达式);return后的表达式可以是常量、变量、表达式,也可以是空。例如:return;return0;returna;return(a+b);在函数中允许有多个return语句,但每次只能有一个return语句被执行。函数参数与函数调用03THREE8.3函数参数与函数调用考点4形参和实参1.形参与实参的区别(1)形参出现在函数定义中,即定义函数时函数名后面括号中的参数,实参出现在主调函数中(调用函数时函数名后面括号中的参数)(2)形参在本函数体内都可以使用,离开该函数则不能使用。实参在主调函数中有效,进入被调函数后,实参变量也不能使用(注:在进行函数调用时,函数必须有确定的值)。(3)实参向形参单向传递数值,不能将形参的值反向传送给实参。实参和形参在数据、类型、顺序上要一致。在函数调用过程中,形参的变化不会改交实参的变化。8.3函数参数与函数调用考点4形参和实参2.函数参数有两种类型:值传递和地址传递(1)在传递数值时,形参和实参分别占据不同的存储单元。形参变量只有在被调用时才分配内存单元,调用结束后,即刻释放分配的内存单元。(2)“传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化;传地址的话,形参的变化就有可能改变实参所对应的量。8.3函数参数与函数调用考点5

函数调用的一般形式和调用方式(1)函数调用的一般形式:函数名(实际参数表)实参可以是常数、变量或其他构造类型数据及表达式,也可以没有(当为无参函数时)。①函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式运算。例如:z=max(x,y);②数语句:函数调用的一般形式上加上分号。例如:printf(“%d\n",a);③函数实参:函数作为另一个函数调用的实际参数出现。例如:printf(“%d",max(x,y));执行顺序如下。程序从main函数进入,从上往下执行,当碰到函数名后,把值传给调用函数,当程序得到了返回值或调用函数结束,再顺序往下执行,最后到main函数结束。8.3函数参数与函数调用考点6函数的声明及其位置考点7函数的嵌套调用函数要“先定义后调用”,或者“先声明再调用后定义”。函数的声明一定要有函数名、函数返回値类型、函数参数类型,但不一定有形参的名称。一般形式为:类型说明符被调函数名(类型形参,类型形参……);或者类型说明符被调函数名(类型,类型……);注意:其末尾“;”不能省略。例如,intmax(inta,intb);或intmax(int,int);两者功能相同。C语言中不允许做嵌套的函数定义,但允许在一个函数中出现对另一个函数的调用,即嵌套调用。8.3函数参数与函数调用考点8函数的递归调用函数直接或间接地调用自己称为函数的递归调用。递归必须满足的条件如下。(1)可以把一个问题转化为新问题。(2)递归调用必须有一个明确的结束条件。变量的作用域或存储类别04FOUR8.4变量的作用域和存储类别考点9局部变量和全局变量1.局部变量在一个函数内部或复合语句内部定义的变量,它只在本函数范围内有效,世就是说,只有在本函数内才能使用它们,在函数以外是不能使用这些变量的。这称为局部变量,局部变量又称为内部变量。函数的形参也属于局部变量。2.全局变量在函数外部定义的变量,称为全局变量,又称为外部变量。全局变量可以被本文件的其他函数所共用。8.4变量的作用域和存储类别考点10

变量存储类别1.静态变量(static)(1)在编译时分配存储空间,所占存储单元直到程序结束时才释放,它的值在程序运行过程中一直存在,且变量的初始化只进行一次。(2)static说明符可以用于全局变量,也可以用于局部变量(auto和resgiter不可以定义全局变量),但当它说明变量后,只要这个变量还在程序中存在,那么不管用到还是没有用到,它都会占用内存单元。2.自变量(auto)(1)自动变量的存储空间是当程序执行到定义它的函数或语句块时才分配,当函数执行结束后自动释放,变量的值也就不再存在了。(2)局部变量的存储类别默认为auto,可以省略不写,但它不能定义全局变量。3.寄存器变量(register)数组与函数05FIVE8.5数组与函数考点11

数组与函数(1)数组用作西数参数有两种形式:把数组元素(下标交量)作为实参使用和把数组名作为函数的形参和实参使用。(2)数组元素用作函数的实参与普通变量并无区别,所进行的传递是值,形参变量和实参变量占据由编译系统分配的两个不同的内存单元。(3)数组名作为函数参数时,所进行的传递是地址(相当于把实参数组的首地址赋子形参数组名或指针名),形参数组与实参数组为同一数组,共同拥有一段内存单元。库函数06SIX8.6库函数考点12

库函数函数可以分为库函数和用户自定义函数。库函数由C系统提供,用户无需定义,在调用C语言标准库函数时要包含include命令,include命令以#开头。计算机等级考试感谢观看计算机等级考试第九章指针地址与指针01ONE9.1地址与指针考点1指针的概念与指针变量指针就是地址。地址是什么?如果程序中定义了一个变量,当编译时,系统就会给变量分配内存单元。不同的数据类型,分配的单元长度不同。(2)指针变量是用来存储地址的变量,而一般变量是用来存储数值的。指针变量存放的是变量的首地址。(3)变量的访问:定义了指针变量,就有两种访问变量的方式。①直接访问:变量中直接存储数据。②间接访问:指针变量中存放的是变量的地址,通过地址再取出变量的值,这种为间接寻址。指针变量02TWO9.2指针变量考点2

指针变量的定义指针变量的定义格式如下:类型*标识符例如:int*i_pointer,含义:指针变量为i_pinter,指向的变量为整型变量,即只可以把整型变量的地址赋值给指针变量。说明:(1)定义时“*”是指针标量的标识符,不可省略。“*”是标识符,不是变量的组成部分,即変量是i_pointer。(2)相同类型的指针变量可以在一个说明语句中定义,但每个变量前都需要有指针标识符“*”。9.2指针变量考点3指针运算符指针运算符主要包括取地址符“&”和取内容符“*”。(1)“&”是取地址符号。它的一般格式:&变量名。(2)“*”是取值运算符。他的一般格式:*指针变量名。说明:(1)“*”在算数表达式中是乘号,在指针变量定义时是指针标识符,在指针运算符中是取值运算符。(2)变量定义时,变量以外的信息表示变量的性质。运算时,要用变量本身去操作。9.2指针变量考点4

指针变量的初始化指针使用的原则是“先定义,后初始化,再运算”,指针变量在使用前必须初始化,把一个具体的地址赋给它,否则引用时会出错,如果不指向任何数据就赋空值“NULL”。指针变量两种初始化方法如下。(1)定义的同时初始化:inta=2,*p=&a;(2)先定义后初始化inta=2,*p;p=&a;说明:p是指针,只能存放地址,p=100是错误的,*p=100是正确的。因为*p取的是里面的值,即i的值,等价于i=100。9.2指针变量考点5指针的运算1.赋值运算赋值运算的3种情况如下。第1种:通过&将变量的值赋值给指针变量。第2种:将已有指针变量给指针变量赋值或者变量首地址(数组、字符串等),要求基类型相同。第3种:空指针NULL,系统设置好的标识,指向0。2.指针与整数加减运算对于数组,通过指针加1,可以实现指针移动到下一个元素。3.指针间减法运算对于指向相同数组的两个指针相减,可以求出隔几个元素。4.*p++和(*p)++的差别*p++是地址变化,按从右向左结合,*(p++),先求出*p所指变量的内容,指针p再向后移动。(*p)++,先求出*p单元的内容,然后将变量内容进行自加运算。指针与数组03THREE9.3指针与数组考点6

指针与一维数组数组名代表数组的首地址。一维数组中,第一个元泰的地址即为该数组的起始地址。建立指针变量与一维数组的联系,一般就是将指针指向数组的首地址。例如:intal6],*pa;pa=a;或pa=&a[0];说明:①数组名a代表该数组的首地址,即a[0]的地址。②pa=a;或pa=&a10];使pa保存了数组a的首地址,pa,a,&a[0]都指向一个地址。③以上操作可等价于inta[6],*pa=a。④如果pa=&a[3];,则表示*pa的值就是a[3]的地址。注意:数组a是一个地址常量,它永远指向数组的首地址,不能重新赋值。因此,a=&i;或a++都是错误的。9.3指针与数组考点7用指针访问数组元素(1)通过指针引用数组元素,例如:int*p,a[5];p=&a[0];说明:①指针变量p指向了数组元素a[0],可以使用访问运算符“*”来引用变量a[0],如*p=18;等价于a[0]=18;。②*(p+1)表示a[1],p+1表示&a[1]。(2)通过数组的首地址引用数组元素,例如:Inta[5];说明:①a是数组名,表示收地址,可以把a当成一个指针常量。②*a等价于a[0],*(a+1)等价于a[1];a等价于&a[0],a+1等价于&a[1];。(3)用带下标的指针变量引用一维数组元素,例如:int*p,a[5];p=a;说明:①p[0]表示p指针指向的内存单元,p[1]表示p指向的内存单元。②a[i]的等价引用方法:a[i]、p[i]、*(a+i)、*(p+i)。③a[i]的地址等价引用方法:&a[i]、&p[i]、a+i、p+i.9.3指针与数组考点8

指针与二维数组任何一个二维数组均由若干个一维数组组成,a[0]、a[1]和a[2]是一维数组名,数组名代表数组的首地址,因此a[0]就代表数组元素a[0][0]的地址,即&a[0][0]。注意:a的值与a[0]相同,但它们的基类型不同,a可以等价于一个二维指针,而a[0]是一维指针。因此,inta[3][4],*p=a;错误。(1)取数组元素a[i][j]的地址的几种方法:&a[i][j];、a[i]+j;、*(a+i)+j;。取数组元素a[i][j]的值的几种方法:a[i][j];、*(a[i]+j);、*(*(a+i)+j);。(2)指针数组的定义方式:*指针数组名[常量表达式];例如:int*p[3];(3)行指针的一般定义形式:类型名(*指针数组名)[常量表达式];例如:int(*p)[2];9.3指针与数组考点8

指针与二维数组指针数组与行指针的区别(1)int*p[3];定义的是指针数组,表示一个数组,含有3个元素p[0]、p[1]、p[2],且这3个元素只能存放整形元素的地址。(2)int(*p)[3];定义的是行指针,表示一个指针变量,它仅有一个存储空间,只能存放一个长度为3的一维数组指针。指针与字符串04FOUR9.4指针与字符串考点9

指针与字符串可以通过字符指针来处理字符串,例如:char*p=“China”或者char*p;p="China";把字符串赋值给指针p,实质是把保存字符串"China”的那段内存的首地址赋值给指针p,使得指针p指向了字符串,这样就可以通过指针来操作字符串了。【注意】charstr[10];str="China'':是错误的!数组名是地址常量,不能进行赋值操作!提示:“三名主义”,三名均为首地址。数组名:表示第一个元素的地址。函数名:表示该函数的入口地址。字符串常量名:表示第一个字符的地址。指针与函数05FIVE9.5指针与函数考点10指针变量作为函数参数考点11

一维数组名作为函数参数函数的参数传递有“值传递”和“地址传递”两种。利用指针作为参数可以实现“地址传递”。通过地址传递实现形参指针变量与实参指向相同的存储单元,这样改变形参指针变量就可以通过操作改变实参的值。如果调用函数实参是一维数组,形参可以用相同类型的数组或者基类型相同的指针。参数传递属于地址传递,即调用函数对形参的操作将影响实参的数值。9.5指针与函数考点12

二维数组名作为函数参数考点13字符指针作为函数参数二维数组名也是一个地址值,所以当二维数组名作为函数实参时,它所应对的形参应该是行指针变量。可以是一下3种情况:fun(inta[][N],intb[])fun(inta[N][N],intb[])fun(int(*a)[N],intb[])无论用哪种方式,对数组元素的访问均可以用a[i][j]。9.5指针与函数考点14返回指针值的函数考点13字符指针作为函数参数指针型函数是指返回指针值的函数。定义的一般形式为:类型说明符*函数名(形参列表){……}例如:int*ap(intx,inty){}函数指针变量是指向函数的指针变量。定义的一般形式为:类型说明符(*指针变量名)();调用函数的一般形式为:(*指针变量名)(实参表)提示(*指针变量名)中的“()”不能少。计算机等级考试感谢观看计算机等级考试第十章结构体和共用体用typedef声明新类型名01ONE10.1用typedef声明新类型名考点1用typedef声明新类型名功能:为已有数据类型取別名。类型定义形式:typedef类型名

标识符;例如:typedefdoubleD;Dpi=3.14;说明:(1)定义的标识符只是原有数据类型的一个别名,并不是建立一个新的数据类型。(2)用标识符和原数据类型定义的对象具有相同的性质和效果。(3)定义新类型名的目的是方便变量的定义,如结构体类型的形参变量。结构体类型变量的定义和引用02TWO10.2结构体类型变量的定义和引用考点2结构体变量的定义考点3结构体变量各成员的引用有4种方式定义结构体类型的变量、数组和指针。说明:Stu1是一个结构体类型的变量,stu[10]是具有10个元素的结构体数组,p是可以指向结构而类型的指针。可以对结构体变量整体操作,也可以对结构体变量的各成员单独引用,引用结构体成员变量一般有以下三种情況。引用结构体变量的成员的方法:结构体变量名.成员名(如stul.num)。结构体指针变量引用成员的方法。形式1:(*指針変量名).成员名(如(*p)num)。形式2:指针变量名->成员名(如p->num)。结构体变量与函数调用03THREE10.3结构体变量与函数调用考点4结构体变量与函数调用将一个结构体变量的值传递给另一个函数,有3种情况。(1)用结构体变量的成员作为参数。例如,用stu1.num作为实参,将值传递给形参。用法和用普通变量作为实参是一样的,属于“单向值传递”方式。应当注意实参与形参的类型要保持一致。(2)用结构体变量作为实参。对应形参也是同类型结构体变量,也属于“单向值传递方式。(3)用指向结构体变量(或数组)的指针

温馨提示

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

评论

0/150

提交评论