posts - 70,comments - 80,trackbacks - 0

第二部分 Visual Basic 程序设计

2001 年 秋季)

一、选择题 (用答题卡答题,答案依次填在21-30答题号内)

21. 窗口上有多个控件,在 Form_Activate() 事件过程添加___21___语句,就可确保每次运行程序时,都将光标定位在文本框Text上。

A. Text1.Text=""

B. Text1.SetFocus

C. Form1.SetFocus

D. Text1.Visible=True

22. 在程序中分别将变量Inta、Bl、St、D定义为整型、布尔形、字符串型和日期型,下列赋值语句在执行时会出错的是___22___。

A.Inta=4.6

B.Bl=#True#

C.St=5&123.5

D.D=#10/05/01#

23.代数表达式 o_01-3.JPG 对应的Visual Basic表达式是__23___。

A. Sqr((x+log(x))/(a+b))+exp(-2*t)+cos((x+y)/2)

B. Sqr(x+log(x))/(a+b)+exp(-2*t)+cos((x+y)/2)

C. Sqr((x+ln(x))/(a+b))+exp(-2t)+cos((x+y)/2)

D. Sqr((x+log(x))/(a+b))+exp(-2*t)+cos(x+y/2)

24. 以下有关变量作用域的说法中 ,正确的是___24___。

A. 只有在标准模块中用Public语句说明的变量才是全局变量

B. 在过程中不能使用Public语句说明全局变量

C. 在标准模块的通用声明处可用Private语句说明模块级变量

D.在窗体的通用声明处可用Private语句说明窗体级变量

25. 语句Print "5*20"输出的结果是___25___。

A. "5*20"

B. 出现错误信息

C. 5*20

D. 100

26. 下列不正确的变量名是___26___。

A. Form

B. Command

C. Text

D. Arry@

27. 若磁盘文件C:\Data1.dat不存在,下列打开文件语句中,会产生错误的是___27___。

A. Open "C:\Data1.dat" For Output As #1

B. Open "C:\Data1.dat" For Input As #2

C. Open "C:\Data1.dat" For Append As #3

D. Open "C:\Data1.dat" For Binary As #4

28. 改变目录列表框(DirListBox)控件的Path属性的途径可以有___28___。

①单击目录列表框某一项

②程序代码中改变目录列表框的Path属性值

③双击目录列表框某一项

④ 在程序中用ChDir命令设置当前工作目录

A. ①②

B. ②③

C. ②③④

D. ①②③④

29. 以下有关数组的说明中,错误的是___29___。

A. 根据数组说明的方式,可将数组分为动态数组和静态数组

B. 在过程中,不能用Private语句定义数组

C. 利用ReDim语句重新定维时,不得改变已经定义说明过的数组的数据类型

D. 数组重新定维后,原有的数组元素内容将不予保留

30. 窗体的Name属性为Frm1,在窗体模块通用声明处和过程Sub1中分别用Public K As Integer, Dim K As Integer声明了两个同名变量K,则在过程Sub1中要访问全局变量K,可采用___30___。

A. Frm1.K

B. Form.K

C. Form1.K

D. K

31. 名为sort的Sub子过程的形式参数为一数组,以下的定义语句中正确的是___31___。

A. Private Sub sort(A() As Integer)

B. Private Sub sort(A(10) As Integer)

C. Private Sub sort(ByVal A() As Integer)

D. Private Sub sort(A(,) As Integer)

32. 可以在___32___中,使用语句Public PubStr As String*20定义一个定长字符串。

A. 窗体模块

B. 标准模块

C. 类模块

D. 三者均可

33. 以下有关由多个窗体和标准模块组成的应用程序设计方法的叙述中,错误的是___33___。

A. 在缺省情况下,设计时的第一个窗体被指定为启动窗体

B. 通过人为设置,可指定任一窗体为启动窗体

C. 通过人为设置,可指定标准模块中的Main()过程为启动过程

D. 通过人为设置,可指定窗体模块中的Main()过程为启动过程

34. 在过程中由语句For I=N1 To N2 Step N3,在该循环体内有下列四条语句,其中___34___会影响循环执行的次数。

①N1=N1+I

②N2=N2+N3

③ I=I+N3

④N3=2*N3

 

A. ①②

B.①②③

C. ③

D. ①②③④

35. 在窗体Form1上,有一个列表框控件List1,在窗体的Click事件中有如下代码:

Private Sub Form_Click()

Dim K As Integer

Dim entry As String, item As String

entry="EDCBA"

For k=Len(entry) To 1 Step -1

item=LCase(Mid(entry,k,1))&k

List1.AddItem item

Next k

End Sub

运行此程序,单击窗体后在窗体的列表框中显示的第四个列表项内容是___35___。

A. b4

B. b2

C. d4

D. d2

二、填空题 (请把答案填写在答题纸的相应答题号内,每个答题只占一行)

1. 执行下面的程序,在窗体上显示的输出结果的第一行是___ this is a book. ___,第二行结果是___ This Is A Book. ___。

Option Explicit

Private Sub Form_Click()

Dim s As String,i As Integer,flag As Boolean

s="THIS IS A BOOK."

s=LCase(s)

Print s

flag=True

For i=1 To Len(s)

If Mid(s,i,1)="" Then

flag=True

ElseIf flag Then

s=Left(s,i-1)&UCase(Mid(s,i,1))&Right(s,len(s)-i)

flag=False

End If

Next i

Print s

End Sub

2. 执行下面的程序,在窗体上显示的输出结果的第二行是 _4 9 13_ _,第三行结果是__ 19.5 __。

OPtion Explicit

Dim a As Integer,b As Integer

Private Sub Form_Click()

Dim c As Integer

a=1

b=3

c=5

Print fun(c)

Print a,b,c

Print fun(c)

End Sub

Private Function fun(x As Integer)As Single

fun=a+b+x/2

a=a+b

b=a+x

x=b+a

End Function

3. 执行下面的程序,第一行输出结果是_ _18_ __,第二行输出结果是__ _30_ __。

Option Explicit

Private Sub Form_Click()

Dim M As Integer,N As Integer

M=1:N=2

Print M+N+Fun1(M,N)

M=2:N=1

Print Fun1(M,N)+Fun1(M,N)

End Sub

Private Function Fun1(X As Integer,Y As Integer)

X=X+Y

Y=X+3

Fun1=X+Y

End Function

4. 执行下面程序,在窗体上显示的输出结果的第二行是___ 4 5 6 ___,第五行是__ _9 8 7__ _,第六行是___ 6 5 4 ___。

Option Explicit

Private Sub Form_Click()

Dim a(3,3) As Integer, iAs Integer

Dim j As Integer,k As Inteher

For i=1 To 3

For j=1 To 3

a(i,j)=(i-1)*3+j

Print a(i,j);

Next j

Print

next i

print

k=(i-1)*3

For i=1 To 3

For j=1 To 3

a(i,j)=k

k=k-1

Print a(i,j);

Next j

Print

Next i

End Sub

5. 执行下面的程序,在窗体上显示的第一行输出结果是__ _1 3 5 7 9 __,第三行输出结果是___ 4 _ __, FOrm_Click()事件过程中的第二个For--Next循环共执行了___ 2 _ __次。

Option Explicit

Option Base 1

Private Sub Form_Click()

Dim a(5) As Integer,i As Integer,j As Integer

For i=1 To 5

a(i)=2*i-1

Print a(i)

Next i

Print

For j=1 To I-2

Call sub1(a(j),j)

Print j

Next j

End Sub

Public Sub Sub1(x As Integer,p As Integer)

If x-p<=2 Then

p=p+1

Else

p=p+2

End If

End Sub

6.下面程序的功能是统计随机产生的十个两位正整数中偶数于奇数的个数,并求出偶数与奇数各自的总和。

Option Explicit

Private Sub Form_Click()

Dim x As Integer, s1 As Integer,s2 As Integer

Dim n1 As Integer, n2 As Integer,i As Integer

Randomize

For i=1 To 10

x=Int(Rnd*90)+10

Print x

If _ _x mod 2=0_ __Then

n2=n2+1

s2=s2+x

Else

__ _n1=n1+1 ___

s1=s1+x

End If

Next i

Print

Print "奇数个数=";n1,"偶数个数=";n2

end

7. 下面程序功能为:单击命令按纽Command1,找出100以内的所有约数之和为一个完全平方数的正整数,并按图中所示的格式将结果显示在图形框Picture1中。

Option Explicito_01-4.JPG

Private Sub Command1_Click()

Dim i As Integer,j As Integer

Dim F() As Integer,sum As Integer

For i=3 To 100

___ sum=0 ___

If Fac(i,F,sum) Then

Picture1.Print i; ":";

FOr j=1 To UBound(F)-1

Picture1.Print F(J); "+";

Next J

Picture1.Print F(J); "="; sum; "="; Sqr(sum); "^2"

End If

Next i

End Sub

Private Function Fac(ByVal K As Integer,A() As Integer,sum As Integer) As Boolean

Dim N As Integer,J As Integer

For N=1 To K

If___ k mod n=0 ___Then

J=J+1

__ _ReDim Preserve A(J) ___

A(J)=N

sum=sum+N

End If

Next N

If sum=__ _Int(Sqr(sum))^2 __Then Fac=True

End Function

8. C盘根目录下文件Data4.txt的内容是:2,4,6,8,10,1,3,5,7,9。下面程序的功能是将文件后半部分的奇数分别按序插入到前半部分的适当位置,得到的新数列是:1 2 3 4 5 6 7 8 9 10。(实现方法:第一次调整后的数列是:1 2 6 8 10 3 5 7 9第二次调整后的数列是:1 2 3 4 6 8 10 5 7 9)。

Option Explict

Private Sub Form_Click()

Dim A(10) As Integer,i As Integer,J As Integer

Open "c:\Data4.txt" For Input As #12

Do ___ while not Eof(12) __

J=J+1

Input #12,A(J)

Loop

Call Insert(A)

For i=1 To 10

Print A(i)

Next i

Print

Close #12

End Sub

Private Sub Insert(A() As Integer)

Dim i As Integer,Putp As Integer,J As Integer

Dim Getp As Integer,N As Integer,Tem As Integer

N=UBound(A)/2

Putp=1

Getp=N+1

For i=1 To N

Tem=A(Getp)

For J=Getp To Putp +1 Step -1

__ A(J)=A(J-1) __

Next J

A(Putp)=Tem

Getp=Getp+1

Putp=__ _Putp+2_ _

Next i

End Sub

9.下面程序的功能是从键盘上输入一个不超过4位的十进制正整数,先把该十进数的每一位数字转换位一个4位二进制数,再把得到的二进制数依次合并成为一个16位的二进制数。例如输入十进制数359,会得到二进制数0000001101011001。

Private Sub Form_Click()

Dim num As Integer,s As Integer,M As Integer

Dim i As Integer,j As Integer,n As Integer

num=InputBox("输入一个长度不超过4位的十进制正整数:",,1)

__ _M=num_ _

Do While num>0

j=j+1

n=num Mod 10

s=cover(n)&s

___ num=num\10 _ _

Loop

For i=1 To 4-j

s="0000"&s

Next i

Text1.Text="十进制数"&CStr(M)&"的转换结果是:"&s

End Sub

Private Function cover(ByVal n As Integer)As String

Dim i As Integer,s As String,k As Integer

Do Until n<1

__ _k=n Mod 2_ _

s=CStr(k)&s

n=n\2

Loop

If Len(s)<4 Then

s="0000"&S

cover=_ _right(s,4)__

Else

cover=s

End If

End Function

 

 

posted on 2006-10-14 15:28 木子李 阅读(432) 评论(0)  编辑 收藏 引用 网摘 所属分类: Visual Basic 课堂

只有注册用户登录后才能发表评论。