一、选择题(每小题2分,共70分)
1.下列数据结构中,属于非线性结构的是( )。
A. 循环队列 B.带链队列C.二叉树 D.带链栈
答案 C
解析 树均是非线性结构
2. 下列数据结构中,能够按照”先进后出”原则存取数据的是( )。
A. 循环队列 B.栈 C.队列 D.二叉树
答案 B
解析:栈是先进后出或后进先出的线性表
3. 对于循环队列,下列叙述中正确的是( )。
A.队头指针是固定不变的
B.队头指针一定大于队尾指针
C.队头指针一定小于队尾指针
D.队头指针可以大于队尾指针,也可以小于队尾指针
答案 D
解析:如果队头指针大于队尾指针说明队列已经循环存放数据了,如果队头指针小于队尾指针说明没有进行循环存放
4. 算法的空间复杂度是指( )。
A.算法在执行过程中所需要的计算机存储空间 B.算法所处理的数据量
C.算法程序中的语句或指令条数 D.算法在执行过程中所需要的临时工作单元数
答案 A
解析:算法的空间复杂度是指执行算法所需要的内存空间,包括算法程序所占空间,输入的初始数据所占空间和执行过程中所需要的额外空间.
5. 软件设计中划分模块的一个准则是( )。
A. 低内聚低耦合 B. 高内聚低耦合 C. 低内聚高耦合 D. 高内聚高耦合
答案 B
解析:模块内部各元素之间的联系要紧密,高内聚,模块间的连接的紧密程度要低,低耦合,这样可以提高模块的独立性.
6. 下列选项中不属于结构化程序设计原则的是( )。
A.可封装 B.自顶向下 C.模块化 D.逐步求精
答案 A
7.软件详细设计产生的图如下
该图是( ).
A.N-S图 B. PAD图 C. 程序流程图 D.E-R图
答案 C
8.数据库管理系统是( )。
A. 操作系统的一部分 B.在操作系统支持下的系统软件 C.一种编译系统 D.一种操作系统
答案 B
9.在E-R图中,用来表示实体联系的图形是( )。
A.椭圆形 B.矩形 C.菱形 D .三角形
答案 C
10.有三个关系R,S,T 如下:
R
A |
B |
C |
a |
1 |
2 |
b |
2 |
1 |
c |
3 |
1 |
S
A |
B |
C |
d |
3 |
2 |
T
A |
B |
C |
a |
1 |
2 |
b |
2 |
1 |
c |
3 |
1 |
d |
3 |
2 |
其中关系T由关系R和S通过某种操作得到,该操作称为( )。
A.选择 B.投影 C. 交 D. 并
答案 D
解析:T是由S表或R表中的元素组成的
(11)以下变量名中合法的是
C)str_n
D)(x*5+3)/(y*2-6)
(13)下面有关标准模块的叙述中,错误的是
A)标准模块不完全由代码组成,还可以有窗体
(14)下面控件中,没有Caption属性的是
C)组合框
(15)用来设置文字字体是否斜体的属性是
D)FontItalic
(16)若看到程序有如下事件过程,则可以肯定的是,当程序运行时
Private SubClick_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Print "VB Program"
End Sub
D)用鼠标左键或右键单击名称为“Click”的控件时,执行此过程
(17)可以产生30-50(含30到50)之间的随机整数的表达式是
A)Int(Rnd*21+30)
(18)在程序运行时,下面的叙述中正确的是
C)只装入而不显示窗体,也会执行窗体的Form_Load事件过程
(19)窗体有名称为Command1的命令按钮和名称为Text1的文本框
Private Sub Command1_Click()
Text1.Text = "程序设计"
Text1.SetFocus
End Sub
Private Sub Text1_GotFocus()
Text1.Text = "等级考试"
End Sub
运行以上程序,单击命令按钮后
B)文本框中显示的是“等级考试”,且焦点在文本框中
(20)设窗体上有名称为Option1的单选按钮,且程序中有语句:
If Option.Value=True Then
下面语句中与该语句不等价的是
C)If Value=True Then
(21)设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100,下面叙述中正确的是
A)程序运行时,若使滚动条向左移动,滚动条的Value属性值就增加
(22)有如下过程代码:
Sub var_dim()
Static numa As Integer
Dim numb As Integer
numa = numa + 2
numb = numb + 1
Print numa; numb
End Sub
连续3次调用var_dim过程,第3次调用时的输出是
C)6 1
(23)在窗体上画1个命令按钮,并编写如下事件过程:
Private Sub Command1_Click()
For i = 5 To 1 Step -0.8
Print Int(i);
Next i
End Sub
运行程序,单击命令按钮,窗体上显示的内容为
A)5 4 3 2 1 1
(24)在窗体上画1个命令按钮,并编写如下事件过程:
Private Sub Command1_Click()
Dim a(3, 3)
For m = 1 To 3
For n = 1 To 3
If n = m Or n = 4 - m Then
a(m, n) = m + n
Else
a(m, n) = 0
End If
Print a(m, n);
Next n
Next m
End Sub
B)2 0 4
0 4 0
4 0 6
(25)设有如下函数过程:
Function fun(a As Integer, b As Integer)
Dim c As Integer
If a < b Then
c = a: a = b: b = c
End If
c = 0
Do
c = c + a
Loop Until c Mod b = 0
fun = c
End Function
若调用函数fun时的实际参数都是自然数,则函数返回的是
B)a、b的最小公倍数
(26)窗体上有1个名称为Text1的文本框;1个名称为Timer1的计时器控件,其Interval属性为5000,Enabled属性值是True。Timer1的事件过程如下:
Private Sub Timer1_Timer()
Static flag As Integer
If flag = 0 Then flag = 1
flag = -flag
If flag = -1 Then
Text1.ForeColor = &HFF& '&HFF&为红色
Else
Text1.ForeColor = &HC000& '&HC000&为绿色
End If
End Sub
以下叙述中正确的是
C)程序执行后,文本框的文字每5秒改变一次颜色
(27)为计算1+2+2^2+2^3+2^4+…+2^10的值,并把结果显示在文本框Text1中,若编写如下事件过程:
Private Sub Command1_Click()
Dim a%, s%, k%
s = 1
a = 2
For k = 2 To 10
a = a * 2
s = s + a
Next k
Text1.Text = s
End Sub
执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是
D)同时进行B)、C)两种修改
(28)标准模块中有如下程序代码:
Public x As Integer, y As Integer
Sub var_pub()
x = 10: y = 20
End Sub
在窗体上有1个命令按钮,并有如下事件过程:
Private Sub Command1_Click()
Dim x As Integer
Call var_pub
x = x + 100
y = y + 100
Print x; y
End Sub
B)100 120
(29)设a,b都是自然数,为求a除以b的余数,默认编写了以下函数:
Function fun(a As Integer, b As Integer)
While a > b
a = a - b
Wend
fun = a
End Function
在调试时发现函数是错误的,为使函数能产生正确的返回值,应做的修改是
D)把While a>b改为While a>=b
(30)下列关于通用对话框CommonDialog1的叙述中,错误的是
A)只要在“打开”对话框中选择了文件,并单击“打开”按钮,就可以将选中的文件打开
(31)在利用菜单编辑器设计菜单时,为了把组合键“Alt+X”设置为“退出(X)”菜单项的访问键,可以将该菜单项的标题设置为
B)退出(&X)
(32)在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序:
Dim ss As String
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) <> "" Then ss = ss + Chr(KeyAscii)
End Sub
Private Sub Command1_Click()
Dim m As String, i As Integer
For i = Len(ss) To 1 Step -1
m = m + Mid(ss, i, 1)
Next
Text1.Text = UCase(m)
End Sub
程序运行后,在文本框中输入“Number 100”,并单击命令按钮,则文本框中显示的是
D)001REMBUN
(33)窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shape1的圆靠在左边的Line1直线上(见图);另有1个名称为Timer1的计时器控件,其属性值为True。要求程序运行后,圆每秒向右移动100,当圆遇到Line2时则停止移动。为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序:
Private Sub Timer1_Timer()
For k = Line1.X1 To Line2.X1 Step 100
If Shape1.Left + Shape1.Width < Line2.X1 Then
Shape1.Left = Shape1.Left + 100
End If
Next k
End Sub
运行程序时发现圆立即移动到右边的直线处,与题目要求的移动方式不符。为得到与题目要求相符的结果,下面修改方案中正确的是
B)把 For k = Line1.X1 To Line2.X1 Step 100 和Next k两行删除
(34)下列有关文件的叙述中,正确的是
C)随机文件中,每个记录的长度是固定的
(35)窗体如图1所示。要求程序运行时,在文本框Text1中输入一个姓氏,单击“删除”按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。若编写以下程序来实现此功能:
Private Sub Command1_Click()
Dim n%, k%
n = Len(Text1.Text)
For k = 0 To List1.ListCount - 1
If Left(List1.List(k), n) = Text1.Text Then
List1.RemoveItem k
End If
Next k
End Sub
在调试时发现,如输入“陈”,可以正确删除所有姓“陈”的项目,但输入“刘”,则只删除了“刘邦”、“刘备”2项,结果如图2所示。这说明程序不能适应所有情况,需要改正。正确的修改方案是把For k=0 to List1.ListCount-1改为
A)For k = List1.ListCount - 1 To 0 Step -1
二、填空题(每空2分,共30分)
(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有 【1】14
(2)程序流程图中的菱形框表示的是【2】 逻辑条件 或 逻辑判断 或 条件或判断
(3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中【3】需求分析
(4)在数据库技术中,实体集之间的联系可以是一对一或一对多的,那么“学生”和“可选课程”的联系为【4】多对多
(5)人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是【5】身份证号
(6)工程中有Form1和Form2两个窗体。Form1窗体外观如图1所示。程序运行时,在Form1中名称为Text1的文本框中输入一个数值(圆的半径),然后单击命令按钮“计算并显示”(其名称为Command1),则显示Form2窗体,且根据输入的圆的半径计算圆的面积,并在Form2的窗体上显示出来,如图2所示。如果单击命令按钮时,文本框中输入的不是数值,则用信息框显示“请输入数值数据!”。请填空。
Private Sub Command1_Click()
If Text1.Text = "" Then
magbox "请输入半径!"
ElseIf Not IsNumeric(【6】Text1.Text
MsgBox "请输入数值数据!"
Else
r = Val(【7】Text1.Text
Form2.Show
【8】Form2
End If
End Sub
(7)设有整型变量s,取值范围为0~100,表示学生的成绩,有如下程序段:
If s >= 90 Then
Level = "A"
ElseIf s >= 75 Then
Level = "B"
ElseIf s >= 60 Then
Level = "C"
Else
Level = "D"
End If
下面用Select Case结构改写上述程序,使两段程序所实现的功能完全相同,请填空。
Select Case s
Case【9】 Is
Level = "A"
Case 75 To 90
Level = "B"
Case 60 To 74
Level = "C"
Case 【10】Else 或 Is<60
Level = "D"
【11】End Select
(8)窗体上有名称为Command1的命令按钮。事件过程及2个函数过程如下:
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z
x = 3
y = 5
z = fy(y)
Print fx(fx(x)), y
End Sub
Function fx(ByVal a As Integer)
a = a + a
fx = a
End Function
Function fy(ByRef a As Integer)
a = a + a
fy = a
End Function
运行程序,并单击命令按钮,则窗体上显示的2个值依次是【12】12
(9)窗体上有名称为Command1的命令按钮及名称为Text1、能显示多行文本的文本框。程序运行后,如果单击命令按钮,则可打开磁盘文件c:\test.txt,并将文件中的内容(多行文本)显示在文本框中。下面是实现此能的程序,请填空。
Private Sub Command1_Click()
Text1 = ""
Number = FreeFile
Open "c:\test.txt" For Input As Number
Do While Not EOF(【14】Number
Line Input #Number, s
Text1.Text = Text1.Text +【15】 s
Loop
Close #Number
End Sub
参考答案
一.选择题
11.C 12.D 13.A 14.C 15.D
16.D 17.A 18.C 19.B 20.C
21.A 22.C 23.A 24.B 25.D
26.C 27.D 28.B 29.D 30.A
31.B 32.D 33.B 34.C 35.A
二.填空题
6.text1.text
text1.text
Form2
7.IS
ELSE
END SELECT
8.12
10
9.NUMBER
S
公共基础试题答案
选择题
1.C 2.B 3.D 4.A 5.B
6.A 7.C 8.B 9.C 10.D
填空题
1.14
2.逻辑判断
3.需求分析
4.多对多
5.身份证号