当前位置:文档之家› VBnet习题集

VBnet习题集

VBnet习题集
VBnet习题集

第一章https://www.doczj.com/doc/fb484437.html,环境和程序设计初步

一.选择题

1.在Visual https://www.doczj.com/doc/fb484437.html,的集成开发的环境中,下面不属于该环境编程语言的是(C)。

A.VB

B.C++

C. Pascal

D. J#

2.在集成开发环境中有两类窗口,浮动窗口和固定窗口,下面不属于浮动窗口的是(D)。

A.工具箱窗口

B.属性窗口

C.立即窗口

D.窗体窗口

3.在https://www.doczj.com/doc/fb484437.html,中,在窗体上显示控件的文本,用(A )属性设置。

A. Text

B. Name

C. Caption

D. Image

4.不论何种控件,共同具有的是什么属性( D )。

A. Text

B. Name C.ForeColor D.Text

5.对于窗体,可改变窗体的边框性质的属性是(B)。

A.MaxButton

B. FormBorderStyle

C. Name

D. Left

6.若要使标签控件显示时不要覆盖窗体的背景图案,要对(A)属性进行设置。

A.BackColor B. BorderStyle C.ForeColor D.BackStyle

7.若要使命令按钮不可操作,要对(A)属性进行设置。

A. Enabled

B.Visible

C. BackColor

D. Text

8.要使文本框中的文字不能被修改,应对(D)属性进行设置。

A. Locked

B. Visible

C. Enabled

D. ReadOnly

9.要使当前Form1 窗体的标题栏显示“欢迎使用https://www.doczj.com/doc/fb484437.html,”,以下(B)语句是正确的。

A.Form1.Text=“欢迎使用V

https://www.doczj.com/doc/fb484437.html,”

B.Me. Text=“欢迎使用https://www.doczj.com/doc/fb484437.html,”

https://www.doczj.com/doc/fb484437.html,=“欢迎使用https://www.doczj.com/doc/fb484437.html,”

D.Me. Name=“欢迎使用https://www.doczj.com/doc/fb484437.html,”

10.当运行程序时,系统自动执行启动窗体的(A)事件过程。

A. Load

B. Click

C. UnLoad

D. GotFocus

11.当文本框的ScrollBars属性设置了非None值,却没有效果,原因是(B)。

A.文本框没有内容

B.文本框的MulitLine属性为False

C.文本框的MulitLine属性为True

D.文本框的Locked属性True

12.要判断在文本框中是否按了Enter键,应在文本框的(D)事件中判断。

A. Change

B. KeyDown

C. Click

D. KeyPress

13.在VB.NE集成环境中创建https://www.doczj.com/doc/fb484437.html,应用程序时,除了工具箱窗口、窗体窗口和属性窗口外,必不可少的窗口是(C)。

A.窗体布局窗口

B.立即窗口

C.代码窗口

D.监视窗口

14.当创建一个项目名为“引例”的项目时,该项目的所有代码文件将保存在(C)文件夹下。

A.My Documents B.https://www.doczj.com/doc/fb484437.html, C.\引例D.Windows

15.将调试通过后生成的.exe 可执行文件放到其他机器上不能运行的主要原因是(A)。

A .运行的机器上面无https://www.doczj.com/doc/fb484437.html,系统

B .缺少. frm 窗体文件

C. 该可执行文件有病毒

D. 以上原因都不对

16.对初学者而言,调试程序方便,有效的手段是( A)。

A. 在可疑的代码处设置断点,逐语句跟踪

B. 查看资料

C. 通过”立即”窗口显示变量的值

D. 找老师问原因

17. 当需要上下文帮助时,选择要帮助的“难题”,然后按住( D )键,就可出现MSDN 窗口及显示所需“难题”的帮助信息。

A .Help

B .F10

C .Esc D. F1

18. 在代码窗口,代码下方有蓝色波浪线表示( B) 。

A .对代码设置了格式

B. 编译错误

C. 逻辑错误

D. 运行时错误

二.填空题

https://www.doczj.com/doc/fb484437.html, 是完全面向对象的程序设计语言,其最大的特点是____________。引入了.net框架

2.____________技术能让编程人员不必编写代码就可以创建GUI(图形用户界面)。可视化编程技术

3.__________________ 是由一个或几个项目组成https://www.doczj.com/doc/fb484437.html,程序。解决方案

4.当___________特性设置后,浮动窗口将自动隐藏。自动隐藏

5.当进入https://www.doczj.com/doc/fb484437.html,集成环境,发现没有显示“工具箱”窗口,应选择____________菜单的____________选项,使“工具箱”窗口显示,并最好将其窗口的属性设置为___________。视图、工具箱、可停靠

6.新建项目时,要改变默认Option设置,应对__________菜单的__________的___________文件夹进行相应选项的选择。

7.对象属性是指_________。对象的性质来描述和反应对象特征的参数

8.对象的方法是指_______________。对象的动作行为。

9.在刚建立项目时,使窗体上的所有控件具有相同的字体格式,应对_______的_________属性进行设置。Form font 10.属性窗口的属性可以按照___________和__________顺序排列。分类顺序、字母顺序

11.当对命令按钮的Image属性装入.bmp图形文件后,按钮上并没有显示所需的图形,原因是对__________属性设置为_________。FlatStyle 、system

12.若已建立了Form1,Form2两个窗体,默认启动窗体为Form1。通过_______菜单的_________的________选项卡,可将启动对象设置为Form2。项目菜单、属性、常规

13.在文本框中,通过__________属性能获得当前插入点所在的位置。SelectionStart

14.要对文本框中已有的内容进行编辑,按下键盘上的按钮,就是不起作用,原因是设置了________的属性为True。readlony

15.在窗体上已建立多个控件,如TextBox1,Label1,Button1,若要使程序一运行焦点就定位在Button1控件上,应对Button1控件设置____tabindex_____属性的值为____0______。

16.要同时保存解决方案中的每个文件,最方便的方法是单击工具栏的____全部保存_____按钮。

第二章https://www.doczj.com/doc/fb484437.html,语言基础和顺序结构

一.选择题

1.在一个语句内写多条语句时,每个语句之间用(B)符号分隔。

A., B. : C.、 D. ;

2. 一语句要在下一行继续写,用(C)符号作为续行符。

A . +

B . - C. _ D .…

3. 下面属于合法的变量名的是( A )。

A .X_yz B. 123abc C .Integer D.X-Y

4.下面属于不合法的整常数的是( D ).

A .100 B. &O100 C. &H100 D. %100

5.下面属于合法的字符常数的是( B ) 。

A.ABC$ B. “ABC” C. ‘ABC’ D.ABC

6. 下面属于合法的单精度型变量的是(A)。

A. mun!

B. sum% D. xinte$ D. mm#

7.下面属于不合法的双精度常数的是(D)。

A.100# B.100.0 C.1E+2 D.100.0D+2

8. 表达式16/4-2^5 * 8/4 Mod 5\2 的值为(B)。

A.14B.4C.20D.2

9.数学关系表达式3≤x<10表示成正确的https://www.doczj.com/doc/fb484437.html,表达式为(B )。

A.3<=x<10 B. 3<=x AND x<10 C. x>=3 OR x<10 D.3<=x AND <10

10.\、/、Mod、* 四个算术运算符中,优先级别最低的是(C)。

A.\

B. /

C. Mod

D.*

11.与数学表达式ab/(3cd)对应,https://www.doczj.com/doc/fb484437.html,的不正确表达式是()。 ~~~~~~~~~~~~~~~

A. a*b/(3*c*d)

B.a/3*b/c/d

C. a*b/3/c/d

D. a*b/3*c*d

12.Rnd函数不可能为下列(B)值。

A. 0

B.1

C.0.1234

D. 0.0005

13.Int(198.555*100+0.5)/100的值是(C)。

A. 198

B.199.6

C.198.56

D.200

14.已知A$=“12345678”,则表达式Val(Mid(A,1,4)+Mid(A,4,2))的值为(B)。

A.123456

B.123445

C.8

D.6

15.MsgBox(DateAdd(“m”,2,#1/28/2005#))语句显示结果是(A)。

A. 2005-3-28

B.2005-1-30

C. 2007-1-28

D. 2003-1-28

16.表达式DateDiff(“y”,#12/30/1999#,#1/13/2000#)的结果是(C)。

A. 1

B. 11

C.14

D.99

17.表达式Len(“123程序设计ABC”)的值是(A)。

A.10 B.14 C.20 D.17

18.下面正确的赋值语句是(C)。

A.x+y=30 B .y=∏*r*r; C. y=x+30 D. 3y=x

19. 为了给x、y、z三个变量赋初值1,下面正确的赋值语句是(A)。

A.x=1:y=1:z=1

B.x=1,y=1,z=1

C. x=y=z=1

D.xyz=1

20.赋值语句“a=123+MID(“123456”,3,2)”执行后,a变量中的值是(D)。

A. “12334”

B.123

C.12334

D.157

21.赋值语句“a=123 & MID(“123456”,3,2)”执行后,a变量中的值是(A)。

A. “12334”

B.123

C.12334

D.157

22.已知a=12,b=20,复合赋值语句“a*=b+10”执行后,a变量中的值是(D)。

A.50

B.250

C.30

D.360

二.填空题

1.在https://www.doczj.com/doc/fb484437.html,中,1234,123456&,1.2346E+1.2346D四个常数分别表示_________,_______,________,__________类型。

2.整型变量x中存放了一个两位数,要将两位数交换位置,例如,13变成31,实现表达式是_________。

3.表示x是5的倍数或是9的倍数的逻辑表达式为_________。

4.已知a=3.5,b=5.0,c=2.5,d=True,则表达式a>=0 AND a+c>b+3 OR NOT d的值是_______。

5.Int(-3.5)、Int(3.5)、Fix(-3.5)、Fix(3.5)、Round(3.5)的值分别是____、____、___、___、___、___。6.表达式UCase(Mid(“abcdefgh”,3,4))的值是_________。

7.在直角坐标系中,x、y是坐标系中任意点的位置,用x和y表示在第一象限或第三象限的表达是__________。

10. 要显示当前机器内日期,函数为_________。

11. 计算离你毕业(假定2008年6月30日毕业)还有多少个星期的函数表达式是__________。

12. 表示s字符变量是字母字符(大小写字母不区分)的逻辑表达式为___________。

13.下面程序随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。 Sub Button1_Click(......) Handles Button1.Click

Dim x, y As Integer

x=Int (_________)

y=(x Mod 10)*100+________+x\100

MsgBox(“x=”& x & x “y=” &y)

End Sub

第三章选择结构

一.选择题

1.https://www.doczj.com/doc/fb484437.html,提供了结构化程序设计的三种基本结构,三种基本结构是(D)。

A.递归结构,选择结构,循环结构

B.选择结构,过程结构,顺序结构

C.过程结构,输入输出结构,转向结构

D.选择结构,循环结构,顺序结构

2.按照结构化程序设计的要求,下面(C)语句是非结构化程序设计语句。

A.if语句 B. For语句 C. GoTo语句 D. Select Case语句

3.下面程序段运行后,显示的结果是(A)。

Dim x%

If x Then MsgBox(x) Else MsgBox(x+1)

A.1

B.0

C.-1

D.显示出错信息

4.语句“If x=1 Then y=1”下列说法正确的是(C)。

A. “x=1”和“y=1”均为赋值语句

B.“x=1”和“y=1”均为关系表达式

C.“x=1”为关系表达式“y=1”为赋值语句

D.“x=1”为赋值语句“y=1”为关系表达式

5.下面程序段显示的结果是(A)。

Dim x%

x=Int(Rnd)+5

Select Case x

Case 5

MsgBox(“优秀”)

Case 4

MsgBox(“良好”)

Case 3

MsgBox(“通过”)

Case Else

MsgBox(“不通过”)

End Select

A. 优秀

B. 良好

C. 通过

D. 不通过

6.下面If 语句统计满足性别(sex)男、职称(duty)为副教授以上、年龄(age)小于40岁条件的人数,正确的语句是(D)。

A.If sex= “男” And age<40 And InStr(duty, “教授”)>0 Then n=n+1

B.If sex= “男” And age<40 And duty=“教授” or duty= “副教授” Then n=n+1

C.If sex= “男” And age<40 And Right(duty,2)= “教授 Then n=n+1

D.If sex= “男” And age<40 And duty= “教授”And duty= “副教授” Then n=n+1

7.下面程序段求两个数中的大数,()不正确。

A. Max1=IIf(x>y, x, y)

B. If x>y Then Max1=x Else Max1=y

C. Max1=Math.Max(x, y) C. If y>=x Then Max1=y Max=x

8.下面三个程序设计段计算学生外语附加分:外语6级(lang6)为“优秀”加15分,“通过”加10分;外语4级(lang4)为“优秀”加8分,“通过”加4分。外语附加分只能计一次最高的分数。(A)能正确计算。

A. If lang6=“优秀” Then

langf=15

ElseIf lang6=“合格” Then

langf=10

ElseIf lang4= “优秀” Then

langf=8

ElseIf lang4=“合格”Then

langf=4

End if

B If lang4= “合格” Then

langf=4

ElseIf lang4=“优秀” Then

langf=8

ElseIf lang6=“合格” Then

langf=10

ElseIf lang6=“优秀” Then

langf=15

End if

C. If lang6=“优秀”Then langf=15

If lang6=“合格” Then langf=10

If lang4=“优秀” Then langf=8

If lang4= “合格” Then langf=4

langf=0

D. If lang4= “合格” Then langf=4

If lang4=“优秀” Then langf=8

If lang6=“合格” Then langf=10

If lang6=“优秀” Then

langf=15

Else

langf=0

End if

9.下面语句执行后,变量w中的值是(B)。

w= Choose (Weekday(“2005,5,1”), “Red”, “Green” , “Blue”, “Yellow”)

A. Nothing

B. “Red”

C. “Green”

D. “Yellow”

二.填空题

1.当C字符串变量中第三个字符是“C”时,利用MsgBox显示“Yes”,否则显示“No”。

If_________Then MsgBox(“yas”) Else MsgBox(“No”) Mid(c,3,1) = “C”

2.程序运行后输出的结果是___________。

x=Int(Rnd)+3

If x^2>8 Then y=x^2+1

If x^2=9 Then y=x^2-2

If x^2<8 Then y=x^3

MsgBox(y)

3.下面程序的功能是()。

Dim n%, m%

Sub TextBox1_KeyPress(......)Handles TextBox1.Keypress

If Asc(e.KeyChar)=13 Then

If IsNumeric(TextBox1.Text) Then

Select Case Val(TextBox1.Text) Mod 2

Case 0

n=n+Val(TextBox1.Text)

Case 1

m=m+Val(TextBox1.Text)

End Select

End If

TextBox1.Text=””

TextBox1.Focus( )

End If

End Sub

4.下面的程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在文本框中输入表达式,边输入边统计,以输入回车符作为表达式输入结束,然后显示结果,如下图所示。

Dim count1 %

Sub TextBox1_KeyPress( ……………)Handles TextBox1.KeyPress

If__________=“(”Then

count1+1

ElseIf ________=“)” Then

count1=_________

End If

If Asc(e.KeyChar)=13 Then

If_________ Then

MsgBox(“左右括号配对”)

ElseIf count1>0 Then

MsgBox(__________)

Else

MsgBox(“右括号多于左括号”&count1& “个”)

End If

Exit Sub

End If

End Sub

<注意>

该题中统计括号个数的变量count1若在过程内声明,程序会产生什么结果?

5.输入若干个字符,统计有多少个元音字母,有多少个其他字母,直到按Enter键结束,显示结果,大、小写不区分。其中Count Y中放元音字母个数,Count C中放其他字符数。

Dim CountY% , CountC%

Sub TextBox1_KeyPress (……………) Handles TextBox1.KeyPress

Dim c As Char

c=________

If “A”<=c And c<= “Z”Then

Select Case_________

Case_________

CountY=CountY+1

Case Else

CountC=CountC+1

End Select

End If

If ______ __ Then

MsgBox(“元音字母有”& CountY & “个”)

MsgBox(“其他字母有” & CountC & “个”)

End If

End Sub

6.用If语句,Select Case语句两种计算方法计算分段函数

x^2+3x+2 当x>20

y= sqrt(3x)-2 当10<=x<=20

1/2+|x| 当x<10

Sub Button1_Click(....) Handles Button1.Click

Dim x! , y!

x=Val(TextBox1.Text)

If________ Then

y=x*x+3*x+2

ElseIf_________ Then

y=1/2+Math.Abs(x)

Else

y=Math.Sqrt(3*x)-2

End If

MsgBox(“y=”& y)

End Sub

Sub Button1_Click(....) Handles Button1.Click

x=Val(TextBox1.Text)

Select Case x

Case__________

y=x*x+3*x+2

Case__________

y=1/2+Math.Abs(x)

Case Else

y=Math.Sqrt(3*x)-2

End Select

MsgBox(“y=”& y)

End Sub

7.输入三角形的三边a、b、c的值,根据其数值,判断能否构成三角形。若能,还要显示三角形的性质:等边三角形、等腰三角形、直角三角形、任意三角形。

Sub Button1_Click(....) Handles Button3.Click

Dim x%, y%, z%

x= Val(InputBox(“input x”))

y= Val(InputBox(“input x”))

z= Val(InputBox(“input x”))

If__________ Then

Msg(“能构成三角形”)

If_________ Then

Msg(“是等边三角形”

ElseIf ________ Then

Msg(“是等腰三角形”)

ElseIf Math.Sqrt(x*x+y*y)=z Or Math.Sqrt(y*y+z*z)=x Or Math.Sqrt(x*x+z*z)=y Then Msg(“是直角三角形”)

Else

_________

End If

Else

MsgBox (“不能构成三角形”)

End If

End Sub

8.输入一个年份,判断它是否为闰年,并显示是否是闰年的有关信息。判断闰年的条件是:年份能被4整除但不能被100整除,或能被400整除。同时请用日期型变量的IsLeepYear成员来验证。

Sub Button1_Click(....) Handles Button3.Click

Dim d As Date

d=Now

If_________ Or d.year Mod 400=0 Then

MsgBox(d.Year & “是闰年”)

Else

MsgBox(d.Year & “是平年”)

End If

If d.IsLeepYear(________) Then

MsgBox(d.Year & “是闰年”)

Else

MsgBox(D.Year & “是平年”)

End If

End Sub

第四章循环结构

一.选择题

1.以下()是正确的For...Next结构。

A.For x=1 To Step 10

...

Next x

B.For x=3 To -3 Step -3

...

Next x

C.For x=1 To 10

re:...

Next x

If i=10 Then GoTo re

D.For x=3 To 10 Step 3

...

Next y

2.下列循环体能正常结束的是(C)。

A. i=5

Do

i=i+1

Loop Until i<0

B. i=1

Do

i=i+2

Loop Until i=10

C. i=10

Do

i=i+1

Loop Until i>0

D. i=6

Do

i=i-2

Loop Until i=1

3.下面程序段的运行结果为()。

label1.text= “”

For i=3 To 1 Step -1

Label1.Text &=Space(5-i)

For j=1 To 2*i-1

Label1.Text &=”*”

Next j

Label1.Text &=vbCrLf

Next i

A. *

B. *****

C.*****

D. *****

*** *** *** ***

***** * * * 4.当在文本框输入“ABCD”四个字符时,窗体上显示是(C)。

Sub TextBox1_TextChanged(.....) Handles TextBox1.TextChanged Label1.Text &=TextBox.Text

End Sub

A. ABCD

B. A

C.AABABCABCD

D.A

B AB

C ABC

D ABCD

5.下列程序段不能分别正确显示 1!、2!、3!、4!的值的是()。

A. For i=1 To 4

n=1

For j=1 To i

n=n*j

Next j

MsgBox(n)

Next i

B. For i=1 To 4

For j=1 To i

n=1

n=n*j

Next j

MsgBox(n)

Next i

C. n=1

For j=1 To 4

n=n*j

MsgBox(n)

Next j

D. n=1

j=1

Do While j<=4

n=n*j

MsgBox(n)

j=j+1

Loop

二.填空题

1.要使下列For语句循环执行20次,循环变量的初值应当是:

For k=____33____ To -5 Step -2

2.下面程序段显示_________个“*”。

For i=1 To 5

For j=2 To i

MsgBox(“*”)

Next j

Next i

3.下列第40句共执行了_____4____次,第41句共执行了__12___次。

30 For j=1 To 12 Step 3

40 For k=6 To 2 Step -2

41 MsgBox(j & “” & k)

42 Next k

43 Next j

4.输入任意长度的字符串,要求将字符顺序倒置。例如,将输入的“ABCDEFG”变换成“GFEDCBA”。

Sub Button1_Click(......) Handles Button1.Click

Dim a$, I%, c$, d$, n%

a=InputBox$(“输入字符串”)

n=_________

d=””

For I=1 To__________

c=Mid(a,I,1)

d=d & c

Next I

MsgBox(d)

End Sub

5.找出被3、5、7除,余数为1的最小的5个正整数。

Sub Button1_Click(......) Handles Button1.Click

Dim CountN% , n%

CountN=0

n=1

Do

n=n+1

If_________ Then

MsgBox(n)

countN=CountN+1

End If

Loop________

End Sub

6.有个长阶梯,如果每步跨2阶最后剩1阶,如果每步跨3阶最后剩2阶,如果每步跨4阶最后剩3阶,如果每步跨5阶最后剩4阶,如果每步跨6阶最后剩5阶,只有当每步跨7阶时恰好走完,显示这个阶梯至少要有多少阶。<提示>

利用其肯定是7的倍数这个条件,然后根据同时满足除n余m(n=2,3,4,5,6;m=1,2,3,4,5)的逻辑关系即可。

Sub Button1_Click(......) Handles Button1.Click

Dim n%, m%

For n=7 To 10000 Step 7

If n Mod 2=1 And _______________________________________________ Then

MsgBox(n)

_______________

End If

Next

End Sub

8.---------------------------某班在一周中6天内考三门分别为x、y、z的考试课程,规定一天只能考一门,先考x,后考y,最后考z,最后一门最早周五考。用计算机排考试,列出满足条件的方案数。

Sub Button1_Click(......) Handles Button1.Click

Dim x%, y%, z%, n%

n=0

Label1.Text= “”

For x=1 To 4

For y=________To 5

For z=5 To 6

If_______ And y

Label1.Text &=x & space(9) & y & Space(9) & z & vbCrlf

____________

End If

Next

Next

Next

________ “满足条件的方案为;” & n

End Sub

9.某次大奖赛,有7个评委打分,以下程序是针对一名参赛者,输入7个评委的打分分数,去掉一个最高分、一个最低分,求出平均分,为该参赛者的得分。

Sub Button1_Click(......) Handles Button1.Click

Dim mark!,aver!,max1!,min1!

aver=0

For i=1 To 7

mark=InputBox(“输入第”& i & “位评委的打分”)

If i=1 Then

max1=mark:____________

Else

If mark

___________

ElseIf mark>max1 Then

___________

End If

End If

___________

Next i

aver=__________

MsgBox(aver)

End Sub

第五章数组

一.选择题

1.如下数组声明语句中正确的是(B。

A. Dim a[3,4] As Integer

B. Dim a(3,4) As Integer

C. Dim a{3,4} As Integer C. Dim a(3 4) As Integer

2.如下数组声明语句中正确的是(B。

A. Dim (9) As Single={1,2,3,4,5,6,7,8,9,10}

B. Dim a( ) As Single={1,2,3,4,5,6,7,8,9,10}

C. Dim a( ) As Single={1,“a”, “bc”2. ,4,5,6,7,8,9,10}

D. Dim a(,) As Integer={1,2,3,4,5,6,7,8,9,10}

3.如下数组声明语句中,数组a包含元素的个数有(C。

Dim a(3,0,5)

A.15

B.8

C.24

D.16

4.如下程序输出的结果是()。

Dim a() As Integer={1,2,3,4,5,6,7}

For i=0 To UBound(a)

a(i)a=(i)*a(i)

Next i

MsgBox(a(i))

A.49

B.0

C.不确定

D.程序出错

5.如下程序输出的结果是()。

Sub Button1_Click(... ...) Handles Button1.Click

Dim i%, j%

Dim a( ) As Integer={0,1,2,3,4,5,6,7,8,9},b(3,3) As Integer Label1.Text= “”

For i=1 To 3

Label1.Text &=Space(i*3)

For j=i To3

b(i,j)=a(i*j)

Label1.Text &=Space(6-Len(b(i,j)) & b(i,j)

Next j

Label1.Text &=vbCrLf

Next i

End Sub

A. 1 2 3

B.1

C.1 4 7

D. 1 2 3

4 5 6 4 5 2 4 6 4 6

7 8 9 7 8 9 3 6 9 9

二.填空题

1.在一维数组中利用移位的方法显示如图所有的结果。

Sub Button1_Click(.....) Handles Button1.Click

Dim a(7) As Integer, i%, t%, j%

Label1.Text= “”

For i=1 To 7

a(i)=i

Label1.Text &=a(i) & “”

Next i

Label1.Text &=vbCrLf

For i=1 To 7

t=_____________

For j=6 To 1 Step -1

__________

Next j

a(1)=___________

For j=1 To 7

Label1.Text &=a(j) & “”

Next j

Label1.Text &=_________

Next i

End Sub

2.下面程序对已知数组a(),删除数组中某个元素。

Sub Button1_Click(... ...) Handles Button1.Click

Dim a() As Integer={1,6,8,3,5,9,10,2,7,4} ,Key%, i%, j%

Key=Val(InputBox(“输入要删除的值”))

For i=0 To UBound(a)

If______________ Then

For j=i+1 To UBound(a)

_________________

Next j

ReDim _______________

MsgBox(“删除完成”)

Exit Sub

End If

Next i

MsgBox(“找到不要删除的元素”)

End Sub

3.矩阵相乘

两个矩阵能相乘的必要条件是:前一个矩阵的列数等于后一个矩阵的行数。例如,已知A为n×k的矩阵,B为k ×m的矩阵,A×B的结果C矩阵为n×m,即:

5 10 15 5 20 350 800

A= B= 10 25 C=

20 25 30 15 30 800 1925

Sub Button1_Click(.....) Handles Button1.Click

Dim a%(2,3),b%(3,2),c%(2,2),i%, j%, n%, k%

Label1.Text=“”

n=5

For i=1 To 2

For j=1 To 3

a(i,j)=n

________________

n=____________

Next j

Next i

For i=1 To 2

For j=1 To 2

c(i,j)=0

For k=1 To 3

c(i,j)=c(i,j)+____________

Next k

Label1.Text &=c(i,j) & “”

Next j

Label1.Text &=vbCrLf

Next i

End Sub

4.下面的程序是将输入的一个数插入到递减的有序数列中,插入后使该序列仍有序。

Sub Button1_Click(.....) Handles Button1.Click

Dim i% , n% ,m%

Dim a() As Integer={9,17,15,13,11,9,7,5,3,1}

n=UBound(a)

ReDim _____________________

m= Val(InputBox(“输出欲插入的数”))

For i=UBound(a) -1 To Step -1

If m>=a(i) Then

________________

If i=0 Then a(i)=m

Else

___________

Exit For

End If

Next i

For i=0 To __________

Label1.Text &=a(i) & “”

Next i

End Sub

5. 改进的冒泡法排序。

在教材中已介绍选择法、冒泡法。上例使用了插入法排序。本例使用改进的冒泡法排序,冒泡法排序在每一轮排序时将相邻的两个数比较,当次序不对就交换位置,出了内循环,最大数已沉底,小数上浮;每一轮仅使沉底的数确定了位置,有个n个数,外循环要进行n-1轮排序。为了提高效率,若在某一轮排序时,未发生排序位置交换,说明欲排序的序列已有序,排序就可以结束。在程序中增加一个逻辑变量来进行判断即可。程序如下:Sub Button1_Click(... ...) Handles Button1.Click

Dim Tag As Boolean ,n%, j%, i%, t%

Dim a( ) As Integer={1,5,6,7,4,13,23,26,31,51}

n=UBound(a)

For i=0 To n-1

Tag=False

For j=0 To n-1-i

If a(j)>a(j+1) Then

___________

___________

___________

a(j+1)=t

End If

Next j

If Not Tag Then ___________

Next i

For i=0 To UBound(a)

Label1.Text &=a(i) & “”

Next i

End Sub`

6.随机产生15个不重复的A-Z之间的字母(包括A,Z的大写字母),存放在字符数组中。

实现的思想是,每产生一个字母,在数组中查找已产生的字母。若找到,刚产生的字母作废,重新产生;如果找不到,则产生字母放入数组中。

Sub Button1_Click(.....) Handles Button1.Click

Dim s(14) As Char ,c As Char, n%, j%

s(0)=Chr(Int(Rnd()*26+65))

For n=1 To 14

re: c=__________

For j=0 To __________ ‘若找到有重复字母,重新产生

If s(j)=c Then ___________

Next j

s(n)=___________ ‘没有重复的加入数组中

Next n

For j=0 To 14

Label1.Text &=s(j) & “”

Next j

End Sub

7.随机产生15个A-J的大写字母,按字母降序排序后,将连续出现的字母用压缩的形式显示。例如,连续5个H 字母显示为5*H,如图所示。数组a()用于存储随机产生字母。

Sub Button1_Click(.....)Handles.Click

Const N=14

Dim a(N) As Char ,c As Char

Dim count%, i%, k%

Label1.Text= “”

For i=0 To N

精品文档a(i)=___________

Label1.Text &=a(i) & “”

Next i

Label1.Text &=vbCrLf

For i=0 To N-1

k=i

For j=i+1 To N

If a(j)>a(k) Then_________

Next j

c=a(i) :__________ :a(k)=c

Next i

For i=0 To N ‘输出排序的结果

Label1.Text &=a(i) & “”

Next i

Label1.Text &=vbCrLf

i=0

Do While i<=N ‘压缩显示相同元素

count=1

If i

Do While a(i)=a(j)

count=___________

If j

Loop

If count=1 Then

Label1.Text &=a(i) & “”

Else

Label1.Text &=_________

End If

i=_________

Loop

End Sub

第六章过程

一.选择题

1.设有如下说明:

Public Sub F1(ByRef n%)

...

n=3 * n+4

...

End Sub

Sub Button1_Click (....) Handles Button1.Click

Dim n%, m%

n=3

m=4

...

‘调用F1语句

...

End Sub

则在Button1_Click 事件中有效的调用语句是()。

A. F1(n + m)

B.F1(m)

C.F1(5)

D.F1(m,n)

2.下面子过程语句说明最合理的是()。

A. Sub f1(ByVal n%())

B. Sub f1(ByRef n%) As Integer

C. Function f1% (ByRef f1%) C. Function f1(ByVal n%)

3.要想从子过程调用后返回两个结果,下面子过程语句说明合法的是()。

A. Sub f2(ByVal n%, ByVal m%)

B. Sub f1(ByRef n%, ByVal m%)

B. Sub f1(ByRef n%, ByRef m%) D. Sub f1(ByVal n%, ByRef m%)

4.在过程中定义的变量,若希望在离开该过程后还能保存过程中的局部变量的值,则应使用()关键字在过程中定义过程级变量。

A.Dim

B.Private

C.Public

D.Static

5.下面过程运行后显示的结果是()。

Public Sub F1(ByRef n%, ByVal m%)

n=n Mod 10

m=m\10

End Sub

Sub Button1_Click(... ...) Handles Button1_Click

Dim x%, y%

x=12: y=34

Call F1(x, y)

MsgBox(x & “”& y)

End Sub

A. 2 34

B. 12 34

C.2 3

D.12 3

6.如下程序,运行的结果是()。

Sub Button1_Click(......) Handles Button1.Click

MsgBox(p1(3.0,7))

End Sub

Public Function p1!(ByVal x!, ByVal n%)

If n=0 Then

p1=1

Else

If Mod 2=1 Then

p1=x*p1(x, n\2)

Else

p1=p1(x, n\2)\x

End If

End If

End Function

A.18

B.7

C.14

D.27

7.如下程序,运行的结果是()。

Dim a%, b%, c%

Public Sub p1(ByRef x%, ByRef y%)

Dim c%

x=2*x: y=y+2: c=x+y

End Sub

Public Sub p2(ByRef x%, ByVal y%)

Dim c%

x=2*x: y=y+2:c=x+y

End Sub

Sub Button1_Click(... ...) Handles Button1.Click

a=2: b=4: c=6

Call p1=(a, b)

MsgBox (“a= “ & a &“b=” & b &“c=”& c)

Call p2(a, b)

MsgBox (“a= “ & a &“b=” & b &“c=”& c)

End Sub

A. a=2 b=4 c=6

B. a=4 b=6 c=10

a=4 b=6 c=10 a=8 b=8 c=16

C. a=4 b=6 c=6

D. a=4 b=6 c=14

a=8 b=6 c=6 a=8 b=8 c=6

8.如下程序,运行后各变量的值依次为()。

Public Sub Proc (ByRef a%())

Static i%

Do

a(i)=a(i)+a(i+1)

i=i+1

Loop While i<2

End Sub

Sub Button1_Click(.....) Handles Button1.Click

Dim m%, i%, x%(10)

For i=0 To 4

x(i)=i+1

Next i

For i=1 To 2

Call Proc(x)

Next i

For i=0 To 4

MsgBox(x(i))

Next i

End Sub

A. 3 4 7 5 6

B.3 5 7 4 5

C. 2 3 4 4 5

D.4 5 6 7 8

二.填空题

1.如下程序,运行显示的值是___________,函数过程的功能是_________ Public Function f(ByVal n%, ByVal r%)

If n<>0 Then

f=f(n\r, r)

MsgBox(n Mod r)

End If

End Function

Sub Button1_Click(......) Handles Button1.Click

MsgBoxf(f(100,8))

End Sub

2.如下程序,运行显示的值是_________,函数过程的功能是__________。

Public Function f(ByVal m%, ByVal n%)

Do While m<>n

If m>n Then

m=m-n

Else

n=n-m

End If

Loop

f=m

End Function

Sub Button1_Click(.....) Handles Button1_Click

MsgBox(f(24,18))

End Sub

3.两个质数的差为2,称此对质数为质数对,下列程序是找出100以内的质数对,并成对显示结果。其中,函数IsP 判断参数m是否为质数。

Public Function IsP (ByVal m) As Boolean

Dim i%

_______________

For i=2 To Int(Math.Sqrt(m))

If_________Then IsP=False

Next i

End Function

Sub Button1_Click(.....) Handles Button1.Click

Dim i%, p1, pa As Boolean

p1=IsP(3)

For i=5 To 100 Step 2

p2=IsP(i)

If _________Then Label1.Text &=i-2 & “”& i

p1 _________

Next i

End Sub

4.子过程MoveStr()是把字符数组移动m个位置。当Tag为True,左移,则前m个字符移到字符数组尾,例如,“abcdefghij”左移三个位置后,结果为“defghijabc”;当Tag为False,右移,则后m个字符移到字符数组前,如“abcdefghij”右移三个位置后,结果为“hijabcdefg”。

子过程如下:

Public Sub MoveStr(ByRef a$(),ByVal m%, ByVal Tag As Boolean)

Dim i%, j%, t$

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