2013年3月全国计算机等级考试二级Visual Basic笔试试卷
-
在窗体上画一个文本框,其名称为Text1,在属性窗口中把该文本框的MultiLine属性设置为True,然后编写如下的事件过程:
Private Sub Form_Click( )
Open "d:\test\smtext1.Txt"
For Input As #1
Do While Not __________
Line Input #1, aspect$
Whole$=whole$+aspect$+Chr$(13)+Chr$(10)
Loop
Text1.Text=whole$
__________
Open "d:\test\smtext2.Txt"
For Output As #1
Print #1, __________
Close #1
End Sub
运行程序,单击窗体,将把磁盘文件smtext1.txt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt。请填空。
-
在窗体上画一个名称为Command1的命令按钮。然后编写如下程序:
Option Base 1
Private Sub Command1_Click( )
Dim a(10) As Integer
For i=1 To 10
a(i)=i
Next
Call swap (__________)
For i=1 To 10
Print a(i);
Next
End Sub
Sub swap(b( ) As Integer)
n=Ubound(b)
For i=1 To n/2
t=b(i)
b(i)=b(n)
b(n)=t
__________
Next
End Sub
上述程序的功能是,通过调用过程swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换,……。请填空。
-
有如下程序:
Option Base 1
Private Sub Command1_Click( )
Dim a(10) As Integer
For i=1 To 10
a(i)=i
Next
Call swap (__________)
For i=1 To 10
Print a(i);
Next
End Sub
Sub swap(b( ) As Integer)
n=Ubound(b)
For i=1 To n/2
t=b(i)
b(i)=b(n)
b(n)=t
__________
Next
End Sub
程序运行后,单击窗体,输出结果为__________。
-
在窗体上画一个标签、一个计时器和一个命令按钮,其名称分别为Labl1、Timer1和Command1,如图1所示。程序运行后,如果单击命令按钮,则标签开始闪烁,每秒钟“欢迎”二字显示、消失各一次,如图2所示。以下是实现上述功能的程序,请填空。
Private Sub Form_Load( )
Label1.Caption="欢迎"
Timer1.Enabled=False
Timer1.Interval=__________
End Sub
Private Sub Timer1_Timer( )
Label1.Visible=__________
End Sub
Private Sub command1_Click( )
__________
End Sub
-
有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号,__________,成绩)。
-
为了使复选框禁用(即呈现灰色),应把它的value属性设置为__________。
-
软件是__________、数据和文档的集合。
-
设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有__________个元素。
-
设二叉树如下:
对该二叉树进行后序遍历的结果为__________。
-
下面程序运行时,若输入“Visual Basic Programming”,则在窗体上输出的是 __________
Private Sub Comand1_Click( )
Dim count(25) As Integer, ch As String
ch=Ucase(InputBox("请输入字母字符串"))
For k=1 To Len(ch)
n=Asc(Mid(ch,k,1))-Asc("A")
If n>=0 Then
Count(n)=Count(n)+ 1
End If
Next k
m=count(0)
For k=1 To 25
If m
m=count(k)
End If
Next k
Print m
End Sub
- A.0
- B.1
- C.2
- D.3
-
一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为__________。
-
窗体上有一个名为Command1的命令按钮,并有下面的程序:
Private Sub Comand1_Click( )
Dim arr(5) As Integer
For k=1 To 5
- arr(k)=k Next k prog arr( )
- For k=1 To 5 Print arr(k) Next k
- End Sub Sub prog(a( ) As Integer) n=Ubound(a)
- For i=n To 2 step -1
- For j=1 To n-1
- if a(j) t=a(j):a(j)=a(j+1):a(j+1)=t
- End If Next j Next i
- End Sub 程序运行时,单击命令按钮后显示的是__________
- A.12345
- B.54321
-
设工程中有2个窗体: Form1、Form2,Form1为启动窗体。Form2中有菜单。其结构如表。要求在程序运行时,在Form1的文本框Text1中输入口令并按回车键(回车键的ASCII码为13)后,隐藏Form1,显示Form2。若口令为“Teacher”,所有菜单项都可见;否则看不到“成绩录入”菜单项。为此,某人在Form1窗体文件中编写如下程序:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii=13 Then
If Text1.Text="Teacher" Then
Form2.input.visible=True
Else
Form2.input.visible=False
End If
End If
Form1.Hide
Form2.Show
End Sub
程序运行时发现刚输入口令时就隐藏了Form1,显示了Form2,程序需要修改。下面修改方案中正确的是__________
- A.把Form1中Text1文本框及相关程序放到Form2窗体中
- B.把Form1.Hide、Form2.Show两行移到2个End If之间
- C.把If KeyAscii=13 Then改为 If KeyAscii="Teaeher" Then
- D.把2个Form2.input.Visible中的“Form2”删去
-
某人编写了下面的程序,希望能把Text1文本框中的内容写到out.txt文件中
Private Sub Comand1_Click( )
Open "out.txt"
For Output As #2
Print "Text1"
Close #2
End Sub
调试时发现没有达到目的,为实现上述目的,应做的修改是__________
- A.把Print "Text1"改为Print #2,Text1
- B.把Print "Text1"改为Print Text1
- C.把Print "Text1"改为Write "Text1"
- D.把所有#2改为#1
-
下面程序运行时,若输入395,则输出结果是__________
Private Sub Comand1_Click( )
Dim x%
x=InputBox("请输入一个3位整数")
Print x Mod 10,x\100,(x Mod 100)\10
End Sub
- A.3 9 5
- B.5 3 9
- C.5 9 3
- D.3 5 9
-
窗体上有List1、List2两个列表框,List1中有若干列表项(见图),并有下面的程序:
Private Sub Comand1_Click( )
For k=List1.ListCount-1 To 0 Step -1
If List1.Selected(k) Then
List2.AddItem
List1.List(k)
List1.RemoveItem k
End If
Next k
End Sub
程序运行时,按照图示在List1中选中2个列表项,然后单击Commandl命令按钮,则产生的结果是__________
- A.在List2中插入了“外语”、“物理”两项
- B.在List1中删除了“外语”、“物理”两项
- C.同时产生A)和B)的结果
- D.把List1中最后1个列表项删除并插入到List2中
-
若在窗体模块的声明部分声明了如下自定义类型和数组__________
Private Type rec
Code As Integer
Caption As String
End Type
Dim arr(5) As rec
则下面的输出语句中正确的是__________
- A.Print arr.Code(2),arr.Caption(2)
- B.Print arr.Code,arr.Caption
- C.Print arr(2).Code,arr(2).Caption
- D.Print Code(2),Caption(2)
-
设窗体上有一个通用对话框控件CD1,希望在执行下面程序时,打开如图所示的文件对话框
Private Sub Comand1_Click( )
CD1.DialogTitle="打开文件"
CD1.InitDir="C:\"
CD1.Filter="所有文件|*.*|Word文档|*.doc|文本文件|*.Txt"
CD1.FileName=""
CD1.Action=1
If CD1.FileName=""Then
Print"未打开文件"
ElsePrint"要打开文件"& CD1.FileName
End If
End Sub
但实际显示的对话框中列出了C:\下的所有文件和文件夹,“文件类型”一栏中显示的是“所有文件”。下面的修改方案中正确的是__________
- A.把CD1.Action=1改为CD1.Action=2
- B.把“CD1.Filter=”后面字符串中的“所有文件”改为“文本文件”
- C.在语句CD1.Action=1的前面添加:CD1.FilterIndex=3
- D.把CD1.FileName=""改为CD1.FileName="文本文件"
-
计算二的近似值的一个公式是
某人编写下面的程序用此公式计算并输出π的近似值:
Private Sub Comand1_Click( )
PI=1
Sign=1
n=20000
For k=3 To n
Sign=-Sign/k
PI=PI+Sign/k
Next k
Print PI*4
End Sub
运行后发现结果为3.22751,显然,程序需要修改。下面修改方案中正确的是__________
- A.把For k=3 To n 改为 For k=1 To n
- B.把n=20000改为n=20000000
- C.把For k=3 To n改为For k=3 To n Step 2
- D.把PI=1改为PI=0
-
要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标的位置坐标。下面能正确实现上述功能的事件过程是__________
- A.Private Sub P1_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) Print X,Y
- End Sub
- B.Private Sub P1_MouseDown(Button AS Integer,Shift As Integer,X As Single, Y As Single) Pictur.Print X,Y
- End Sub
- C.Private Sub P1_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) P1.Print X,Y
- End Sub
- D.Private Sub Form_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) P1.Print X,Y
- End Sub
-
下面程序计算并输出的是__________
Private Sub Comand1_Click( )
- a=10 s=0
- Do s=s+a*a*a
- a=a-1 Loop Until a<=0 Print s
- End Sub
- A.13+23+33+…+103的值
- B.10!+…+3!+2!+1!的值
- C.(1+2+3+…+10)3的值
- D.10个103的和
-
有下面的程序段,其功能是按图1所示的规律输出数据
Dim a(3,5) As Integer
For i=1 To 3
For j=1 To 5
- A(i,j)=i+jPrint a(i,j); Next Print Next 若要按图2所示的规律继续输出数据,则接在上述程序段后面的程序段应该是__________ 点击查看答案