二级公共基础知识(填空题40道)(1) 算法的复杂度主要包括______复杂度和空间复杂度。
时间(2) 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。(3) 若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。
答:黑盒(4) 如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体"工人"与实体"设备"之间存在______联系。答:一对多#1:n#1:n(5) 关系数据库管理系统能实现的专门关系运算包括选择、连接和______。
答:投影(6) 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。答:中序(7) 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。
答:模块化(8) 软件的调试方法主要有:强行排错法、______和原因排除法。答:回溯法(9) 数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
答:概念#概念级(10) 数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。答:数据存储(11) 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。
答:250(12) 在最坏情况下,冒泡排序的时间复杂度为______。答:n(n-1)/2#n*(n-1)/2#o(n(n-1)/2)#o(n*(n-1)/2)(13) 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。
答:实体(14) 软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。答:需求获取(15) ______是数据库应用的核心。
答:数据库设计(16) 数据结构包括数据的______结构和数据的存储结构。答:逻辑(17) 软件工程研究的内容主要包括:______技术和软件工程管理。
答:软件开发(18) 与结构化需求分析方法相对应的是______方法。答:结构化设计(19) 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
答:参照完整性(20) 数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。答:概念(21) 栈的基本运算有三种:入栈、退栈和______。
答:读栈顶元素#读栈顶的元素#读出栈顶元素(22) 在面向对象方法中,信息隐蔽是通过对象的______性来实现的。答:封装(23) 数据流的类型有______和事务型。
答:变换型(24) 数据库系统中实现各种数据管理功能的核心软件称为______。答:数据库管理系统#dbms(25) 关系模型的数据cao纵即是建立在关系上的数据cao纵,一般有______、增加、删除和修改四种cao作。
答:查询(26) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。答:空间复杂度和时间复杂度(27) 数据结构包括数据的逻辑结构、数据的 ______以及对数据的cao作运算。
答:存储结构(28) 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。
答可重用性(29) 面向对象的模型中,最基本的概念是对象和 ______。答:类(30) 软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。
答:完善性(31) 算法的基本特征是可行性、确定性、______和拥有足够的情报。答:有穷性(32) 顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
答:相邻(33) jackson结构化程序设计方法是英国的m.jackson提出的,它是一种面向______的设计方法。答:数据结构(34) 数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
答:概念设计阶段#数据库概念设计阶段(35) 数据库保护分为:安全性控制 、______、并发性控制和数据的恢复。答:完整性控制(36) 测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
答:调试(37) 在最坏情况下,堆排序需要比较的次数为______。答:o(nlog2n)(38) 若串s="program",则其子串的数目是______。
答:29(39) 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于______的联系。答:1对多#1:n(40) 数据库管理系统常见的数据模型有层次模型、网状模型和______三种。
答:关系模型。
1.栈的基本概念 栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
当表中没有元素时称为空栈。栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
栈是按照"先进后出"或"后进先出"的原则组织数据的。 2.栈的顺序存储及其运算 用一维数组S(1∶m)作为栈的顺序存储空间,其中m为最大容量。
在栈的顺序存储空间S(1∶m)中,S(bottom)为栈底元素,S(top)为栈顶元素。top=0表示栈空;top=m表示栈满。
栈的基本运算有三种:入栈、退栈与读栈顶元素。 (1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。
首先将栈顶指针加一(即top加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。
这种情况称为栈"上溢"错误。 (2)退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。
首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针减一(即top减1)。当栈顶指针为0时,说明栈空,不可进行退栈操作。
这种情况称为栈的"下溢"错误。 (3)读栈顶元素:读栈顶元素是指将栈顶元素赋给一个指定的变量。
这个运算不删除栈顶元素,只是将它赋给一个变量,因此栈顶指针不会改变。当栈顶指针为0时,说明栈空,读不到栈顶元素。
麻烦采纳,谢谢。
栈,是硬件。
主要作用表现为一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。
插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为先进后出表。
栈可以用来在函数调用的时候存储断点,做递归时要用到栈! 以上定义是在经典计算机科学中的解释。 在计算机系统中,栈则是一个具有以上属性的动态内存区域。
程序可以将数据压入栈中,也可以将数据从栈顶弹出。在i386机器中,栈顶由称为esp的寄存器进行定位。
压栈的操作使得栈顶的地址减小,弹出的操作使得栈顶的地址增大。 栈在程序的运行中有着举足轻重的作用。
最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。堆栈帧一般包含如下几方面的信息: 1. 函数的返回地址和参数 2. 临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。
二、基本算法 1、进栈(PUSH)算法 ①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②); ②置TOP=TOP+1(栈指针加1,指向进栈地址); ③S(TOP)=X,结束(X为新进栈的元素); 2、退栈(POP)算法 ①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②); ②X=S(TOP),(退栈后的元素赋给X): ③TOP=TOP-1,结束(栈指针减1,指向栈顶)。三、栈的实现 栈分顺序栈和链式栈,下面程序介绍了顺序栈的实现。
#include #include #define DataType int #define MAXSIZE 1024 typedef struct { DataType data[MAXSIZE]; int top; }SeqStack; SeqStack *Init_SeqStack()//栈初始化 { SeqStack *s; s=(SeqStack *)malloc(sizeof(SeqStack)); if(!s) { printf("空间不足\n"); return NULL; } else { s->top=-1; return s; } } int Empty_SeqStack(SeqStack *s)//判栈空 { if(s->top==-1) return 1; else return 0; } int Push_SeqStack(SeqStack *s,DataType x)//入栈 { if(s->top==MAXSIZE-1) return 0;//栈满不能入栈 else { s->top++; s->data[s->top]=x; return 1; } } int Pop_SeqStack(SeqStack *s,DataType *x)//出栈 { if(Empty_SeqStack(s)) return 0;//栈空不能出栈 else { *x=s->data[s->top]; s->top--; return 1; }//栈顶元素存入*x,返回 } DataType Top_SeqStack(SeqStack *s)//取栈顶元素 { if(Empty_SeqStack(s)) return 0;//栈空 else return s->data[s->top]; } int Print_SeqStack(SeqStack *s) { int i; printf("当前栈中的元素:\n"); for(i=s->top;i>=0;i--) printf("%3d",s->data[i]); printf("\n"); return 0; } int main() { SeqStack *L; int n,num,m; int i; L=Init_SeqStack(); printf("初始化完成\n"); printf("栈空:%d\n",Empty_SeqStack(L)); printf("请输入入栈元素个数:\n"); scanf("%d",&n); printf("请输入要入栈的%d个元素:\n",n); for(i=0;i<n;i++) { scanf("%d",&num); Push_SeqStack(L,num); } Print_SeqStack(L); printf("栈顶元素:%d\n",Top_SeqStack(L)); printf("请输入要出栈的元素个数(不能超过%d个):\n",n); scanf("%d",&n); printf("依次出栈的%d个元素:\n",n); for(i=0;i<n;i++) { Pop_SeqStack(L,&m); printf("%3d",m); } printf("\n"); Print_SeqStack(L); printf("栈顶元素:%d\n",Top_SeqStack(L)); return 0; }。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.916秒