2008年4月全国计算机等级考试笔试试卷 二级公共基础知识和Visual Basic语言程序设计 一、选择题
(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)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是(
)。
A) 快速排序
B) 冒泡排序
C) 直接插入排序
D) 堆排序
(7)下列关于栈的叙述正确的是(
)。
A) 栈按“先进先出”组织数据
B) 栈按“先进后出”组织数据
C) 只能在栈底插入数据
D) 不能删除数据
(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于(
)。
A) 需求分析阶段
B) 概念设计阶段
C) 逻辑设计阶段
D) 物理设计阶段
(9)有3个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为(
)。
A) 并
B) 自然连接
C) 笛卡尔积
D) 交
(10)设有表示学生选课的3张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为(
)。
A) 课号,成绩
B) 学号,成绩
C) 学号,课号
D) 学号,姓名,成绩
(11)下列叙述中错误的是(
)。
A) 标准模块文件的扩展名是.bas
B) 标准模块文件是纯代码文件
C) 在标准模块中声明的全局变量可以在整个工程中使用
D) 在标准模块中不能定义过程
(12)在Visual Basic中,表达式3*2\5 Mod 3的值是(
)。
A) 1
B) 0
C) 3
D) 出现错误提示
(13)下列选项中,不合法的Visual Basic的变量名是(
)。
A) a5b
B) _xyz
C) a b
D) andif
(14)下列数组定义语句中,错误的是(
)。
A) Static a(10) As Integer
B) Dim c(3,1 To 4)
C) Dim d(-10)
D) Dim b(0 To 5,1 To 3)As Integer
(15)现有语句:y=IIf(x>0,x Mod 3,0)
设x=10,则y的值是(
)。
A) 0
B) 1
C) 3
D) 语句有错
(16)为了使文本框同时具有垂直和水平滚动条,应先把multiLine属性设置为True,然后再把 ScrollBars属性设置为(
)。
A) 0
B) 1
C) 2
D) 3
(17)文本框Text1的KeyDown事件过程如下:
Private Sub Text 1_KeyDown(KeyCode As Integer,Shift As Integer)
…
End Sub
其中参数KeyCode的值表示的是发生此事件时(
)。
A) 是否按下了<Alt>键或<Ertl>键
B) 按下的是哪个数字键
C) 所按的键盘键的键码
D) 按下的是哪个鼠标键
(18)窗体上有一个名称为HScroll 1的滚动条,程序运行后,当单击滚动条两端的箭头时,立即在窗体上显示滚动框的位置(即刻度值)。下面能够实现上述操作的事件过程是(
)。
A) Private Sub HScroll 1_Change()
Print HScroll1.Value
End Sub
B) Private Sub HScroll 1_Change()
Print HScroll1.SmallChange
End Sub
C) Private Sub HScroll1 Scroll()
Print HScroll1.Value
End Sub
D) Private Sub HScroll1_Scroll()
Print HScroll1.SmallChange
End Sub
(19)若已把一个命令按钮的Default属性设置为True,则下列可导致按钮的Click事件过程被调用的操作是(
)。
A) 用鼠标右键单击此按钮
B) 按键盘上的<Esc>键
C) 按键盘上的回车键
D) 用鼠标右键双击此按钮
(20)要使两个单选按钮属于同一个框架,正确的操作是(
)。
A) 先画一个框架,再在框架中画两个单选按钮
B) 先画一个框架,再在框架外画两个单选按钮,然后把单选按钮拖到框架中
C) 先画两个单选按钮,再用框架将单选按钮框起来
D) 以上3种方法都正确
(21)能够存放组合框的所有项目内容的属性是(
)。
A) Caption
B) Text
C) List
D) Selected
(22)设窗体上有一个标签Label 1和一个计时器Timer1,Timer1的Interval属性被设置为1000, Enabled属性被设置为True。要求程序运行时每秒在标签中显示一次系统当前时间。下列可以实现上述要求的事件过程是(
)。
A) Private Sub Timer1_Timer()
Labell.Caption=True
End Sub
B) Private Sub Timer1_Timer()
Labell.Caption=Time$
End Sub
C) Private Sub Timer1_Timer()
Labell.Interval=1
End Sub
D) Private Sub Timer1_Timer()
For k=1 To Timerl.Interval
Label1.Caption=Timer
Next K
End Sub
(23)设有如右图所示的窗体和下列程序:
Private Sub Command1_Click()
Text1.Text="Visual Basic"
End Sub
Private Sub Text1_LostFocus()
If Text1.Text<>"BASIC" Then
Text1.Text=" "
Text1.SetFocus
End If
End Sub
程序运行时,在Text1文本框中输入“Basic”(如图所示),然后单击Command1按钮,则产生的结果是(
)。
A) 文本框中无内容,焦点在文本框中
B) 文本框中为"Basic",焦点在文本框中
C) 文本框中为"Basic",焦点在按钮上
D) 文本框中为"Visual Basic",焦点在按钮上
(24)窗体上有一个名称为Command1的命令按钮,其事件过程如下:
Private Sub Command1.Click()
x="Visual BasicProgramming"
a=Right(x,11)
b=Mid(x,7,5)
c=MsgBox(a,,b)
End Sub
运行程序后单击命令按钮,下列叙述中错误的是(
)。
A) 信息框的标题是Basic
B) 信息框中的提示信息是Programming
C) c的值是函数的返回值
D) MsgBox的使用格式有错
(25)设工程文件包含两个窗体文件Forml.frm、Form2.frm及一个标准模块文件Modulel.bas。两个窗体上分别只有一个名称为Command1的命令按钮。
Forml的代码如下:
Public x As Integer
Privme Sub Form_Load()
x=1
y=5
End Sub
Private Sub Command1_Click()
Form2.Show
End Sub
Form2的代码如下:
Private Sub Command1_Click()
Print Form1.x,y
End Sub
Modulel的代码如下:
Public y As Integer
运行以上程序,单击Form1的命令按钮Command1,则显示Form2;再单击Form2上的命令按钮Command1,则窗体上显示的是(
)。
A) 1
5
B) 0
5
C) 0
0
D) 程序有错
(26)窗体上有一个名称为Text1的文本框,一个名称为Command1的命令按钮。窗体文件的程序
如下:
Private Type x
a As Integer
b As Integer
End Type
Private Sub Command1_Click()
Dim y As x
y.a=InputBox("")
If y.a\2=y.a/2 Then
y.b=y.a * y.a
Else
y.b=Fix(y.a/2)
End If
Text1.Text=y.b
End Sub
对以上程序,下列叙述中错误的是(
)。
A) x是用户定义的类型
B) InputBox函数弹出的对话框中没有提示信息
C) 若输入的是偶数,y.b的值为该偶数的平方
D) Fix(y.a/2)把y.a/2的小数部分四舍五入,转换为整数返回
(27)窗体上有一个名称为CD1的通用对话框控件和由四个命令按钮组成的控件数组Command1,其下标从左到右分别为0、1、2、3,窗体外观如下图所示。
命令按钮的事件过程如下:
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0
CD1.Action=1
Case 1
CD1.ShowSave
Case 2
CD1.Action=5
Case 3
End
End Select
End Sub
对上述程序,下列叙述中错误的是(
)。
A) 单击“打开”按钮,显示打开文件的对话框
B) 单击“保存”按钮,显示保存文件的对话框
C) 单击“打印”按钮,能够设置打印选项,并执行打印操作
D) 单击“退出”按钮,结束程序的运行
(28)窗体上有两个水平滚动条HV、HT,还有一个文本框Text1和一个标题为“计算”的命令按钮Command1,并编写了下列程序:
Private Sub Command1_Click()
Call cale(HV.Value,HT.Value)
End Sub
Public Sub cale(x As Integer,y As Integer)
Text1.Text=x*y
End Sub
运行程序,单击“计算”按钮,可根据速度与时间计算出距离,并显示计算结果。对以上程序,下列叙述中正确的是(
)。
A) 过程调用语句不对,应为cale(HV.HT)
B) 过程定义语句的形式参数不对,应为Sub cale(x As Contro1,y As Control)
C) 计算结果在文本框中显示出来
D) 程序不能正确运行
(29)现有如下程序:
Private Sub Command1_Click()
s=0
For i=1 To 5
s=s+f(5+i)
Next
Print s
End Sub
Public Function f(x As Integer)
If x>=10 Then
t=x+1
Else
t=x+2
End If
f=t
End Function
运行程序,则窗体上显示的是(
)。
A) 38
B) 49
C) 61
D) 70
(30)窗体上有一个用菜单编辑器设计的菜单。运行程序,并在窗体上单击鼠标右键,则弹出一个快捷菜单,如下图所示。
下列叙述中错误的是(
)。
A) 在设计“粘贴”菜单项时,在菜单编辑器窗口中设置了“有效”属性(有“√”)
B) 菜单中的横线是在该菜单项的标题输入框中输入了一个“-”(减号)字符
C) 在设计“选中”菜单项时,在菜单编辑器窗口中设置了“复选”属性(有“√”)
D) 在设计该弹出菜单的主菜单项时,在菜单编辑器窗口中去掉了“可见”前面的“√”
(31)窗体上有一个名称为Picturel的图片框控件,一个名称为Label1的标签控件,如下图所示。
现有如下程序:
Public Sub display (x As Control)
If TypeOf x Is Label Then
x.Caption="计算机等级考试"
Else
x.Picture=LoadPicture("pic.jpg")
End If
End Sub
Private Sub Labell_Click()
Call display(Labell)
End Sub
Private Sub Picture1_Click()
Call display(Picture1)
End Sub
对以上程序,下列叙述中错误的是(
)。
A) 程序运行时会出错
B) 单击图片框,在图片框中显示一幅图片
C) 过程中的x是控件变量
D) 单击标签,在标签中显示一串文字
(32)窗体上有两个名称分别为Text1、Text2的文本框。Text1的KeyUp事件过程如下:
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Dim c As String
c=UCase(Chr(KeyCode))
Text2.Text=Chr(Asc(c)+2)
End Sub
当向文本框Text1中输入小写字母a时,文本框Text2中显示的是(
)。
A) A
B) a
C) C
D) c
(33)设窗体上有一个文本框Text1和一个命令按钮Command1,并有下列事件过程:
Private Sub Command1_Click()
Dim s As String,Ch As String
s=""
For k=1 To Len(Text1)
ch=Mid(Text1,k,1)
s=ch+s
Next k
Text1.Text=s
End Sub
程序执行时,在文本框中输入“Basic”,然后单击命令按钮,则Text1中显示的是(
)。
A) Basic
B) cisaB
C) BASIC
D) CISAB
(34)某人编写了下列程序,用来求10个整数(整数从键盘输入)中的最大值:
Private Sub Command1_Click()
Dim a(10) As Integer, max As Integer
For k=1 To 10
a(k)=InputBox("输入一个整数")
Next k
max=0
For k=1 To 10
If a(k)>max Then
max=a(k)
End If
Next k
Print max
End Sub
运行程序时发现,当输入10个正数时,可以得到正确结果,但输入10个负数时结果是错误的。程序需要修改。下列修改中可以得到正确运行结果的是(
)。
A) 把Ifa(k)>max Then 改为 If a(k)<max Then
B) 把max=a(k)改为a(k)=max
C) 把第2个循环语句For k=1 To 10改为For k=2 To 10
D) 把max=O改为max=a(10)
(35)已知在4行3列的全局数组score(4,3)中存放了4个学生3门课程的考试成绩(均为整数),现需要计算每个学生的总分,某人编写程序如下:
Option Base 1
Private Sub Command1_Click()
Dim sum As Integer
sum=0
For i=1 To 4
For j=1 To 3
sum=sum+score(i,j)
Next j
Print "第" &i& "个学生的总分是:";sum
Next i
End Sub
运行此程序时发现,除第1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。下列修改方案中正确的是(
)。
A) 把外层循环语句For i=1 To 4 改为 For i=1 To 3
内层循环语句For j=1 To 3改为For j=1 To 4
B) 把sum=0移到For i=1 To 4和For j=1 To 3之间
C) 把sum=sam+score(i,j)改为sum=sum+score(j,i)
D) 把sum=sum+score(i,j)改为sam=score(i,j)
二、填空题
(1)测试用例包括输入值集和<u>
【1】 </u>值集。
(2)深度为5的满二叉树有<u>
【2】 </u>个叶子结点。
(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指
向队尾元素),则该循环队列中共有<u>
【3】 </u>个元素。
(4)在关系数据库中,用来表示实体之间联系的是<u>
【4】 </u>。
(5)在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,<u>
【5】 </u>负责数据的模式定义与数据的物理存取构建。
(6)设有下列循环:
x=1
Do
x=x+2
Print x
Loop Until<u>
【6】 </u>
要求程序运行时执行3次循环体,请填空。
(7)窗体上命令按钮Commandl的事件过程如下:
Private Sub Command1_Click()
Dim total As Integer
total=s(1)+s(2)
Print total
End Sub
Private Function s(m As Integer)As Integer
Static x As Integer
For i=1 To m
x=x+1
Next i
s=x
End Function
运行程序,第3次单击命令按钮Command1时,输出结果为<u>
【7】 </u>。
(8)在窗体上画一个名称为Command1的命令按钮,然后编写下列程序:
Option Base_1
Private Sub Command1_Click()
Dim a(10)As Integer
For i=1 To 10
a(i)=i
Next
Call swap(<u>
【8】 </u>)
For i=1 To 10
Print a(i);
Next
End Sub
Sub swap(b()As Integer)
n=<u>
【9】 </u>
For i=1 To n/2
t=b(i)
b(i)=b(n)
b(n)=t
<u>
【10】 </u>
Next
End Sub
上述程序的功能是通过调用过程swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换, a(2)与a(9)的值互换,……,请填空。
(9)在窗体上画一个通用对话框,其名称为CommonDialog1,然后画一个命令按钮,并编写下列事件过程:
Private Sub Command1_Click()
CommonDialog1.Filter="All Files(*.*)|*.*|Text Files"_
&"(*.txt)|*.txt|Batch Files(*.bat)|*.bat"
CommonDialog1.FilterIndex=1
CommonDialog1.ShowOpen
MsgBox CommonDialog1.FileName
End Sub
程序运行后,单击命令按钮,将显示一个“打开”对话框,此时在“文件类型”框中显示的是 <u>
【11】 </u>;如果在对话框中选择d盘temp目录下的tel.txt文件,然后单击“确定”按钮,则在MsgBox信息框中显示的提示信息是<u>
【12】 </u>。
(10)下列程序的功能是把顺序文件smtextl.txt的内容全部读入内存,并在文本框Textl中显示出来。请填空。
Private Sub Command1_Click()
Dim inData As String
Text1.Text=""
Open "smtext1.txt"<u>
【13】 </u>As<u>
【14】 </u>
Do While <u>
【15】 </u>
Input #2,inData
Text1.Text=Text1.Text & inData
Loop
Close #2
End Sub
|