全国计算机二级C语言知识点.docx
- 文档编号:5328305
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:17
- 大小:33.74KB
全国计算机二级C语言知识点.docx
《全国计算机二级C语言知识点.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言知识点.docx(17页珍藏版)》请在冰豆网上搜索。
全国计算机二级C语言知识点
数组下标下限是0。
全国计算机二级C语言
公共基本知识
一、数据构造与算法
1、完全二叉树是属于非线性构造,但其最佳存储方式是顺序存储方式
2、顺序存储构造中也许根节点不唯一,故也许不是线性构造
3、算法有穷性是指,算法中操作环节为有限个,且每个环节都能在有限时间内完毕
4、法复杂度涉及算法时间复杂度和算法空间复杂度。
算法设计必要考虑执行算法所需要资源,即时间与空间复杂度
5、算法优劣取决于算法复杂度,与程序环境无关,当算法被编程实现之后,程序运营受到计算机系统运营环境限制
6、循环队列中,由于指针超过队列地址最大值时会移动到队列最小地址处,因此队头指针可以不不大于也可以不大于队尾指针
7、链式存储构造中每个结点都由数据域与指针域两某些构成,增长了存储空间
8、循环队列是队列一种顺序存储构造,用队尾指针rear指向队列中队尾元素,用排头指针front指向排头元素前一种位置
9、设循环队列为Q(1:
m),其初始状态为front=rear=m。
通过一系列入队与退队运算后,front=X,rear=Y。
现要在该循环队列中寻找最大值元素,最坏状况下需要比较次数为
(1)若X>Y,则次数为m-(Y-X)-1
(2)若X 10、循环队列中元素个数与队头指针和队尾指针变化而变化 11、队列修改是依先进先出原则进行 12、设计算法时不但要考虑对数据对象运算和操作,还要考虑算法控制构造 13、顺序表具备如下两个基本特性: (1)线性表中所有元素所占存储空间是持续; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存储。 (3)在顺序表中,每个元素占有相似存储单元 14、设栈顺序存储空间为S(0: 49),栈底指针bottom=X,栈顶指针top=Y(指向栈顶元素)。 则栈中元素个数为X-Y+1 15、设栈顺序存储空间为S(1: m),初始状态为top=m+1(X)。 现通过一系列入栈与退栈运算后,top=20(Y),则当前栈中元素个数为m+1-20=m-19(X-Y) 16、设栈顺序存储空间为S(1: 50),初始状态为top=0。 现通过一系列入栈与退栈运算后,top=20(X),则当前栈中元素个数为20(X) 二、程序设计基本 1、构造化程序设计思想涉及: 自顶向下、逐渐求精、模块化、限制使用goto语句 2、构造化程序涉及基本控制构造只有三种,即顺序构造、选取构造与循环构造 3、在软件设计中使用工具PAD图,不使用工具数据流图(DFD图) 4、对象有如下某些基本特点: 标记唯一性、分类性、多态性、封装性、模块独立性好 5、多态性是指同一种操作可以是不同对象行为 6、整数类实例涉及: 十进制常量用0~9表达,不能以0开头;八进制常量用0~7表达,必要用0开头;十六进制常量用0~9和A~F(a~f)表达,必要以0x或0X开头。 7、字符实例普通形式是用一对单引号括起来一种字符。 此外ASCII码中尚有某些控制字符,C语言中用转义字符形式来书写这些常,转义字符一反斜杠(\)开始,背面跟1个字符或字符序列 8、继承是面向对象办法一种重要特性,是使用已有类定义作为基本建立新类定义技术。 广义说,继承是指可以直接获得已有性质和特性,而不必重复定义它们,因此说继承是指类之间共享属性和操作机制 三、软件工程基本 1、软件指是计算机系统中与硬件互相依赖另一某些,涉及程序、数据和关于文档 2、软件具备如下特点: (1)软件是一种逻辑实体,具备抽象性; (2)软件没有明显制作过程;(3)软件在有效期间不存在磨损、老化问题;(4)对硬件和环境具备依赖性;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多社会因素,如知识产权等 3、软件生命周期可以分为软件定义、软件开发与软件运营维护三个阶段。 重要活动阶段是: 可行性研究与筹划阶段,需求分析,软件设计,软件实现,软件测试,运营和维护(同9) 4、计算机软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。 系统软件是管理计算机资源,提高计算机使用效率,为顾客提供各种服务软件,如操作系统、数据库管理系统、编译程序、汇编程序和网络软件等 5、数据定义语言: 负责数据模式定义与数据物理存取构建;数据操纵语言: 负责数据操纵,涉及查询及增、删、改等操作;数据控制语言: 负责数据完整性、安全性定义与检查以及并发控制、故障恢复等功能。 6、软件工程包括3个要素: 办法、工具和过程 7、软件产品从考虑其概念开始,到该软件产品不能使用为止整个时期都属于软件生命周期 8、数据库系统三级模式是概念模式、外模式和内模式。 概念模式是数据库系统中全局数据逻辑构造描述,是全体顾客公共数据视图。 外模式也称子模式或顾客模式,它是顾客数据视图,给出了每个顾客局部数据描述。 内模式又称物理模式,它给出了数据库物理存储构造与物理存取办法 9、软件生命周期分为3个时期共8个阶段: 软件定义期,涉及问题定义、可行性研究、需求分析;软件开发期,涉及概要设计、详细设计、实现、测试;运营维护期,即运营维护阶段。 可行性研究属于软件定义期任务(同3) 10、可行性分析阶段: 可行性分析报告。 需求分析阶段: 软件规格阐明书,初步顾客手册。 软件设计阶段: 概要设计阐明书,详细设计阐明书,测试筹划草稿。 软件实践阶段: 顾客手册,操作手册等面向顾客文档和单元测试筹划。 软件测试阶段: 测试分析报告。 11、概要设计阐明书是总体设计阶段产生文档。 集成测试筹划是在概要设计阶段编写文档。 需求规格阐明书是后续工作如设计、编码等需要重要参照文档 12、需求分析阶段工作可以分为4个方面: 需求获取、需求分析、编写需求规格阐明书和需求评审,涉及拟定软件系统功能 13、 (1)在测试之前制定测试筹划,并严格执行,测试用例选取不可随意,应选取有代表性,尽量发现迄今为止尚未发现错误。 (2)测试主线目是尽量多地发现并排除软件中隐藏错误(3)软件测试是保证软件质量、可靠性核心环节。 14、在需求分析阶段可以使用工具备数据流图DFD图,数据字典DD,鉴定树与鉴定表 15、数据流图中带箭头线段表达是数据流 16、数据字典(DD)所定义对象都包括于数据流图(DFD图) 17、软件需求规格阐明书有如下几种方面作用。 ①便于顾客、开发人员进行理解和交流;②反映出顾客问题构造,可以作为软件开发工作基本和根据;③作为确认测试和验收根据 18、软件设计中模块划分应遵循准则是高内聚低偶合、模块大小规模恰当、模块依赖关系恰当 19、从技术观点上看,软件设计涉及软件构造设计、数据设计、接口设计、过程设计。 20、减少耦合性提高内聚性有助于提高模块独立性(高内聚低耦合) 21、扇入指是调用一种给定模块模块个数 22、扇出指是由一种模块直接调用其她模块数 23、构造化程序三种基本控制构造: 顺序、选取和循环(重复) 24、在数据流图中,用标有名字箭头表达数据流。 在程序流程图中,用标有名字箭头表达控制流。 25、软件测试目是为了发现错误而执行程序过程。 程序调试基本环节有: 错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新错误。 程序调试普通称为Debug,即排错。 软件测试基本准则有: 所有测试都应追溯到需求、严格执行测试筹划,排除测试随意性、充分注意测试中群集现象、程序员应避免检查自己程序、穷举测试不也许、妥善保存测试筹划等文献。 26、白盒测试又称为构造测试或逻辑驱动测试,对程序所有逻辑途径进行测试 27、黑盒测试只是依照程序功能阐明来设计测试用例。 在使用黑盒测试法时,手头只需要有程序功能阐明就可以了。 黑盒测试法: 等价类划分法、边界值分析法和错误推测法 四、数据库设计基本 1、数据库管理系统是数据库机构,是一种在操作系统之上系统软件。 2、数据管理技术发展经历了3个阶段: 人工管理阶段、文献系统阶段和数据库系统阶段。 特点 人工管理阶段 文献系统阶段 数据库系统阶段 管理者 人 文献系统 数据库管理系统 面向对象 某个应用程序 某个应用程序 现实世界 共享限度 无共享,冗余度大 共享性差,冗余度大 共享性大,冗余度小 独立性 不独立,完全依赖于程序 独立性差 具备高度物理独立性和一定逻辑独立性 构造化 无构造 记录内有构造,整体无构造 整体构造化,用数据模型描述 控制能力 由应用程序控制 由应用程序控制 由DBMS提供数据安全性、完整性、并发控制和恢复 3、数据库应用系统中核心问题是数据库设计。 4、数据库中反映顾客对数据规定模式为外模式 5、数据模型普通由数据构造、数据操作及数据约束3某些构成 6、数据模型按照不同应用层次分为3种类型: 概念数据模型、逻辑数据模型、物理数据模型 7、数据模型成熟并大量使用数据模型有层次模型、网状模型、关系模型和面向对象模型等 8、关系模型实体间联系采用二维表来表达,简称表: 网状构造为网状模型实体间联系;树状构造为层次模型实体间联系;属性刻画了实体。 9、在E-R图中实体集用矩形,属性用椭圆,联系用菱形 10、二维表中一行称为元组。 候选键(码)是二维表中能唯一标记元组最小属性集。 若一种二维表有各种候选码,则选定其中一种作为主键(码)供顾客使用。 表M中某属性集是表N候选键或者主键,则称该属性集为表M外键(码)。 11、1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选取和重复(循环)三种基本控制构造就足以表达出各种其她形式构造程序设计办法 12、关系模型中可以有3类完整性约束: 实体完整性约束、参照完整性约束和顾客定义完整性约束。 实体完整性约束是指,若属性M是关系主键,则属性M中属性值不能为空值。 参照完整性约束是指,若属性(或属性组)A是关系M外键,它与关系M主码相相应,则对于关系M中每个元组在A上值必要为: 要么取空值;要么等于关系M中某个元组主码值。 13、用于查询3个操作无法用老式集合运算表达,引入运算为投影运算、选取运算、笛卡尔积。 惯用扩充运算有交、除、连接及自然连接等。 并: RS是将S中记录追加到R背面。 交: RS成果是既属于R又属于S记录构成集合。 上述两种操作中,关系R与S规定有相似构造,故A、D选项错误。 自然连接: 去掉重复属性等值连接。 自然连接规定两个关系中进行,比较是相似属性,并且进行等值连接。 除运算可以近似地看作笛卡尔积逆运算。 当S×T=R时,则必有R÷S=T,T称为R除以S商。 设关系R有属性M1,M2,…,Mn,关系S有属性Mn-s+1,Mn-s+2,…,Mn,此时有: R÷S=πM1,M2,…,Mn-s(R)-πM1,M2,…,Mn-s((πM1,M2,…,Mn-s(R)×S))。 由S中有属性A和A1,T中属性为B和B1,在R元组中找到相应于S中两个元组T中元组为f3与n2。 R中最后一种元组与S中无相应关系,因此在T中也不会浮现。 投影,从关系模式中指定若干个属性构成新关系。 二级C语言 一、C语言概述 1、构造化程序设计把一种复杂问题求解过程分阶段进行,需要保证自顶向下、逐渐细化、模块化设计、构造化编码 2、函数体必要由{开始。 一种源程序文献可以涉及预解决命令、全局声明、函数定义,程序总是从main函数开始执行 3、算法不一定要包括所有三种基本构造,也可以只包括一种或两种 4、算法复杂程序不是由操作环节多少决定,而是准时间复杂度与空间复杂度来衡量 5、C编译程序把文献后缀为.c源程序文献编译成文献后缀为.obj二进制文献,链接将一种或各种目的文献与程序用到库文献连接起来,形成一种可以在操作系统直接运营执行程序.exe 6、一种算法应当具备如下五个重要特性: 有穷性,拟定性,输入,输出以及可行性 7、只有同步包括三种基本构造时,程序才是构造化程序。 一种构造化程序可以包括顺序、分支、循环构造中一种或各种 8、stdio.h文献中包括原则输入输出函数函数阐明,预解决指令#include 9、计算机能直接执行程序是二进制可执行程序,扩展名为.exe 10、算法特性: ①有穷性。一种算法(对任何合法输入)在执行有穷步后可以结束,并且在有限时间内完毕。②拟定性。算法中每一步均有确切含义。③可行性。算法中操作可以用已经实现基本运算执行有限次来实现。④输入: 一种算法有零个或者各种输入,零个输入就是算法自身拟定了初始条件。⑤输出: 一种算法有一种或者各种输出,以反映出数据加工成果 11、算法描述有伪代码、流程图、N-S构造图等。E-R是实体联系模型 12、C语言中非执行语句不会被编译,不会生成二进制机器指令。 C程序通过编译、连接环节之后才干形成一种真正可执行二进制机器指令文献。 用C语言编写程序称为,它以ASCII代码形式存储在一种文本文献中。 C语言源程序经编译后生成后缀为.obj目的程序。 13、C语言数值常量中不能夹带空格。 在C语言中运算符两侧运算数据类型可以不一致,且成果与精度较高保持一致, 14、C语言程序是由函数构成。 可以单独进行编译。 每个C程序中必要包括一种main函数,但不一定是每个C程序文献中必要有,顾客单独编写某个函数也可以存储为一种C程序文献 15、一种普通C函数可以单独作为一种C程序文献存在被包括到其她程序中 16、在复合语句中,不但可以有执行语句,还可以有定义语句,定义语句应当出当前执行语句前面 17、C语言中某些语句可以不用分号,例如if语句 18、核心字不可用做顾客标记符 19、C语言标记符分为3类: 核心字、预定义标记符和顾客标记符。常量不属于标记符 20、一条C语句相应转换成一条机器指令 二、运算符与表达式 1、sizeof是C语言中一种操作符(operator)。 其作用就是返回一种对象或者类型所占内存字节数 2、条件表达式: x=表达式1? 表达式2: 表达式3含义是: 先求解表达式1,若为非0(真),则求解表达式2,将表达式2值赋给x。 若表达式1值为0(假),则求解表达式3,将表达式3值赋给x 3、C语言中没有<>运算符a%=b表达a=a%(b)c语言中"^"意思是按位异或 4、c语言中"^"意思是按位异或,运算符号按位或"|",把两个数化为二进制,异为1,同为0, 如10二进制为00001010 3二进制为0000001110^3=9 9二进制为00001001 "&"按位与运算,同为1,异为0 5、在VC6.0平台中,整型int占有4个字节,double型数据占有8个字节。 6、算术运算符+优先级高于-= 7、十进制---->>二进制: 十进制除以2,记录余数直到除尽到0,其二进制为这些余数倒着排列。 10/2=5余0,5/2=2余1,2/2=1余0,1/2=0余1,则10二进制为1010,由于二进制有8个字节,则10二进制为00001010。 8、二进制---->>十进制: 例: 000010011*2^(4-1)+0*2^(3-1)+0*2^(2-1)+1*2^(1-1)=9 000011111*2^(4-1)+1*2^(3-1)+1*2^(2-1)+1*2^(1-1)=15 9、exp1&&exp2,规则为: 对exp1求值,若为0,则表达式为0,且不计算exp2;若exp1非0,则求exp2值,作为表达式值 10、">>"右移运算符,按位右移运算规则是将一种操作数先转换成二进制数,然后将二进制数各位右移若干位,移出低位舍弃;并在高位补位,若为无符号数,右移时左边高位移入0。 例: a=8=01000,执行a>>2后,a=00010=2 11、在C语言中,乘除法优先级要高于加减法,另一方面,除法运算符"/"两边参加运算对象都是整数,运算成果要取整 12、逗号表达式值为其中最后一种表达式值 13、i++,先使用后自增自增和自减运算符两种用法: 前置运算,运算符放在变量之前,规则是先使变量值增(或减)1,然后以变化后表达式值参加其她运算: 后置运算,运算符放在变量之后,规则是变量先参加其她运算,然后再使变量值增(或减)1例: sum=pad=5;pAd=sum++,pAd++,++pAd; 得: 当(*str)='\0'时,结束循环,返回字符'\0'ASCII码0sum=5,pad=5;pAd=5,sum=6,pAd=6,pAd=7 14、计算5/2,成果取整数值2。"%"运算符两个操作值必要为整型数据 15、在C语言中,逻辑真值相应非0。 ,分支构造流程走向是依照表达式值,并不但仅是算数表达式值 16、rand()产生随机整数 三、基本语句 1、复合语句可以包括多条语句,在其中可以定义局部变量 2、花括号对{}不但用来表达函数开头和结尾,也可以用于表达复合语句 3、C语言中语句必要以分号";"结束,因此空语句表达为";",不是空行 4、定义语句应当出当前执行语句前面,在printf和scanf函数中都可以指定数据宽度,scanf()格式控制串可以使用其她非空白字符,如逗号,但在输入时必要输入这些字符,以保证匹配,。复合语句可以由任意多条语句构成,可以使一条也可以没有 5、当(*str)='\0'时,结束循环,返回字符'\0'ASCII码0 6、while循环语句普通形式为: while(表达式){循环体},执行过程为,一方面判断表达式,成立(非0)则执行循环体,不成立(0)则退出循环 7、gets函数,getchar是用于从终端读入字符。 fputs函数用于把字符串输出到文献。 fwrite函数用于以二进制形式输出数据到文献 8、scanf()语句中用"空格"间隔不同字符串。 getchar()函数从终端读入一种字符作为函数值,把读入字符赋给变量ch。 在输入时,空格、回车符都将作为字符读入,并且只有在顾客敲入回车键时,读入才开始执行。 gets()函数调用形式为: gets(str_adr),其中str_adr是存储输入字符串起始地址,可以是字符数组名、字符数组元素地址或字符指针变量。 gets函数用来从终端键盘读入字符串(涉及空格符),直到读入一种换行符为止。 getc()函数调用形式为: ch=getc(pf)其中pf是文献指针,函数功能是从pf指定文献中读入一种字符,并把它作为函数值返回 9、scanf函数中格式控制字符串是为了输入数据用,无论其中有什么字符,也不会输出到屏幕上。 scanf()格式控制串可以使用其她非空白字符,如逗号,但在输入时必要输入这些字符,以保证匹配就可以。 。Printf函数可以输出常量也可以输出变量,Prinf函数可以用"\%"来输出百分号% 10、数组第一种数为0。 由printf输出数据都隐含右对齐。 Printf输出数据所占宽度由系统决定 11、条件运算符构成条件表达式普通形式为: 表达式1? 表达式2: 表达式3 其求值规则为: 如果表达式1值为真,则以表达式2值作为条件表达式值,否则以表达式2值作为整个条件表达式值 四、选取构造 1、在C语言中,逻辑真值相应非0。 2、逻辑"非"(即运算符! )运算级别是最高;算术运算符优先级较高,关系和逻辑运算符优先级较低。 3、for语句普通形式为: for(表达式1;表达式2;表达式3)语句 其循环中"表达式1(循环变量赋初值)"、"表达式2(循环条件)"和"表达式3(循环变量增量)"都是选取项,即可以缺省,但";"不能缺省。 该题目中省略了"表达式1(循环变量赋初值)"和"表达式3(循环变量增量)"。 4、&&只有运算对象均非零成果才为真。 逻辑与只有在"&&"符号两边操作均为真时,逻辑与为真。 ||只要有一种对象非零成果就是真。 逻辑或当且只当"||"符号两边操作至少有一种为真时,逻辑或成果为真 5、a! =b表达a不等于b时,运算成果为1,或者为0 6、逻辑与运算符遵循"短路求值"方略,即只有在仅靠左操作数值无法拟定该逻辑表达式成果时,才会求解右操作数 例: 若有定义: inta=0,b=0,c=0,d=0;,有C语言表达式(a++&&b++)? c++: d++,如下关于其执行顺序论述对的是 先执行a++,表达式a++值为0,由此即可拟定(a++&&b++)值为0,因而执行d++ 7、if语句中表达式为1直接执行。 为0执行else 五、循环构造 1、条件表达式执行次数总是比循环体执行次数多一次 2、设有如下代码 do{ while(条件表达式1) 循环体A; }while(条件表达式2); while(条件表达式1) { do{ }while(条件表达式2); } 假设表达式1与表达式2成立次数为n1与n2。 若n1>n2,则循环体A执行次数为n2+1,B执行次数n2+1;若n1 3、while循环语句普通形式为: while(表达式){循环体},执行过程为: 一方面判断表达式,成立(非0)则执行循环体,不成立(0)则退出循环。 do…while循环语句普通形式为: do{循环体}while(表达式),执行过程为: 一方面执行循环体,之后判断表达式,成立(非0)则再一次执行循环体,不成立(0)则退出循环。 4、在条件相似状况下,do…while循环比while…do多执行一次函数体两种循环都是在表达式为0时结束循环。 do-while循环由表达式真假判断与否退出循环,也可以用break语句退出循环 5、,while语句语义是: 计算表达式值,当值为真(非0)时,执行循环体语句.intk=0; while(k=1)k++;while(k=1)=while (1),是死循环,执行无限次。 6、只要恰本地修改代码,就可以将do-while与while互相转换。 for语句使用最为灵活,它完全可以取代while语句; 7、s[k]-'0'为是s[]数组k所相应字符串长度。 8、在C语言中档于号用"=="表达,一种"="表达赋值 六、数组 1、*与&放在一起作用抵消,*(pt+i)表达引用指针pt所指元素后第i个元素 2、#include main() {intc[6]={10,20,30,40,50,60},*p,*s; p=c;s=&c[5]; printf("%d\n",s-p); } 语句p=c;指将c[0]元素地址赋给指针变量p;语句s=&c[5];指将c[5]元素地址赋给指针变量s 3、#include main() {inta[5]={2,4,6,8,10},*p,**k; p=a;k=&p; printf("%d",*(p++)); printf("%d\n",**k); } 一方面通过p=a使p指向数组第1个元素,因此输出2;在输出2后来,由于p++,即p就指向数组第2个元素,**k就是取出p所指向元素值,而p指向是数组第2个元素,即输出4 4、通过一条语句可以定义各种数组;数组阐明符一对方括号中可以是整型常量,可以是整型常量表达式;在引用数组元素时,下标表达式必要是整型。 数组下标下限是0。 5、chara[2]={"A","B"};不合法,应为chara[2]={'A','B'};;用字符串方式赋值比用字符逐个赋值要多占1个字节 6、数组下标下限是0。 7、数组名背面括号值必要是整形常量,不可以是变量 8、static内部静态变量是始终存在,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,此前调用时数值依然保存着 9、voidfun(int*a,intn)/*fun函数功能是将a所指数组元素从大到小排序*/ fun(c+4,6);即指排序从第5个元素开始进行从大到小排序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 语言 知识点