当前位置:文档之家› 程序设计基础VB期中考试卷

程序设计基础VB期中考试卷

程序设计基础VB期中考试卷
程序设计基础VB期中考试卷

《程序设计基础VB》期中考试卷

一、选择题〖每小题1分,共计40分〗;

1.以下变量名中合法的是【1】。

A. x2-1

B. print

C. str_n

D. 2x

分析:标识符命名规则

答案:C

2.在Visual Basic中,所有的窗体和控件都必定具有的一个属性是【2】。

A.Name B.Font C)Caption D)FillColor

分析:名称属性是每个对象必须具备的,VB为每一个对象设置了一个默认的名称,用户可

以不更改,对象的默认名称是由对象的类名+序号构成的。

答案:A

3.以下所列的7个控件中,具有Caption属性的有【3】个。

CheckBox(复选框)、ComboBox(组合框)、HscrollBar(水平滚动条)、Image(图像框)、Frame(框架)、Label(标签)、Line(线条)

A.5 B.4 C.3 D.2

分析:常用控件中,TextBox、PictureBox、Image、ListBox、ComboBox、Timer、Line、Shape、HScrollBar、VScrollBar没有Caption属性;

Label、CommandButton、OptionButton、CheckBox、Frame具有Caption属性;

另外,窗体也有Caption属性。

答案:C

4.用来设置文字字体是否斜体的属性是【4】。

A.FontUnderline B.FontBold C.FontSlope D.FontItalic

分析:也可以写成Font.Italic

答案:D

5.若需要在同一窗口内安排两组相互独立的单选按钮( OptionButton ),可使用【5】

控件将它们分隔开。

① TextBox ② Picture ③ Image ④ Frame

A.①②B.②③C.②④D.③④

分析:将单选按钮分组的方法是放置在不同的容器中,VB中可以做容器的控件有:PictureBox、Frame

答案:C

6.Timer控件的【6】属性决定该控件是否对时间的推移做出响应。将该属性设置为

False会关闭Timer控件,设置为True则打开它。

A.Enabled B.Visible C.Time D.Capable

分析:除了Enabled属性外,还可以通过设置Timer控件的Interval属性来控制Timer控件是否开始响应。Interval属性值为0时不响应,非0时响应。

答案:A

7.使用【7】方法可将新的列表项添加到一个列表框中。

A.Print B.AddItem C.Clear D.RemoveItem 分析:常用的列表框方法有:AddItem(添加)、RemoveItem(删除)、Clear(全部清除),

还要注意每个方法的调用格式。只有窗体、PictureBox和Debug对象才有Print方法。

答案:B

8.要想在一个文本框中显示多行内容,应对下列哪一个属性进行设置【8】。A.Text B.Font C.Multiline D.Alignment 分析:文本框中换行要使用换行字符vbCrLf或Chr(10) & Chr(13)。Alignment是对齐属性。答案:C

9.通过文本框的【9】事件过程可以获取文本框中键入字符的ASCII码值。A.Change B.GotFocus C.LostFocus D.KeyPress

分析:KeyPress事件有一个KeyAscii参数,是系统传递过来的按下键的ASCII码值。

答案:D

10.若看到程序中有以下事件过程,则可以肯定的是,当程序运行时【10】。

Private Sub Click_MouseDown(Button As Integer,_

Shift As Integer,X As Single,Y As Single) Print “VB Program”

End Sub

A.用鼠标左键单击名称为“Commandl”的命令按钮时,执行此过程;

B.用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程;

C.用鼠标右键单击名称为“MouseDown”的控件时,执行此过程;

D.用鼠标左键或右键单击名称为“Click”的控件时,执行此过程。

分析:控件的事件过程名组成:控件名+下划线+过程名,MouseDown是鼠标事件,记住各个参数的含义。

答案:D

11.DrawStyle属性用于设置图形方法输出的线型,它受【11】属性的限制。A.FillStyle B.FillColor C.BorderStyle D.DrawWidth

答案:D

12.窗体上放置了三个文本框,若在Text1中输入456,在Text2中输入78,在程序中执行了

语句Text3=Text1+Text2后,则在Text3中显示【12】。

A.434

B.45678

C.溢出

D.语法错误

分析:当“+”的左右两边操作数都是字符串型数据时,“+”是字符串连接符;

当“+”的左右两边操作数都是数值型数据时,“+”是算术运算符;

当“+”的左右两边操作数不能转换成统一的数值型数据或字符串型数据时,出错。

答案:B

13.设a=4,b=3,c=2,d=1,下列表达式的值是【13】。

a>b+1 Or c

A.True B.1 C.-1 D.0

分析:运算符的优先级:算术运算符>关系运算符>逻辑运算符;逻辑运算符的优先级:Not>And>Or,本题结果也可以为False。

答案:D

14.可以产生30~50(含30和50)之间的随机整数的表达式是【14】。

A.Int(Rnd*21+30) B.Int(Rnd*20+30)

C.Int(Rnd*50-Rnd*30) D.Int(Rnd*30+50)

分析:随机数产生公式

答案:A

15.设控件使用默认名称,以下使用方法的语句中,正确的是【15】。

A.List1.Clear B.Form1.Clear C.Combo1.Cls D.Picture1.Clear

分析:窗体、PictureBox、Debug对象的清除方法是Cls,列表框、组合框的清除方法是Clear。答案:A

16.运行时,要在图片框P1中打印字符串”How Are You”,应使用语句【16】。

A.P1.Print=”How Are You” B.P1.Picture=LoadPicture(”How Are You”) C.P1.Print ”How Are You” D.Print ”How Are You”

分析:设置图片框中图片用LoadPicture函数给图片框的Picture属性赋值,在图片框中输出文字或画线(圆)用Print方法。

答案:C

17.设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为

100。下面叙述中正确的是【17】。

A.程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加

B.程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少

C.由于滚动条的Max属性值小于Min属性值,程序会出错

D.由于滚动条的Max属性值小于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动

分析:Min~Max是一个数值范围,没有规定Min必须小于Max;若Min>Max时,滑块向右滑动时Value属性值减小。

答案:A

18.在窗体上画一个名称为Text1的文本框,然后画一个名称为H1的滚动条,其Min和Max属

性分别为0和100。程序运行后,如果移动滚动框,则在文本框中显示滚动条的当前值,如图所示:

以下能实现上述操作的程序段是【18】。

A. Private Sub H1_Change() B.Private Sub H1_Click()

Text1.Text=H1.Value Text1.Text=H1.Value

End Sub End Sub

C. Private Sub H1_Change() D.Private Sub H1_Click()

Text1.Text= H1.Caption Text1.Text=H1.Caption

End Sub End Sub

分析:从文字“如果移动滚动框”可以确定应该选择H1的Change事件,“滚动条的当前值”表示为:H1.Value

答案:A

19.设A="12345678",则表达式Val(Left(A,4)+Mid(A,4,2))的值为【19】。A.123456 B.123445 C.8 D.6

20.可以把变化长字符串S中的第一个"ABC"子串,替换成“1234"的语句是【20】。

A. S=Left(s, InStr(S,"ABC"))&"1234" & Right(S,Len(S)-InStr(S,"ABC")-2)

B. Mid(S,InStr(S,"ABC"),3)="1234"

C. Mid(S,InStr(S,"ABC"),4)="1234"

D. S=Left(s, InStr(S,"ABC")-1)&"1234"& Right(S,Len(S)-InStr(S,"ABC")-2)

分析:若S=“ERABCTYABCUIABC”,那么:

A项的结果S为“ERA1234TYABCUIABC”

B项的结果S为“ER123TYABCUIABC”

C项的结果S为“ER1234YABCUIABC”

D项的结果S为“ER1234TYABCUIABC”

答案:D

21. 在 Select Case X 结构中,描述判断条件 3 ≤ X ≤ 7 的测试项应该写成 【21】 。

A .Case 3 <= X <= 7

B .Case 3 <= X , X<= 7

C .Case Is <= 7 , Is >= 3

D .Case 3 To 7

分析:Case 条件表达式中,使用Is 关键字和关系运算符配合使用,不能使用逻辑运算符。Case 3<=X,X<=7的等价于Case True,False 之类的语句,X 就和True 或False 比较,不能达到数值判断的目的

答案:D

22. 下面 【22】 语句,可以将列表框List1中的当前选定的列表项的值替换成"ABC"。

A.List1.AddItem "ABC",List1.ListIndex

B.List.Text="ABC"

C.List1.List(List.ListIndex)= "ABC"

D.前三项均可

分析:当前选定的列表项的文本有两种方法表示:List1.List(List1.ListIndex)和

List1.Text ,但List1.Text 不能更改,是只读属性。选项B 和C 中列表框的名称有误。选项A 通过AddItem 在当前选中项的位置上添加一项,其作用等同于替换该项。

答案:A

23. 设窗体上有名称为Option1的单选按钮,且程序中有语句:If Option1.Value=True Then 下面语句中与该语句不等价的是 【23】 。

A. If Option1.Value Then

B. If Option1=True Then

C. If Value=TrueThen

D. If Optionl Then

分析:OptionButton 的默认属性是Value 属性,故选项B 和D 是省略默认属性的写法,是等价的,选项C 省略了对象名,在窗体中省略对象名表明默认是窗体。

答案:C

24. 下列Caption 属性值中, 【24】 设置了热键。

A .File

B .V&iew

C .H*elp

D .#Tool 分析:在Caption 属性中用&设置热键。

答案:B

25. 如果x 是一个正实数,对x 的第3位小数四舍五入的表达式是 【25】 。

A .0.01*Int(x+0.005)

B . 0.01*Int(100*(x+0.005))

C .0.01*Int(100*(x+0.05))

D . 0.01*Int(x+0.05)

分析:若x=12.45678,则A 项的结果是:.12 ;则B 项的结果是: 12.46 ;则C 项的结果是: 12.5 ;则C 项的结果是: .12

答案:B

26. 把数学表达式623

5-+y x 表示为正确的VB 表达式应该是 【26】 。

A. (5x+3)/(2y-6)

B. x*5+3/2*y-6

C. (5*x+3)÷(2*y-6)

D. (x*5+3)/(y*2-6)

分析:乘法符号*不能省略,除法用/,分母和分子上的括号不可省略。

答案:D

27. 设有如下语句:

Dim a ,b As Integer

c="Visual Basic"

d=#7/20/2005#

以下关于这段代码的叙述中,错误的是 【27】 。

A. a 被定义为Integer 类型变量

B. b 被定义为Integer 类型变量

C. c中的数据是字符串

D. d中的数据是日期类型

分析:a后面没有As 类型名,表示缺省类型为Variant型

答案:A

28.设程序运行时文本框中没有内容,当在文本框输入“ABC”时,窗体上显示【28】。 Private Sub Txtinput_KeyPress()

Print txtinput.text

End Sub

A.AABABC B.AAB C.A D.

AB A

ABC AB

分析:文本框的KeyPress事件是在按键字符显示之前执行的

答案:D

29.执行下列程序段,窗体上打印的内容为【29】。

Dim x, y, z

x=2:y=3:z=x=y

Print x; y; z

A.2 3 2 B.2 2 2

C.2 3 False D.False False False

分析:x,y,z都是变体型,可以接受任意类型的值。x和y都被赋了数值型数据,z被赋了一个逻辑型数据(关系表达式x=y的结果),故z的值输出时也是逻辑型False

答案:C

30.窗体上有名称为Commandl的命令按钮和名称为Textl的文本框

Private Sub Commandl_Click()

Text1.Text=”程序设计”

Text1.SetFocus

End Sub

Private Sub Textl GotFocus()

Text1.Text=”等级考试”

End Sub

运行以上程序,单击命令按钮后【30】。

A.文本框中显示的是“程序设计”,且焦点在文本框中

B.文本框中显示的是“等级考试”,且焦点在文本框中

C.文本框中显示的是“程序设计”,且焦点在命令按钮上

D.文本框中显示的是“等级考试”,且焦点在命令按钮上

分析:语句Text1.SetFocus触发了Text1的GotFocus事件,故Text1中的文本又因为执行Text1.Text=”等级考试”而变为“等级考试”。

答案:B

31.某人创建了1个工程,其中的窗体名称为Form1,之后又添加了1个名为Form2的窗体,并

希望程序执行时先显示Form2窗体,那么,他需要做的工作是【31】。

A.在工程属性对话框中把“启动对象”设置为Form2

B.在Form1的Load事件过程中加入语句 Load Form2

C.在Form2的Load事件过程中加入语句Form2.Show

D.在Form2的TabIndex属性设置为1,把Form1的TabIndex属性设置为2

分析:窗体没有TabIndex属性,只有控件才有。Load语句只能将窗体装入内存不能显示。Show可以显示窗体,但C选项说在Form2的Load事件中显示Form2,而程序开始执行时Form2尚未载入,故不执行Form2的Load事件,Form2也无法显示。

答案:A

32.假定有如下的命令按钮(名称为Command1)事件过程:

Private Sub Command1_Click()

x=InputBox("输入:","输入整数")

MsgBox "输入的数据是:”,,”输入数据:"+x

End Sub

程序运行后,单击命令按钮,如果从键盘上输入整数10,则以下叙述中错误的是【32】。

A.x的值是数值10 B.输入对话框的标题是“输入整数”

C.信息框的标题是“输入数据:10”D.信息框中显示的是“输入的数据是:”

分析:考核InputBox函数和MsgBox语句的格式,x的值是字符串“10”

答案:A

33.在窗体上画1个命令按钮(名称为Command1)和1个文本框(名称为Text1),然后编写事件

过程:

Private Sub Command1_Click()

x = Val(Text1.Text)

Select Case x

Case 1, 3

y = x * x

Case Is >= 10, Is <= -10

y = x

y = -x

End Select

End Sub

程序运行后,在文本框中输入3,然后单击命令按钮,则以下叙述中正确的是【33】。A.执行y=x*x B.执行y=-x

C.先执行y=x*x,再执行y=-x D.程序出错

分析:测试表达式的值符合一个Case条件时,执行对应分支语句块后结束Select Case语句。答案:A

34.以下循环语句中在任何情况下都至少执行一次循环体的是【34】。

A.Do While <条件> B.While <条件>

循环体循环体

Loop Wend

C.Do D.Do Until <条件>

循环体循环体

Loop Until <条件> Loop

分析:Do…Loop语句特点。

答案:C

35.执行以下语句后,a的值为【35】。

Dim a As Integer

a = 1

Do Until a = 100

a = a + 2

Loop

A.99 B.100 C.溢出D.101

分析:Until a=100,此循环的结束条件是a=100,但a的初值是1,步长是2,不可能得到值100,因此,循环一直进行下去,到达32767后继续循环,超过Integer型数据表示范围而溢出。

答案:C

36.在窗体上画1个命令按钮,并编写如下事件过程:

Private Sub Commandl_Click()

For i=5 To 1 Step -0.8

Print Int(i);

Next i

End Sub

运行程序,单击命令按钮,窗体上显示的内容为【36】。

A.5 4 3 2 1 l B.5 4 3 2 l C.4 3 2 1 1 D.4 4 3 2 1

分析:i的值在各次循环体中依次为(5,4.2,3.4,2.6,1.8,1),对应的Int(i)为(5,4,3,2,1,1)

答案:A

37.假定有如下事件过程:

Private Sub Form_Click()

Dim x As Integer, n As Integer

x = 1

n = 0

Do While x < 28

x = x * 3

n = n + 1

Loop

Print x, n

End Sub

程序运行后,单击窗体,输出结果是【37】。

A.81 4 B.56 3 C.28 1 D.243 5

分析:耐心的按循环进行的步骤计算x和n的值

答案:A

38.某人设计了如下程序用来计算并输出7!(7的阶乘)

Private Sub Command1_Click()

t = 0

For k = 7 To 2 Step -1

t = t * k

Next

Print t

End Sub

执行程序时,发现结果是错误的,下面的修改方案中能够得到正确结构的是【38】。A.把t=0改为t=1

B.把For k = 7 To 2 Step -1改为For k =7 To 1 Step -1

C.把For k = 7 To 2 Step -1改为For k=1 To 7

D.把Next改为Next k

分析:累乘求积时积变量的初值应设为1

答案:A

39.在窗体上画一个名称为Command1的命令按钮,并编写以下程序:

Private Sub Command1_Click()

Dim n%, b, t

t = 1: b = 1: n = 2

Do

b = b * n

t = t + b

n = n + 1

Loop Until n > 9

Print t

End Sub

此程序计算并输出一个表达式的值,该表达式是【39】。

A.9! B.10! C.1!+2!+...+9! D.1!+2!+ (10)

分析:从t=t+b看出是一个累加求和的代码,从b=b*n看出是求阶乘的递推公式,从n=n+1语句的位置看,n=10时为计算阶乘。

答案:C

40.下面程序在调试时出现了死循环

Private Sub Command1_Click()

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

Do

If n Mod 2=0 Then

n=n+1

Else

n=n+2

Else If

Loop Until n=1000

End Sub

下面关于死循环的叙述中正确的是【40】。

A.只有输入的n是偶数时才会出现死循环,否则不会;

B.只有输入的n是奇数时才会出现死循环,否则不会;

C.只有输入的n是大于1000的整数时才会出现死循环,否则不会;

D.输入任何整数都会出现死循环。

分析:只有一直不符合n=1000才会出现死循环。当输入的n是偶数时,在第1次循环后n变为奇数,以后就一直是奇数,无法满足n=1000;当输入的n是奇数时,在循环中n按步长2变化,无法满足n=1000,故不管n是偶数还是奇数,都会出现死循环。

答案:D

二、填空题〖每空2分,共计30分〗;

1.将命令按钮的Default属性设置为True,运行时按下【Enter】键可以激发该按钮的

Click事件。

2.

x

x cos

2

e 对应的Visual Basic 表达式是Exp(x^2+cos(x))。

正确表示命题“A是一个带小数的正数,B是一个带小数的负数”的逻辑表达式是

(A>0 and A<>Int(A)) and(B<0 and B<>Int(B))。

3.a=6,则执行x=IIf(a>5,-1,0)后,x的值为-1。

4.设置计时器控件时间间隔应使用其Interval属性,其计数单位为ms(毫秒)。

5.写出能从字符串“VisualBasic”中取出子字符串“Basic”的语句

Right(“VisualBasic”,5)。

6.将D盘根目录下的图形文件down.jpg装入图片框P1的语句是

P1.picture=loadpicture(“D:\down.jpg”) 。

7.下面程序运行后,单击Command1,输出结果为 16 。

Private Sub Command1_click()

a = 1:

b = 2:

c = 3

a= a + b: b = b + a: c = b + a

If a <> 3 Or b <> 3 Then

a =

b - a: b =

c - a: c = b + a

End If

Print a + b + c

End Sub

8.运行如下程序后,输出结果为 16 。

a = 0

For j = 1 To 20 Step 2

a = a + j \ 5

Next j

Print a

9.下面程序段共循环0次。

a = 100

b = 100

While a <> b

a = a + 1

b = b + 1

Wend

10.下面程序运行后,单击窗体,输出结果为BCABFG 。

Private Sub Form_Click()

a = "ABCDEFG"

For i = 6 To 2 Step -2

x = Mid(a, i, i)

y = Left(a, i)

z = Right(a, i)

z = x & y & z

Next i

Print z

End Sub

11.下面程序运行后,单击窗体,输出结果为 12 。

Private Sub Form_Click()

Dim i As Integer, sum As Integer

sum = 0

For i = 2 To 10

If i Mod 2 <> 0 And i Mod 3 = 0 Then

sum = sum + i

End If

Next i

Print sum

End Sub

12.下面程序运行后,单击窗体,输出结果为10 False 。

Private Sub Form_Click()

Dim Check, Counter

Check = True : Counter = 0

Do

Do While Counter < 20

Counter = Counter + 1

If Counter = 10 Then

Check = False

Exit Do

End If

Loop

Loop Until Check = False

Print Counter, Check

End Sub

13.下面程序运行后,单击按钮Cmd,输出结果为 **$$$****$$$$$ 。 Private Sub Cmd_Click()

Dim a As String,b As String,x As String,i As Integer

a="*" : b="$"

For i=1 To 4

If i mod 2=0 Then

x=String(len(a)+i,b)

Else

x=String(len(a)+i,a)

End If

Print x;

Next i

End Sub

(4)三、完善程序题〖每空2分,共计30分〗;

1.假定建立了一个工程,该工程包括两个窗体,其名称(Name属性)分别为Form1和Form2,

启动窗体为Form1。在Form1上画一个命令按钮Command1,程序运行后,要求当单击该命

令按钮时,显示窗体Form2,Form1窗体消失,请在横线处将程序补充完整。

Private Sub Command1_Click()

Form2.show

unload Form1

End Sub

2.在窗体上画一个列表框、一个命令按钮和一个标签,其名称分别为List1、Command1和

Label1,通过属性窗口把列表框中的项目设置为:"VB"、"VFP"、"VC"、"JAVA"。程序

运行后,在列表框中选择一个项目,然后单击命令按钮,即可将所选择的项目删除,并

在标签中显示列表框当前的项目数。下面是实现上述功能的程序,请填空。

Private Sub Command1_Click()

If List1.ListIndex >= 0 Then

List1.RemoveItem List1.listIndex

Label1.Caption = List1.listcount

Else

MsgBox "请选择要删除的项目"

End If

End Sub

3.设有整型变量s,取值范围为0~100,表示学生的成绩。有如下程序段:

If s>=90 Then

Level="A"

ElseIf s>=75 Then

Level="B"

ElseIf s>=60 Then

Level="C"

Else

Level="D"

End If

下面用Select Case结构改写上述程序,使两段程序所实现的功能完全相同。请填空。

Select Case s

Case Is >=90

Level=”A”

Case 75 To 89

Level=”B”

Case 60 To 74

Level=”C”

Case Else

Level=”D”

End Select

4.以下程序实现将字符将字符串倒置,例如:输入”ABCD”变换成”DCBA”。

Private Sub Cmd_Click()

Dim s1 As string,s2 As string

Dim i As integer

s1=inputbox(“输入字符串”)

For i= Len(s1) To 1 Step –1

s2=s2 & mid(s1,i,1)

Next i

Print s2

End Sub

5.求满足不等式1+4+9+16……n2

Private Sub Command1__Click()

Dim s ,m,n AS Integer

m=Val(InputBox(“请输入一个大于100的整数”))

n= 0

s=0

Do While s

n=n+1

s=s+ n*n

Loop

Print "满足不等式的最大n是"; n-1

End Sub

四、附加题〖每题10分,共计10分〗;

1.编写程序求三位偶数中,个位数字与十位数字之和除以10所得的余数是百位数字的数及

个数。在窗体上放置一个命令按钮,名称为C1,点击按钮后将结果显示在窗体上。

法一:

Private Sub C1_Click()

Dim x As Integer, a As Integer, b As Integer, c As Integer, n As Integer

For x = 100 To 999 Step 2

a = x Mod 10 '个位

b = (x Mod 100) \ 10 '十位

c = x \ 100 '百位

If (a + b) Mod 10 = c Then

Print x;

n = n + 1

If n Mod 5 = 0 Then Print

End If

Next x

End Sub

法二:

Private Sub C1_Click()

Dim a As Integer, b As Integer, c As Integer, n As Integer

For c = 1 To 9 '百位

For b = 0 To 9 '十位

For a = 0 To 9 Step 2 '个位

If (a + b) Mod 10 = c Then

Print c * 100 + b * 10 + a;

n = n + 1

If n Mod 5 = 0 Then Print

End If

Next a

Next b

Next c

End Sub

相关主题
文本预览
相关文档 最新文档