求VB 各类题目 代码 初学者的!

这里有vb的二级考题和答案:

/ncre2/

还有这里/4876860.html

具体的题目是:

VB二级试题

关键词: VB二级试题

四川省普通高等学校计算机应用知识和能力

第十九次等级考试

二级(Visual Basic)笔试试卷

第一部分 软件技术基础(***15分)

一、判断是非(1分/小题,***10分)

1、 数组是一种固定长度的线性表,可以对数组进行插入和删除运算

2、 白盒测试时,测试者不考虑程序的内部结构特征

3、 对线性表中的数据进行二分查找,必须要求数据元素有限且有序

4、 内存管理技术中,每个分区的地址是连续的

5、 文件的目录结构是一种线性表

6、 面向对象的程序设计中,对象的动作取决于发送给该对象的消息

7、 虚拟设备是指将大容量的***享设备的一部分空间用来代替实际的独占设备

8、 在结构化程序设计中,N-S图是用于详细设计的工具之一

9、 在操作系统的设备管理中,打印机被看成是一种***享设备

10、分时操作系统的主要特征之一是提高计算机系统的实时性

二、单项选择题(1分/小题,***5分)

1、在排序法中,从未排序序列中依次取出元素,与已排序列中的元素做比较,将其放入已经排序序列的正确位置称为( )

A)选择排序 B)快速排序 C)插入排序 D)冒泡排序

2、有X、Y、Z三个元素依次入栈,不可能的出栈的顺序是( )

A)Z、Y、X B)Z、X 、Y C)Y、X、Z D)X、Y、Z

3、进程的状态是可以转换的,而以下哪个状态转换是不可能的( )

A)就绪状态-->执行状态 B)执行状态-->就绪状态

C)阻塞状态-->就绪状态 D)等待状态-->执行状态

4、线性链表的地址( )

A)必须连续 B)部分地址必须连续 C)一定不连续 D)连续与否都可以

5、在软件测试中,( )主要分析程序的内部结构。

A)白盒法 B)黑盒法 C)因果图法 D)错误推测法

第二部分

Visual Basic语言程序设计

一、单项选择题(1分/题,***10分)

1、在Visual Basic中,窗体文件的扩展名为( )

A)EXE B)BAS C)FRM D)VBP

2、表达式8+2*3^2\9/8-3 mod 2的结果为( )

A)25 B)24 C)7 D)7.25

3、从键盘上输入两个字符串,分别保存到变量Str1和Str2中,确定第二个字符串在第一个字符串中起始位置的函数是( )

A)Left B)Mid C)String D)Instr

4、若X是一个正实数,能对X的第3位小数进行四舍五入的表达式是( )

A)0.01*Int(100*(x+0.05)) B)0.01*Int(100*(x+0.005))

C)0.01*Int(x+0.05) D)0.01*Int(x+0.005)

5、下面四个语句中能打印显示20*30字样的是( )

A)pint “20*30” B)print 20*30

C)print chr(20)+”*”+chr(30)D) D)print Val(“20”*Val(“30”)

6、变量在窗体模块中申明为公***的,下列关于变量的陈述哪条是正确的( )

A)可以从项目的任何打模块中存取变量

B)可以在窗体的任何地方存取变量,而不是在窗体模块外

C)只能在同一个项目的其它窗体模块中存取变量

D)变量不能在窗体模块中申明为公***的

7、对一个窗体对象,其最先发生的事件是( )

A)Click B)DbClick C)Load D)UnLoad

8、以下能触发文本框Change事件的操作是( )

A)文本框失去焦点 B)文本框获得焦点

C)设置文本框的焦点 D)改变文本框的内容

9、若要使标签控件显示时覆盖其背景内容,要设置其BackStyle属性的值为( )

A)0 B)1 C)2 D)3

10、下面对控件数组叙述正确的是( )

A)在窗体上添加第二个相同类型的空间时,VB不会提示创建一个空间数组

B)控件数组使用Index属性来标识下标,其范围从0开始

C)控件数组使用的资源比用几个单独同样的控件占用的更多

D)如果有一个按钮叔祖,按任一按钮不会调用相同的Click事件过程

二、阅读分析程序(3分/题,***45分)

1、阅读下面的程序

Option Explicit

Dim n As Integer, L As Integer, I As Integer, J As Integer

Dim a() As Integer

n = InputBox("请输入一个整数")

ReDim a(1 To n)

a(1) = 1: a(2) = 2: a(3) = 3: L = 4

L1: For I = 5 To n

For J = 2 To L - 1

If I Mod a(J) = 0 Then

Exit For

End If

L2: Next J

L3: If J > L - 1 Then a(L) = I: L = L + 1

Next I

L4: For I = 1 To L - 1

Print a(I);

Next I

L = L - 1

Print " L="; L

End Sub

(1)程序运行后点击“Command1”,如果在输入框输入20,输出的结果为( )

A)1,2,3,5,7,11,13,17,19,L=9

B)1,3,5,7,9,11,13,15,17,L=19

C)1,2,3,4,5,……..18,19,L=19

D)1,2,3,4,5,……..18,19,20,L=20

(2)上述程序中语句“Dim a( ) as Integer”的功能是( )

A)定义a是11个元素的整形数组 B)定义一个动态数组

C)定义了一个静态数组 D)定义了a个整形变量

(3)当执行语句“Exit For”后,程序流程将( )继续执行

A)从语句标号L1处 B)从语句标号L2处

C)从语句标号L3处 D)从语句标号L4处

2、阅读下面的程序

Option Explicit

Private Sub Command1_Click()

Dim StrPassWord As String

Dim I As Integer

For I = 1 To 3

StrPassWord = InputBox("Password")

If StrPassWord = "123" Then

LLL: Exit For

End If

Next I

If I = 4 Then

MsgBox "你不是合法用户"

Else

MsgBox "欢迎你"

End If

End Sub

(1)该程序的作用是( )

A)用户输入3次正确口令”123”,才显示“欢迎你”,输入3次错误口令才显示“你不是合法用户”

B)用户输入1次正确口令”123”,才显示“欢迎你”,输入1次错误口令才显示“你不是合法用户“

C)用户输入1次正确口令”123”,才显示“欢迎你”,输入3次错误口令才显示“你不是合法用户“

D)用户输入1次出错口令”123”,才显示“欢迎你”,输入3次正确口令才显示“你不是合法用户“

(2)如果将LLL处的语句去掉,则( )

A)和原来的程序效果一样

B)用户必须输入3次正确口令后,才会显示“欢迎你“

C)用户必须输入3次口令,且输入任何口令都显示“欢迎你“

D)用户必须输入3次口令,且输入任何口令都显示“你不是合法用户“

3、阅读下面的程序

Private Sub Form_Click()

Dim a(2, 4) As Integer, b(4) As Integer

Dim i As Integer, J As Integer

Do While i <= 4

a(1, i) = a(1, i) + 2 * i - 1

a(2, i) = a(2, i) + 12 - 2 * i

i = i + 1

Loop

For i = 1 To 2

For J = 1 To 4

Print a(i, J);

Next J

Print

Next I

L1: i = 0

Do While i <= 4

b(i) = a(1, i) + a(2, 4 - i)

Text1.Text = b(i)

i = i + 1

Loop

End Sub

(1)程序执行到L1语句处输出的结果为( )

A)1 3 5 7 B)7 5 3 1

10 8 6 4 10 8 6 4

C)10 8 6 4 D)4 6 8 10

7 5 3 1 1 3 5 7

(2)本段程序执行完成后,数组元素b(2)的值为( )

A)3 B)7 C)11 D)15

(3)本段程序执行完成后,显示在文本框中的结果是( )

A)19 17 15 11 B)19 C)15 D)3

4、在窗体上设计有文本框TxtInput和按钮cmdTest,且TxtInput.Text=”Visual basic is easy“,并有如下代码:

Option Explicit

Option Base 1

Private Sub cmdTest_Click()

Dim strS$, i%, j%, n%, stra$, strb$, count%, t$, strt$()

strS = TxtInput

n = Len(strS)

ReDim strt(n)

For i = 1 To n

stra = Mid(strS, i, 1)

strb = Mid(strS, i + 1, 1)

If strb = "s" Then

If stra >= "a" And stra <= "z" Then

count = count + 1

strt(count) = stra + strb

End If

End If

Next i

For i = 1 To count

For j = 1 To count - i

If strt(j) < strt(j + 1) Then

t = strt(j): strt(j) = strt(j + 1): strt(j + 1) = t

End If

Next j

Next i

For i = 1 To count

Print strt(i)

Next i

Text1.Text = count

End Sub

(1)程序运行后,count的值应为( )

A)0 B)2 C)4 D)6

(2)程序运行后,窗体上显示的结果为( )

A)basic Visual wasy is B)is is as as

C)is as is as D)as as is is

(3)Option Explicit的作用是( )

A)表明此模块内部变量必须先声明后使用

B)表明此模块没有通用过程

C)表明此模块的通用过程不能被其他模块调用

D)表明此模块变量不声明可以直接使用

(3)以下关于语句“Option Base 1”正确的说法是( )

A)其功能是知道指定数组的默认上界 B)其功能是知道指定数组的默认下界

C)其功能是定义动态数组 D)其功能是定义静态数组

5、阅读下面的程序

Option Explicit

Option Base 1

Private Type Abc

A As Integer

End Type

Private Sub Form_Click()

Dim recAbc As Abc

Dim arrA(4, 4) As Integer

Dim intI As Integer, intJ As Integer, intN As Integer

Open "abc.txt" For Random As #1

For intI = 1 To 4

For intJ = 1 To 4

intN = intN + 1

recAbc.A = intN

Put #1, , recAbc

Next intJ

Next intI

Close

Open "abc.txt" For Random As #1

For intJ = 1 To 4

For intI = 1 To 4

Get #1, intI * intJ, recAbc

arrA(intI, intJ) = recAbc.A

Next intI

Next intJ

Text1.Text = arrA(3, 2)

Close

For intI = 1 To 4

For intJ = 1 To 4

Print Tab(intJ * 3); Format(arrA(intI, intJ), "###");

Next intJ

Next intI

End Sub

(1)程序中的“abc.txt”文件在第一次打开时是按( )方式打开的

A)顺序文件读 B)顺序文件写 C)随机文件 D)二进制文件

(2)数组arrA完成赋值以后,数组元素arrA(3,2)的值为( )

A)1 B)7 C)6 D)4

(3)程序运行后在窗体上输出的结果为( )

A)1 2 3 4 B)1 2 3 4

5 6 7 8 2 4 6 8

9 10 11 12 3 6 9 12

13 14 15 16 4 8 12 16

C)1 5 9 13 D)1 2 3 4

2 6 10 14 2 3 4 5

3 7 11 15 3 4 5 6

4 8 12 16 4 5 6 7

三、程序填空题(2分/空,***30分)

1、下面函数的功能是:求变量s(s=a+aa+aaa+aaaa+….)的值,其中,a为一个0~9的数字,总***累积a项,例如:

当a=3时,s=3+33+333 (***累积3项)

当a=5时,s=5+55+555+5555+55555(***累积5项)

请完善程序:

Public Function calc(a As Double)

s = a

t = a

For i = 2 To ①

t = ②

s = s + t

Next i

Print s

End Function

2、下面程序是用“冒泡”法将数组a中的10个整数按升序排序,并将排好序的结果显示在文本框中,请完善程序。

Option Explicit

Option Base 1

Private Sub Form_Click()

Dim i%, j%, t%

Text1.Text = ""

a = Array(345, 3, 65, 24, 765, 32, 56, 421, 54, 235)

For i = 1 To 9

For j = i To ②

If ③ Then

t = a(j)

a(j + 1) = t

End If

Next j

Next i

For i = 1 To 10

Text1.Text = Text1.Text & " " & a(i)

Next i

End Sub

3、下面程序的功能是将一个整数转化为数值字符串,例如123转换为”+123“。

Private Sub NtoC(ByVal n!, strc As String)

Dim sign As Boolean, i%, a%, count%, temp%(100)

sign = False

If n < 0 Then sign = True: n = ①

Do While n > 0

a = ②

n = n \ 10

count = count + 1

temp(count) = a

Loop

If sign Then strc = "-" Else strc = "+"

For i = count To 1 Step -1

strc = ③

Next i

End Sub

4、从键盘上输入任意一个整数x,将其插入到一个按升序排列的整数数组中,并保证数组在插入之后仍按原来的升序排列,请填写完整程序。

Option Explicit

Option Base 1

Const n = 10

Private Sub Form_Click()

Dim a

Dim i As Integer, j As Integer, x As Integer

a = Array(1, 3, 4, 5, 9, 15, 22, 28, 30, 60)

For i = 1 To n

Print a(i)

Next i

Print

x = InputBox("输入一个整数x:")

ReDim Preserve a(n + 1)

For i = n To 1 Step -1

If ① Then

a(i + 1) = a(i)

Else

Exit For

End If

Next i

For i = 1 To n + 1

Print a(i) & " ";

Next i

End Sub

5、下面程序实现当“单击”命令按钮cmdRead从文件”List.txt“中读入行数据并写入一个列表框中,文件中的每一行在列表框中占一个选项,请完善程序。

Private Sub cmdRead_Click()

Dim strList As String

Dim intFileNum As Integer

intFileNum = FreeFile()

Open App.Path + "\List.txt" For Input As #intFileNum

do until ①

Line Input #intFileNum, strList

List1.AddItem ②

Loop

End Sub