四川省第22次等级考试理论练习

更新时间:2024-04-11 02:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二部分

Visual BASIC 语言程序设计

(共85分)

一、单项选择题(1分/小题,共10分) ·

1.在Visual Basic中,工程文件的扩展名是( 16 )。 16(A)EXE (B)BAS (C)FRM (D)VBP

2.在以下表达式中结果始终为“真”的是( 17 )。 17(A)Int(Rnd)=Fix(Rnd) (B)Int(Rnd*20)>Fix(Rnd*3+5) (C)Int(-Rnd)=Fix(-Rnd) (D)-Int(Rnd*20)<-Fix(Rnd*3+5) 3.“x是小于10的非负数”,用Visual Basic表达式可写为( 18 )。

18(A)0≤x<10 (B)0≤x Or x<10 (C)0<=x And x<10 (D)0=

4. 语句“Dim a As Integer , b , c As Double”定义变量b并指定其类型为( 19 表示 19(A)整型 (B)双精度型 (C)变体类型 (D)语法错误 5.函数String(3,“Str”)的返回值是( 20 );

20(A)“StrStrStr” (B) “sss” (C) “SSS” (D) “StStSt” 6.如果要使某控件可用,应设置该控件的( 21 )属性。

21(A)Caption (B)Enabled ( C)Font (D)Visible

7.使用驱动器列表框的( 22 )属性可以设置或返回磁盘驱动器的名称。 22(A)ChDrive (B)Drive (C)List (D)ListIndex

8.若想清除文本框Text中的文本内容,其正确方法是( 23 )。 23(A)Text1.Text= “ ” (B)Text1.cls

(C)Text1.Text= Null (D)Text1.clear ·

9.要强制对变量进行显式声明时,应使用说明语句( 24 )。 24(A)Public Const (B)Option Explicit (C)Option Base l (D)Option Compare

10. 下面关于应用程序中过程的说法正确的是( 25 ). 25(A)过程的定义和过程的调用都可以嵌套。 (B)过程的定义和过程的调用都不可以嵌套。

(C)过程的定义可以嵌套,但过程的调用不能嵌套。 (D)过程的定义不可以嵌套,但过程的调用可以嵌套。 二、程序阅读(每个选择3分,共45分) 1.程序如下

Private Sub Form_ Click() L1: Dim i As Integer

Dim isum As Integer For i=1 T0 5

isum=sum(i)

Next i

Print “isum=”; isum End Sub

)

Private Function sum(n As Integer) L2: Dim j As Integer j =j + n n =n + 2

sum =j

End Function

(1) 该程序运行时第一次单击窗体产生的结果是( 26 ) 26(A)isum=3 (B)isum=4 (C)isum=5 (D)isum=15

(2)如果将L2语句改为:Static j As Integer,则程序运行时第一次单击窗体产生的结果为( 27 )。

27(A)isum=3 (B)isum=4 (C)isum=5 (D)isum=15

(3)如果在原程序基础上只将L1语句改为:Public i As Integer,则程序运行时第一次单击窗体产生的结果为( 28 )。 28(A)结果同(1)

(C)结果与(1)(2)都不相同

2.程序如下

Option Base 1 Private Type list

data(10) As Integer

max As Integer End Type

Private Sub Command1_Click() Dim a As list

Dim b As Integer For i=1 To 6

a.data(i)=2 * i Next i a.max=6

b=Val(InputBox(“请输入数据”)) If b>a.data(a.max) Then

a.data(a.max+1)=b

Else

i=1

Do While (b>a.data(i))

i=i+1

Loop

LL: For j=a.max To i Step - 1

a.data(j+1)=a.data(j) Next j

(B)结果同(2)

(D)程序有错,不能运行

a.data(i)=b End If

a.max=a.max+1

For i=1 To a.max

Print a.data(i) Next i End Sub

(1)该程序的功能是 ( 29 )

29(A) 在a.data这个数组中找到最小的数据 (B) 在a.data这个数组中找到最大的数据

(C) 在a.data这个数组中的a.max位置插入一个数据

(D) 在a.data这个数组中插入一个数据,使原数组保持有序 (2)a.max功能是( 30 )。 30(A)存放数组a.data中数据的个数 (B)存放数组a.data中最大数据的值 (C)存放数组a.data中最小数据的值

(D)存放数组a.data可存放数据的最大个数

3.程序如下

Option Explicit Option Base 1

Private Sub Command_Click()

L1: Dim n, i As Integer, j As Integer Dim IntA() As Integer

L2: n=Val (InputBox(“请输入数字”))

Redim IntA(n,n) For i=1 to n For j =1 to n

If i+j<=n+1 Then IntA(i,j)=i+j Else IntA(i,j)=IntA(i,j-1)+j End If

Next j,i

For i=1 To n

For j= i To n Print IntA(i,j)

Next j Print

Next i

End Sub

(1)在L1中所定义的变量n、i、j 的类型为( 31 )。 31(A)i、j、n均为整型 (C)i、j为整型,n为变体型

(B)i、j为整型,n为字符串类型 (D)i、j为整型,n无法确定

(2)若在执行L2时键入4,则程序执行后窗体的输出结果是( 32 )。

32(A)2

3 4 5 (B)2 3 4 5 (C)2

4 5 9 8 12 14

3 4 5 (D)2 3 4 9 7 8

4 5 9 6 7 8

5

4

5 9 8 12

14 4 5 6

4.在窗体是创建一个名称为Text1的文本框对象,然后编写如下程序: Private Sub Text1_KeyPress(KeyAscii As Integer) Static s As Integer Dim c As String

Select Case KeyAscii

Case Asc(“0”) To Asc(“9”) s=s + ( KeyAscii-Asc(“0”)) Case 13 Print s

Text1.Locked=True End Select

End Sub

(1)若焦点位于文本框Text1中,则能够触发KeyPress事件的操作是( 33 )。 33(A)单击鼠标 (B)双击文本框 (C)鼠标滑过文本框 (D)按下键盘上的某个键

(2)若焦点位于文本框Text1中,输入“3st4rd28f”并按下回车键后,则窗体上输出的结果是( 34 )。

34(A)0 (B)4 (C)8 (D)17

(3)若焦点位于文本框Text1中,输入“3strd28f”并按下回车键后,以下说法中正确的是( 35 )。

35(A)文本框Text1消失 (B)文本框Text1变灰 (C)文本框Text1内容改变 (D)文本框Text1不能被编辑

5.有如下程序

Private Sub Commandl_Click().

Dim aString As String , bString As String , cString As String Dim aLength As Integer , bLength As Integer Dim temp As String

Dim i As Integer , n As Integer aString=Text1.text : bString=Text2.text aLength=Len(aString) : bLength=Len(bString) i=1 : n=0 Do While i<=aLength

temp=Mid(aString , i , bLength)

If temp<>bString Then CString = cString + Mid(aString , i , 1) : i=i+1 Else

i = i + bLength

End If Loop Text3.Text=cString End Sub

(1)如果在文本框text1中输入AABCBCCD,文本框text2中输入BC,则运行该程序并单击Command1按钮后,文本框text3中显示的字符串是( 36 ).

36(A)AABCCD (B)AABCBCCDBC (C)AACD (D)BCAABCBCCD (2)如果要用变量n统计在atring中bstring出现的次数,则( 37 )。 37(A)在cString=cString +Mid(aString, i, l ) : i=i+1语句后加上n=n+1这条语句 (B)在i=i+bLength 后加上n=n+1这条语句

(C)在temp=Mid(aString, i,bLength)后加上n=n+1这条语句 (D)在Loop后加上n=n+1这条语句

6.阅读下面的程序: Option Explicit Private Type record data1 As String*5

data2 As Integer data3 As Single

End Type

Dim DatRec() As record, Dat As record Private Sub Command1_Click() Dim i% , RecNum% , recTotal&

Open “myfile.dat” For Random As #2 Len=Len(Dat) RecNum=InputBox(“请输入记录号”) recTotal=LOF(2)/Len(Dat) Redim DatRec(recTotal) Dat.data1= “china” Dat.data2= 56 Dat.data3= 89

For i=recTotal To RecNum Step-1 Get #2 , i , DatRec(i) Put #2 , i+1 , DatRec(i) Next i

Put #2 , RecNum , Dat

Close End Sub

(1)在文件myfile.dat中每条记录的字节数为( 38 )。

38(A)9 (B)10 (C)11 (D)12 (2)该程序的功能为( 39 )。

39(A)用变量dat的内容代替指定记录的内容

(B)将变量dat的内容写入指定记录,文件中原有该条记录及其后记录均后移一

(C)将变量dat的内容写入指定记录,文件中原有该条记录及其后记录删除 (D)将文件中指定记录读出放入变量dat中,文件中其余记录删除 (3)程序中所定义的record是( 40 )。 40(A)用户自定义类型 (B)变量 (C)用户自定义类型数组 (D)标注类型 三、程序填空(每空2分,共30分)

1.以下程序的功能是:单击命令按钮后,在窗体中显示如下矩阵。

12345234513451245123512 34

Option Explicit

Option Base 1

Private Sub Commandl_Click() Dim i As Integer , j As Integer Dim a(5,5) As Integer For i=1 To 5

a(1,i)=i Next i

For i=2 To 5 For j=1 To 4 a(i,j)=_________①__________

Next j a(i,j) = a(i-1,1) Next i

For i=1 To 5

Forj=1 To 5 Print a(i,j)

Next j

___________②_________

Next i End Sub

2. 以下函数可将一个(0-255)之间十进制数转换为二进制数,例如: 将十进制数“3”转换为二进制数“00000011”; 将十进制数“255”转换为二进制数“11111111”; Private Function Dtob(decade As String) As String

Dim binary As String Binary= “” n= Val(decade)

For i=1 To 8 binary = _________①__________ n=n\\2 Next i

___________②_________

End Function

3.从键盘输入10个整数置于数组a中,并使a中数据升序排序。

Option Explicit

Option Base 1 Private Sub Form_Click() Dim a(10) As Integer

Dim i As Integer , j As Integer , k As Integer For i=1 To 10 a(i)=Val(InputBox (“请输入原始数据:”))

Print a(i);

Next i

Print For i=1 To 9

___________①_________________ For_____________②______________

If a(j)

If k>i Then ______________③___________ For i=1 To 10 Print a(i);

Next i

Next i Print End Sub

Private Sub swap(x As Integer, y As Integer) Dim z As Integer z=x

4___________ ______________○

y=z

End Sub

4.以下程序的功能是:产生n个[10,300]范围内的互不相同的随机素数并存放在数组IntA中。请完善程序。

Private Sub Commandl_Click()

Dim intA() As Integer

Dim i As Integer, j As Integer, n As Integer Dim num As Integer, count As Integer, temp As Integer Dim tag As Boo1ean

n=InputBox(“请输入需产生的数据个数”) ReDim intA(n) Do Until count=n tag=True num=___________①_________________

temp=Sqr(num)

For i=2 To temp If________②__________Then Exit For Next i If i>temp Then

For j=1To count If num=intA(j) Then __________③________ Exit For

End If Next j

If tag Then

4___________ ______________○

intA(count)=num Print intA(count)

End If

End If

Loop End Sub

5.以下程序的功能是:从列表框中读入学生的姓名并利用输入框输入对应学生的成绩,然后将各条记录写入随机文件“MyFile.dat”。请完善程序。

Option Explict Private Type stu nam As String*8 s As Single End Type

___________①____________ Private Sub Commandl_Click() Dim i%

ReDim student(Listl.Listcount-1)

Open “MyFile.dat” For Random As #1

For i=0 To Listl.Listcount-1

Student(i).nam=______________②__________ Student(i).s=Inputbox(“ ”,List1.List(i)) ______________③______________

Print Student(i).nam ; Student(i).s

Next i Close #1

End Sub

Private Sub Form_Load() Listl.AddItem “张铃” Listl.AddItem “李琴” Listl.AddItem “王强” Listl.AddItem “刘乐” Listl.AddItem “郑明” End Sub

本文来源:https://www.bwwdw.com/article/7nyp.html

Top