二级公共基础知识部分.docx
二级公共基础知识部分
(1)程序流程图中带有箭头的线段表示的是
A)图元关系B) 数据流
C)控制流I)) 调用关系
答案:C)
(2)葆构化程序设计的基木原则不包括
A)多态性B) 自顶向下
C)模块化D) 逐步求巒
答案:A)
(3)衣件设计屮模块划分M遵循的准则是
A) 低内聚低耦合B) 高内聚低耦合
0) 低内聚高耦合0) l'nj内聚in]耦
介
答案:B)
(4) 在软件开发中,需求分析阶段产生的主要文档是
A) 可行性分析报告B) 软件需求规格说明书
C) 概要设计说明书D) 集成测试讣划
答案:B)
(5)必法的有穷性是指
A)算法程序的运行时间是有限的
B)算法程序所处理的数据量是有限的
C)算法程序的长度是有限的
0)算法只能被有限的用户使用答案:A)
(6)对长度为n的线性表排序,在最坏情况下, 比较次数不是n (n-1) /2的排序方法是
A)快速排序B) 冒泡排序
C)直接插入排序D) 堆排序答案:D)
(7)下列关于栈的叙述正确的是
A)栈按〃先进先组织数据
B)栈按〃先进后小r组织数据
C)只能在栈底插入数据
D)不能删除数据答案:B)
(8)在数据库设计屮,将E-R图转换成关系数据模烈的过程属于
A)需求分析阶段B)
O逻辑设计阶段D)
答案:C)
(9)有三个关系R、S和T如下:
R S
山关系R和S通过运算得到关系T,
则所使用的运算为
A)并B)自然
连接
D) 交
答案:D)
(10)设有表示学生选课的三张表,学生S(学号,
姓名,性别,年龄,身份证号),课程C(课号,课名), 选课
SC(学号?课号?成绩),则表SC的关键字(键或码)为
A)课号,成绩B) 学号,成
绩
C)学号,课号D) 学号.姓名,成
绩
答案:C)
(11)一个栈的初始状态为空。现将元索1、2、3、
4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元索
出栈的顺序是
A)12345ABCDE B) EDCBA54321
C) ABCDE12345 D) 54321EDCBA
答案:B)
(12)下列敘述中正确的是
A)循环队列有队头和队尾两个指针,因此,循环
队列是非线性结构
B)在循环队列屮,只需要队头指针就能反映队列
屮元索的动态变化情况
C)在循环队列屮,只需要队尾指针就能反映队列
屮元素的动态变化情况
D)循环队列中元索的个数是山队头指针和队尾指
针共同决定
答案:D)
(13)在长度为n的有序线性表中进行二分查找,最
坏情况下需要比较的次数是
A)0(n) B) 0(n)
C)Odog-n) D) 0(nlog2n)
答案:C)
(14)下列叙述中正确的是
A)顺序存储结构的存储一定是连续的,链式存储
结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构
只针对菲线性结构
O顺序存储结构能存储有序表,链式存储结构不能
存储有序表
D)链式存储结构比顺序存储结构节省存储空间
答案:A)
(15)数据流图中带有箭头的线段表示的是
A)控制流B) 事件驱动
C)模块调用D) 数据流
答案:D)
(16)k软件开发屮,需求分析阶段可以使用的工具
是
A)N-S 图B) DFD 图
C) PAD图D) 程序流程图
答案:y)
(17)和面向对象方法屮,不属于“对象”基本特点
的是
A)一致性B) 分类性
C)多态性D) 标识唯一性
答案:A)
(18)一间宿舍可住多个学生,则实体宿舍和学生之
间的联系是
A)一对一B) 一对多
C) 多对一D) 多对多
答案:B)
(19)在数据管理技术发展的三个阶段屮,数据共享
最好的是
A)人工管理阶段B) 文件系
统阶段
C)数据库系统阶段D) 三个阶段相同
答案:O
(20)有三个关系R、S和T如下:
山关系R S T,
概念设汁阶段
物理设计阶段
z
2J回
N
E z
T
为
A)笛卡尔积B)交
C)并I))自然连接
答案:D)
(21)下列叙述屮正确的是
A)栈是“先进先出”的线性表
B)队列是“先进后出”的线性表
C)循环队列是非线性结构
0)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
答案:D)
(22)支持子程序调用的数据结构是
A)栈B)树C)队列D)二叉树
答案:A)
(23)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是
A) 10 B) 8 C) 6
D) 4
答案:C)
(24)下列排序方法屮,最坏情况下比较次数最少的是
A)冒泡排序B)简单选择排序
C)直接插入排序D)堆排序
答案:0)
(25)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下血属于应用软件的是A)编译程序B)操作系统
C)教务管理系统D)汇编程序
答案:c)
(2)、下面叙述中错误的是
A)软件测试的H的是发现错谋并改正错谋
B)对被调试的程序进行“错误定位”是程序调试的必要步骤
C)程序调试通常也称为Debug
0)软件测试应严格执行测试计划,排除测试的随意性
答案:A)
(27)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述屮正确的是
A)提高耦合性降低内聚性有利于提高模块的
独立性
B)降低耦合性提高内聚性有利于提高模块的独立
性
C)利合性是指一个模块内部各个元素间彼此结合
的紧密程度
~n J 为"内聚性是指模块间互相连接的紧密程度
答案:B)
(28)数据库应用系统中的核心问题是
A)数据库设计B)数据瘁系统设计
C)数据库维护D)数据瘁管理员培答
案:A)
(29)有两个关系R, S如下:
R
山关系R通过运算得到关系S,则所
A)选择B)投影
C)插入D)连接
答案:B)
(30)将E-R图转换为关系模式时,实体和联系都可
以表示为
A)属性B)键
C)关系D)域
答案:c)
(7)、下列数据结构屮,属于非线性结构的是
A)循环队列B)带链队列
O二叉树D)带链栈
答案:O
(32)下列数据结构中,能够按照“先进后出” 原则
存取数据的是
A)循环队列B)栈
C)队列I))二叉树
答案:B)
(33)对于循环队列.下列叙述屮正确的是
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于
队尾指针
答案:I))
(34)算法的空间复杂度是指
A)算法在执行过程屮所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序屮的语句或指令条数
D)算法在执行过程屮所需要的临时工作单元数
答案:A)
(35)软件设计中划分模块的一个准则是
A)低内聚低耦合B)高内聚低耦合
C)低内聚高耦合D)高内聚高耦仑
答案:B)
(36)下列选项中不属于结构化程序设计原则的是
A)可封装B)自顶向下C)模块化
D)逐步求将答案:A)
(37)软件详细设计产生的图如下:
该图是
A) N-S图B) PAD图
C)程序流程图
答案:C)
(38)数据库管理系统是
A)操作系统的一部分
D) E-R图
B)在操作系统支持下的系统软件
C)一种编译系统
D)—种操作系统
答案:B)
(39)在E-R图屮,用來表示实体联系的图形是
A)椭闖形B)矩形
LZ m
ra m
LZ LZ
S
C)菱形D)三角形
答案:C)
(40)有三个关系R, S和T如下:
其屮关系T山关系R和S通过某种操作得到,该操作为
A)选择B)投影C)交
D)并
答案:D)
(41)下列叙述屮正确的是
A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
O线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
D)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
答案:B)
(42)下列叙述屮正确的是
A)栈是一种先进先出的线性表
B)队列是一种后进先出的线性表
C)栈与队列都是非线性结构
D)以上三种说法都不对
答案:【))
(43)、软件测试的目的是
A)评估软件可靠性B)发现并改正
C)亦:?程序屮的错谋D)发现程序屮
的错谋
答案:D)
(44)在软件开发屮,需求分析阶段产生的主要文档是
A)软件集成测试计划B)软件详细设
计说明书
C)用户手册D)软件需求规格说明书
答案:D)
<45)软件生命周期是指
答案:D)
(48)"-个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是
A)一对一B)一对多
C)多对多D)多对一
答案:C)
(49)数据库设计屮反映用户对数据要求的模式是
A)内模式B)概念模式C)外模式
0)设计模式
答案:C)
(50)有三个关系R. S和T如下:
R
S T
则III关?系T 关紊M獗作是
A)自然连接B)差C)交【))并
答案:B)
(51)下列关于栈叙述正确的是
A)栈顶元素最先能被删除B)栈顶元索最后才能被删除
O栈底元索永远不能被删除I))栈顶元素最先能被删除
答案:A)
(
52)下列叙述屮正确的是
A)在栈屮,栈屮元索随栈底指针与栈顶指针的变
化而动态变化
B)在栈屮,栈顶指针不变,栈屮元素随栈底指针
的变化而动态变化
C)在栈屮?栈底指针不变,栈屮元素随栈顶指针
的变化而动态变化
D)在栈屮,栈屮元素不会随栈底指针与栈顶指针
的变化而动态变化
答案:C)
(53)某二叉树共有7个结点,其屮叶子结点只有
1个,则该二叉树的深度为(假设根结点在第1层)
A) 3 B) 4 C) 6
D)7
答案:D)
(54)软件按功能可以分为应用软件、系统软件和
支撑软件(或工具软件)。下面属于应用软件的是
A)学生成绩管理系统B) C语言编译
程序
C) UNIX操作系统D)数据库管理
系统
答案:A)
(55)结构化程序所要求的基木结构不包括
A)顺序结构B) GOTO跳转
C)选择(分支)结构D)重复(循环)结构
答案:B)
(56)下面描述屮错?误的是
A)系统总体结构图支持软件系统的详细设计
B)软件设计是将软件需求转换为软件表示的过程
C)数据结构与数据库设计是软件设计的任务之_
D)PAD图是软件详细设计的表示工具
答案:A)
(57)、负贵数据库屮查询操作的数据库语言是
B) 软件从需求分析、设计、实现到测试完成
的过程
C) 软件的开发过程
D) 软件的运行维护过程
答案:A)
(46) 面向对象方法屮,继承是指
A) 一组对象所具有的相似性质
B) 一个对象具有另一个对象的性质
C) 各对象之间的共同性质
D) 类之间共亨属性和操作的机制
答案:D)
<47) 层次型、网状型和关系型数据库划分原则
是
A) 记录长度B)文件的大小
C) 联系的复杂程度【))数据之间的
联系方式
□□
T
A)软件产品从提出、实现、使用维护到停止使用
退役的过程
A)数据定义语言B) 数据管理语言
C)数据操纵语言I)) 数据控制语言
答案:O
(58)—个教师可讲授多门课程,一门课程可山多个教师讲授。则实体教师和课程间的联系是
A) 1: 1联系B) 1: m联系
C) m: 1联系D) m: n联系答案:D)
(59)有三个关系R. S和T如下:
R S T
| c | 3 | 1
则由关系R和S得到关系T的操作是
A)自然连接B) 并
C)交D) 差
答案:D)
(60)定义无符号整数类为UInt,下面可以作为类Ulnt实例化值的是
A) -369 B) 369
C) 0.369 D) 整数集合
{1,2, 3, 4, 5}
答案:B)
(61)下列叙述屮正确的是
A)算法就是程序
B)设计算法时只盂要考虑数据结构的设计
C)设计算法时只需要考虑结果的可靠性
D)以上三种说法都不对
答案:D)
C)叶子结点数是度为2的结点数的两倍
I))度为2的结点数是度为1的结点数的两倍答
案:B)
(64)软件生命周期屮的活动不包括
A)市场调硏B) 需求分析
C)软件测试D) 软件维护
答案:A)
(65)、某系统总体结构图如下图所示:
答案:C)
(66)程序调试的任务是
A) 设计测试用例
B) 验证程序的正确性
C) 发现程序中的错误
I)) 诊断和改正程序屮的错谋
答案:D)
(67)下列关于数据库设计的叙述屮,正确的是
A)在需求分析阶段建立数据字典
B)在概念设计阶段建立数据字典
O在逻辑设计阶段建立数据字典
D)在物理设计阶段建立数据字典答案:A)
(68)数据库系统的三级模式不包括
A)概念模式B) 内模式
C)外模式D) 数据模式
答案:D)
(69)有三个关系R、S和T如下:
则山关系R和S得到关系T的操作是
A)自然连接B) 交
C)投影D) 并
答案:A)
(70)下列选项屮属于面向对象设计方法主要特征
的是
A)继承B) 自顶向下
O模块化D) 逐步求耕
答案:A)
(71)下列叙述屮正确的是
A)循环队列是队列的一种链式存储结构
B)循环队列是队列的一种顺序存储结构
C)循环队列是非线性结构
I))循环队列是一种逻辑结构答案:B)
(72)下列关于线性链表的叙述屮,正确的是
A)各数据结点的存储空间可以不连续,但它们
的存储顺序与逻辑顺序必须一致
B)各数据结点的存储顺序与逻辑顺序可以不一
致,但它们的存储空间必须连续
C)进行插入与删除时,不需要移动表屮的元素
D)各数据结点的存储顺序与逻辑顺序可以不一
致,它们的存储空间也可以不一致
答案:C)
(73)一棵二叉树共有25个结点,其中5个是叶子
结点,则度为1的结点数为
A) 16 B) 10 C) 6
[))4
答案:A)
(74)和下列模式屮,能够给出数据库物理存储结
构与物理存取方法的是
A)外模式B) 内模式
O概念模式D) 逻紺模式
答案:B)
<75)在满足实体完整性约束的条件下
A)一个关系屮应该有一个或多个候选关键字
B)一个关系屮只能有一个候选关键字
C)一个关系屮必须有多个候选关键字
I)) 一个关系中可以没有候选关键字答案:A)
m
L□
(62) 下列叙述中正确的是
A) 有一个以上根结点的数据结构不一定是非
线性结构
B) 只有一个根结点的数据结构不一定是线件
结构
C) 循环链表是非线性结构
D) 双向链表是非线性结构
R
□
L
FI M E
A B C D
C314
答案:B)
(63)下列关于二叉树的叙述屮,正确的是
A)叶子结点总是比度为2的结点少一个
B)叶子结点总是比度为2的结点多一个该系统总体机构图的深度是
A) 7 B) 6 C) 3 D)
(76)有三个关系R、S和T如下:
可□
±E tn 则山关系K和
S _____ T
| A | B | |V~|
±j
s得到关系T的操作是
A)自然连接B) 交
C)除D) 并
答案:O
(77) 卜'KU描述屮?不属于软件危机表现的是
A)软件过程不规范B) 软件开发生产率
C)软件质量难以控制D) 软件成木不断提
答案:A)
(78)下面不属于需求分析阶段任务的是
A)确定软件系统的功能需求
B)确定软件系统的性能盂求
C)需求规格说明书评审
D)制定软件集成测试计划答案:D)
(79)在黑盒测试方法屮.设计测试用例的主要根据是
A)程序内部逻辑B) 程序外部功能
C)程序数据结构0) 程序流程图
答案:B)
(80)在软件设计屮不使用的工具是
A)系统结构图B) PAI)图
二级C语言程序设计部分
(1)以下叙述屮错误的是
A)C语言中的毎条可执行语句和非执行语句瑕
终都将被转换成二进制的机器指令
B)C程序经过编译、连接步骤Z后才能形成一个真正可执行的二进制机器指令文件
C)用C语言编写的程序称为源程序,它以ASCII 代码形式存放在一个文本文件屮
D) C语言源程序经编译后生成后缀为?()b.j的卜| 标程序
C)数据流图(DFD图)D) 程序流程图答案:C)
合法的一组C语言数值常最是
A) 12. 0Xa23
4.5e0
B) 028 .5e~3
C) .177 del. 5
Oabc
0) 0x8A 10,000
3.e5
答案: A)
答案:A)
(2)以下选项中,
(3)以下选项屮不合法的标识符是
A) &d
B ) 1;()R
C) print
-Oxf
D) 00
答案:A) ___________
(4)若有代数jv! n): +(其中e仅代
表自然対数的底数,不是变量),则以下能够正确
表示该代数式的C语言表达式是()。
A)sqrt(fabs(pow(n, x)+exp(x)))
B)sqrt (fabs (pow(n, x)+pow(x, e)))
C)sqrt (abs(n\+e x))
D ) sqr t (fabs (pow (x, n)+exp (x)))
答案:A)
(5)若有定义:double a=22;int i=0, k=18;, 则不符
合c语言规定的赋值语句是
A)i=a%ll;
B)i=(a+k)<=(i+k);
C)a=a++, i++;
I)) i = !a;
答案:A)
(6)有以下程序
#include
main()
{ int s, t, A=10; double B-6; s二s i zeof(A);
t-sizeof(B); printf (,z%d, %d\n z,, s, t);
}
在VC6平台上编译运行,程序运行后的输出结果是
A)4,8
B)4,4
C)2,4
D)10,6
答案:A)
(7)卡列叙述中错误的是
A)一个C语言程序只能实现一种算法
B)C程序可以山多个程序文件组成
C)C程序可以山一个或多个函数组成
D)—个C函数可以单独作为一个C程序文件存
在
答案:A)
(8)L下选项屮,能用作数据常最的是
A)115L
B)0118
C) 1.5el.5 B) 结构化程序山顺序、分支、循环三种基本答案:A)
【))0115 结构组成(18)有以下程序
答案:A)C) C语言是一种结构化程序设计语言^include
(9) 按照C语言规定的出户标识符命名规则,不D) 结构化程序设计提侣模块化的设计方法mainO
能出现在标识符中的是答案:A){ int a=l, b=0;
A) 连接符(14) 以下四个程序屮,完全正确的是printf ("%d, ”, b=a+b);
B) 大写字母A) #include
C) 数字字符main(); }
D) 下划线{/*/ progrcunming /*/ 程序运行后的输出结果是
答案:A)printf(^programming!\n〃); } A) 1,2
(10) 设变最已正确定义并赋值,以下正确的表B) #include
达式是mainO C) 3,2
A) x 二y+z+5, ++y {/* progranuning */ D) 0,0
B) int(15. 8%5) pri ntf (z/pr()granimi ng! \n");) 答案:A)
C) x二y*5=x+z C) #include
D) x=25%5. 0 mainO #include
答案:A){/*/* programming */*/ mainO
(11) 设有定义:int x二2;,以下表达式中,值printf (^programming!\n z/) ; } { char a, b, c, d;
不为6的是D) include
A) 2*x, x+-2 mainO c^getchar () ; d-getchar ();
B) x++, 2*x {/* progrcunming */ printf (,z%c%c%c%c\n/z, a, b, c, d);
C) x*二(1+x) printf(^programming!\n〃); } }
D) x*二x+1 答案:B)当执行程序时,按下列方式输入数据(从第1列开
答案:A)(⑸C源程序屮不能表示的数制是始,〈CR>代表冋车,注意:冋车也是一个字符)(⑵有以下程序A) 二进制12
#include
ma i n () C) 十进制则输出结果是
{ int x, y, z; 0) 十六进制A) 12
x=y=l; 答案:A) 3
z_x++, y++, ++y; (16) 以下选项中,能用作用户标识符的是B) 12
printf (/z%d, %d, %d\n〃, x, y, z); A) _0_ C) 1231 } B) 8_8 D) 12 程序运行后的输出结果是C) void 31
A) 2,3,1 D) unsigned 答案:A)
B) 2,3,2 答案:A)(20)以下关于逻辑运算符两侧运算对象的叙述
C) 2,3,3 (17) 若有定义语句:int x二10;,则表达式x 屮正确的是
0) 2,2,1 —=x+x的值为A)可以是任意合法的表达式
答案:A)A) -10 B)只能是整数0或非0整数
(13) 以下叙述中错误的是B) -20 C)可以是结构体类型的数据
A) 使用三种基木结构构成的程序只能解决简C) 0 I))只能是整数0或1
单问题I)) 10 答案:A)
(21)有以下程序
^include
{ int a-0,b-0,c-0, d-0;
if (a=l) b=l;c=2;
else d=3;
printf (z,%d, %d, %d, %d\n z,, a, b, c, d); } 程序输出
A)编译有错
B)0,0,0,3
C)1,1,2,0
D)0,1,2,0 答案:A)
(22)有以下程序
#include
{ int x二1, y二0, a-0, b二0;
switch ( x )
case 1:
switch (y)
{ case 0: a++; break;
} case case case 1: b++;break;
2:
3:
d++;
a++;
b++;
b++;
break;
printf("a=%d, b=%d\n〃,a, b); } 程序的运行结果是
A)a二2, b-1
B)d二2, b-2
C)d二1, b二 1
D)d二1, b二0 答案:A)
(23)以下程序段中的变最己正确定义for( i=0;
i<4; i++, i++ ) for ( k=l; k<3; k++ );
printf(“*“);
程序段的输出结果是
A) *
B)****
C)**
I)) ********
答案? A)
(24)话以下程序段
#includc
for( i=0; i<8; i++ ) { n 二rand( ) % 5;
switch (n)
{ case
case
1:
3: printf(^d '
\『,
n);
break;
case 2:
case 4: printf(,?%d ' 、n",
n);
continue;
case 0: exit(0);
}
printf (z,%d \n", n);
}
以下关于程序段执行情况的叙述,正确的是
A)当产生的随机数ri为0时结束程序运行
B)当产生的随机数n为4时结朿循环操作
C)当产生的随机数n为1和2时不做任何操作
D)f(“循环语句固定执行8次答案:A)
(25)有以下程序tJinclude
{ char cl,c2;
cl二'A' +'84’ ;
c2二'A' +'8'-' 5'; printf( c, %d\n",cl,
c2);
}
已知字母A的ASCII码为65,程序运行后的输出结杲
是
A)E,68
B)D,69
C)E,D
D)输出无定值答案:A)
(26)若有定义ir】t x,y;并已正确给变最赋fit
则以下选项中与表达式(x-y)?(x++) : (y卄)中的条件表
达式(x-y)等价的是
A)(x~y<0||x-y>0)
B)(x-y<0)
C)(x-y>0)
D)(x-y二二0)
答案:A)
(27)有以下程序
ttinclude
{ int x=l, y二0; if (!x) y++;
else if (x==0)
if (x) y+=2;
else y+二3;
printf("%d\n", y);
}
程序运行后的输出结果是
A)0
B) 2
C) 1
D) 3
答案:A)
(28)若有定义:float x二 1.5; int
a=l,b=3,c=2;则正确的switch语句是
A)
switch(a+b)
{ case 1: printf("*\n");
case 2+1: printf("**\rT); }
B)
switch((int)x);
{ case 1: printf (,,*\n,/);
case 2: printf("**\n"); }
C)
switch(x)
{ case 1. 0: printf("*\n");
case 2. 0: printf("**\n"); }
D)
switch(a+b)
{ case 1: printf C*\n");
case c: printf C,**\n,/); } 34, cl的值为字符a, c2的值为字符b,程序输出结果D) for(n=0,i=l; ; i++) n+=i;
答案:A) 是:12,d,3,4,b则正确的输入格式是(以下口代表空答案:A)
(29)有以下程序格,代表回车) (36)有以下程序
#inelude
main () B) 12i-laU34Ub
{ int y=9; C) 12, a, 34,b
for ( ; y>0; y—) D) 12Ma34ub
程序的运行结果是printf(〃%d\n〃,k );中,以下不可替代W的是case 2: c++;break;
A) 852 A) a<>b+c case 4: c+=2;break;
B) 963 B) ch=getchar() }
C) 741 C) a==b+c printf (z,%d\rr, c);
【))875421 D) a++ }
答案:A) 答案:A) 程序运行后的输出结果是
(30)有以下程序(33)有以下程序段A) 3
#include
main () int a, b, c; C) 7
{ int 沪10; b二50; c二30; D) 9
for(i=l;i<3;i++) if (a>b) a-b, b-c; c二a; 答案:A)
{ for(j=3;j>0;j-) printf b=%d c二%d\n", a, b, c); (37)有以下程序{ if (i*j>3) break; 程序的输出结果是ftinclude
} B) a=10 b=50 c=30 inainO } C) a=10 b=30 c=10 { int n=l, in;
printf("m=%d\n", m); [))a=50 b=30 c=50 m=f (f (f (n))) ; printf ("%d\n", m);
} 答案:A) }
程序运行后的输出结果是(34)下列叙述中正确的是int f(int x)
A) m=6 A)在switch语句中,不一定使用break语句{ return x*2; }
B) m=2 B )在swi tch语句中必须使用def au It 程序运行后的输出结果是
C) m 二4 C ) break语句必须与swi tch语句中的case配对A) 8
D) m=5 使用B) 2
答案:A) D ) break语句只能用于sw i tch语句C) 1
(31)有以下程序答案:A) D) 1
★include
main () A) n二0; (38)以下叙述中错?误的是
{ int al, a2; char cl, c2; do {++n;} while (n<=0); A) 口J以给指针变量赋一个整数作为地址值sednf ("%d%c%d%c", &al, &cl, &a2, &c2); B) n=0; B)函数可以返冋地址值
printf (,z%d, %c,%d, %c“,al, cl, a2, c2); while (1) { n++;} C)改变函数形参的值,不会改变对应实参的} C) n=10; 值
若想通过键盘输入,使得dl的值为12, “2的值为whi le (n); {n—;} D)当在程序的开头包含头文件stdio.h时?可
以给指针变最赋NULL for (i二0; i 答案:A) -a[i][N-l-i]; 则以下函数调用语句错误的是 (39)设己有定义:float x;,则以下对指针变} A) k= *f(a, b); 量P进行定义且赋初值的语句屮正确的是main() B) k=add(a, b); A) float *p=&x; { int x[N] [N]={{1, 2, 3, 4}, {5, 6, 7, C) k=(*f) (a,b); B) int *p=(float)x; 8}, {9,10,11,12}, {13,14,15,16}}, y[N], i; D) k=f (a, b); C) float p 二&x; fun (x, y); 答案:A) D) float *p=1024; for (i二0; i 答案:A) y[i]); printf("\n"); jtinclude (40)以下数纽定义屮错?误的是} mainO A) int x[2][3]"{l,2},{3,4},{5,6}}; 程序运行后的输出结果是{ int n,*p=NULL; B) int x[] [3] = {0}: A) -3,-1, 1,3, C) int X[][3]={{1,2,3}, {4,5,6}}; B) -12,-3, 0, 0, printf (,z Input n:"); D) int x[2][3]={l,2,3,4,5,6}; C) 0, 1,2,3, scdnf("%d",&p); printf("output n:"); 答案:A) 0) -3, -3, _3, -3, printf(“%d\n",p); (41)有以下程序答案:A) } #include { int i, t; int fun (int x, int y ) A) int n,*p二NULL; for(i-0: i a[i]-a[n 1 i]; a[n 1 i]-t; } else return ( x ); C ) scanf ("%d", &p) } } D) printf (,z%d\n z,, p); mainO main() 答案:A) { int { int a=4, b=5, c=6: (46)下列定义数组的语句屮.正确的是 k[10]={ 1,2,33,5,6,7,8,9,10},i; printf( , fun(2*a, fun( b, A) ^define N 10 fun (k, 5); c ))); int x[N]; for(i=2; i<8; i++) } B) int N=10; printf k[i]); 程序运行后的输出结果是int x[N]; printfC\n/z); A) 6 C) int x[0. ? 10]; } B) 3 D) int x[]; 程序的运行结果是C) 8 答案:A) A) 321678 0) 12 (47)有以下程序 B) 876543 答案:A) jtinclude C) 1098765 (44)有以下程序mainO D) 345678 ^include 答案:A) int add( int a, int b){ return for(i^0;i<4;i++) (42)有以下程序(d+b);) switch(i%2) ★include ^define N 4 { int k, (*f) 0, a=5, b=10; {case 0:a[i]++;break; void fun(int a[] [N], int b[]) f=add; case 1:a[i]—; { int i; ? ? ?}break; case l:d[i]=O; } for(i=0;i<4;i++) printf (z/%da[i]); printf("\n"); } 程序运行后的输出结果是 A)3040 B)2050 C)3344 D)0304 答案:A) (48)有以下程序 ^include { int b[3][3] = {0, 1,2, 0, 1, 2, 0, l,2},i, j,t二1; for(i-0; i<3; i++) for(j=i; j<=i; j++) t+二b[i][b[j][i]]; printf(“%d\n〃,t); } 程序运行后的输出结果是 A) 4 B) 3 C) 1 D)9 答案:A) (49)有以下程序 tJinclude { return ((y-x)*x); } main () { int a=3, b=4, c=5, d; d=f (f (a, b), f (a, c)); printf (“%d); } 程序运行后的输出结杲是 A)9 B)10 C)8 D)7 答案:A) (50)若有定义语句:double a, *p=&a ;以下叙述中错误的是 A)定义语句中的*号是一个间址运算符 B)定义语句屮的*号是一个说明符 C)定义语句中的p只能存放double类型变量的 地址 0)定义语句中,把变量"的地址作为初值赋给指针 变量P 答案:A) (51)若有定义语句:double x, y, *px, *py;执行了 px二&x; py二&y;之丿G正确的输入语句是 A)scanf C'%lf %le zz, px, py); B)scanf("%f %f" &x, &y); C)scanf("%f %f", x, y); D)scanf ("%lf %lf", x, y); 答案:A) (52)以下定义数组的语句中错误的是 A)int num[2][4]二{ {1,2}, {3,4}, {5,6} }; B)int num[][3] = { {1, 2), 3, 4, 5,6 }; C)int num[]={ 1, 2, 3, 4, 5, 6 }; D)int num[][4]={l,2, 3, 4, 5, 6}; 答案? A) (53)有以下程序 ^include void fun( int a, int b ) { int t; t=a; a二b; b=t; } inain() { int c[10]二{1,2, 3, 4,5,6,7, & 9,0}, i ; for (i二0; i<10; i+二2) fun(c[i], c[i+l]); for (i二0;i<10; i++) printf c[i]); printf("\n"); } 程序的运行结果是 A)1,2, 3, 4, 5,6, 7,8,9,0, B)2,13,3,6,5,8, 7,0,9, C)0,9, & 7, 6, 5, 4, 3, 2, 1, D)0,1,2,3,4,5,6,7, & 9, 答案:A) (54)有以下程序 #inelude main() { int x[3][2]={0}, i; for(i=0; i<3; i++) scanf ("%d", x I i I); printf C%3d%3d%3d\n", x[0] [0], x[0][l], x[l][0]); } 若运行时输入:2 1 6C冋车〉,则输出结果为 A) 2 0 4 B) 2 0 0 0 2 4 0 D) 2 4 6 答案:A) (55)设有定义:char s[81]; int i二0;,以下不能 将一行(不超过80个字符)带有空格的字符串正确读入的 语句或语句组是 A)scanf, s); B) wh订e((s[i++] =getchar 0) !=' \n ) ;s[i]='\0'; B)gets(s); I)) do{ scanf ("%c",&s[i]); }while(s[i++]!二'\n ); s[i]= \0'; 答案:A) (56)设有定义:char p[]二{T‘ p;,以下不能计算出一个char型数据所占字节 数的表达式是 A)sizeof(p) B)sizeof(char) C)sizeof(*q) D)sizeof(p[0|) 答案:A) (57)有以下程序 ^include #include main() { char B) 5, 5 (61)有以下函数 str[] [20] = {*0ne*World/z, "One*Dream!"}, *p=str[l] C) 11, 11 int fun (char *x, char *y) ■9 D) 11, 5 { int n=0; printf (z,%d, strlen (p)); 答案:A)while ( (*x二二*y) && *x!二'\0‘ ) {x++; printf("%s\n",p); (60)在C语言中?只有在使用时才占用内存单元y++; n++;} } 的变量,其存储类型是return n ; 程序运行后的输出结果是A) auto和reg ister } A) 10, ()ne*Dream! B ) extern和register 函数的功能是 B) 9, ()ne*Dream! C) auto和static A)统计x和y所指字符串中最前面连续相同的 C) 9,0ne*World D) static和reg ister 字符个数 D) 10,0ne*W()rld 答案:A)B)查找x和y所指字符串中是否有'\0' 答案:A)(61)以下语句屮存在语法错误的是C)将y所指字符串赋给X所指存储空间(58)有以下程序A) char ss[6][20]; ss[l]二"right?"; D)统计x和y所指字符串屮相同的字符个数#include ma i n () C) char *ss[6]; ss[l]= "right?"; (65)有以下程序 { char s □二"012xy\08s34f 伽2"; D) char *ss[]二{ "right?"}; #include for ( i二0; s[i]!二0; i++ ) (62)以下不能将s所指字符审正确复制到t所指{ static int x二1; if(s[i] >二'O' && s[i] <= '9') 存储空间的是x*二2; n++; A) do{*t ++-*s++;)whi1e(*s ); return x; printf (*%d\n,,? n);B) for(i^0;t[i]=s[i];i 卄);} } C) while(*t=*s){t++;s++;J main() 程序运行后的输出结呆是D) for(i=0, j=O;t[i++]=s[j++];); { int i, s二1; A) 3 答案:A)for ( i=l; i<=3; i++ ) s*=fun(); B) 0 (63)有以下程序printf("%d\rT, s); C) 7 #include 【))8 void swap(char *x, char *y) 程序运行后的输出结果是 答案:A){ char t; A) 30 (59)有以下程序t=*x; *x=*y; *y=t; B) 10 #include fun(int x, int y) main() D) 64 { static int in-0, i-2; { char *sl-,,abc,,? *s2二"123"; 答案:A) i+二m+1; m二i+x+y; return in; swap(sl, s2); (66)在一个C源程序文件屮所定义的全局变最,} printf (,z%s, %s\n,z, si, s2); 其作用域为 inainO } A)山具体定义位置和extern说明來决定范围{ int j二1, m-1, k; 程序执行后的输出结果是B)所在程序的全部范围 k=fun(j, m) ; printf “, k); A) lbc,a23 C)所在函数的全部范用 k=fun( j, m); printf (”%d\n〃, k); B) abc, 123 D)所在文件的全部范围} C) 123, abc 答案:A)执行后的输出结果是D) 321, cba (67)有以下程序段 A) 5, 11 答案:A)#include int j; float y; char 答案:A)答案:A) name[50]; (71)设有如下函数定义(74)有以下程序scanfC,%2d%f%s,,? &j, &y, name);#include 7777abc后,y的值为{ if (k A) 566.0 else if (k==l) return 1: */ B) 55566.0 else return fun(k-l)+l; { int j; C) 7777.0 } c. b +二1; c. p+二2; D) 566777. 0 若执行调用语句:n-fun (3);,则函数fun总} 答案:A)共被调用的次数是mainO (68)下列语句组中,正确的是A) 3 { int i: A ) char *s; s二"01 ympi ;B) 2 A d 二{1,2}; B) char s[7] ;s=,,01ympic/,; C) 4 f (a); C) char *s;s={"01ympic"}; D) 5 printf (zz%d, %d\n,z, a. b, p); D) char s[7];s二{"Olympic"}; 答案:A)} 答案:A)(72)有以下程序程序运行后的输出结果是 (69)有以下函数#include int fun(char *s) int f(int n); B) 2,4 { char 二s; mtiinO C) 1,4 while(*t++); { int a=3, s; D) 2,3 return (t-s); s=f (a); s=s+f (a) ; printf (,z%d\n,z, s); 答案:A) } } (75)以下叙述屮正确的是该函数的功能是int f(int n) A)在C语言中,预处理命令行都以勒勺T?头A)计算s所指字符串占用内存字节的个数{ static int a=l; B)预处理命令行必须位于C源程序的起始位貰B)比较两个字符串的大小n+二d++; C) ^include 答案:A)程序运行后的输出结果是答案:A) (70)有以下程序(注:字符a的ASCII码值为97)A) 9 (76)有以下程序#include main () C) 7 #include { char *s ={ "abc" }; D) 10 int fun (int n) do 答案:A){ int *p; { printf ("%d: *s%10); ++s; } (73)下面结构体的定义语句中,错误的是p 二(int*)malloc(sizeof(int)): whi le ( *s ); A) struct ord {int x; int y; int z;} *p=n; return *p; } struct ord a; } 程序运行后的输出结杲是B) struct ord {int x;int y;int z;); main () A) 789 struct ord a; { int a; B) a be C) struct ord {int x;int y;int z;} a = fun(10); C) 7890 a; printf (z,%d\n z\ a+fun(10)); D) 979899 D) struct {int x; int y;int z;} a; } 程序的运行结果是{ int a, b; } { int *a, *b, *c; A) 20 data[2] = {10,100,20, 200); a=b=c=(int *)nuill()c(size()f (int)); B) 10 main () *a=l;*b=2, *c=3; C) 0 { struct S p-data[l]; a=b; 【))出错printf("%d\n", ++(p. a)); printf (,?%d, %d, %d\n z\ *b, *c); 答案:A)} } (77)有以下程序程序运行后的输出结果是程序运行后的输出结果是# include main() B) 11 B) 2,2,3 { unsigned char B二& c: C) 20 C) 1,2,3 c = a?3;D) 10 D) 1,1,3 printf(”%d\n〃, c); 答案:A)答案:A) } (81)有以下程序(84)以下叙述中正确的是 程序运行后的输出结果是^include A) 1 #define PT 3. 5 ; 将它关闭.否则可能导致数据丢失 B) 16 ^define S(x) PT*x*x ; B)打开一个己存在的文件并进行了写操作后, C) 32 inain() 原有文件屮的全部数据必定被覆盖 D) 0 { int a=l, b二2; printf(,z%4. lf\n", O 在一个程序中当对文件进行了写操作后, 答案:A)S(a+b));) 必须先关闭该文件然后再打开,才能读到第1个数据(78)读取二进制文件的函数调用形式为:程序运行后的输出结果是D) C语言中的文件是流式文件,因此只能顺序fread (buffer, size, count, fp);,其中buffer代表的A)程序有错无输出结果存取数据 是B) 31.5 答案:A)A)一个内存块的首地址,代表读入数据存放C) 7.5 (85)设有定义: 的地址D) 14.0 struct complex B)一个整型变最,代表待读取的数据的字节答案:A){ int real, unreal;} 数(82)有以下程序datal={l, 8), data2; O 一个文件指针,指向待读取的文件# inelude I))一个内存块的字节数main () A) data2=(2, 6); 答案:A){ unsignod char a=2, b=4, c=5, d; B) data2=datal; (79)以下叙述中错谋的是 d 二 d b; d &- c; printf (,,%d\n,,t C) data2. real-data1. real; A )可以通过t ypedef增加新的类型d); } D) data2? real=data1. unreal; B)可以用typedef将己存在的类型用一个新的程序运行后的输出结果是答案:A) 名字來代表A) 4 (86)有以下程序0) MJtypedef定义新的类型名后,原有类型名B) 3 # include 仍有效C) 5 struct S{int n; int a[20]; }; 0) MJtypedef可以为各种类型起别名,但不能D) 6 void f(struct S *p) 为变量起别名答案:A){ int i,j, t; 答案:A)(83)有以下程序for (i二0; i〈p->n-l; i++) (80)有以下程序★include } main () { int i: struct S s二{10, {2, 3, 1, 6, & 7, 5, 4, 10,9}}; f (&s); for (i=0; i } 程序运行后的输出结果是 A)1,2, 3,4,5,6, 7,8,9,10, B)10, 9, 8, 7, 6, 5, 4, 3, 2, 1, C)2,3,1,6,8,7,5,4,10,9, D)10, 9, 8, 7, 6, 1,2, 3, 4, 5, 答案? A) (87)话以下程序 #include #include type def struct { char nanie[91 : char sex; int score[2] ; } STU; STU f (STU a) { STU b二{"Zhao", 'm', 85, 90}; int i; strcpy ( d? name, b? name ); d? sex 二b? sex; for ( i二0; i<2; i++ ) a. score[i]二b?score [i ]; return a; } main() { STU c二{ "Qian", ' f' , 95, 92 }, d; d = f (c); printf (z,%s, %c, %cl, %d, "、d. name, d? sex, d. score[01, d? score,. 1]); printf (zz%s,%c, %d,%d\n z,, c. name, c. sex, c. score[0], c. score[1]); } 程序运行后的输出结杲是 A)Zhao, m, 85,90, Qian, f, 95,92 B)Zhao, m, 85,90, Zhao, in, 85,90 C) Qian, f, 95,92, Qian, f, 95,92 0) Qian, f, 95,92, Zhao, m, 85,90 答案:A) (88)以下关于宏的叙述中正确的是 A) 宋替换没有数据类型限制 B) 宏定义必须位于源程序中所有语句之前 C) 宏名必须用大写字母表示 I)) 幺调用比函数调用耗费时间 答案:A) (89) 设有以下语句int a二1, b二2, c; c二 J (b?2); 执行后? c的值为 A) 9 B) 7 C) 8 D) 6 答案:A) (90) 有以下程序 ^include mtiinO { FILE *fp; int a[10]二{1,2, 3}, i, n; fp 二fopen(z,dl?"w"); for (i二0; i<3; i++) fprintf(fp, "%d", a[i]); fprintf (fp, ; fclose(fp); fp = f()pcn("dl. dat", "r"); fscanf(fp, "%d", &n); fclose(fp); printf (z,%d\n z\ n); ) 程序的运行结果是 A) 123 B) 12300 C) 1 D) 321 答案:A) 目录 二级公共基础知识考纲 (1) 第一章数据结构与算法 (2) 第二章程序设计基础 (19) 第三章软件工程基础 (23) 第四章数据库设计基础 (32) 全国计算机等级考试二级公共基础知识考纲 考试内容 一、基本数据结构与算法 1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5.线性单链表、双向链表与循环链表的结构及其基本运算。 6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。 7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1.程序设计方法与风格。 2.结构化程序设计。 3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。 三、软件工程基础 1.软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。 2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3.结构化设计方法,总体设计与详细设计。 4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5.程序的调试,静态调试与动态调试。 四、数据库设计基础 1.数据库的基本概念:数据库,数据库管理系统,数据库系统。 2.数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。 3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。 4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。 考试方式 公共基础的考试方式为笔试,与C语言(V isualBASIC、V isual FoxPro、Java、Access、Visual C++)的笔试部分合为一张试卷。 公共基础部分占全卷的30分。公共基础知识有10道选择题和5道填空题。 第一章数据结构与算法 一、内容要点 (一)算法 1.算法的基本概念 算法是指解题方案的准确而完整的描述。即是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,没有二义性,同时该规则将在有限次运算后可终止。 1)算法的基本特征 (1)可行性 由于算法的设计是为了在某一个特定的计算工具上解决某一个实际的问题而设计的,因此,它总是受到计算工具的限制,使执行产生偏差。 全国计算机等级考试二级公共基础知识要点汇总 第一章数据结构与算法 1.1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算包括:算术运算、逻辑运算、关系运算、数据传输。 算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3 线性表及其顺序存储结构 线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 非空线性表的结构特征: (1)且只有一个根结点a1,它无前件; 第一章数据结构 一、选择题 (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 【解析】对队列可以进行插入和删除数据的操作,只是插入数据只能在队尾,删除数据只能在队头。所以队列是先进先出的线性表。 (6)设有下列二叉树: A 全国计算机二级考试公共基础知识总结 第一章数据结构与算法 1.1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括:(1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算包括:算术运算、逻辑运算、关系运算、数据传输。 算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3 线性表及其顺序存储结构 线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由 1.1 算法 考点1 算法的基本概念 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 算法(algorithm)是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的;此顺序将在有限的次数后终止。算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 1算法的基本特征 (1)可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。 (2)确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。 (3)有穷性(finiteness):算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。 (4)拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效。 2算法的基本要素 (1)算法中对数据的运算和操作:每个算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。 计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列在一般的计算机系统中,基本的运算和操作有以下4类: ①算术运算:主要包括加、减、乘、除等运算; ②逻辑运算:主要包括“与”、“或”、“非”等运算; ③关系运算:主要包括“大于”、“小于”、“等于”、“不等于”等运算; ④数据传输:主要包括赋值、输入、输出等操作。 (2)算法的控制结构:一个算法的功能不仅仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。算法中各操作之间的执行顺序称为算法的控制结构。 算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。 (3)算法设计的基本方法 计算机算法不同于人工处理的方法,下面是工程上常用的几种算法设计,在实际应用时,各种方法之间往往存在着一定的联系。 (1)列举法 列举法是计算机算法中的一个基础算法。列举法的基本思想是,根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。 列举法的特点是算法比较简单。但当列举的可能情况较多时,执行列举算法的工作量将会很大。因此,在用列举法设计算法时,使方案优化,尽量减少运算工作量,是应该重点注意的。 (2)归纳法 归纳法的基本思想是,通过列举少量的特殊情况,经过分析,最后找出一般的关系。从本质上讲,归纳就是通过观察一些简单而特殊的情况,最后总结出一般性的结论。 公共基础知识总结 第一章数据结构与算法 1.1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3 线性表及其顺序存储结构 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 非空线性表的结构特征: (1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。线性表的顺序存储结构具有以下两个基本特点: (1)线性表中所有元素的所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。 顺序表的运算:插入、删除。(详见14--16页) 1.4 栈和队列 栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。 栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。 栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,front指针指向队头。 队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。 队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。 循环队列:s=0表示队列空,s=1且front=rear表示队列满 1.5 线性链表 数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。 全国计算机等级考试二级公共基础知识复习资料 全国计算机等级考试二级公共基础知识复习资料 第一章数据结构与算法 1.1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算包括:算术运算、逻辑运算、关系运算、数据传输。算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。算法时间复杂度是指执行算法所需要的计算工作量。算法空间复杂度是指执行这个算法所需要的内存空间。1.2 数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。非线性结构:不满足线性结构条件的数据结构。 1.3 线性表及其顺序存储结构 线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 第一章数据结构与算法 算法 1、算法:是指解题方案的准确而完整的描述。算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 2、算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括:(1)可行性;(2)确定性(3)有穷性(4)拥有足够的情报。 3、算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 4、指令系统:一个计算机系统能执行的所有指令的集合。 5、基本运算包括:算术运算、逻辑运算、关系运算、数据传输。 6、算法的控制结构:顺序结构、选择结构、循环结构。 7、算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 8、算法复杂度:算法时间复杂度和算法空间复杂度。 9、算法时间复杂度是指执行算法所需要的计算工作量。 10、算法空间复杂度是指执行这个算法所需要的内存空间。 数据结构的基本基本概念 1、数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。数据结构是指相互有关联的数据元素的集合。 2、数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。数据的存储结构有顺序、链接、索引等。 3、线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。非线性结构:不满足线性结构条件的数据结构。 线性表及其顺序存储结构 1、线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 2、非空线性表的结构特征: (1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。 3、线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 4、顺序表的运算:插入、删除。 栈和队列 1、栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom 表示栈底。 2、栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。 3、队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,front 指针指向队头。 4、队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。 线性链表 计算机二级公共基础知识要点总结 1.栈按先进后出的原则组织数据,所以入栈最早的最后出栈,而队列是先进先出的线性 表。 2.循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的线性表。 在循环队列中只需要对头指针与队尾两个指针来共同反映队列中元素的动态变化情况。 3.当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性 表,在最坏的情况下二分法查找只需要比较log2n次,而顺序查找需要比较n次。 4.链式存储结构既可以针对线性结构也可以针对非线性结构。 链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间。 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。 5.数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道一般在旁边标 注数据流名。 程序流程图中带有箭头的线段表示的是控制流。 6.在软件开发中,需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定 树与判定表。 7.“对象”有如下一些基本特点:标识唯一性,分类型,多态性,封装性,模块独立性好。 8.数据管理发展至今已经历了三个阶段:人工管理阶段,文件系统阶段和数据库系统阶段。 其中最后一个阶段结构简单,使用方便,逻辑性强,物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位。 9.自然链接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性 组,并且在结果中把重复的属性列去掉。 10.内存又称主存,是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取 速率快。所以微机中访问速度最快的存储器是内存。 11.计算机能直接识别和执行的语言是机器语言,机器语言是用二进制代码表示的计算机能 直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活,直接执行和速度快等特点。 12.1MB=1024KB=1024*1024B=220B 13.Internet的四层结构分别是:网络接口层,网络层,传输层和应用层。 14.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。 15.栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。 16.二叉树的基本性质:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一 个。 例如:某二叉树有五个度为2的结点,则该二叉树中的叶子结点数是5+1=6个。 17.冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆 排序在最坏的情况下需要比较的次数是nlog2n,即在排序方法中,最坏情况下比较次数最少的是堆排序。 18.软件按功能可分为:应用软件,系统软件和支撑软件(或工具软件)。 19.软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误。 程序调试的基本步骤有:错误定位,修改设计和代码,以排除错误进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。 20.软件测试的基本准则有:所有测试都应追溯到需求,严格执行测试计划,排除测试的随 意性,充分注意测试中的群集现象,程序员应避免检查自己的程序,穷举测试不可能, 全国计算机等级考试二级公共基础知识考纲 考试内容 一、基本数据结构与算法 1、算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2、数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3、线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4、栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5、线性单链表、双向链表与循环链表的结构及其基本运算。 6、树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。 7、顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1、程序设计方法与风格。 2、结构化程序设计。 3、面向对象的程序设计方法,对象,方法,属性及继承与多态性。 三、软件工程基础 1、软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。 2、结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3、结构化设计方法,总体设计与详细设计。 4、软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统 测试。 5、程序的调试,静态调试与动态调试。 四、数据库设计基础 1、数据库的基本概念:数据库,数据库管理系统,数据库系统。 2、数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。 3、关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。 4、数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。 考试方式:公共基础的考试方式为笔试,与C语言(VisualBASIC、Visual FoxPro、Java、Access、Visual C++)的笔试部分合为一张试卷。公共基础部分占全卷的30分。公共基础知识有10道选择题和5道填空题。 第一章数据结构与算法 一、内容要点 (一)算法 1.算法的基本概念:算法是指解题方案的准确而完整的描述。即是一组严谨地定义运算顺序的规则,并且 2017计算机二级公共基础知识完整 第一章数据结构与算法 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。 详细重点学习知识点: 1.算法的概念、算法时间复杂度及空间复杂度的概念 2.数据结构的定义、数据逻辑结构及物理结构的定义 3.栈的定义及其运算、线性链表的存储方式 4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历 5.二分查找法 6.冒泡排序法 1.1 算法 考点1 算法的基本概念 考试链接: 考点1在笔试考试中考核的几率为30% ,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。 2.算法的基本要素: (1)算法中对数据的运算和操作一个算法由两种基 本要素组成:一是对数据对象的运算和操作;二是算 法的控制结构。在一般的计算机系统中,基本的运算 和操作有以下4类:算术运算、逻辑运算、关系运算 和数据传输。 (2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。 考点2 算法复杂度 考试链接: 考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70% ,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。 1.算法的时间复杂度算法的时间复杂度是指执行算 法所需要的计算 工作量。 同一个算法用不同的语言实现,或者用不同的编译 程序进行编译,或者在不同的计算机上运行,效率均不 同。这表明使用绝对的时间单位衡量算法的效率是不合 适的。撇开这些与计算机硬件、软件有关的因素,可 以认为一个特定算法" 运行工作量" 的大小,只依赖 于问题的规模(通常用整数n表 示),它是问题规模的函数。即算法的工作量=f(n) 2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需要的内存 二级公共基础知识分类模拟题43 单项选择题 1、下列叙述中正确的是______。 A.所谓算法就是计算方法 B.程序可以作为算法的一种描述方法 C.算法设计只需考虑得到计算结果 D.算法设计可以忽略算法的运算时间 2、下列叙述中正确的是______。 A.算法的复杂度包括时间复杂度与空间复杂度 B.算法的复杂度是指算法控制结构的复杂程度 C.算法的复杂度是指算法程序中指令的数量 D.算法的复杂度是指算法所处理的数据量 3、下列叙述中正确的是______。 A.算法的时间复杂度与计算机的运行速度有关 B.算法的时间复杂度与运行算法时特定的输入有关 C.算法的时间复杂度与算法程序中的语句条数成正比 D.算法的时间复杂度与算法程序编制者的水平有关 4、下列叙述中正确的是______。 A.非线性结构可以为空 B.只有一个根结点和一个叶子结点的必定是线性结构 C.只有一个根结点的必定是线性结构或二叉树 D.没有根结点的一定是非线性结构 5、设数据结构B=(D,R),其中 D={a,b,c,d,e,f} R={(f,a),(d,b),(e,d),(c,e),(a,c)} 该数据结构为______。 A.线性结构 B.循环队列 C.循环链表 D.非线性结构 6、下列叙述中正确的是______。 A.矩阵是非线性结构 B.数组是长度固定的线性表 C.对线性表只能作插入与删除运算 D.线性表中各元素的数据类型可以不同 7、在线性表的顺序存储结构中,其存储空间连续,各个元素所占的字节数______。 A.不同,但元素的存储顺序与逻辑顺序一致 B.不同,且其元素的存储顺序可以与逻辑顺序不一致 C.相同,元素的存储顺序与逻辑顺序一致 D.相同,但其元素的存储顺序可以与逻辑顺序不一致 8、下列叙述中正确的是______。 A.能采用顺序存储的必定是线性结构 B.所有的线性结构都可以采用顺序存储结构 C.具有两个以上指针的链表必定是非线性结构 D.循环队列是队列的链式存储结构 9、下列叙述中正确的是______。 A.在栈中,栈顶指针的动态变化决定栈中元素的个数 1.1 算法 考点1 算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 算法(algorithm)是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的;此顺序将在有限的次数后终止。算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。 1 算法的基本特征 (1) 可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。 (2) 确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。 ⑶有穷性(finiteness):算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。 (4)拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效。 2 算法的基本要素 (1) 算法中对数据的运算和操作:每个算法实际上是按解题要求从环境能进行的所 有操作中选择合适的操作所组成的一组指令序列。计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列在一般的计算机系统中,基本的运算和操作有以下 4 类: ①算术运算:主要包括加、减、乘、除等运算; ②逻辑运算:主要包括“与” 、“或”、“非”等运算; ③关系运算:主要包括“大于” 、“小于”、“等于”、“不等于”等运算; ④数据传输:主要包括赋值、输入、输出等操作。 (2) 算法的控制结构:一个算法的功能不仅仅取决于所选用的操作,而且还与各操 作之间的执行顺序有关。算法中各操作之间的执行顺序称为算法的控制结构。算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且 也直接反映了算法的设计是否符合结构化原则。描述算法的工具通常有传统流程图、N-S 结构化流程图、算法描述语言等。一个算法一般都可以用顺序、选择、循环3 种基本控制结构组合而成。 (3) 算法设计的基本方法 计算机算法不同于人工处理的方法,下面是工程上常用的几种算法设计,在实际应用时,各种方法之间往往存在着一定的联系。 (1) 列举法 列举法是计算机算法中的一个基础算法。列举法的基本思想是,根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。 列举法的特点是算法比较简单。但当列举的可能情况较多时,执行列举算法的工作量将会很大。因此,在用列举法设计算法时,使方案优化,尽量减少运算工作量,是应该重点注意的。 (2) 归纳法 归纳法的基本思想是,通过列举少量的特殊情况,经过分析,最后找出一般的关系。从 本质上讲,归纳就是通过观察一些简单而特殊的情况,最后总结出一般性的结论。 (3) 递推递推是指从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简而确定。递推本质上也属于归纳法,工程上许多递推关系式实际上是通过对实际问题的分析与归纳而得到的,因此,递推 关系式往往是归纳的结果。对于数值型的递推算法必须要注意数值计算的稳定性问题。 第1章数据结构与算法 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。 详细重点学习知识点: 1.算法的概念、算法时间复杂度及空间复杂度的概念 2.数据结构的定义、数据逻辑结构及物理结构的定义 3.栈的定义及其运算、线性链表的存储方式 4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历 5.二分查找法 6.冒泡排序法 1.1算法 考点1 算法的基本概念 考试链接: 考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。 2.算法的基本要素: (1)算法中对数据的运算和操作 基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。 (2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。 一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。 考点2 算法复杂度 考试链接: 考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。 1.算法的时间复杂度 算法的时间复杂度是指执行算法所需要的计算工作量。 同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。即 算法的工作量=f(n) 2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需要的内存空间。 全国计算机二级考试公共基础知识(全) (2010-01-13 17:13:54) 转载 标签:it 分类:天下快报(热点聚焦) 第一章数据结构与算法 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。 详细重点学习知识点: 1.算法的概念、算法时间复杂度及空间复杂度的概念 2.数据结构的定义、数据逻辑结构及物理结构的定义 3.栈的定义及其运算、线性链表的存储方式 4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历 5.二分查找法 6.冒泡排序法 1.1算法 考点1 算法的基本概念 考试链接: 考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。 2.算法的基本要素: (1)算法中对数据的运算和操作 一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。 在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。 (2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。 考点2 算法复杂度 考试链接: 考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。 1.算法的时间复杂度 算法的时间复杂度是指执行算法所需要的计算工作量。 同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。即 算法的工作量=f(n) 2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需要的内存空间。 一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。 疑难解答:算法的工作量用什么来计算? 算法的工作量用算法所执行的基本运算次数来计算,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n 是问题的规模。 1.2数据结构的基本概念 考点3 数据结构的定义 考试链接: 考点3在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为识记内容,读者还应该识记数据的逻辑结构和存储结构的概念。 数据结构作为计算机的一门学科,主要研究和讨论以下三个方面: (1)数据集合中个数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据元素进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 整理好的超完整计算机二级公共基础知识 第1章数据结构与算法 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。 详细重点学习知识点: 1.算法的概念、算法时间复杂度及空间复杂度的概念 2.数据结构的定义、数据逻辑结构及物理结构的定义 3.栈的定义及其运算、线性链表的存储方式 4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历 5.二分查找法 6.冒泡排序法 1.1算法 考点1 算法的基本概念 考试链接: 考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。 2.算法的基本要素: (1)算法中对数据的运算和操作 基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。 (2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。 一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。 考点2 算法复杂度 考试链接: 考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。 1.算法的时间复杂度 算法的时间复杂度是指执行算法所需要的计算工作量。 同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定 .WORD.格式.2011全国计算机等级考试二级公共基础知识教程
全国计算机等级考试二级公共基础知识要点汇总
计算机二级公共基础知识题库及答案
全国计算机二级考试公共基础知识总结
计算机二级公共基础知识(全)
全国计算机等级考试二级公共基础知识总结
全国计算机等级考试二级公共基础知识
计算机二级公共基础知识高频考点归纳总结
计算机二级公共基础知识要点总结
全国计算机等级考试二级公共基础知识考纲
2017计算机二级公共基础知识完整
二级公共基础知识分类模拟题43
计算机二级公共基础知识(全)
整理好的超完整计算机二级公共基础知识
全国计算机二级考试公共基础知识
整理好的超完整计算机二级公共基础知识
全国计算机等级考试二级公共基础知识__复习试题提纲
1.1 算法 算法:是解题方案的准确而完整的描述。通俗地说,算法就是计算机解题的过程。算 法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。 (1)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有 多义性; (2)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止; (3)可行性,算法原则上能够精确地执行; (4)拥有足够的情报。 算法效率的度量—算法复杂度:算法时间复杂度和算法空间复杂度。★★★ 算法时间复杂度:指执行算法所需要的计算工作量。即算法执行过程中所需要的基本 运算次数。 算法空间复杂度:指执行这个算法所需要的内存空间。 1.2 数据结构的基本概念 数据结构:指相互有关联的数据元素的集合。 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 线性结构的条件,(一个非空数据结构): (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3 线性表及其顺序存储结构 线性表的顺序存储结构具有以下两个基本特点: (1)线性表中所有元素所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 顺序表的运算:查找、插入、删除。 1.4 线性链表 数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结 点。 结点由两部分组成: (1) 用于存储数据元素值,称为数据域; (2) 用于存放指针,称为指针域,用于指向前一个或后一个结点。 在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与 数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。 链式存储方式即可用于表示线性结构,也可用于表示非线性结构。 线性链表的基本运算:查找、插入、删除。
.专业资料.整理分享.