全国计算机等级考试二级公共基础知识课后习题及答案第一章数据结构与算法一.选择题1.算法的时间复杂度是指()A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数2.算法的空间复杂度是指()A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间3.下列叙述中正确的是()A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构4.数据的存储结构是指()A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据5.下列关于队列的叙述中正确的是()A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表6.下列关于栈的叙述中正确的是()A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表8.在深度为5的满二叉树中,叶子结点的个数为()A.32B.31C.16D.159.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为()A.N+1B.NC.(N+1)/2D.N/210.设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1.则T的叶子结点数为A.8B.7C.6D.5二.填空题1.对长度为n的有序线性表中进行二分查找,需要的比较次数为()2.设一棵完全二叉树共有700个结点,则在该二叉树中有()个叶子结点3.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为()4.在最坏情况下,冒泡排序的时间复杂度为()5.在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列中共有()个元素第一章参考答案一.选择题1.C2.D3.A4.B5.C6.D7.B8.B9.B10.A二.填空题1)log2n2)3503)DEBFCA4)N(N-1)/25)3第二章程序设计基础一.选择题1.结构化程序设计主要强调的是()A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性2.对建立良好的程序设计风格,下面描述正确的是()A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无3.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送()A.调用语句B.命令C.口令D.消息4.信息隐蔽的概念与下述哪一种概念直接相关?()A.软件结构定义B.模块独立性C.模块类型划分D.模块耦合度5.下面对对象概念描述错误的是()A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性二.填空题1.结构化程序设计的三种基本逻辑结构为顺序、选择和()2.源程序文档化要求程序应加注释。注释一般分为序言性注释和()3.在面向对象方法中,信息隐蔽是通过对象的()性来实现的4.类是一个支持集成的抽象数据类型,而对象是类的()5.在面向对象方法中,类之间共享属性和操作的机制称为()第二章参考答案一.选择题1.B2.A3.D4.B5.A二.填空题1)重复(或循环)2)功能性3)封装4)实例5)继承转贴第三章软件工程基础一.选择题1.在软件生命令周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()A.概要设计B.详细设计C.可行性研究D.需求分析2.下面不属于软件工程的3个要素的是()A.工具B.过程C.方法D环境3.检查软件产品是否符合需求定义的过程称为()A.确认测试B.集成测试C.验证测试D.验收测试4.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()A.控制流B.加工C.数据存储D.源和潭5.下面不属于软件设计原则的是A.抽象B.模块化C.自底向上D.信息隐蔽6.程序流程图(PFD)中的箭头代表的是()A.数据流B.控制流C.调用关系D.组成关系7.下列工具中为需求分析的常用工具的是()A.PADB.PFDC.N-SD.DFD8.在结构化方法中,软件功能分解属于下列软件开发中的阶段是()A.详细设计B.需求分析C.总体设计D.编程调试9.软件调试的目的是()A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能10.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及()A.阶段性报告B.需求评审C.总结D.都不正确二.填空题1.软件是程序、数据和()的集合.2.Jackson方法是一种面向()的结构化方法3.软件工程研究的内容主要包括()技术和软件工程管理4.数据流图的类型有()和事务型5.软件开发环境是全面支持软件开发全过程的()集合。第三章参考答案一.选择题1.D2.D3.A4.A5.C6.B7.D8.C9.B10.B二.填空题1)文档2)数据流3)软件开发4)变换型5)软件工具转贴第四章数据库设计基础一.选择题1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()A.数据库系统B.文件系统C.人工管理D.数据项管理2.下述关于数据库系统的叙述正确的是()A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据3.数据库系统的核心是()A.数据库B.数据库管理系统C.数据模型D.软件工具4.用树形结构来表示实体之间联系的模型称为()A.关系模型B.层次模型C.网状模型D.数据模型5.关系表中的每一横行称为一个()A.元组B.字段C.属性D.码6.按条件f对关系R进行选择,其关系代数表达式是()A.R|×|RB.R|×|RC.σf(R)D.πf(R)7.关系数据管理系统能实现的专门关系运包括()A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表8.在关系数据库中,用来表示实体之间联系的是()A.树结构B.网结构C.线性表D.二维表9.数据库设计包括两个方面的设计内容,它们是()A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计10将E-R图转换到关系模式时,实体与联系都可以表示成()A.属性B.关系C.键D.域二.填空题1.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体”项目主管”与实体”项目”的联系属于()的联系.2.数据独立性分为逻辑独立性和物理独立性.当数据的存储结构改变时,其逻辑结构可以不变。因此,基于逻辑结构的应用程序不必修改,称为()3.数据库系统中实现各种数据管理功能的核心软件称为()4.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、()和自定义完整性.5.在关系模型中,把数据看成一个二维表,每一个二维表称为一个()转贴于第四章参考答案一.选择题1.A2.A3.B4.B5.A6.C7.B8.D9.A10.B三.填空题1)一对多(或1:N)2)逻辑独立性3)数据库管理系统4)参照完整性5)关系转贴于一、选择题(1)下列关于栈的叙述正确的是A)栈是非线性结构B)栈是一种树状结构C)栈具有先进先出的特征D)栈具有后进先出的特征(2)结构化程序设计所规定的三种基本控制结构是A)输入、处理、输出B)树形、网形、环形C)顺序、选择、循环D)主程序、子程序、函数(3)结构化程序设计的一种基本方法是A)筛选法B)递归法C)归纳法D)逐步求精法(4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是:A)选择B)投影C)连接D)并二、填空题1.对于输入为N个数进行快速排序算法的平均时间复杂度是()2.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是()3.软件测试方法中,黑盒测试个白盒测试法是常用的方法,其中黑盒测试法主要是用于测试()4.关系型数据库管理系统中存储与管理数据的基本形式是()C语言程序设计一、选择题(1)以下程序的输入结果是main(){inti=010,j=10,k=x10;printf(%d,%d,%d,i,j,k);}A)8,10,16B)8,10,10C)10,10,10D)10,10,16(2)指针s所指字符串的长度char*s=NameAddress;A)说法不合法B)19C)18D)15(3)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型(4)为表示关系x大于等于y大于等于z,应使用C语言表达式A)(x=Y)&&(Y=z)B)(x=Y)AND(y=z)C)(x=Y=z)D)(x=Y)&(Y=z)(5)下列对C语言字符数组的描述中错误的是A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较(6)以下说法中正确的是A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分(7)以下程序段的输出结果是intx=3;do{printf(%3d,x-=2);}while(!(--x));A)1B)30C)1-2D)死循环(8)设有如下定义:char*aa[2]={abcd,ABCD};则以下说法中正确的是A)aa数组元素的值分别是abcd和ABCDB)aa是指针变量,它指向含有两个数组元素的字符型一维数组C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符'a'和'A'的地址(9)设有以下定义:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是A)*((*prt+1)[2])B)*(*(p+5))C)(*prt+1)+2D)*(*(a+1)+2)(10)以下程序的输出结果是fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*P;p=(int*)malloc(sizeof(int));fut(&p,a);print(%,*p);}A)1B)7C)9D)11二、填空题(1)表示条件:10(2)下列程序的输出结果是()#includemain(){charb[]=ABCDEFG;char*chp=&b[7];while(--chp&b[0])putchar(*chp);putchar();}(3)下列程序的输出结果是()intast(intx,intY,int*cp,int*dp){*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=4;b=3;ast(a,b,&c,&d);print(%d%dn,c,d);}(4)阅读程序:main(){charstr1[]=howdoyoudo,str2[10];char*p1=str1,*p2=str2;scanf(%s,p2);printf(%s,p2);printf(%s,p1);}运行上面的程序,输入字符串HOWDOYOUDO则程序的输出结果是()(5)以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志。请填空。#includemain(){FILE*fp;charch,fname[10];printf(Inputthenameoffile);gets(fname);gets(fnam