一、选择题((1)~(35)每小题2分,共70分)。
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)在数据结构中,从逻辑上可以把数据结构分为__________。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
答案:C
评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。线性结构和非线性结构是根据数据元素之间关系的不同特性加以分类的,即是从逻辑上加以分类的。
(2)若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是__________。
A)1,4,3,2 B)2,3,4,l
C)3,1,4,2 D)3,4,2,l
答案:C
评析:栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有l,2,由于1先于2进栈,所以1不可能在2之前出栈,故选项c这种出栈序列是不可能的。
(3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为__________。
A)希尔排序 B)冒泡排序 C)插入排序 D)选择排序
答案:A
评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。
(4)在顺序表(3,6,8,10,17,15,l 6,18,2l,25,30)中,用二分法查找关键码值l1,所需的关键码比较次数为__________。
A)2 B)3 C)4 D)5
答案:C
评析:二分法查找是用查找的关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与11比较的关键码分别为15,8,10,12,故比较次数为4。
(5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为__________。
A)n-1 B)n C)n+l D)2n
答案:C
评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
(6)在软件开发过程中,软件结构是描述__________。
A)数据存储结构 B)软件体系结构 C)软件结构测试 D)软件控制过程
答案:B
评析:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
(7)模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的一类是__________。
A)顺序性内聚 B)过程性内聚 C)逻辑性内聚 D)功能性内聚
答案:D
评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚是从功能角度来度量模块内的联系。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、内聚、顺序内聚和功能内聚。
(8)数据存储和数据流都是__________,仅仅是所处的状态不同。
A)分析结果 B)事件 C)动作 D)数据
答案:D
评析:数据流图有4种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。
(9)数据的完整性是指数据的正确性、有效性和__________。
A)可维护性 B)独立性 C)安全性 D)相容性
答案:D
评析:数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束条件。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。
(10)关系代数运算是以__________为基础的运算。
A)关系运算 B)谓词运算 C)集合运算 D)代数运算
答案:C
评析:关系代数是以集合代数为基础发展起来的,它是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括针对数据库环境专门设计的操作,包括对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。
(11)不能触发滚动条Change事件的操作是__________。
A)拖动滚动条中滑块
B)单击滚动条中滑块
C)单击滚动条两端箭头
D)单击箭头与滑块之间的滚动条
答案:B
评析:单击滚动条中滑块不会引起ScrollBar控件的Value属性值的变化,故不能触发Change事件。
(12)下面的四个VB6.0表达式语法正确的是__________。
A)a>b.find.b<>c B)a>b c C)a>b AND<>c D)a>b AND b<>c
答案:D
评析:选项A的"与"运算符多了两个句点。选项B在变量b与c之间无运算符。选项c是关系运算符与逻辑运算符连用,它们都是错误的。选项D先计算关系表达式a>b和b<>c,然后再将两个逻辑值进行"与"运算。
(13)骰子是一个正六面体,用1-6这六个数分别代表这六面,掷一次骰子出现的数可表示 为__________。
A)INT(RND(6)+1) B)INT(RND*6)
C)INT(RND*7) D) INT(RND*6+1)
答案:D
评析:RND函数产生一个小于1,大于等于0 的随机数,1NT函数是求不大于参数的最大整数。选项A的最大数是l,选项B的最大数是5,选项c的最小数是0,只有选项D能产生1-6之间的整数。
(14)Prim方法可以输出多个表达式,若使用标准格式输出,各表达式的分隔符应是__________。
A)空格 B)逗号 C)冒号 D)分号
答案:B
评析:Prim方法中,使用紧凑格式输出,各表达式的分隔符应是分号,使用标准格式输出,各表达式的分隔符应是逗号。
(15)编写如下事件过程:
Private Sub Form_Click()
K=2
If k>=l Then A=3
If k>=2 Then A=2
If k>=3 Then A=I
Prim A
End Sub
程序运行后,单击窗体,输出的结果为__________。
A)1 B)2 C)3 D)出错
答案:B
评析:单击窗体后,变量k值为2。由于Form_Click()过程中有3个与k有关的单行If语句,故A的值取决于能执行为A赋值的最后一条If语句,即Ifk>=2 Then A=2。因此输出为2。
(16)不能作为容器使用的对象是__________。
A)窗体 B)框架 C)图片框 D)图像框
答案:D
评析:窗体、框架和图片框都可以作为容器使用,在这些对象中可以放置其它控件。图像框不能放置其它控件,不能作为容器使用。
(17)以下关于图片框控件的说法中,错误的是__________。
A)可以通过Print方法在图片框中输出文本
B)清空图片框控件中图形的方法之一是加载一个空图形
C)图片框控件可以作为容器使用
D)用Stretch属性可以自动调整图片框中图形的大小
答案:D
评析:图片框控件不提供滚动条,也不能伸展被装入的图形以适应控件尺寸,但可以用图片框的Autosize属性调整图片框大小以适应图形尺寸,所以选项D是错误的。
(18)以下叙述中错误的是__________。
A)下拉式菜单和弹出式菜单都用菜单编辑器建立
B)在多窗体程序中,每个窗体都可以建立自己的菜单系统
C)除分隔线外,所有菜单项都能接收Click事件
D)如果把一个菜单项的Enabled属性设置为False,则该菜单项不可用
答案:C
评析:PopupMenu方法的使用形式如下:[对象]PopupMenu菜单名,标志,x,y。其中,x,y:是快捷菜单显示的位置。标志:指定快捷菜单的行为。当标志为0时,快捷菜单中的项只能对鼠标左键起反应。当标志为l时,快捷菜单中的菜单项对鼠标左键和右键都反应;标志为2时PopupMenu方法只能用在MouseDown事件过程,所以选项C是错误的。
(19)以下关于变量作用域的叙述中,正确的是__________。
A)窗体中凡被声明为Private的变量只能在某个指定的过程中使用
B)全局变量必须在标准模块中声明-
C)模块级变量只能用Private关键字声明
D)Static类型变量的作用域是它所在的窗体或模块文件
答案:D
评析:变量作用域分为:局部变量、窗体、模块级变量和全局变量。局部变量:指在过程内用Dim、Static语句声明的变量,只能在本过程中使用的变量。窗体/模块级变量:指在一个窗体/模块的任何过程外,即在"通用声明"段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问。全局变量:指只能在标准模块的任何过程或函数外,即在"通用声明"段中用Public语句声明的变量,可被应用程序的任何过程或函数访问。
(20)在窗体上画一个名称为List1的列表框,为了对列表框中的每个项目都能进行处理, 应使用的循环语句为:__________。
A)For i=0 To List1.ListCount-1
……
Next
B)For i=0 To Listl.Count-1
……
Next
C)For i=0 To List1.ListCount
……
Next
D)For i=0 TO List1.Count
……
Next
答案:A
评析:ListCount的值表示列表框中项目的数量。ListCount-1表示列表中最后一项的序号。
(21)在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
Private Sub Command1_Click()
X=-5
If Sgn(x)Then
y=Sgn(x^2)
Else
y=Sgn(x)
End If
Print y
End Sub
程序运行后,单击命令按钮,其输出结果为_________。
A)-5 B)25 C)-l D)1
答案:D
评析:Sgn(number)函数的功能是返回number的正负号。如果number>0,Sgn返回1:number=O,Sgn返回0;number<O,Sgn返回-l。在本题中Sgn(-5)的返回值为-l,执行y=Sgn(x^2),结果y的值为l。
(22)在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim array1(10,10)As Integer
Dim i As Integer,j As Integer
Fori=l To 3
Forj=2 To 4
array1(i'j)=i+j
Next j
Next i
Text1.Text=array1(2,3)+array1(3,4)
End Sub
程序运行后,单击命令按钮,在文本框中显示的值是________。
A)15 B)14 C)13 D)12
答案:D
评析:本题是通过一个For循环来给数组赋值。由arrayl(i,j)=i+j可知,arrayl(2,3):2+3=5,arrayl(3,4)=3+4=7,arrayl(2,3)+arrayl(3,4)=5+7=12,即文本框中的值为12。
(23)在窗体上画四个文本框,并用这四个文本框建立一个控件数组,名称为Text1(下标从0开始,依次增大),然后编写如下事件过程:
Private Sub Command1_Click()
For Each TextBox In Text1
Text1(i)=Text1(i).Index
i=i+l
Next
End Sub
程序运行后,单击命令按钮,四个文本框中显示的内容分别为_________。
A)0 1 2 3 B)l 2 3 4 C)O l 3 2 D)出错信息
答案:A
评析:控件数组是由一组相同类型的控件组成。它们共用一个控件名。建立控件数组时,系统给每个元素赋一个唯一的索引号(Index),通过属性窗口的Index属性,可以知道该控件的下标是多少。,第1个下标是0,第2个下标是1,第3个下标是2,第4个下标是3。故四个文本框中显示的内容分别为0、l、2、3。
(24)以下描述中正确的是_________。
A)标准模块中的任何过程都可以在整个工程范围内被调用
B)在一个窗体模块中可以调用在其它窗体中被定义为Public的通用过程
C)如果工程中包含Sub Main过程,则程序将首先执行该过程
D)如果工程中不包含Sub Main过程,则程序一定首先执行第一个建立的窗体
答案:B
评析:标准模块中可以包含私有和公共过程;工程的启动对象(Form或Sub Main)决定了工程中首先被执行的部分。
(25)在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写如下事件过程:_________。
Private Sub Command1_Click()
n=Val(Text1.Text)
For i=2 TO n
Forj=2 To Sqr(i)
If i Mod j=0 Then Exit For
Next j
If j>Sqr(i)Then Print i
Next i
End Sub
该事件过程的功能是_________。
A)输出n以内的奇数
B)输出n以内的偶数
C)输出n以内的素数
D)输出n以内能被j整除的数
答案:C
评析:素数只能被1和它本身整除(即不能被大于l且小于它本身的整数来整除)故要检查一个整数是不是素数,可以用大于1而小于它的所有整数来除它,如果可以整除,就不是素数,否则就是素数。为了缩短程序运行时间,通常是用所有不小于该整数的平方根的整数来除它就可以。在本程序中,用从2开始到小于等于被检测整数平方根的所有整数来对被检测整数取模,如果被检测整数可以被其中的某个整数整除,则不是素数。故本程序的功能是输出n以内的素数。
(26)在窗体上画一个名称为Text1的文本框,要求文本框只能接收大写字母的输入。以下 能实现该操作的事件过程是_________。
A)Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 65 or KeyAscii>90 Then
MsgBox"请输入大写字母"
KeyAscii=0
End If
End Sub
B)Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)
If KeyCode<65 Or KeyCode > 90 Then
MsgBox"请输入大写字母"
KeyCode=0
End If
End Sub
C)Private Sub Text1_MouseDown(Button As Integer,Shift As Integer,x As Single,Y As Single)
If Asc(Text1.Text)<65 0r Asc(Text1.Text)>90 Then
MsgBox"请输入大写字母"
End If
End Sub
D)Private Sub Text1 change()
If Asc(Text1.Text)>64 And Asc(Text1.Text)<91 Then
MsgBox"请输入大写字母"
End If
End Sub
答案:A
评析:Asc函数是将字符转化成ASCII码值。大写字母的ASCII码值为65-90(包括65和90)。KeyDown和KeyUp事件返回的是"键",而KeyPress事件返回的是"字符"的ASCII码。
(27)编写如下程序:
Private Sub Form_Click()
a$="54321":b$="abcde"
For j=l To 5
Print Mid$(a$,6-j,1)+Mid$(b$,j,1);
Next j
Print
End Sub
程序运行后,单击窗体,其输出结果为________。
A)alb2c3d45e B)a5b4c3d2el C)eld2c3b4a5 D)la2b3c4d5e
答案:D
评析:For循环共执行了5次,每次用Mid$函数取出a$和b$的子串输出,a$是倒序,每次取一个字符,b$是顺序,每次取一个字符,连接在一起输出,输出表达式用分号结束,表示下一次接着输出,故输出结果为la2b3c4d5e。
(28)在窗体上画一个名称为Labe11的标签,然后编写如下事件过程:
Option Base l
Private Sub Form_Click()
Dim a(20)As Integer
For k=l To 20
a(k)=k^2
Next k
Label1.Caption=a(k)
End Sub
程序运行后,单击窗体,在标签中显示的内容是__________。
A)400 B)20 C)441 D)出错信息
答案:D
评析:一维数组a的下标在1-20之间。而循环结束后k值为21,故产生下标越界的错误。
(29)在窗体上画一个名称为Text1的文本框,一个名称为Command1的命令按钮,然后编
写如下事件过程和通用过程:
Private Sub Command1_Click()
n=Val(Text1.Text)
If n\2=n/2 Then
f=f1(n)
Else
f=f2(n)
End If
Print£n
End Sub
Public Function fl(ByRef x)
X=x*x
n=x+x
End FunctiOn
Public Function f2(ByVa1 x)
X=X*X
f2=x+x+x
End FunctiOn
程序运行后,单击命令按钮,在窗体上显示的是_______。
A)72 36 B)108 36 C)72 6 D)108 6
答案:A
评析:在本题中,文本框中输入的是6,也就是n=6,n\2=n/2条件成立,所以执行f=fl(n)语句,调用f1过程,得到x=x*x=6*6=36,fl=36+36=72。由于函数f1中,参数是按地址传递的,故参数的值会返回,所以n的值为36。
(30)在窗体上画一个名称为command1的命令按钮,然后编写如下程序:
Option Base l
Private Sub Command1_Click()
Dim a(3,3)
For i=1 To 3
For j=1 To 3
If i=j Then a(i,j)=l
If i<j Then a(i,j)=2
If i>j Then a(i,j)=3
Next j
Next i
For i=1 To 3
For j=1 To 3
Print a(i,j);
Next j
Print
Next i
End Sub
程序运行后,如果单击命令按钮,则在窗体上输出的内容为_________。
A)l 3 3 B)1 2 2 C)2 3 3 D)2 l l
2 1 3 3 1 2 l 2 3 3 2 l
2 2 l 3 3 l 1 l 2 3 3 2
答案:B
评析:本题程序在过程中定义了一个二维数组,该数组可容纳9个元素,在循环中给数组元素赋值,在每次循环中有If i=j Then a(i,j)=1,表示主对角线置1;If i<j Then a(i,j)=2,表示主对角线以上元素置2;If i>j Then a(i,j)=3,表示主对角线一下元素置3。
(31)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
Option Base l
Private Sub Command1_Click()
Dim arr(5)As String
For i=l To 5
arr(i)=Chr(Asc("A")+(i-1))
Next i
For Each b1 In arr
Print b1:
Next
End Sub
程序运行后,如果单击命令按钮,则在窗体上输出的内容为________。
A)ABCDE B)abcde C)出错信息 D)1 2 3 4 5
答案:A
评析:语句Chr(Asc("A")+(i-1))的作用是将字符A的ASCII码值加上循环变量的值减1,求出此ASCII码对应的字符。将计算出的字符赋值给数组arr的第i个元素。循环结束后,arr的5个元素分别为字符A、B、C、D、E。Print方法输出项的最后用分号结束,使得输出不换行。


