一、选择题1.下列叙述中正确的是()。A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构D。【解析】本题主要考查栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后关系的复杂程度。一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。2.支持子程序调用的数据结构是()。A.栈B.树C.队列D.二叉树A。【解析】栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。3.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。A.10B.8C.6D.4C。【解析】根据二叉树的性质,在任意二叉树中,度为O的结点(即叶子结点)总是比度为2的结点多一个。4.下列排序方法中,最坏情况下比较次数最少的是()。A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序D。【解析】冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为n(n-1)/2,而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。5.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列属于应用软件的是()。A.编译程序B.操作系统C.教务管理系统D.汇编程序C。【解析】编译程序和汇编程序属于支撑软件,操作系统属于系统软件,而教务管理系统属于应用软件。6.下列叙述中错误的是()。A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试计划,排除测试的随意性A。【解析】软件测试是为了发现错误而执行程序的过程。软件测试要严格执行测试计划,排除测试中的随意性。程序调试通常也称Debug,对被调试的程序进行“错误”定位是程序调试的必要步骤。7.下列叙述中正确的是()。A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度B。【解析】耦合性是反映模块间互相连接的紧密程度,内聚性是指一个模块内部各个元素间彼此接合的紧密程序。提高模块的内聚性,降低模块的耦合性,有利于模块的独立性。8.数据库应用系统中的核心问题是()。A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训A。【解析】数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。所以数据库设计是数据库应用的核心。9.有两个关系R,S如下:由关系R通过运算得到关系S,则所使用的运算为()。A.选择B.投影C.插入D.连接B。【解析】一个关系R通过投影运算后仍为一个关系R,R是由R中投影运算所指出的那些域的列所组成的关系。所以题目中关系s是由关系R经过投影运算所得。(选择运算主要是对关系R中选择由满足逻辑条件的元组所组成的一个新关系。)10.将E-R图转换为关系模式时,实体和联系都可以表示为()。A.属性B.键C.关系D.域C。【解析】将E-R图转换为关系模式时,实体和联系都可以表示为关系。11.在窗体上画一个命令按钮和一个文本框(名称分别为Command1和Text1),并把窗体的KeyPreview属性设置为True,然后编写下列代码:DimSaveAllAsStringPrivateSubForm_Load()ShowText1.Text=""Text1.SetFocusEndSubPrivateSubCommand1_Click()Text1.Text=LCase(SaveAll)+SaveAllEndSubPrivateSubForm_KeyPress(KeyAsciiAsInteger)SaveAll=SaveAll+Chr(KeyAscii)EndSub程序运行后,直接用键盘输入VB,再单击命令按钮,则文本框中显示的内容为()。A.vbVBB.不显示任何信息C.VBD.出错A。【解析】KeyPreview属性用于设置是否在控件的键盘事件之前激活窗体的键盘事件。KeyPress(KeyAsciiAsInteger)事件是在对象具有焦点时,按下键盘上的键时触发的事件。KeyAscii参数是所按键的Ascii的代码将每个字符的大、小写形式作为不同的键代码解释。Chr()可返回Ascii码对应的字符。本题程序运行时,在文本框中每输入一个字符,该字符将被连入变量SaveAll中,当输入为“VB”时,SaveAll="VB"。单击命令按钮后,文本框中显示内容应为“vbVB”。12.设有下列程序PrivateSubForm_Click()x=50Fori=1To4y=InputBox("请输入一个整数")y=Val(y)IfyMod5=0Thena=a+yx=yElsea=a+xEndIfNextiPrintaEndSub程序运行后,单击窗体,在输入对话框中依次输入15、24、35、46,输出结果为()。A.100B.50C.120D.70A。【解析】本题源程序通过For循环输入4个整数,并判断其是否能被5整除,若能被5整除,则将其累加入变量a中,并将其赋值给变量x;否则将变量x的值累加入变量a中。第1次执行循环体时,输入值为15,a=0+15,x=15。第2次执行循环体时,输入值为24,a=15+15=30;第3次执行循环体时,输入值为35,a=30+35=65,x=35;第4次执行循环体时,输入值为46,a=65+35=100。13.下列关于菜单的叙述中,错误的是()。A.当窗体为活动窗体时,用<Ctrl+E>键可以打开菜单编辑器B.把菜单项的Enabled属性设置为False,则可删除该菜单项C.弹出式菜单在菜单编辑器中设计D.程序运行时,利用控件数组可以实现菜单项的增加或减少B。【解析】VisualBasic中的菜单(包括弹出式菜单)是通过菜单编辑器来设计的。打开某个活动窗体的菜单编辑器有4种方法:(1)选择菜单【工具】→【菜单编辑器】命令;(2)单击工具栏中的“菜单编辑器”图标;(3)使用快捷键<Ctrl+E>;(4)右击窗体,从弹出的快捷菜单中选择【菜单编辑器】命令。菜单项的“有效”属性(即Enabled)是控制菜单项的有效性的,当把一个菜单项的“有效”属性设置为False,就可以使其失效,运行后该菜单项变为灰色。菜单项的增减也可通过控件数组来实现。控件数组可以在设计阶段建立,也可以在运行时建立。利用这一特点,可在设计时建立菜单控件数组的第一个元素,该元素的下标为0,Visible属性为False。在程序运行时,通过Load语句来建立该菜单控件数组的新元素,并将其Visible属性设置为True,从而实现增加菜单项的功能。删除菜单项时可通过UnLoad语句来实现。14.下列叙述中错误的是()。A.在程序运行时,通用对话框控件是不可见的B.调用同一个通用对话框控件的不同方法(如ShowOpen或ShowSave),可以打开不同的对话框窗口C.调用通用对话框控件的Showopen方法,能够直接打开在该通用对话框中指定的文件D.调用通用对话框控件的ShowColor方法,可以打开颜色对话框窗口C。【解析】通用对话框(CommonDialog)可提供诸如打开文件、保存文件、设置打印选项、选择颜色和字体、显示帮助等操作的一组标准对话框,该控件运行时不可见。通用对话框可显示的对话框类型及其对应的Action属性值及方法如下。Action属性值显示的对话类型有:0无操作,1打开文件ShowOpen,2存为文件ShowSave,3选择颜色ShowColor,4选择字体ShowFont,5打印ShowPrinter,6调用“帮助”文件ShowHelp。15.设在工程文件中有一个标准模块,其中定义了下列记录类型:TypeBooksNameAsString*10TelNumAsString*20EndType在窗体上画一个名为Command1的命令按钮,要求当执行事件过程Command1Click时,在顺序文件Person.txt中写入一条Books类型的记录。下列能够完成该操作的事件过程是()。A.PrivateSubCommand1_Click()DimBASBooksOpen"Persontxt"ForOutputAs#1B.Name=InputBox("输入姓名")B.TelNum=lnputBox("输入电话号码")Write#1BName,BTelNumClose#1EndSubB.PrivateSubCommand1_Click()DimBAsBooksOpen"Persontxt"ForInputAs#1B.Name=InputBox("输入姓名")B.TelNum=InputBox("输入电话号码")Print#1,B.Name,B.TelNamClose#1EndSubC.PrivateSubCommand1_Click()DimBASBooksOpen"Persontxt"ForOutputAs#1B.Name=InputBox("输入姓名")B.TelNum=InputBox("输入电话号码")Write#1,BClose#1EndSubD.PrivateSubCommand1_Click()Open"Persontxt"ForInputAs#1Name=lnputBox("输入姓名")TelNum=lnputBox("输入电话号码")Prim#1NameTelNumClose#1EndSubA。【解析】Type语句用于在模块级别(过程外的任何代码都被看做模块级别代码,必须先列出声明,随后列出过程)中定义一个用户自己的数据类型,本质上是一个数据类型集合,它含有一个至一个以上的成员。每个成员可以被定义为不同的数据类型。当声明自定义类型变量后,可通过“变量名.成员名”来访问自定义变量中的元素。VisualBasic程序中关于文件的操作,主要是先打开一个文件,然后对这个文件进行读或写的操作,操作完成后,关闭这个文件。打开文件的基本格式为:OpenFileNameForModeAs#FileNumber。打开方式主要有Output、Append、Input、Random等几种,Output、Append、Input方式打开的文件进行的读写操作都是以顺序方式进行的,其中Output、Append打开的文件主要用来输出数据,与Print#、Write#等方法配合使用;以Input方式打开的文件主要用来读入数据,它与Input#、LineInput#语句配合使用。本题中,选项B和选项D均是以Input方式打开文件,显然错误,选项C中向顺序文件中写入记录的语句错误,正确答案只有选项A。16.窗体上有一个名称为Command1的命令按钮,其单击事件过程及有关函数过程如下:PrivateSubCommand1_Click()DimnAsIntegern=add(5,10)PrintnEndSubFunctionadd(v1AsInteger,v2AsInteger,Optionalv3)AsIntegerIfNotIsMissing(v3)Thenadd=v1+v2+v3Elseadd=v1+v2EndIfEndFunction运行程序,单击命令按钮,以下叙述中正确的是()。A.程序不能正常运行,因为函数add的参数定义有错B.程序不能正常运行,因为函数定义与函数调用语句的参数个数不匹配C.程序能正常运行,结果是在窗体上显示15D.程序能正常运行,结果是在窗体上显示510v3C。【解析】本题考查add方法里IsMissing的v3,v3是一个可选项,