全国计算机等级考试模拟题二带操作题及答案.docx
《全国计算机等级考试模拟题二带操作题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试模拟题二带操作题及答案.docx(31页珍藏版)》请在冰豆网上搜索。
![全国计算机等级考试模拟题二带操作题及答案.docx](https://file1.bdocx.com/fileroot1/2023-2/23/c5389e48-38cb-4d99-9b99-ac134dc5781b/c5389e48-38cb-4d99-9b99-ac134dc5781b1.gif)
全国计算机等级考试模拟题二带操作题及答案
一、选择题
1.下列叙述中正确的是()。
A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
D。
【解析】本题主要考查栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。
根据数据结构中各数据元素之间的前后关系的复杂程度。
一般将数据结构分为两大类型:
线性结构与非线性结构。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
2.支持子程序调用的数据结构是()。
A.栈B.树C.队列D.二叉树
A。
【解析】栈是一种限定在一端进行插入与删除的线性表。
在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。
所以一般采用栈式存储方式。
3.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。
A.10B.8C.6D.4
C。
【解析】根据二叉树的性质,在任意二叉树中,度为O的结点(即叶子结点)总是比度为2的结点多一个。
4.下列排序方法中,最坏情况下比较次数最少的是()。
A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序
D。
【解析】冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为n(n-1)/2,而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。
5.软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下列属于应用软件的是()。
A.编译程序B.操作系统C.教务管理系统D.汇编程序
C。
【解析】编译程序和汇编程序属于支撑软件,操作系统属于系统软件,而教务管理系统属于应用软件。
6.下列叙述中错误的是()。
A.软件测试的目的是发现错误并改正错误
B.对被调试的程序进行“错误定位”是程序调试的必要步骤
C.程序调试通常也称为Debug
D.软件测试应严格执行测试计划,排除测试的随意性
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,然后编写下列代码:
DimSaveAllAsString
PrivateSubForm_Load()
ShowText1.Text=""
Text1.SetFocus
EndSub
PrivateSubCommand1_Click()
Text1.Text=LCase(SaveAll)+SaveAll
EndSub
PrivateSubForm_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=50
Fori=1To4
y=InputBox("请输入一个整数")
y=Val(y)
IfyMod5=0Then
a=a+y
x=y
Else
a=a+x
EndIf
Nexti
Printa
EndSub
程序运行后,单击窗体,在输入对话框中依次输入15、24、35、46,输出结果为()。
A.100B.50C.120D.70
A。
【解析】本题源程序通过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.设在工程文件中有一个标准模块,其中定义了下列记录类型:
TypeBooks
NameAsString*10
TelNumAsString*20
EndType
在窗体上画一个名为Command1的命令按钮,要求当执行事件过程Command1Click时,在顺序文件Person.txt中写入一条Books类型的记录。
下列能够完成该操作的事件过程是()。
A.PrivateSubCommand1_Click()
DimBASBooks
Open"Persontxt"ForOutputAs#1
B.Name=InputBox("输入姓名")
B.TelNum=lnputBox("输入电话号码")
Write#1BName,BTelNum
Close#1
EndSub
B.PrivateSubCommand1_Click()
DimBAsBooks
Open"Persontxt"ForInputAs#1
B.Name=InputBox("输入姓名")
B.TelNum=InputBox("输入电话号码")
Print#1,B.Name,B.TelNam
Close#1
EndSub
C.PrivateSubCommand1_Click()
DimBASBooks
Open"Persontxt"ForOutputAs#1
B.Name=InputBox("输入姓名")
B.TelNum=InputBox("输入电话号码")
Write#1,B
Close#1
EndSub
D.PrivateSubCommand1_Click()
Open"Persontxt"ForInputAs#1
Name=lnputBox("输入姓名")
TelNum=lnputBox("输入电话号码")
Prim#1NameTelNum
Close#1
EndSub
A。
【解析】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()
DimnAsInteger
n=add(5,10)
Printn
EndSub
Functionadd(v1AsInteger,v2AsInteger,Optionalv3)AsInteger
IfNotIsMissing(v3)Then
add=v1+v2+v3
Else
add=v1+v2
EndIf
EndFunction
运行程序,单击命令按钮,以下叙述中正确的是()。
A.程序不能正常运行,因为函数add的参数定义有错
B.程序不能正常运行,因为函数定义与函数调用语句的参数个数不匹配
C.程序能正常运行,结果是在窗体上显示15
D.程序能正常运行,结果是在窗体上显示510v3
C。
【解析】本题考查add方法里IsMissing的v3,v3是一个可选项,用来判断这个参数是否存在。
根据程序语句,当输入3个参数时,就是3个参数求和,输入2个参数时是两个数求和,题目中是2个参数,因此是2个参数求和,不会报错。
17.目录列表框Path属性所表示的含义是()。
A.当前驱动器或指定驱动器上的路径
B.当前驱动器或指定驱动器上的某目录下的文件列表
C.根目录下的文件列表D.指定路径下的文件列表
A。
【解析】目录列表框的Path是当前驱动器或指定驱动器的路径。
18.以下关于函数过程的叙述中错误的是()。
A.函数过程一定有返回值B.函数过程一定有参数
C.函数过程可以在窗体模块和标准模块中定义
D.函数过程参数的类型与返回值的类型无关
B。
【解析】函数过程可以无参数。
例如,随机函数就无参数。
19.在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
PublicEnums
a=4
b=3
EndEnum
PrivateSubCommand1_Click()
DimxAsInteger
x=a
Ifx>=3Then
MsgBox"Pass!
"
EndSub
运行程序,其结果是()。
A.运行错误,因为Enum定义有错B.运行错误,因为x=a类型不匹配
C.运行正常结束,不显示任何信息D.运行正常,显示内容为“Pass!
”的信息框
D。
【解析】Enum是枚举类型的变量,变量定义时都是要执行的,因此x>4,必然满足4>=3,弹出信息框为pass!
。
20.设有如下程序:
OptionBasel
PrivateSubForm_Click()
Dima(5)AsString,iAsInteger
Fori=1To5
a(i)=Chr(Asc("A")+i)
Callf(a,i)
Nexti
EndSub
Subf(ta()AsString,nAsInteger)
DimiAsInteger
Fori=1Ton
Printta(i);
NextiPrint
EndSub
对上述程序,以下叙述中正确的是()。
A.程序有错,因为在过程f的定义中数组参数格式不正确
B.程序可正常运行,输出内容的第一行是一个字母“A”
C.程序可正常运行,输出内容的第一行是一个字母“B”
D.程序可正常运行,输出内容的第一行是数字65
C。
【解析】Chr是Ascii码转成字符,Asc是讲字符转成Ascii码。
i是1到5的循环,仍然是一个数。
a数组就是B、C、D、E、F这5行字符。
第一行是B,程序运行后,5行分别是B,BC,BCD,BCDE,BCDEF。
21.下列说法中正确的是()。
A.当焦点在某个控件上时,按下一个字母键,就会执行该控件的KeyPress事件过程
B.因为窗体不接受焦点,所以窗体不存在自己的KeyPress事件过程
C.若按下的键相同,KeyPress事件过程中的KeyAscii参数与KeyDown事件过程中的KeyCode参数的值也相同
D.在KeyPress事件过程中,KeyAscii参数可以省略
A。
【解析】键盘事件是在对象具有焦点时,按下键盘上的键时触发的事件,常见的有KeyDown、KeyUp和KeyPress。
当用户按下并释放一个可打印的键盘字符时,KeyDown、KeyPress、KeyUp事件将依次发生。
其中,KeyDown(KeyCodeAsInteger,ShiftasInteger)和KeyUp(KeyCodeAsInteger,ShiftasInteger)有两个参数:
KeyCode参数是表示所按键的位置信息的代码(将A和a作为同一个键返回,而从大键盘上输出的1和从右侧小键盘上输入的“1”将被视作不同的字符),Shift参数代表按键时Shift、Ctrl、Alt键的状态;KeyPress(KeyAsciiAshateger)事件中KeyAscii参数是所按键的Ascii的代码,该参数不显示键盘的物理状态,而只是传递一个字符。
KeyPress将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。
Enter键的Ascii为13。
当窗体的KeyPreview属性被设置为True时,将在控件的键盘事件之前激活窗体的键盘事件。
所谓事件,是由VisualBasic预先设置好的、能够被对象识别的动作。
事件过程中的参数是不能省略的。
22.语句Dima(-3To4,3To6)AsInteger定义的数组元素个数是()。
A.18B.28C.21D.32
D。
【解析】Dim用在窗体模块或标准模块中,定义窗体或标准模块数组,也可用于过程中。
数组定义的格式可以为:
Dim数组名(第一维下标上界[,第二维下标上界]…)As类型名称;还可为:
Dim数组名([下界To]上界[,[下界To]下界]]…)As类型名称。
当使用第一种格式定义时,下标上界不能小于0,否则将出现“区间无值”的错误。
本题数组元素的个数为:
(4-(-3)+1)*(6-3+1)=32。
23.在窗体上画一个命令按钮,其名称为Command1,然后编写下列代码:
OptionBase1
PrivateSubCommand1_Click()
Dima
a=Array(1,2,3,4)
j=1
Fori=4To1Step-1
s=s+a(i)*j
j=j*10
Nexti
PrintS
EndSub
程序运行后,单击命令按钮,其输出结果是()。
A.4321B.1234C.34D.12
B.【解析】OptionBase1语句的作用是限定数组下标的默认下限值为l;Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量UBound函数用于返回数组某一维的最大下标(即上界),LBound函数用于返回数组某一维的最小下标(即下界)。
本题源程序通过For循环将1、2、3、4按顺序组成一个4位数,即1234。
24.假定通过复制、粘贴操作建立了一个命令按钮数组Command1,下列说法中错误的是()。
A.数组中每个命令按钮的名称(Name属性)均为Command1
B.若未做修改,数组中每个命令按钮的大小都一样
C.数组中各个命令按钮使用同一个Click事件过程
D.数组中每个命令按钮的Index属性值都相同
D。
【解析】控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。
添加控件数组的方法是:
先通过工具箱建立第1个控件,然后对该控件进行“复制”“粘贴”操作,粘贴时在弹出的对话框中选择建立控件数组,这时控件数组的Index值会自动从0开始编号。
若未做修改,控件数组中的每个元素的大小是一样的。
25.在窗体上画一个命令按钮,名称为Command1,然后编写下列代码:
OptionBase0
PrivateSubCommand1_Click()
DimA1(4)AsInteger,A2(4)AsInteger
Fork=0To2
A1(k+1)=InputBox("请输入一个整数")
A2(3-k)=A1(k+1)
NextkPrintA2(k)
EndSub
程序运行后,单击命令按钮,在输入对话框中依次输入2、4、6,则输出结果为()。
A.0B.1C.2D.3
C。
【解析】本题源程序中当循环结束时,循环变量k=3,故数组元素A2(3)=A1
(1)=2。
26.下列关于函数过程的叙述中,正确的是()。
A.函数过程形参的类型与函数返回值的类型没有关系
B.在函数过程中,过程的返回值可以有多个
C.当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递
D.如果不指明函数过程参数的类型,则该参数没有数据类型
A。
【解析】Function过程也叫函数过程,一般用于调用后不仅要执行一组代码完成相应操作,还需返回一个有用值的情况,Function过程定义的格式如下:
[Public1PrivateIFriend][Static]Function过程名[(参
数列表)][As数据类型]
[语句块]
[过程名=表达式]
[ExitFunction]
[语句块]
[过程名=表达式]
EndFunction
其中,在参数列表中,可以使用As子句来指定任何传给该过程的参数的数据类型,如果省略,则默认为Variant。
对于Function过程而言,过程的数据类型决定其返回值的数据类型,与过程形参的类型没有必然的关系。
Function函数的参数有两种传递方式:
按值传递(Byval)和按址传递(Byref),默认为按址(引用)传递,数组参数按址(引用)传递。
27.在窗体上画两个标签和一个命令按钮,其名称分别为Label1、Label2和Command1,然后编写下列程序:
PrivateSubfunc(LAsLabel)
L.Caption="1234"
EndSub
PrivateSubForm_Load()
Label1.Caption="ABCDE"
Label2.Caption=10
EndSub
PrivateSubCommand1_Click()
a=Val(Label2.Caption)
Callfunc(Label1)
Label2.Caption=a
EndSub
程序运行后,单击命令按钮,则在两个标签中显示的内容分别为()。
A.ABCD和10B.1234和100C.ABCD和100D.1234和10
D。
【解析】在VisualBasic中不仅可以使用变量作为形式参数,还可以使用窗体或控件作为通用过程的参数。
本题源程序在命令按钮的单击事件过程中,通过调用过程func将标签Label1的标题