计算机二级考试线性链表_数组
计算机二级c语言数据结构部分
数据结构:考点1:栈和队列的特点典型题例:(1)栈和队列的共同特点是(栈和队列的特点)A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除.二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种"后进先出"的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种"先进先出"的线性表.所以没有共同点(2)下列关于栈叙述正确的是(栈)(11.3)A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(3)下列叙述中正确的是(栈)(10.9)A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)上述三种说法都不对(4)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是(栈进出顺序)A)e3,e1,e4,e2 B)e2,e4,e3,e1C)e3,e4,e1,e2 D)任意顺序解析:由栈"后进先出"的特点可知:A)中e1不可能比e2先出,C)中e3不可能比e4先出,且e1不可能比e2先出,D)中栈是先进后出的,所以不可能是任意顺序.B)中出栈过程如图所示: (5)一个栈的初始状态为空。
首先将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】(栈)(10.9)(6) (1)一个队列的初始状态为空,先将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为。
(队列)(10.3)(7)设某循环列队的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有_____个元素。
全国计算机等级考试《二级Java》试题题库
全国计算机等级考试《二级Java》试题题库1. 信息隐蔽的概念与下述哪一种概念直接相关()。
A. 软件结构定义B. 模块独立性C. 模块类型划分D. 模块耦合度【答案】B2. 下列各选项中,不属于序言性注释的是()。
A. 程序标题B. 程序设计者C. 主要算法D. 数据状态【答案】D 本资料来源公_众.号:文得课堂,更多计算机等级考试题库及视频,上公_众.号:文得课堂查找。
3. 对建立良好的程序设计风格,下面描述正确的是()。
A. 程序应简单、清晰、可读性好B. 符号名的命名只要符合语法C. 充分考虑程序的执行效率D. 程序的注释可有可无【答案】A4. 下列叙述中,不符合良好程序设计风格要求的是()。
A. 程序的效率第一,清晰第二B. 程序的可读性好C. 程序中要有必要的注释D. 输入数据前要有提示信息【答案】A5. 结构化程序所要求的基本结构不包括()。
A. 顺序结构B. GOTO跳转C. 选择(分支)结构D. 重复(循环)结构【答案】B6. 软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。
下面属于应用软件的是()。
A. 编译程序B. 操作系统C. 教务管理系统D. 汇编程序【答案】C7. 下面属于系统软件的是()。
A. 财务管理系统B. 编译软件C. 编辑软件WordD. 杀毒软件【答案】B8. 下面属于应用软件的是()。
A. 学生成绩管理系统B. UNIX操作系统C. 汇编程序D. 编译程序【答案】A9. 软件是指()。
A. 程序B. 程序和文档C. 算法加数据结构D. 程序、数据与相关文档的完整集合【答案】D10. 计算机软件包括()。
A. 算法和数据B. 程序和数据C. 程序和文档D. 程序、数据及相关文档【答案】D11. 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是()。
A. 三种基本结构不可以嵌套使用B. 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移C. 选择结构是根据不同的条件执行不同分支中的语句D. 循环结构是根据条件决定是否重复、重复执行多少次循环体语句【答案】A12. 下列选项中属于面向对象设计方法主要特征的是()。
全国计算机等级考试二级C语言真题库之选择题(15)
全国计算机等级考试等级考试真题库之选择题(15)1.下列链表中,其逻辑结构属于非线性结构的是A) 二叉链表B) 循环链表C) 双向链表D) 带链的栈参考答案:A【解析】在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。
带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。
在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个结点中含有两个指针),也是线性链表。
循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。
二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构。
答案为A选项。
2.设循环队列的存储空间为Q(1: 35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 15B) 16C) 20D) 0或35参考答案:D【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。
在循环队列中进行出队、入队操作时,头尾指针仍要加1,朝前移动。
只不过当头尾指针指向向量上界时,其加1操作的结果是指向向量的下界0。
由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。
答案为D选项。
3.下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进后出的原则D) 以上说法均错误参考答案:C【解析】栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
栈的修改是按后进先出的原则进行的。
因此,栈称为先进后出表,或"后进先出"表,所以选择C。
4.在关系数据库中,用来表示实体间联系的是A) 属性B) 二维表C) 网状结构D) 树状结构参考答案:B【解析】关系模型实体间的联系采用二维表来表示,简称表。
计算机二级数据结构与算法题库
数据结构与算法■■算法1.算法的复杂度主要包括时间复杂度和空间复杂度,算法的时间复杂度与空间复杂度没有直接尖系。
2.算法的时间复杂度是指执行算法所需要的汁算工作量。
3.循环队列是队列的顺序存储结构4.循环队列中的元素个数随队头指针与队尾指针变化而动态变化。
5.线性表链式存储结构的存储空间可以是连续的,也可以是不连续的。
6・有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构。
7.在线性单链表中,可以从任何一个结点开始直接遍历到所有结点。
8.循环队列是队列的顺序存储结构。
9.在排序方法中,最坏情况下时间复杂度最小的是堆排序。
10.为了对有序进行对分查找,则要求有序表只能顺序存储。
X・带链的栈与队列是线性结构。
12.算法的时间复杂度的度量方法是,执行算法所需要的基本运算次数:时间复杂度与所运用的计算工具无矢。
13.在最坏情况下,希尔排序的时间复杂度比直接排序的时间复杂度要小。
14.算法的空间复杂度的度疑方法是,执行算法所需要的存储空间:与算法所处理的数据存储空间有尖。
15.有的非线性结构也可以采用顺序存储结构。
16.算法的时间复杂度与算法所处理数据的存储结构有直接矢系:算法的空间复杂度与算法所处理数据的存储结构有直接矢系。
17.具有两个根结点的数据结构一定是非线性结构。
18.带链队列的存储空间可以不连续,但队头指针可以大于也可以小于队尾指针。
19•在链表中,如果有两个结点的同一指针域的值相等,泽该链表一泄是非线性结构。
20•在带链栈中,队头指针和队尾指针都是在动态变化中;栈顶指针是在动态变化的,栈底指针是不变的。
21•链表结点中具有两个指针域的数据结构可以是线性结构的,也可以是非线性的。
22.程序可以作为算法的一种描述方法。
23.没有根结点或没有叶子结点的数据结构一泄是非线性结构。
24.算法强调动态的执行过程,不同于静态的il •算公式:算法必须能衽有限个步骤之后终止:算法的优劣取决于算法复杂度,与程序的环境无尖:算法设计必须考虑算法的复杂度。
全国计算机等级考试二级C语言真题库之选择题(15)
全国计算机等级考试等级考试真题库之选择题〔15〕1.以下链表中,其逻辑构造属于非线性构造的是A) 二叉链表B) 循环链表C) 双向链表D) 带链的栈参考答案:A【解析】在定义的链表中,假设只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。
带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。
在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表〔一个结点中含有两个指针〕,也是线性链表。
循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。
二叉链表是二叉树的物理实现,是一种存储构造,不属于线性构造。
答案为A选项。
Q(1: 35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,那么循环队列中的元素个数为A) 15B) 16C) 20D) 0或35参考答案:D【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。
在循环队列中进展出队、入队操作时,头尾指针仍要加1,朝前移动。
只不过当头尾指针指向向量上界时,其加1操作的结果是指向向量的下界0。
由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。
答案为D选项。
3.以下关于栈的表达中,正确的选项是A) 栈底元素一定是最后入栈的元素B) 栈顶元素一定是最先入栈的元素C) 栈操作遵循先进后出的原那么D) 以上说法均错误参考答案:C【解析】栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
栈的修改是按后进先出的原那么进展的。
因此,栈称为先进后出表,或"后进先出"表,所以选择C。
4.在关系数据库中,用来表示实体间联系的是A) 属性B) 二维表C) 网状构造D) 树状构造参考答案:B【解析】关系模型实体间的联系采用二维表来表示,简称表。
全国计算机等级考试二级Python真题及解析(1)
全国计算机等级考试二级Python真题及解析(1)一、选择题1. 关于数据的存储结构,以下选项描述正确的是A数据所占的存储空间量B数据在计算机中的顺序存储方式C数据的逻辑结构在计算机中的表示D存储在外存中的数据正确答案: C2. 关于线性链表的描述,以下选项中正确的是A存储空间不一定连续,且前件元素一定存储在后件元素的前面B存储空间必须连续,且前件元素一定存储在后件元素的前面C存储空间必须连续,且各元素的存储顺序是任意的D存储空间不一定连续,且各元素的存储顺序是任意的正确答案: D3. 在深度为 7 的满二叉树中,叶子结点的总个数是A31B64C63D32正确答案: B4. 关于结构化程序设计所要求的基本结构,以下选项中描述错误的是A重复(循环)结构B选择(分支)结构Cgoto 跳转D顺序结构正确答案: C5. 关于面向对象的继承,以下选项中描述正确的是A继承是指一组对象所具有的相似性质B继承是指类之间共享属性和操作的机制C继承是指各对象之间的共同性质D继承是指一个对象具有另一个对象的性质正确答案: B6. 关于软件危机,以下选项中描述错误的是A软件成本不断提高B软件质量难以控制C软件过程不规范D软件开发生产率低正确答案: C7. 关于软件测试,以下选项中描述正确的是A软件测试的主要目的是确定程序中错误的位置B为了提高软件测试的效率,最好由程序编制者自己来完成软件的测试工作C软件测试是证明软件没有错误D软件测试的主要目的是发现程序中的错误正确答案: D8. 以下选项中用树形结构表示实体之间联系的模型是A网状模型B层次模型C静态模型D关系模型正确答案: B9. 设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程(课号,课程名),选课SC(学号,课号,成绩),表SC的关键字(键或码)是A学号,成绩B学号,课号C学号,姓名,成绩D课号,成绩正确答案: B10.设有如下关系表:以下选项中正确地描述了关系表 R、S、T 之间关系的是AT=R∪SBT=R×SCT=R–SDT=R∩S正确答案: C11. 关于 Python 程序格式框架的描述,以下选项中错误的是A Python 语言的缩进可以采用 Tab 键实现B Python 单层缩进代码属于之前最邻近的一行非缩进代码,多层缩进代码根据缩进关系决定所属范围C判断、循环、函数等语法形式能够通过缩进包含一批 Python 代码,进而表达对应的语义D Python 语言不采用严格的“缩进”来表明程序的格式框架正确答案: D12. 以下选项中不符合 Python 语言变量命名规则的是A IB 3_1C _AID empStr正确答案: B13. 以下关于 Python 字符串的描述中,错误的是A字符串是字符的序列,可以按照单个字符或者字符片段进行索引B字符串包括两种序号体系:正向递增和反向递减C Python 字符串提供区间访问方式,采用 [N:M] 格式,表示字符串中从 N 到 M 的索引子字符串(包含 N 和 M)D 字符串是用一对双引号" "或者单引号' '括起来的零个或者多个字符正确答案: C14. 关于 Python 语言的注释,以下选项中描述错误的是A Python 语言的单行注释以#开头B Python 语言的单行注释以单引号 ' 开头C Python 语言的多行注释以 ' ' '(三个单引号)开头和结尾D Python 语言有两种注释方式:单行注释和多行注释正确答案: B15. 关于 import 引用,以下选项中描述错误的是A 使用 import turtle 引入turtle 库B 可以使用 from turtle import setup 引入 turtle 库C 使用 import turtle as t 引入 turtle 库,取别名为 tD import 保留字用于导入模块或者模块中的对象正确答案: B16.下面代码的输出结果是x = 12.34print(type(x))A <class 'int'>B<class 'float'>C<class 'bool'>D<class 'complex'>正确答案: B17. 关于 Python 的复数类型,以下选项中描述错误的是A复数的虚数部分通过后缀“J”或者“j”来表示B对于复数 z,可以用 z.real 获得它的实数部分C对于复数 z,可以用 z.imag 获得它的实数部分D复数类型表示数学中的复数正确答案: C18. 关于 Python 字符串,以下选项中描述错误的是A可以使用 datatype() 测试字符串的类型B输出带有引号的字符串,可以使用转义字符\C字符串是一个字符序列,字符串中的编号叫“索引”D字符串可以保存在变量中,也可以单独存在正确答案: A19. 关于 Python 的分支结构,以下选项中描述错误的是A分支结构使用 if 保留字B Python 中 if-else 语句用来形成二分支结构C Python 中 if-elif-else 语句描述多分支结构D 分支结构可以向已经执行过的语句部分跳转正确答案: D20. 关于程序的异常处理,以下选项中描述错误的是A程序异常发生经过妥善处理可以继续执行B异常语句可以与 else 和 finally 保留字配合使用C编程语言中的异常和错误是完全相同的概念D Python 通过 try、except 等保留字提供异常处理功能正确答案: C21. 关于函数,以下选项中描述错误的是A函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。
计算机二级考试基础知识内容
第1章数据结构与算法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
即算法的工作量=f(n)2.算法的空间复杂度算法的空间复杂度是指执行这个算法所需要的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。
如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。
全国计算机等级考试二级C语言真题库之选择题(07)
全国计算机等级考试等级考试真题库之选择题(07)1.下列叙述中正确的是()。
A) 循环队列是队列的一种链式存储结构B) 循环队列是队列的一种顺序存储结构C) 循环队列是非线性结构D) 循环队列是一种逻辑结构参考答案:B【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
2.下列关于线性链表的叙述中,正确的是()。
A) 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B) 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C) 进行插入与删除时,不需要移动表中的元素D) 以上说法均不正确参考答案:C【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。
线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。
3.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()A) 16B) 10C) 6D) 4参考答案:A【解析】根据二叉树的性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-1=4个,所以度为1的结点的个数是25-5-4=16个。
4.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
A) 外模式B) 模式C) 概念模式D) 逻辑模式参考答案:B【解析】数据库系统的三级模式是概念模式、外模式和模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。
模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,所以选择B)。
5.在满足实体完整性约束的条件下()。
A) 一个关系中应该有一个或多个候选关键字B) 一个关系中只能有一个候选关键字C) 一个关系中必须有多关键字个候选D) 一个关系中可以没有候选关键字参考答案:A【解析】实体完整性约束要求关系的主键中属性值不能为空值,所以选择A)。
计算机二级考试选择题必背知识点(公共基础+计算机基础)
计算机二级考试选择题必背知识点公共基础第一章数据结构与算法§1.1 算法1.算法的定义:是指解题方案的准确而完整的描述。
(算法不等于程序,程序的设计不可能优于算法的设计)2.算法的基本特征:可行性、确定性、有穷性、足够的情报。
3.算法的基本要素:4.算法的时间和空间复杂度:算法的时间复杂度和算法的空间复杂度相互独立。
§1.2 数据结构的基本概念1.数据:需要处理的数据元素的集合,一般来说,这些数据元素,具有某个共同的特征。
(1)数据元素是数据的基本单位,即数据集合中的个体。
(2)有时一个数据元素可有若干数据项组成。
数据项是数据的最小单位。
2.结构:是集合中各个数据元素之间存在的某种关系(或联系)。
3.数据结构:是指相互有关联的数据元素的集合。
4.数据结构的分类:(1)逻辑结构:线性结构(线性表、栈、队列);非线性结构(树、图)。
(2)存储结构:顺序存储;链式存储。
(3)运算:插入、删除、查找、排序。
5.逻辑结构:反应数据元素间的逻辑关系(即前后件关系)的数据结构。
(1)线性结构(线性表):(举例:春→夏→秋→冬)a.有且只有一个根节点,它无前件;b.每一个节点最多有一个前件,也最多有一个后件。
(2)非线性结构:a.不满足以上两个条件的数据结构就称为非线性结构;b.非线性结构主要是指树形结构和网状结构。
6.存储结构:又称为数据的物理结构,是数据的逻辑结构在计算机存储空间中的存放方式(1)顺序存储结构:主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里。
(2)链式存储结构:每一个结点至少包含一个指针域,用指针的指向来体现数据元素之间在逻辑上的联系。
§1.3 线性表及其顺序存储结构1.线性表:线性表是n(n≥0)个数据元素构成的有限序列,表中除第一个元素外的每一个元素,有且只有一个前件,除最后一个元素外,有且只有一个后件。
举例:英文字母表、地理学中的四向、表格2.线性表的顺序存储结构:通常线性表可以采用顺序存储和链式存储,但一般使用顺序存储结构。
全国计算机二级考试历年真题(整理)
05年试卷一、选择题((1)~(35)每小题2分,共70分下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)数据的存储结构是指()。
A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示(2)下列关于栈的描述中错误的是()。
A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。
A.冒泡排序为n/2 B.冒泡排序为n C.快速排序为n D.快速排序为n(n-1)/2 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。
A.log2n B.n/2 C.n D.n+1(5)下列对于线性链表的描述中正确的是()。
A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的(6)下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则(7)为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(8)下列描述中正确的是()。
A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合(9)数据独立性是数据库技术的重要特点之一。
第1章 数据结构与算法
即有向线段从前件结点指向后件结点,如下页
所示前件后件方框表示 数据结点春
夏
秋
有向线段表示 前后件关系
冬
根结点
叶子结点 终端结点
父亲
儿子
女儿
1.2.3 线性结构和非线性结构
非空线性结构的特点: 有且只有一个根结点;春 夏 秋 冬
每个结点最多有一个直接前驱和一个直接后件。
注意:在线性结构中插入或删除元素,仍然应该 满足线性结构的上述特点。
找到插入位臵后,将插入位臵开始的所有元素从最 后一个元素开始顺序后移。另外,在定义线性表时, 一定要定义足够的空间,否则,将不允许插入元素。
1.3.4 线性表的删除运算
找到要删除的数据元素后,从该元素位臵开始,将 后面的元素一一向前移动,在移动完成后,线性表 的长度减1。
线性表顺序存储结构即为静态存储形式,其
存在的问题:
在做插入或删除元素的操作时,会产生大量的数
据元素移动;
1.4 栈和队列
1.4.1 栈及其基本运算
栈是一种特殊的线性表,其插入与删除操作 都只能在线性表的一端进行 允许插入与删除的一端称为栈顶, 另一端称为栈底,栈底不允许插入与删除。
插入与删除端
栈底 Bottom
栈顶 Top
(2)算法的控制结构
顺序结构 选择结构 循环结构
1.1.2 算法复杂度
算法复杂度主要包括:
时间复杂度是指执行算法所需要的计算工作量。
空间复杂度是指执行这个算法所需要的内存空间。
1.2.1 什么是数据结构
数据结构是指相互有关联的数据元素的集合。 即数据的组织形式。
逻辑结构 存储结构
逻辑结构
其中逻辑结构是指反映数据元素之间逻辑关系的数据
计算机二级试题(公共基础知识部分)
一, 选择题(1) 下面叙述正确的是(C)A.算法的执行效率及数据的存储结构无.B.算法的空间困难度是指算法程序中指令(或语句)的条.C.算法的有穷性是指算法必需能在执行有限个步骤之后终.D.以上三种描述都不对(2) 以下数据结构中不属于线性数据结构的是(C)A.队.B.线性.C.二叉.D.栈(3) 在一棵二叉树上第5层的结点数最多是(B) 注: 由公式2k-1得A..B.1.C.3.D.15(4) 下面描述中, 符合结构化程序设计风格的是(A)A.运用依次. 选择和重复(循环)三种基本限制结构表示程序的限制逻.B.模块只有一个入口,可以有多个出.C.注意提高程序的执行效.D.不运用goto语句(5) 下面概念中, 不属于面对对象方法的是 (D) 注: P55-58A.对.B.继.C..D.过程调用(6) 在结构化方法中, 用数据流程图(DFD)作为描述工具的软件开发阶段是(B)-A.可行性分.B.需求分.C.具体设.D.程序编.(7) 在软件开发中, 下面任务不属于设计阶段的是(D)A.数据结构设.B.给出系统模块结构C.定义模块算.D.定义需求并建立系统模型(8) 数据库系统的核心是(B)A.数据模.B.数据库管理系.C.软件工.D.数据库(9) 下列叙述中正确的是(C)A.数据库是一个独立的系统, 不须要操作系统的支持B.数据库设计是指设计数据库管理系统C.数据库技术的根本目标是要解决数据共享的问题D.数据库系统中, 数据的物理结构必需及逻辑结构一样(10) 下列模式中, 能够给出数据库物理存储结构及物理存取方法的是(A) 注: P108A.内模.B.外模.C.概念模.D.逻辑模式(11) 算法的时间困难度是指(C)A.执行算法程序所须要的时.B.算法程序的长.C.算法执行过程中所须要的基本运算次.D.算法程序中的指令条数(12) 算法的空间困难度是指(D)A.算法程序的长.B.算法程序中的指令条.C.算法程序所占的存储空.D.算法执行过程中所须要的存储空间(13) 设一棵完全二叉树共有699个结点, 则在该二叉树中的叶子结点数为(B) 注: 利用公式n=n0+n1+n2, n0=n2+1和完全二叉数的特点可求出A.34.B.35.C.25.D.351(14) 结构化程序设计主要强调的是(B)A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性(15) 在软件生命周期中, 能精确地确定软件系统必需做什么和必需具备哪些功能的阶段是(D) 注: 即第一个阶段A.概要设.B.具体设.C.可行性分.D.需求分析(16) 数据流图用于抽象描述一个软件的逻辑模型, 数据流图由一些特定的图符构成。
计算机等级考试二级C语言考前密卷(7)
(1)最简单的交换排序⽅法是 A)快速排序B)选择排序 C)堆排序D)冒泡排序(2)栈通常采⽤的两种存储结构是 A)线性存储结构和链表存储结构 B)散列⽅式和索引⽅式 C)链表存储结构和数组 D)线性存储结构和⾮线性存储结构(3)线性表的顺序存储结构和线性表的链式存储结构分别是 A)顺序存取的存储结构、顺序存取的存储结构 B)随机存取的存储结构、顺序存取的存储结构 C)随机存取的存储结构、随机存取的存储结构 D)任意存取的存储结构、任意存取的存储结构(4)完全不考虑程序的内部结构和内部特征,⽽只是根据程序功能导出测试⽤例的测试⽅法是 A)⿊箱测试法 B)⽩箱测试法 C)错误推测法 D)安装测试法(5)在结构化设计⽅法中,⽣成的结构图(SC)中,带有箭头的连线表⽰ A)模块之间的调⽤关系 B)程序的组成成分 C)控制程序的执⾏顺序 D)数据的流向(6)下列选项中,不属于模块间耦合的是 A)数据耦合 B)同构耦合 C)异构耦合 D)公⽤耦合(7)⼀个关系中属性个数为1时,称此关系为 A)对应关系 B)单⼀关系 C)⼀元关系 D)⼆元关系(8)为⽤户与数据库系统提供接⼝的语⾔是 A)⾼级语⾔B)数据描述语⾔(DDL) C)数据操纵语⾔(DML)D)汇编语⾔(9)相对于数据库系统,⽂件系统的主要缺陷有数据关联差、数据不⼀致性和 A)可重⽤性差 B)安全性差 C)⾮持久性 D)冗余性(10)需求分析阶段的任务是确定 A)软件开发⽅法 B)软件开发⼯具 C)软件开发费⽤ D)软件系统功能(11)下列关于C语⾔的说法不正确的是 A)C语⾔既具有⾼级语⾔的⼀切功能,也具有低级语⾔的⼀些功能 B)C语⾔中的每⼀条执⾏语句都必须⽤分号结束,分号不是C语⾔的⼀部分,是语句之间的分隔符号 C)注释可以出现在程序中任意合适的地⽅ D)命令⾏后⾯不能加分号,命令⾏不是C语⾔的语句(12)下列关于标识符的说法中错误的是 A)合法的标识符是由字母、数字和下划线组成 B)C语⾔的标识符中,⼤写字母和⼩写字母被认为是两个不同的字符 C)C语⾔的标识符可以分为三类,即关键字、预定义标识符和⽤户标识符 D)⽤户标识符与关键字不同时,程序在执⾏时将给出出错信息(13)下列合法的整型常量的表⽰是 A)098 B)oXde C)32767 D)0xDG(14)现在有以下定义,int a;double b;float c;char k;则下⾯的表达式a/b+c-k值的类型为: A)int B)double C)float D)char(15)假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为 A)17 B)16 C)15 D)14(16)下列关于复合语句和空语句的说法错误的是 A)复合语句是由“{”开头,由“}”结尾的 B)复合语句在语法上视为⼀条语句 C)复合语句内,可以有执⾏语句,不可以有定义语句部分 D)C程序中的所有语句都必须由⼀个分号作为结束(17)关于printf()函数的返回值叙述正确的是 A)通常是本次调⽤中输出字符的个数 B)通常是输出的第⼀个数值 C)通常返回布尔值真 D)通常返回⾮零值(18)现有格式化输⼊语句,scanf("x=%dц,sumцy=%d,lineцz=%dL",&x,&y,&z);,现在已知在输⼊数据后,x,y,z的值分别是12,34,45,则下列数据是正确的输⼊格式的是 A)12,34,45 B)x=12,y=34,z=45 C)x=12C,sumy=34,z=45 D)x=12],sum]y=34,line]z=45 [注]:“ц”表⽰空格, 表⽰回车(19)设x,y,z,t均为整型变量,现有如下语句x=y=z=1;t=++x||++y&&++z;则执⾏这个语句后t的值为 A)2 B)1 C)0 D)不定值(20)现有如下程序段,此程序段编译有错误,则程序段的错误出在 #include main() { int a=30,b=40,c=50,d; d=a>30?b:c; switch(d){case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c); default:printf("#");}} A)default:printf("#");这个语句 B)d=a>30?b:c;这个语句 C)case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);这三个语句 D)switch(d)这个语句(21)下列语句中,错误的是(x,y,a,b假设已经定义好) A)while(x=y)5; B)do x++ while(x==10); C)while(0); D)do 2;while(a==b);(22)若i,j已经定义为整型,则以下程序段中,内循环体的执⾏次数是 for(i=6;i;i--) for(j=0;j<5;j++){……} A)40 B)35 C)30 D)25(23)下列说法中错误的是 A)只能在循环体内使⽤break语句 B)在循环体内使⽤break语句可以使流程跳出本层循环体,从⽽提前结束本层循环 C)在while和do…while循环中,continue语句并没有使整个循环终⽌ D)continue的作⽤是结束本次循环,即跳过本次循环体中余下尚未执⾏的语句,接着再⼀次进⾏循环判断(24)阅读如下程序段 #include "stdio.h" main() { int x,a,b; scanf("%d",&x); a=b=x; for(;x!=0;) { if(x if(x>a)a=x; scanf("%d",&x);} printf("a=%d,b=%d\n",a,b);} 现输⼊如下。
计算机二级数据结构与算法题库
数据结构与算法一.算法1.算法的复杂度主要包括时间复杂度和空间复杂度,算法的时间复杂度与空间复杂度没有直接关系。
2.算法的时间复杂度是指执行算法所需要的计算工作量。
3.循环队列是队列的顺序存储结构4.循环队列中的元素个数随队头指针与队尾指针变化而动态变化。
5.线性表链式存储结构的存储空间可以是连续的,也可以是不连续的。
6.有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构。
7.在线性单链表中,可以从任何一个结点开始直接遍历到所有结点。
8.循环队列是队列的顺序存储结构。
9.在排序方法中,最坏情况下时间复杂度最小的是堆排序。
10.为了对有序进行对分查找,则要求有序表只能顺序存储。
11.带链的栈与队列是线性结构。
12.算法的时间复杂度的度量方法是,执行算法所需要的基本运算次数;时间复杂度与所运用的计算工具无关。
13.在最坏情况下,希尔排序的时间复杂度比直接排序的时间复杂度要小。
14.算法的空间复杂度的度量方法是,执行算法所需要的存储空间;与算法所处理的数据存储空间有关。
15.有的非线性结构也可以采用顺序存储结构。
16.算法的时间复杂度与算法所处理数据的存储结构有直接关系;算法的空间复杂度与算法所处理数据的存储结构有直接关系。
17.具有两个根结点的数据结构一定是非线性结构。
18.带链队列的存储空间可以不连续,但队头指针可以大于也可以小于队尾指针。
19.在链表中,如果有两个结点的同一指针域的值相等,泽该链表一定是非线性结构。
20.在带链栈中,队头指针和队尾指针都是在动态变化中;栈顶指针是在动态变化的,栈底指针是不变的。
21.链表结点中具有两个指针域的数据结构可以是线性结构的,也可以是非线性的。
22.程序可以作为算法的一种描述方法。
23.没有根结点或没有叶子结点的数据结构一定是非线性结构。
24.算法强调动态的执行过程,不同于静态的计算公式;算法必须能在有限个步骤之后终止;算法的优劣取决于算法复杂度,与程序的环境无关;算法设计必须考虑算法的复杂度。
计算机二级考试数据结构题库及答案
计算机二级考试数据结构题库及答案一、选择题1.1 单选题1.数据结构是计算机存储、组织数据的方式。
以下哪个不属于数据结构的基本类型?A. 线性结构B. 树状结构C. 图形结构D. 字符串答案:D2.以下哪种数据结构的时间复杂度为 O(1)?A. 链表查找B. 数组查找C. 二叉树查找D. 广度优先搜索答案:B1.2 多选题3.以下哪些是常见的基本数据结构?A. 数组B. 链表C. 栈D. 队列E. 散列表答案:A、B、C、D、E二、填空题4.在计算机科学中,数据结构是一种用于存储和组织数据的方式,以____(填空)和____(填空)的方式进行数据的访问和管理。
答案:高效、方便三、判断题5.链表是一种线性数据结构,其特点是每个元素都有一个指向下一个元素的指针。
答案:正确6.深度优先搜索和广度优先搜索都是用于图遍历的算法,它们的区别在于遍历的顺序不同。
答案:正确四、简答题7.请简要介绍栈和队列的特点及应用场景。
答案:栈是一种后进先出(LIFO)的数据结构,常见应用场景有函数调用栈、表达式求值等。
队列是一种先进先出(FIFO)的数据结构,常见应用场景有任务调度、缓冲区等。
8.请简要介绍散列表的特点及优缺点。
答案:散列表是一种通过哈希函数将关键字映射到表中一个位置来访问记录的数据结构。
其优点是平均查找速度快,插入和删除操作也较为高效。
缺点是可能会发生哈希冲突,需要额外的处理措施,同时内存利用率可能不高。
五、编程题9.编写一个函数,实现单链表的插入排序。
答案:class ListNode:def __init__(self, val=0, next=None): self.val = valself.next = nextdef insertion_sort_list(head):dummy = ListNode(0)cur = headwhile cur:next_node = cur.nextpre = dummywhile pre.next and pre.next.val < cur.val: pre = pre.nextcur.next = pre.nextpre.next = curcur = next_nodereturn dummy.next。
计算机二级中的数据结构知识点如何理解
计算机二级中的数据结构知识点如何理解在计算机二级考试中,数据结构是一个重要且具有一定难度的知识领域。
对于许多考生来说,理解和掌握数据结构的知识点并非易事。
那么,我们该如何去理解这些看似复杂的内容呢?首先,让我们来谈谈什么是数据结构。
简单来说,数据结构就是数据的组织方式和存储结构,以及在这些结构上进行的操作。
它就像是一个仓库,我们需要根据不同的物品(数据)选择合适的存放方式,以便能够快速、准确地找到和处理它们。
在计算机二级考试中,常见的数据结构包括数组、链表、栈、队列、树和图等。
数组是一种最简单、最常见的数据结构。
它就像是一排连续的盒子,每个盒子都有一个固定的编号(下标),我们可以通过下标快速访问到对应的元素。
但是,数组的长度在定义时就已经确定,而且插入和删除元素的操作比较复杂,因为可能需要移动大量的元素。
链表则与数组不同,它的元素在内存中不一定是连续存储的。
每个元素(节点)包含数据和指向下一个节点的指针。
链表的优点是插入和删除元素比较方便,只需要修改指针即可,但访问特定位置的元素就比较慢,需要从头开始逐个遍历。
栈就像是一个只有一个口的桶,先放进去的东西在最下面,后放进去的在上面。
我们只能从桶的顶部取出东西,这就是“后进先出”的原则。
栈在函数调用、表达式求值等方面有着广泛的应用。
队列则类似于排队买票的队伍,先排队的人先得到服务,即“先进先出”。
在计算机中,常用于任务调度、消息传递等场景。
树是一种分层的数据结构,比如二叉树。
它就像一棵倒立的树,每个节点最多有两个子节点。
树的优点是搜索效率高,常用于数据的快速查找和排序。
图则是一种更加复杂的数据结构,它由节点和边组成,可以表示多对多的关系。
在实际应用中,比如地图导航、社交网络关系分析等领域有着重要作用。
那么,如何才能更好地理解这些数据结构呢?第一,要多做实际的编程练习。
通过亲手编写代码来实现各种数据结构的操作,能够让我们更加深入地理解它们的工作原理。
比如,自己动手实现一个链表的插入、删除操作,或者用树来实现一个排序算法。
计算机二级公共基础知识题库及答案分析
全国计算机等级考试二级公共基础知识考题库第一章数据结构一、选择题(1)下列数据结构中,能用二分法进行查找的是A)顺序存储的有序线性表 B)线性链表C)二叉链表 D)有序线性链表【答案】A【解析】二分查找只适用于顺序存储的有序表。
在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大.但允许相邻元素值相等)的。
选项A正确。
(2)下列关于栈的描述正确的是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素【答案】C【解析】栈是一种特殊的线性表,其插入与删除运算都只在线性表的一端进行。
由此可见,选项A、选项B和选项D错误,正确答案是选项C。
(3)下列叙述中正确的是A)一个逻辑数据结构只能有一种存储结构B)数据的逻辑结构属于线性结构,存储结构属于非线性结构C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率【答案】D【解析】一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。
而采用不同的存储结构,其数据处理的效率是不同的。
由此可见,选项D的说法正确。
(4)算法执行过程中所需要的存储空间称为算法的A)时间复杂度B)计算工作量C)空间复杂度D)工作空间【答案】c【解析】算法执行时所需要的存储空间,包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。
这些存储空间共称为算法的空间复杂度。
(5)下列关于队列的叙述中正确的是A)在队列中只能插入数据B)在队列中只能删除数据C)队列是先进先出的线性表D)队列是先进后出的线性表【答案】c【解析】对队列可以进行插入和删除数据的操作,只是插入数据只能在队尾,删除数据只能在队头。