2012年3月全国计算机等级考试二级Visual Basic笔试试卷【答案+解析版】
-
设窗体上有text1文本框和Command1命令按钮,并有以下程序:
Private Sub Command1_Click()
Temp$=””
For k=1 to len(text1)
Ch$=mid(text1,k,1)
If not found(temp,ch)then
Temp=temp&【13】
End If
Next k
Text1=【14】
End Sub
Private function found(str as string,ch as string)as Boolean
For k=1 to len(str)
If ch=mid(str,k,1)then
Found=【15】
Exit function
Next k
Found=false
End function
运行时,在文本框中输入 若干英文字母,然后单击命令按钮,则可以删去文本框中所有重复的字母,例如,若文本框中原有字符串为“abcddbbc”则单击命令按钮后文本框中字符串为“abcd”,其中函数found的功能是判断字符串str中是否有字符ch,若有,函数返回true,否则返回false。请填空
-
窗体上有list1、list2两个列表框,程序运行时,在两个列表框中分别选中1个项目,如图a所示,单击名称为Command1的“交换”按钮,则把选中的项目互换,互换后的位置不限。如图b所示。下面的程序可实现这一功能,请填空。
Private Sub Command1_Click()
If list1.text=””or list2.text””then
Msgbox”请选择交换的物品!”
Else
List1.additem list2.text
List2.removeitem【11】
【12】
List1.removeitem list1.listindex
End If
End Sub
-
设窗体上有一个名称为label1的标签,程序运行时,单击鼠标左键,再移动鼠标,鼠标的位置坐标会实时地显示在label1标签中,单击鼠标右键则停止实时显示,并将标签中内容清除,下面的程序可实现这一功能,请填空。
Dim down as Boolean
Private Sub form_mousedown(button as integer,shIft as integer,X as single, Y as single)
Select Case【8】
Case 1
Down=true
Case2
Down=false
End select
End Sub
Private Sub form. mousemove(button as integer,shIft as integer,X as single, Y as single)
If 【9】then
【10】=”X-” & X & ” Y-” & Y
Else
Label1.caption=””
End If
End Sub
-
常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于【5】。
-
在将E-R图转换到关系模式时,实体和联系都可以表示成【4】
-
下面的事件过程执行时,可以把TXET1文本框中的内容写到文件“file1.txt”中去。请填空。
Prvate Sub Command1_Click()
Open “file1.txt”for【6】as#1
Print【7】,text1.txt
Close #1
End Sub
-
数据库管理系统提供的数据语言中,负责数据的增、删、改和咨询的是【3】
-
设循环队列的存储空间为Q(1:30),初始状态为front=rear=30。现经过一系列入队与退队运算后,front=16,rear=15。则循环队列中有【2】个元素。
-
在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为【1】
-
设有打开文件的语句如下:
Open “test.dat” for random as #1
要求把变量a中的数据保存到该文件中,应该使用的语句是
- A)input #1,a
- B)write #1,a
- C)put #1,.a
- D)get #1,.a
-
在窗体上面两个名称分别为text1、text2的文本框,一个名称为label1的标签,窗体外观如图a所示,要求当改变任一个文本框的内容,就会将该文本框的内容显示在标签中,如图b所示。实现上述功能的程序如下:
Private Sub text1_change()
call show text(text1)
End Sub
Private Sub text2_change()
call showtext(text2)
End Sub
Private Sub show text(t as textbox)
label1.caption =”文本框中的内容是:”& T.text
End Sub
关于上述程序,以下叙述中错误的是
- A)showtext 过程的参数类型可以是control
- B)showtext 过程的参数类型可以是variant
- C)两个过程调用语句有错,应分别改为call show text(text1.text)、call showtext(text2.text)
- D)showtext过程中的T是控件变量
-
有如下程序:
Private type stu
X as string
Y as integer
End type
Private Sub Command1_Click()
Dim a as stu
- a.x=”ABCD”
- a.Y=12345 print a
- End Sub 程序运行时出现错误,错误的原因是
- A)Type定义语句没有放在标准模块中
- B)变量声明语句有错
- C)赋值语句不对
- D)输出语句print不对
-
以下关于弹出式菜单的叙述中,错误的是
- A)一个窗体只能有一个弹出式菜单
- B)弹出式菜单在菜单编辑器中建立
- C)弹出式菜单的菜单名(主菜单项)的“可见”属性通常设置为false
- D)弹出式菜单通过窗体的popupmenu方法显示
-
使用驱动器列表框drive1、目录列表框dir1、文件列表框file1时,需要设置控件的同步,以下能够正确设置两个控件同步的命令是
- A)dir1.path=drive1.path
- B)file1.path=dir1.path
- C)file1.path=drive1.path
- D)drive1.drive=dir1.path
-
要求产生10个随机整数,存放在数组Arr中,从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据,现有如下程序:
Option base 1
Private Sub Command1_Click()
Dim arr(10)as integer
For i=1 to 10 ‘循环1
- Arr(i)=int(rnd*100) Print arr(i); Next X=inputbox(“输入1-10的一个整数:”)
- For i=x+1 to 10 ‘循环2
- Arr(i-1)=arr(i) Next
- For i=1 to 10 ‘循环3 Print arr(i); Next
- End Sub 程序运行后发现显示的结果不正确,应该进行的修改是
- A)产生随机数时不使用int函数
- B)循环2的初始值应为i-x
- C)数组定义改为Dim a(11)as integer
- D)循环3的循环终值应改为9
-
有如下程序:
Option base 1
Private Sub Command1_Click
Dim arr(10)
- Arr=Array(10,35,28,90,54,68,72,90)
- For Each a In arr
- If a>50 then Sum=sum+a
- End If Next a
- End Sub 运行上述程序时出现错误,错误之处是
- A)数组定义语句不对,应改为Dim arr
- B)没有指明For 循环的终值
- C)应在For语句之前增加sum=0
- D)Next a 应改为next
-
在窗体上画两个名称分别为Text1、Text2的文本框,Text属性为“database”。如图所示。
现有如下事件过程:
Private Sub text1_change()
Text2.text=mid(text1,1,5)
End Sub
运行程序,在文本框text1中原有字符之前输入a,text2中显示的是
- A)dataA
- B)DataB
- C)aDate
- D)aBase
-
设程序中有如下数组定义和过程调用语句:
Dim a(10) as integer
……
Call p(a)
如下过程定义中,正确的是
- A)Private Sub p(a as integer)
- B)Private Sub p(a() as integer)
- C)Private Sub p(a(10) as integer)
- D)Private Sub p(a(n) as integer)
-
若要获得组合框中输入的数据,可使用的属性是
- A)listindex
- B)caption
- C)text
- D)list
-
窗体上有一个名称为commondialog1的通用对话框,一个名称为Command1的命令按钮,并有如下事件过程:
Private Sub Command1_Click()
Commondialog1.defauhext=”doc”
Commondialog1.filcname=”vb.txt”
Commondialog1.filter=”Alt(*.*)”|*.*|word|*.doc|”
Commondialog1.filerindex=1
Commondialog1.showsave
End Sub
运行上述程序,如下叙述中正确的是
- A)打开的对话框中文件“保存类型”框中显示“All(*.*)”
- B)实现保存文件的操作,文件名是VB.Txt
- C)defauext属性五filename属性所指明的文件类型不一致,程序出错
- D)对话框的filter属性没有指出txt类型,程序运行出错
-
以下关于多窗体的叙述中,正确的是
- A)任何时刻,只有一个当前窗体
- B)向一个工程添加多个窗体,存盘后生成一个窗体文件
- C)打开一个窗体时,其他窗体自动关闭
- D)只有第一个建立的窗体才是启动窗体
-
以下关于菜单设计的叙述中错误的是
- A)各菜单项可以构成控件数组
- B)每个菜单项可以看成是一个控件
- C)设计菜单时,菜单项的“有效”未选,即
,表示该菜单项不显示
- D)菜单项只响应单击事件
-
现有如下一段程序:
Option base 1
Private Sub Command1_Click()
Dim a
- a=Array(3,5,7,9) X=1
- For i=4 to 1 step -1 s=s+a(i)*x X=x*10 Next Print s
- End Sub 执行程序,单击Command1命令按钮,执行上述事件过程中,输出结果是
- A)9753
- B)3579
- C)35
- D)79
-
设有一个命令按钮Command1的事件过程以及一个函数过程,程序如下:
Private Sub Command1_Click()
Static x as integer
X=f(x+5)
Cls
Print x
End Sub
Private function f(x as integer)as integer
F=x+x
End function
连续单击命令按钮3次,第3次单击命令按钮后,窗体上显示的计算结果是
- A)10
- B)30
- C)60
- D)70
-
设程序中有如下语句:
x-input box(“输入”,”数据”,100)
print x
运行程序,执行上述语句,输入5并单击输入对话框上的“取消”按钮,则窗体上输出
- A)0
- B)5
- C)100
- D)空白
-
设有分段函数:
以下表示上述分段函数的语句序列中错误的是
- A) Select Case x
- Case is<0 y=5
- Case is<=5,is>0 y=2*x
- Case Else y=x*x+1
- End Select
- B) If x<0 then y=5
- Elself x<=5 then y=2*x
- Else y=x*x+1
- End If
- C)y=1 If{x<0,5,1 If(x<=5,2*x,x*x+1)}
-
现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是
- A)Name
- B)Index
- C)Caption
- D)Value
-
设有如下数组声明语句:
Dim am(-2 To 2,0 To 3)As Integer
该数组包含的数组元素个数是
- A)20
- B)16
- C)15
- D)12
-
表达式 Int(Rnd(0)*50)) 所产生的随机数范围是
- A)(0,50)
- B)(1,50)
- C)(0,49)
- D)(1,49)
-
设x=5,执行语句Print x=x+10,窗体上显示的是
- A)15
- B)5
- C)True
- D)False
-
下面定义窗体级变量a的语句中错误的是
- A)Dim a%
- B)Private a%
- C)Private a As Integer
- D)Static a%
-
设x是小于10的非负数,对此陈述,以下正确的VB表达式是
- A)0≤x<10
- B)0<= x<10
- C) x >=0 And x<10
- D)x>=0 Or x<=10
-
以下关于窗体的叙述中,错误的是
- A)窗体的Name属性用于标识一个窗体
- B)运行程序时,改变窗体大小,能够触发窗体的resize事件
- C)窗体的Enabled属性为False时,不能响应单击窗体的事件
- D)程序运行期间,可以改变Name属性值
-
以下合法的VB变量名是
- A)Case
- B)name10
- C)t-name
- D)x*y
-
软件设计中不使用的工具是
- A)系统结构图
- B)PAD图
- C)数据流图(DFD图)
- D)程序流程图
-
下面不属于需求分析阶段任务的是
- A)确定软件系统的功能需求
- B)确定软件系统的性能需求
- C)需求规格说明书评审
- D)制定软件集成测试计划
-
在黑盒测试方法中,设计测试用例的主要根据是
- A)程序内部逻辑
- B)程序外部功能
- C)程序数据结构
- D)程序流程图
-
软件生命周期中的活动不包括
- A)市场调研
- B)需求分析
- C)软件测试
- D)软件维护
-
有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是
- A)自然连接
- B)并
- C)交
- D)差
-
在满足实体完整性约束的条件下
- A)一个关系中应该有一个或多个候选关键字
- B)一个关系中只能有一个候选关键字
- C)一个关系中必须有多个候选关键字
- D)一个关系中可以没有候选关键字
-
在下列模式中,能够给出数据库物理存储结构与物理存取方法的是
- A)外模式
- B)内模式
- C)概念模式
- D)逻辑模式
-
棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为
- A) 16
- B) 10
- C) 6
- D) 4
-
下列叙述中正确的是
- A)循环队列是队列的一种链式存储结构
- B)循环队列是队列的一种顺序存储结构
- C)循环队列是非线性结构
- D)循环队列是一种逻辑结构
-
下列叙述中正确的是
- A)栈是一种先进先出的线性表
- B)队列是一种后进先出的线性表
- C)栈与队列都是非线性结构
- D)以上三种说法都不对