大学vb编程例题题

君,已阅读到文档的结尾了呢~~
大学vb应用编程题答(程序设..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
大学vb应用编程题答(程序设计教程)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口试题库_万博科技职业学院:Visual&Basic程序设计(二)_doc_大学课件预览_高等教育资讯网
万博科技职业学院:Visual&Basic程序设计(二):试题库
分类: 格式: 日期:日
习题 1
填空题
(1) Visual Basic 是一种面向
的可视化程序设计语言,采取了
的编程机制。
(2) Visual Basic 的对象主要分为
两大类。
(3) 在 Visual Basic 中,用来描述一个对象外部特征的量称之为对象的

(4) 在 Visual Basic 中,设置或修改一个对象的属性的方法有两种,它们分别是:

(5) 在 Visual Basic 中,每个对象一般都能感知和接收多个不同的事件,并能对这些事件作出响应,其响应方式就是通过调用执行一个与之相对应的
来实现的。
(6) 在 Visual Basic 中,事件过程的名字由
所构成。
(7) 若用户单击了窗体 Form1,则此时将被执行的事件过程的名字应为:。
(8) Visual Basic 的集成开发环境主要由6个部分组成,它们分别是:
2.简答题
(1) 简述Visual Basic的特点
(2) 什么是对象的属性、事件和方法?
(3) Visual Basic 如何完成对用户操作的响应?
(4) 什么是事件? 事件过程的一般格式是怎样的?如何编写对象的事件过程?
习题 2
2.1 说明下列哪些是Visual Basic合法的直接常量,并分别指出它们的类型。
“1234.5”
345.54#
2.2 下列数据哪些是变量,哪些是常量?是什么类型的常量?
“11/16/99”
#11/12/2004#
12.345
2.3 下列符号中,哪些可以是Visual Basic的合法变量名?
π
2.4 把下列数学表达式写成Visual Basic表达式:
(1)
(2)
(3)
(4)
(5)
(6)
2.5 写出下列表达式的值:
(1)123 + 23 Mod 10 \ 7 + Asc(&A&)
(2)Int(68.555 * 100 + 0.5) / 100
(3)#11/22/2004# - 10
(4)&ZXY& & 123 & &abc&
2.6 设a=7,b=3,c=4,求下列表达式的值:
(1)a + 3 * c
(2)a ^ 2 / 4
(3)a / 2 + 3 \ 2
(4)a Mod 3 + b ^ 3 / c \ 5
2.7 写出下列函数的值:
(1)Int(-3.14159)
(2)Fix(-3.14159)
(3)Sqr(Sqr(81))
(4)Len(&Visual Basic程序设计&)
(5)Int(Abs(99 - 100) / 2)
(6)Sgn(7 * 3 + 2)
(7)LCase(&Hellow VB!&)
(8)Mid(&Hellow VB!&, 4, 3)
(9)Left(&Hellow VB!&, 3)
(10)Val(&16个加23个&)
(11)Str(-459.55)
(12)UCase(&Visual Basic&)
2.8 选择题
(1)可以同时删除字符串前导和尾部空格的函数是
D. Mid
(2)函数Int(Rnd(1) * 10)是在哪个范围产生随机整数
D. (1,9)
(3)数学式子sin25o写成Visual Basic表达式是
B. Sin(25)
C. Sin(25o)
D. Sin(25*3.14/180)
(4)表达式16/4 C 2^3 * 8/4 Mod 5\2的值是
D. 2
(5)数学关系式表示成正确的VB表达式为
A. 3&= x &10
B. x &= 3 And x&10
C. x&=3 Or x&10
D. 3&= x And &10
(6)已知A=””,则表达式Val(Left(a, 4) + Mid(a, 4, 2))的值是
D. 6
(7)表达式Len(&123程序设计ABC&)的值是
D. 17
(8)表达式LenB(&123程序设计ABC&)的值是
D. 17
(9)下面正确的赋值语句是
C. y=π*r*r
D. 3y=x+1
(10)为了给x,y,z三个变量赋初值1,正确的赋值语句是
A. x=1: y=1: z=1
B. x=1, y=1, z=1
C. x=y=z=1
D. x,y,z=1
(11)赋值语句g = 123 + Mid(&123456&, 3, 2)执行后,变量g中的值是
A. “12334”
D. 157
(12)赋值语句g = 123 & Mid(&123456&, 3, 2)执行后,变量g中的值是
A. “12334”
D. 157
(13)如果x是一个正实数,对x的第3位小数四舍五入的表达式是
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)
(14)下列哪组语句可以将变量a,b的值互换
A. a=b: b=a
B. a=a+b: b=a-b: a=a-b
C. a=c: c=b: b=a
D. a=(a+b)/2: b=(a-b)/2
(15)下列四个字符串进行比较,最小的是
A. “9977”
B. “B123”
C. “Basic”
D. “DATA”
(16)下列逻辑表达式中,其值为True的是
A. “b” & “ABC”
B. “THAT” & “THE”
C. 9 & “H”
D. “A” & “a”
(17)表达式a+b=c是
A. 赋值表达式
B. 字符表达式
C. 算术表达式
D. 关系表达式
(18)在下列表达式中,非法的是
D. a&b+c
(19)语句Print Format (“HELLO”, “&”) 的输出结果是    。
  A. HELLO
D. he
(20)MsgBox函数的返回值的类型是    。
A. 整数     B. 字符串      C. 逻辑值   D. 日期
(21)用语句Dim A(-3 to 5) As Long定义的数组元素个数是
D.10
(22)用语句Dim A(3, -3 to 0,3 to 6) As Long定义的数组元素个数是
D.80
2.9 程序阅读题
(1)执行下面程序段后,变量c$的值为       。
     a = &学习Visual Basic Programming&
b = &我们&
c$ = b & &喜欢& & UCase(Mid(a, 10, 5))
(2)执行下面程序后,显示的结果是        。
  Private Sub Form_Click()
Dim x As Integer
x = Int(Rnd) + 4
Select Case x
Case 5
 Print &优秀&
Case 4
 Print &良好&
Case 3
 Print &及格&
Case Else
 Print &不及格&
End Select
End Sub
 (3)执行下面程序段后,变量x的值为       。
Dim x As Integer
x = 5
For i = 1 To 20 Step 3
      x = x + i \ 5
Next i
 (4)执行下面程序后,输出的结果是       。
     Private Sub Form_Click()
Dim x As Integer
For i = 1 To 3
     For j = 1 To i
     For k = j To 3
      x = x + 1
      Next k
     Next j
Next i
Print x
End Sub
 (5)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim x As Integer
x = 0
Do While x & 50
      x = (x + 2) * (x + 3)
      n = n + 1
Loop
Print &x=&; &n=&; n
End Sub
 (6)执行下面程序后,输出的结果是       。
     Private Sub Form_Click()
Dim x As Integer, a As Integer
x = 0
For j = 1 To 5
   Next j
    x = j
    Print x, a
End Sub
 (7)以下程序的循环次数是        。
For j = 8 To 35 Step 3
     P
Next j
 (8)执行下面程序输入4后,程序输出的结果是       。
Private Sub Form_Click()
x = InputBox(x)
If x ^ 2 & 15 Then y = 1 / x
If x ^ 2 & 15 Then y = x ^ 2 + 1
Print y
End Sub
 (9)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim sum As Integer
sum% = 19
sum = 2.23
Print sum%; sum
End Sub
 (10)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
a = 100
     Do
a = a + 1
Loop Until a & 100
Print a
End Sub
(11) 执行下面程序后,输出的结果是       。
Private Sub Form_Click()
a = &ABCD&
b = &efgh&
c = LCase(a)
d = UCase(b)
Print c + d
End Sub
(12) 执行下面程序后,输出的结果是       。
Private Sub Form_Click()
x = 2: y = 4: z = 6
x = y: y = z: z = x
P z
End Sub
(13)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim count As Integer
count = 0
While count & 20
count = count + 1
Wend
Print count
End Sub
(14)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
a = &*&: b = &$&
For k = 1 To 3
x = Str(Len(a) + k) & b
P
Next k
End Sub
(15)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
k = 0: a = 0
Do While k & 70
k = k + 2
k = k * k + k
a = a + k
Loop
Print a
End Sub
(16)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim M(10) As Long, N(10) As Long
i = 3
For t = 1 To 5
M(t) = t
N(i) = 2 * i + t
Next t
Print N(i); M(i)
End Sub
A. 3
(17)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim a()
a = Array(1, 2, 3, 4)
j = 1
For i = 3 To 0 Step -1
s = s + a(i) * j
j = j * 10
Next i
Print s
End Sub
A. 1234
D. 34
(18)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim M(10)
For k = 1 To 10
M(k) = 11 - k
Next k
x = 6
Print M(2 + M(x))
End Sub
A. 2
D. 5
(19)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim a(10) As Integer, p(3) As Integer
k = 5
For i = 1 To 10
a(i) = i
Next i
For i = 1 To 3
p(i) = a(i * i)
Next i
For i = 1 To 3
k = k + p(i) * 2
Next i
Print k
End Sub
A. 33
D. 37
(20)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim a(10, 10) As Integer
For i = 2 To 4
For j = 4 To 5
a(i, j) = i * j
Next j
Next i
Print a(2, 5) + a(3, 4) + a(4, 5)
End Sub
A. 22
D. 52
2.10 填空题
填空,使得程序运行后,能在窗体上打印如图所示的图案。
Private Sub Form_Click()
Print
For i = 1 To 4
Print Tab(8 - i);
For j = 1 To 8
Print &*&;
Next i
End Sub
下面程序的功能是利用随机函数产生10个(1~100)之间的随机整数,打印其中能被5整除的数并求其和,请用正确的内容填空。
Private Sub Form_Click()
Dim sum As Integer, x As Integer
For i = 1 To 10
x = Int(Rnd * 100 + 1)
sum = sum + x
Print &x=&; x
End If
Next i
If sum && 0 Then
Print &sum=&; sum
End If
End Sub
用正确的内容填空,使得以下程序能够找出50以内所有能构成直角三角形的整数。
Private Sub Form_Click()
Dim a As Integer, b As Integer
Dim c As Single
For a = 1 To 50
For b = a To 50
c = Sqr(a ^ 2 + b ^ 2)
Then Print a, b, c
Next b
Next a
End Sub
用正确的内容填空,使得以下程序能够计算1+1/3+1/5+……+1/(2N+1),直到1/(2N+1)小于10-5。
Private Sub Form_Click()
sum = 1: n = 1
Do
n = n + 2
temp = 1 / n
sum = sum + temp
If temp & 0.00001 Then
Loop
Print &N=&; n
Print &sum=&; sum
End Sub
某大奖赛,有7位评委给参赛选手打分。以下程序是输入7位评委对某选手的打分后,去掉最高分和最低分后计算其平均值作为该选手的成绩。请填空使得程序能正确运行。
Private Sub Form_Click()
sum = 0
For i = 1 To 7
cj = Val(InputBox(&请输入第& & i & &位评委的打分&, &录入&))
If i = 1 Then
If Min & cj Then
Min = cj
ElseIf Max & cj Then
sum = sum + cj
Print &该选手的成绩为:&, aver
End Sub
以下程序用随机函数模拟掷骰子,统计掷50次骰子出现各点的次数,请用正确的内容填空。
Private Sub Form_Click()
Dim a(1 To 6) As Integer
Randomize
For i = 1 To 50
a(n) = a(n) + 1
Next i
For i = 1 To 6
P &点出现&; a(i); &次&
Next i
End Sub
2.11 编程题
编写程序将1~100自然数中能被3和5同时整除的数打印出来,并统计其个数。
我国现有人口14亿,设年增长率为0.75%,编写程序,计算多少年后将增加到16亿。
编写程序输出100~200之间不能被3整除的自然数。
设计程序,求s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值。
编写程序计算S的近似值,直到最后一项的绝对值小于10-5为止。并用Print方法输出计算结果。其中:

假设某项税收的规定如下:
收入在500元以内,免征;
收入在500~1000元内,超过500元的部分纳税3%;
收入超过1000元时,超过的部分纳税4%;
收入超过2000元时,超过的部分纳税5%。
试编程实现上述操作。
编写程序,用InputBox函数输入3个正整数,打印其中最大的数。
编写程序,任意输入三个整数A,B,C,按由大到小顺序把它们打印出来。
编写程序,计算直到第n项的绝对值小于10-8
分别编写两个程序,在窗体上分别打印出如下所示的图形。
编写程序,输出1000之内的所有完数。“完数”是指一个数恰好等于它的因子之和,如6的因子为1、2、3,而6=1+2+3,因而6是完数。
一只小球从10米高度上自由落下,每次落地后反弹回原高度的40%,再落下。编程计算小球在第8次落地时,共计经过了多少米?
编写程序,求出所有小于或等于100的自然数对。自然数对是指两个自然数和与差都是平方数,如8和17的和为8+17=25与其差17-8=9都是平方数,则8和17就称为自然数对。
找出100~999之间的所有“水仙花数”。 所谓“水仙花数”是一个三位数,其各位数的立方各等于该数本身,例:153=13+53+33,故153是“水仙花数”。
编写程序,在窗体上打印下图所示的“数字金字塔”:

用一元纸币兑换一分、二分和五分的硬币,要求兑换硬币的总数为50枚。编程列出所有可能的兑换方案。
编写程序,建立并输出一个10×10的矩阵,该矩阵两条对角线上的元素为1,其余元素均为0。
一、选择题
窗体的标题条显示内容由窗体对象的(
)属性决定。
A. BackColor
B. BackStyle
D. Caption
窗体的示意图标可用(
)属性来设置。
A. Picture
D. MouseIcon
若要取消窗体的最大化功能,则可设置(
)属性为False来实现。
A. ControlBox
B. MinButton
C. MaxButton
D. Enabled
窗体的风格由窗体对象的(
)属性来设置。
A. BackStyle
B. BorderStyle
C. WindowState
D. FillStyle
若要以程序代码方式设置在窗体中显示文本的字体大小,则可用窗体对象的(
)属性来实现。
A.FontName
C. FontSize
D.FontBold
若要设置文本的显示颜色,则可用(
)属性来实现。
A. BackColor
B. ForeColor
C .FillColor
D. BackStyle
若要使用窗体启动时,位于屏幕的中间,则可通过(
)属性来设置。
A. Top
C. StartUpPosition
D. WindowState
若要禁止窗体被移动,则可设置窗体的(
)属性为False来实现。
A. Move
B. Moveable
C. MinButton
D. ControlBox
若要将窗体隐藏起来,则实现的方法为(
D. WindowState
命令钮的标题文字由(
)属性来设置。
A. Text
B. Caption
D. (名称)
命令按钮标题文字的下划线,可通过(
)符号来设置。
A.\<
D\>
若要将某命令按钮设置为默认命令钮,则可设置(
)属性为True来实现。
A. Value
C. Default
若要设置命令钮的工具提示,则可通过(
)属性来设置。
A. Caption
D. ToolTip Text
若要使用某命令按钮获得控制焦点,则可使用(
)方法来设置。
A. Refresh
B. SetFocus
C. GotFocus
D. Value
若要使用命令钮在运行时不可见,则可通过设置()属性的取值来实现。
A. Visible
B. Enabled
C. Default
D. Value
在运行时,若要调用某命令钮的Click事件过程,则可设置该命令按钮对象的(
)属性为True来实现。
A. Enabled
C. Default
D. Cancel
标签框的边框,由(
)属性的设置值决定。
A. BorderStyle
B. BackStyle
C. BackColor
D. AutoSize
若要使用标签框的大小自动与所显示的文本相适应,则可通过设置(
)属性的值为True来实现。
A. AutoSize
B. Alignment
C. Appearance
D. Visible
若要设置或返回文本框中的文本,则可通过文本框对象的(
)属性来实现。
A. Caption
D. Name
若要使用文本框成为只读文本框,可通过设置(
)属性值为True来实现。
A. ReadOnly
D. Enabled
若要设置定时器控件的定时时间,可通过(
)属性来设置。
A. Interval
C. Enabled
若要多列显示列表项,可通过设置列表框对象的(
)属性来实现。
A. Columns
B. MultiSelect
D. List
若要获知当前列表项的数目,可通过访问(
)属性来实现。
A. List
B. ListIndex
C. ListCount
D. Text
若要向列表框新增列表项,则可使用的方法是(
)。
A. Add
D. AddItem
若要清除列表框的内容,可使用(
)方法来实现。
A. Add
D. AddItem
在3种不同风格的组合框中,用户不能输入数据的组合框是(
)
A. 下拉式组合框
B. 简单组合框
C. 下拉式列表框
复选框或单选框的当前状态通过(
)属性来设置或访问。
A. Value
C. Selected
D. Caption
下列控件中,没有Caption属性的是(
)。
A. 框架
D. 单选按钮
复选框的Value属性为1时,表示(
)。
A. 复选框未被选中
B. 复选框被选中
C. 复选框内有灰色的勾
D. 复选框操作错误
用来设置粗字体的属性是(
)。
A. FontItalic
B. FontName
C. FontBold
D. FontSize
将数据项“China”添加到列表框List1中,成为第一项应使用(
)语句。
A. List1.AddItem “China”, 0
B. List1.AddItem “China”, 1
C. List1.AddItem 0, “China”
D. List1.AddItem 1, “China”
假定时钟控件的Interval属性为1000,Enabled属性为True,并且有下面的事件过程,计算机将发出(
)次Beep声。
Private Sub Timer1_Timer()
For i = 1 To 5
Next i
End Sub
A. 1000次
D. 以上都不对
如果每0.5秒产生一个计时器事件,那么时钟控件的Interval属性应设为(
D. 5000
将命令按钮Command1的标题复制到文本框控件,Text1作为显示文本,应执行(
)。
A. Text1= Command1
B.Text1= Command1.Caption
C.Text1.text= Command1.Caption
D.Text1.Text= CStr(Command1)
表示滚动条控件取值范围最大值的属性是(
)。
A. Max
B. LargeChange
D. Max-Min
二、填空题
复选框的
属性设置为2-Grayed时,将变为灰色,禁止用户使用。
Visual Basic中有一种控件组合了文本框和列表框的特点,这种控件是

为了在程序运行时把d:\pic文件夹中的图形文件a.jpg装入图片框Picture1,所使用的语句为

计时器控件能有规律地以一定的时间间隔触发
事件,并执行该事件过程中的程序代码。
若要求输入密码时文本框中只显示*号,则应当在文本框的属性窗口中设置
属性。
图像框和图片框在使用时有所不同,这两个控件中,能作为容器容纳其它控件的是

单击滚动条边的箭头时,滚动条默认滚动值为1,为了实现单击滚动条边的箭头时,滚动条的滚动值为2,需要将其
属性设置为2。
滚动条响应的重要事件有
和Change,滚动条产生Change事件是因为
改变了。
列表框中的
属性是数组。
在窗体上有一个名为Command1的命令按钮和一个名为Text1的文本框,程序运行后,Command1为禁用(灰色)。当向文本框中输入任何字符时,命令按钮Command1变为可用。请在空白处填入适当的内容,将程序补充完整。
Private Sub Form_Load()
Command1.Enabled = False
End Sub
Private Sub Text1_
()
Command1.Enabled = True
End Sub
三、编程题
在FormLoad事件编写一个程序,利用Inputbox来输入语文、英语和计算机3门课的成绩。然后算出这3门课的总分和平均分,以MsgBox显示出来。
在下图中“半径”后的文本框(TEXT1)中书输入圆的半径值后,单击“计算面积”按钮(COMMAND1)和“计算周长”按钮(COMMAND2),其计算结果将显示在结果后的文本框(TEXT2)中。请将控件的相关事件代码编写出来,以完成上述各功能。

下图所示的界面,在图示的文本框中输入3个不同的数,点击“排序”按钮后,输入的三个数按从大到小的顺序显示在另外3个文本框中。
在窗体中建立两个命令按钮和一个标签,程序启动时只显示两个命令按钮,单击按钮“英文”时显示“Good Bye”,单击按钮“中文”时显示“再见”。

设计一程序界面如图示,程序运行时,拖动滚动条便可以改变颜色区的背景色。

设计一倒计时程序界面如下图示,运行时点击“设置倒计时间”按钮可以用设置倒计时的初始时间,点击“开始倒计时”按钮就开始倒计时。

设计一程序,窗体上有两个列表框,左侧列表框列出若干个城市名称,当双击某个城市名时,这个城市名显示在右侧列表框中

设计如下图所示的程序界面,实现计算两个整数的最大公约数功能。

设计一个程序,有两个输入栏用来输入数据,然后可以计算它们的值,如加、减、乘、除、幂次方及余数。当用户输入数据时,会马上更新运算结果,界面如下图所示:

(10)输入两点坐标,在图片框中显示两点的连线并计算两点间的距离。
习题 4
1程序阅读题
假定有如下的Sub过程:
Sub S (x As Single, y As Single)
t = x
x = t / y
y = t Mod y
End Sub
在窗体上添加一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
a = 5: b = 4
S a, b
Print a, b
End Sub
程序运行时,单击命令按钮得到的结果是
C. 1.25, 4
D. 1.25, 1
在在窗体上添加一个命令按钮Command1和一个文本框Text1,然后编写如下事件过程:
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z As Integer
Text1.Text = &&
Call p1(x, y, z)
Text1.Text = Str(z)
End Sub
Private Sub p1(ByVal a As Integer, ByVal b As Integer, c As Integer)
c = a + b
End Sub
程序运行后,单击命令按钮得到的结果是
D. 没有显示
假定有以下函数过程:
Function Fun(S As String) As String
Dim s1 As String
For i = 1 To Len(S)
s1 = UCase(Mid(S, i, 1)) + s1
Next i
Fun = s1
End Function
在窗体上添加一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim str1 As String, str2 As String
str1 = InputBox(&请输入一个字符串&)
str2 = Fun(str1)
Print str2
End Sub
程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdegf”,单击确定按钮后程序在窗体上输出结果为

A. abcdefg
B. gfedcba
C. ABCDEFG
D. GFEDCBA
在在窗体上添加一个命令按钮Command1和两个名称分别为Label1和Label2的标签,然后编写如下事件过程:
Private X As Integer
Private Sub Command1_Click()
X = 5: y = 3
Call proc(X, y)
Label1.Caption = X
Label2.Caption = y
End Sub
Sub proc(ByVal a As Integer, ByVal b As Integer)
X = a * a
y = b + b
End Sub
程序运行后,单击命令按钮,则两个标签中显示的内容分别是

A. 5和3
D. 5和6
(5) 下列程序输出结果为

Private Sub Command1_Click()
For i = 1 To 10
GetValue i
Print GetValue(i)
End Sub
Private Function GetValue(ByVal a As Integer)
Static S As Integer
S = S + a
GetValue = S
End Function
A. 10
D. 11
(6)以下程序的运行结果是:

Function f(m As Integer) As Integer
b = 1
Static c As Integer
b = b + 1
c = c + 1
f = m * b * c
End Function
Private Sub Command1_Click()
Dim a As Integer
a = 2
Sum = 0
For i = 1 To 3
Sum = Sum + f(a)
Next i
Print Sum
End Sub
A. 24
(7)以下程序的运行结果是:
Dim x As Integer, y As Integer, z As Integer
Sub s1(a As Integer, b As Integer)
Dim c As Integer
a = 2 * a
b = b + 2
c = a + b
End Sub
Sub s2(a As Integer, ByVal b As Integer)
Dim c As Integer
a = 2 * a
b = b + 2
c = a + b
End Sub
Private Sub Command1_Click()
x = 4
y = 4
z = 6
Call s1(x, y)
Print x + y +
Call s2(x, y)
Print x + y + z
End Sub
A. 24
(8)以下程序的运行结果是:
Sub s1(b() As Integer)
For i = 1 To 4
b(i) = 2 * i
Next i
End Sub
Private Sub Command1_Click()
Dim a(1 To 4) As Integer
For i = 1 To 4
a(i) = i + 5
Next i
s1 a()
For i = 1 To 4
Print a(i);
Next i
End Sub
A. 6 7 8 9
B. 12 14 16 18
C. 2 4 6 8
D. 1 2 3 4
2 填空题
一个工程中包括两个窗体Form1和Form2,启动窗体为Form1。在Form1上有一命令按钮Command1。程序运行后,要求单击命令按钮时,Form1窗体消失,显示窗体Form2,请将程序补充完整。
Private Sub Command1_Click()
Form1
Form2.
End Sub
一工程中有两个窗体form1和form2,一个标准模块module1,设在form1中定义了过程aa,在module1中定义了过程bb。
Sub aa(x, y, z)
z = x * x + y * y
Sub bb(x, y, z)
z = x ^ 3 + y ^ 3
End Sub
当在form1中单击命令按钮时,调用以上过程计算两个数的平方和和立方和,并分别将计算结果显示在文本框text3和text4中,请填空完成调用语句。
Private Sub Command1_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
Call
Text3.Text = c1
bb
Text4.Text = c2
End Sub
在窗体form1中添加一个通用对话框控件CommonDialog1,程序运行时,首先使用CommonDialog1打开一个标准颜色对话框,用于设置对象颜色,其次使用CommonDialog1打开一个标准字体对话框,用于设置对象的字体、字形和字号效果。
Private Sub Form_Load()
CommonDialog1.Action = 3
Text1.BackColor = CommonDialog1.Color
CommonDialog1.
= 4
Text1.FontName = CommonDialog1.FontName
Text1.FontSize = CommonDialog1.
End Sub
编写一个求最大公约数的函数,并调用该函数,程序如下:
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z As Integer
x = 96
y = 64
z =
Print z
End Sub
Function gcd(ByVal a As Integer, ByVal b As Integer) As Integer
Dim r As Integer
Do While b && 0
r = a Mod b
a = b: b=r
gcd = a
End Function
已知菲波纳契数列具有如下递推关系:
下面是计算此数列的函数,请填空。
Private Sub Command1_Click()
a% = Val(Text1.Text)
x = fib(a)
Print x
End Sub
Function fib(n%)
Select Case n%
End Select
End Function
已知函数。下面是实现计算该函数的程序,请填空。
Private Sub Command1_Click()
Dim k As Integer, i As Integer, s As Long
n = 5
k = 1
For i = 1 To n
s = s + pow(
)
Next i
Sum = s
Print Sum
End Sub
Function pow(a As Integer, b As Integer) As Long
Dim i As Integer, t As Long
t = 1
For i = 1 To a
Next i
pow = t
End Function
3 编程题
编写输入一个0~6数字,显示汉英对照输出星期的函数过程。
编写判断奇偶数的Function过程。输入一个数,判断其奇偶性。
编写求两数中的较大数的函数过程,求多个数的较大数。
编写计算契比雪夫多项式的Function过程,其定义如下:
习 题 5
选择题
(1)菜单编辑器中,哪一个选项输入希望在菜单栏上显示的文本( )
D. 访问键
(2)下面哪个属性可以控制菜单项可见或不可见( )
B. Checked
C. Visible
D. Enabled
(3)下面说法不正确的( )
A. 下拉菜单和弹出式菜单都是由菜单编辑器创建的
B. 每一个创建的主菜单最多可以有5级子菜单
C. 下拉菜单中的菜单项不可以作为弹出式菜单显示
D.控制下拉菜单项是否可用,由菜单编辑器中的有效属性设置
(4)菜单控件只有一个事件( )
A. MouseUp
C. DBClick
D. KeyPress
(5)下面说法不正确的是( )
顶层菜单不允许设置快捷键
要使菜单项中的文字具有下画线,可在标题文字前加&符号。
有一菜单项名为MenuTerm,则语句MenuTerm.Enable = Flase 将使该菜单项失效。
若希望在菜单中显示“&”符号,则在标题栏中输入“&”符号。
2.填空题
(1)Visual Basic中的菜单可分为
(2)如要在菜单中设计分隔线,则应将菜单项的标题设置为
(3)想要显示一弹出式菜单,可使用
(4)有些菜单项被点击后将显示一个对话框,通常在这些菜单项后有
(5)菜单中的“热键”可通过在热键字母前插入
符号实现。
(6)可通过快捷键
打开菜单编辑器。
3.编程题
1.在窗体上画一个标签框,Alignment属性设为2,AutoSize属性设为True,BorderStyle属性设为1,FontSize设为20;然后画一个时钟控件,Interval属性设为1000。如图所示,当单击时间选项时,标签框内显示时间 (时间要动态变化),而单击日期标签框则显示当前日期。通过菜单项要能够控制标签框的背景牙色、字体大小和字颜色,各菜单项的属性设置见下表:
表5-5 各菜单项属性
菜单项
名称
菜单项
名称

电子日历
mnuElec
....黑色
mnuFblack

....当前日期
mnuDate
....红色
mnuFred

....系统时间
mnuTime
....绿色
mnuFgreen

日历背景
mnuBcolor
字体大小
mnuSize

....黑色
mnuBblace
....12
mnu12

....红色
mnuBred
....20
mnu20

....绿色
mnuBgreen
....30
mnu30

字体颜色
mnuFcolor



程序的窗体设计和运行界面如5-10和5-11所示:

图5-10 程序窗体设计界面

图5-11 程序运行界面
2.这里是几位名人的简介:
金庸:著名武侠小说家,其作品具有的读者数量,鲜有出其右者,代表作有《射雕英雄传》、《天龙八部》等。
路遥:著名作家,茅盾文学奖获得者,代表作有《平凡的世界》和《人生》等。
王火:作家,以长篇小说《战争与人》获茅盾文学奖,但却少被人所知道,一直居住在少被文坛关注的成都。
贝聿铭:世界级建筑大师,设计过世界各地很多标志性建筑,其中广为人知是香港的中银大厦。
建立一个弹出式菜单,包含4个菜单项,分别为“金庸”、“路遥”、“王火”和“贝聿铭”。程序运行后,单击弹出菜单中的某个菜单项,在标签中显示相应的名字,而文本框中显示该名人的简介。文本框的MultiLine属性设为True,FontSize属性设为20。
(1)下面对语句Open ”Rizhi.dat” For Output As #1 功能说明错误的是( )
以顺序输出模式打开文件”Rizhi.dat”
如果文件”Rizhi.dat”不存在,则建立一个新文件
如果文件”Rizhi.dat”已存在,则打开该文件,新写入的的数据将添加到文件末尾
如果文件”Rizhi.dat”已存在,则打开该文件,新写入的的数据将覆盖原来的数据
(2)执行语句Open “Sample.dat” For Random As #1 Len = 50 后,对文件”Sample.dat”中的数据能够进行的操作是( )
A. 只能写不能读
B. 只能读不能写
C. 即可以读,也可以写
D. 不能读,也不能写
(3)以下那个不是VB中的数据文件类型( )
A. 顺序文件
B. 数据库文件
C. 随机文件
D. 二进制文件
(4)下列说法错误的是( )
当用Write # 语句写顺序文件时,文件必须以Output或Append方式打开
用Open语句打开一个文件时,对同一个文件可以用几个不同的文件号打开
用Output和Append方式打开文件时,不用将文件关闭,就能重新打开文件
用Append方式打开文件时,进行写操作,写入文件的数据附加到原来文件的后面
(5)下面几个关键字均表示文件的打开方式,只能进行读不能写的是( )
D. Append
(6)下列哪个不是写文件语句( )
B. Print #
D. Output
(7)改变驱动器列表框的Drive属性将激活( )事件
C. KeyDown
D. KeyUp
(8)为了使Drive1驱动器列表框、Dir1目录路径列表框和File1文件列表框同步协调工作,需要在( )
A. Drive1的Change事件过程中加入Dir1.Path = Drive1.Drive,在Dir1的Change事件中加入File1.Path = Dir1.Path代码
B. Drive1的Change事件过程中加入Dir1.Path =Dir1.Path,在Dir1的Change事件中加入File1.Path = Drive1.Drive代码
C. Dir1的Change事件过程中加入Dir1.Path = Drive1.Drive,在Drive1的Change事件中加入File1.Path = File1.FileName代码
D. Dir1的Change事件过程中加入Dir1.Path = Drive1.Drive,在Drive1的Change事件中加入File1.Path = Dir1.Path代码
2.程序阅读题
(1)写出程序运行结果
Private Sub Command1_Click( )
Dim a(20)As Integer
Open “d:\ Data.txt” For Output As #1
For i = 2 To 8
For j = 1 To i
Print #1, j
Next j
Next i
Close #1
Open &d:\ Data.txt& For Input As #2
k = 0
While Not EOF(2)
Input #2, a (k)
Wend
Close #2
For i = 2 To k / 4
Print a (i)
Next I
End Sub
(2)执行以下程序后,Prime.dat文件中的内容为
Private Sub Form_Click()
Dim num As Integer, dat1 As Integer, dat2 As Integer
Dim swit As Boolean
Open &d:\prime.dat& For Output As #1
num = 0
For dat1 = 2 To 10
swit = True
For dat2 = 2 To Sqr(dat1)
If (dat1 Mod dat2) = 0 Then
swit = False
If swit Then
num = num + 1
Write #1, & 第&; &个数&; dat1
End If
Next dat1
Close #1
End Sub
(1)编写程序,建立一顺序文件,输入某公司销售记录,每次从键盘上输入一种商品的数据,包括商品编号、名称、价格、销售数量和销售日期,建立文件后,在窗体上输出全部内容。
(2)建立一个随机文件用以存放6个学生的数据,包括学号、姓名和成绩,文件名为“student.dat ”,
(1)利用可视化数据管理器(Visdata)创建好表结构后,选中某数据表单击右键,在弹出菜单中选择( )命令,即可添加记录。
D. 修改
(2)Data控件的哪一个属性为设置访问的数据表的名称( )
A. DatabaseName
B. connect
C. Recordsource
D. Recordsettype
(3)下列哪种控件是不能与Data控件一起使用的ActiveX绑定控件
A. DBListBox
B. DbcomboBox
D. ImageList
(4)记录集中移动记录到上一条记录的方法是( )
A. MoveFirst
C. MoveNext
D. MovePrevious
(5)将新记录集添加到记录集后,保存更新结果使用的方法是( )
C. CancelUpdata
D. Refresh
(6)能从一个或多个数据表中取出字段,但只能浏览的记录集对象是( )
B. 动态集类型
D. 都不对
(7)将一文本框与数据控件相关联需要设定文本框的( )属性
A. Recordsource
B. DataField
C. DataSource
D. RecordsetType
(8)在一个学生信息表中查找所有姓“李”的,最后一个字为“峰”的人,可使用查询语句( )
Select * From Student Where
姓名 = “ 李 ?峰 ”
Select * From Student Where
姓名 = “ 李 * 峰 ”
Select * From Student Where
姓名 = “ 李 * ” And 姓名 = “ * 强 “
Select * From Student Where
姓名 Like “ 李 * 峰 ”
(1)编写一个通讯录程序,数据库“通讯录”的数据表中包含“姓名”、“性别”、“住址”和“联系电话”等,要求可以显示数据表中的记录内容,并可以添加、删除、根据姓名查询和增加等操作。
(2)利用VB的可视化数据管理器建立下面的数据表:
学号
名称
性别
年龄
特长


030112
李万能
男
19
唱歌

031235
陈

女
19
街舞

030456
蔡令军
男
19
电脑编程

030886
张小小
女
21
演讲


设计一数据窗体,利用该窗体实现对数据表的浏览、修改、删除、增加和查询记录的功能,并要求能够任意选择查询数据的方式,如即可通过学号查询,也可通过特长查询等。
(3)将题(2)中的数据表添加“照片”字段,使程序不但可以显示数据表中的记录内容,还可以显示每个人的照片,且照片的显示会随着记录指针的移动而变化。
习题 2解答
一、基本概念题
(1) 说明下列哪些是Visual Basic合法的直接常量,并分别指出它们的类型。
“1234.5”
345.54#
答:在VB中,直接常量是以直接明显的形式给出的数据。根据数据类型的不同,直接常量分为:字符串常量、数值常量、日期常量和布尔常量。
字符串常量是由一对半角双引号“””加以界定的字符序列,该字符序列可以是任何能被计算机处理的字符。本题中,“ASDF” 、 “1234.5”是字符串常量;
数值常量是由数值、小数点和正负号所构成的数值。在Visual Basic中除十进制数值常量外,还有八进制、十六进制数值常量。八进制常量前加&O;十六进制常量前加&H。本题中,100.0、1E1、123D3、#、&O78 、&H123、-1123!和345.54#均为数值常量。
日期常量用来表示某一天或某一天的具体时间。在Visual Basic中,日期常量用两个“#”号加以界定。本题中,##是日期常量。
逻辑型常量只有True和False两个值,表示“真”和“假”。本题中,True是逻辑常量。
本题中,%100、123,456、π、T不是合法的常量。
(2)下列数据哪些是变量,哪些是常量?是什么类型的常量?
“11/16/99”
#11/12/2004#
答:“name”、 “11/16/99”、 “120”是字符串常量;12.345是数值常量;#11/12/2004#是日期常量;False是逻辑常量。Name、ff、cj、n是变量。
(3) 下列符号中,哪些可以是Visual Basic的合法变量名?
答:变量命名的规则是:必需以字母或汉字开头,其后可以是下划线、字母、汉字和数字,长度小于255个字符;不能使用VB的关键字。本题中,合法的变量名是:A123、 a12_3、XYZ、变量名、sinx;不合法的变量名是:123_a(不能用数字开头)、a,123(不能用逗号)、a 123(不能有空格)、False、Sin(x)(VB的关键字)、π(不是英文字母)。
(4)把下列数学表达式写成Visual Basic表达式:
(1)
(2)
(3)
(4)
(5)
(6)
答:(1) abs(x+y)+z^5
(2) (1+x*y)^6
(3) (10*x+Sqr(3*y))/(x*y)
(4)(-b+Sqr(b*b-4*a*c))/(2*a)
(5) 1/(1/r1+1/r2+1/r3)
(6) Sin(3.)+(Exp(10)+log(10))/Sqr(x+y+1)
(5)写出下列表达式的值:
(1)123 + 23 Mod 10 \ 7 + Asc(&A&)
(2)Int(68.555 * 100 + 0.4) / 100
(3)#11/22/2004# - 10
(4)&ZXY& & 123 & &abc&
答:VB中计算表达式的值时,首先要考虑的是运算符的优先级。
(1)式中整除运算符\优先级最高,故首先计算10\7=1;然后计算23 Mod 1=0;所以整个表达式的值=123+0+65=188。
(2)式中Int(68.555*100+0.4)=Int(0=.55。注意Int()函数取整时,参数如果是整数,略去小数部分;参数是负数时,取不大于参数的最大整数。
(3)式中的10表示天数,故表达式的值是。
(4)“&”运算符的作用是把字符串连接起来,如果遇到数值,则先把数值转换成字符串后再连接,所以表达式的值是&ZXY123abc&。
(6)设a=7,b=3,c=4,求下列表达式的值:
(1)a + 3 * c
(2)a ^ 2 / 4
(3)a / 2 + 3 \ 2
(4)a Mod 3 + b ^ 3 / c \ 5
答:
(1)式=7+3*4=19;
(2)式=7*7/4=12.25;
(3)式=7/2+3\2=3.5+1=4.5;
(4)式=1+27\4/5=1+6.75\5=1+6\5=2;
(7)写出下列函数的值:
(1)Int(-3.14159)
(2)Fix(-3.14159)
(3)Sqr(Sqr(81))
(4)Len(&Visual Basic程序设计&)
(5)Int(Abs(99 - 100) / 2)
(6)Sgn(7 * 3 + 2)
(7)LCase(&Hellow VB!&)
(8)Mid(&Hellow VB!&, 4, 3)
(9)Left(&Hellow VB!&, 3)
(10)Val(&16个加23个&)
(11)Str(-459.55)
(12)UCase(&Visual Basic&)
答:
(1)Int(-3.14159)=-4;
(2)Fix(-3.14159)=-3;
(3)Sqr(Sqr(81))=3
(4)Len(&Visual Basic程序设计&)=16;
(5)Int(Abs(99 - 100) / 2)=0;
(6)Sgn(7 * 3 + 2)=1;
(7)LCase(&Hellow VB!&)=”hellow vb”;
(8)Mid(&Hellow VB!&, 4, 3)=”low”;
(9)Left(&Hellow VB!&, 3)=”Hel”;
(10)Val(&16个加23个&)=16;
(11)Str(-459.55)=”-459.55”;
(12)UCase(&Visual Basic&)=”VISAUL BASIC”;
二、 选择题
(1)可以同时删除字符串前导和尾部空格的函数是
D. Mid
(2)函数Int(Rnd(1) * 10)是在哪个范围产生随机整数
D. (1,9)
(3)数学式子sin25o写成Visual Basic表达式是
B. Sin(25)
C. Sin(25o)
D. Sin(25*3.14/180)
(4)表达式16/4 C 2^3 * 8/4 Mod 5\2的值是
D. 2
(5)数学关系式表示成正确的VB表达式为
A. 3&= x &10
B. x &= 3 And x&10
C. x&=3 Or x&10
D. 3&= x And &10
(6)已知A=””,则表达式Val(Left(a, 4) + Mid(a, 4, 2))的值是
D. 6
(7)表达式Len(&123程序设计ABC&)的值是
D. 17
(8)下面正确的赋值语句是
B. y=3π*r*r
D. 3y=x+1
(9)为了给x,y,z三个变量赋初值1,正确的赋值语句是
A. x=1: y=1: z=1
B. x=1, y=1, z=1
C. x=y=z=1
D. x,y,z=1
(10)赋值语句g = 123 + Mid(&123456&, 3, 2)执行后,变量g中的值是
A. “12334”
D. 157
(11)表达式Not(a+b=c-d)是_______。
A. 逻辑表达式
B. 字符表达式
C. 算术表达式
D. 关系表达式
(12)如果x是一个正实数,对x的第3位小数四舍五入的表达式是
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)
(13)下列哪组语句可以将变量a,b的值互换
A. a=b: b=a
B. a=a+b: b=a-b: a=a-b
C. a=c: c=b: b=a
D. a=(a+b)/2: b=(a-b)/2
(14)下列四个字符串进行比较,最小的是
A. “9977”
B. “B123”
C. “Basic”
D. “DATA”
(15)下列逻辑表达式中,其值为True的是
A. “b” & “ABC”
B. “THAT” & “THE”
C. 9 & “H”
D. “A” & “a”
(16)表达式a+b=c是
A. 赋值表达式
B. 字符表达式
C. 算术表达式
D. 关系表达式
(17)在下列表达式中,非法的是
D. a&b+c
(18)语句Print Format (“HELLO”, “&”) 的输出结果是    。
  A. HELLO
D. he
(19)MsgBox函数的返回值的类型是    。
A. 整数     B. 字符串      C. 逻辑值   D. 日期
(20)用语句Dim A(-3 to 5) As Long定义的数组元素个数是
D.10
答:
(1)选C。Trim函数可以出去字符串两端的空格,而Ltrim、Rtrim则分别出去字串左端或右端的空格。
(2)选B。Rnd函数返回一个0~1(不包括1)的单精度小数,乘以10后用Int函数取整,得到的数应在0~9之间。
(3)选D。VB中,所有三角函数的参数必须用弧度代入计算,反三角函数的返回值是弧度。
(4)选B。因为16/4 C 2^3 * 8/4 Mod 5\2=4-8*8/4 Mod 2=4-16 Mod 2=4-0=4。
(5)选B。表示变量x大于等于3而且小于9,应注意这里不能使用数学式子的习惯用法。
(6)选B。Left(a,4)的值是”1234”,Mid(a,4,2)的值是”34”,两字符串连接后再由Val函数转变为数值123445。
(7)选A。在VB中,西文字符、中文字符和数字都是一个字符长度,字符串长度就等于字符的个数。
(8)选C。赋值号左边只能是变量,不能是表达式,故A是错误的;B、D中的均有不合法的变量名。
(9)选A。选项B、D语法错误,选项C是一关系表达式。
(10)选D。数值型数据与字符串相加时,如果字符串是数字,VB把字符串转变为数值后,再相加;字符串不是数字时,系统提示出错。
(11)选A。由逻辑运算符组成的表达式是逻辑表达式。
(12)选B。
(13)选B。
(14)选A。字符串的比较是按字符的ASCII码值从左到右一一比较,先大为大。
(15)选A。
(16)选D。表达式a+b=c是关系表达式,如果a+b的值等于c,则表达式的值为True,否则为False。
(17)选C。VB中的不等号只能用&&。
(18)选B。在格式输出函数中,“&”是强制小写符号。
(19)选A。MsgBox函数的返回值的类型是一整型数,记录了用户在消息框中选择了哪一个按钮。
(20)选C。定义的数组元素个数是9,数组元素的下标分别是:-3,-2,-1,0,1,2,3,4,5。
三、判断题
(1) VB6.0中&H12是8进制的数值常数。
(2) 设A=&123&,B=123,则A+B的结果为246,A-B的结果为0。
(3) 已知A$=&&,则表达式Val(Left$(A$,4)+Mid$(A$,4,2))的值是:876554。
(4) Rnd函数产生的是(0,1)之间不包括0、1的随机小数。
(5) 表示x是5的倍数或是9的倍数的逻辑表达式为:x Mod 5=0 OR x Mod 9=0。
(6) Len(&等级考试&)和LenB(&等级考试&)的结果相同。
(7) VB6.0中字符串常量是用双引号或单引号括起来的字符串。
(8) Print InStr(&Visual Basic&, &I&)的结果为0。
(9) 固定数组中的数组元素个数一旦定义好后,在程序运行过程中不再会发生变化,并且数组中数组元素的值也不会变化。
(10)数组元素的下标可以是常数、变量或表达式。
(11)在For…Next循环中,其中Step步长可以是正数,也可以是负数。
(12)在Do…Loop[While|Until]循环中,While关键字或Until关键字必须选择其中之一。
(13)在For...Next循环中,Exit For子句是可选项,它可以放置在循环体语句中的任何位置。
(14)动态数组在定义时已被分配存储空间。
(15) 在VB6.0中,Option Base语句的参数只能是0或1。
答:
(1)错。&H12是16进制的数值常数, 8进制数常数的前缀是&O。
(2)对。数值型数据与字符串相加时,如果字符串是数字,VB把字符串转变为数值后,再相加。
(3)对。Left$(A$,4)的返回值是“8765”,Mid$(A$,4,2)的返回值是“54”,两个字符串相加后,再由Val函数转换成876554。
(4)错。Rnd函数产生的是(0,1)之间的随机小数,包括0,但不包括1。
(5)对。一个数是另一个数的倍数时,相除余数为零。
(6)错。Len函数的返回值是字符个数,LenB函数的返回值是字符串所占用的字节数。
(7)错。VB6.0中字符串常量只能是用双引号括起来的字符串。
(8)对。InStr函数的返回值是乙字串在甲字串中的位置,如果甲字串中不包含乙字串,则函数返回值是0。
(9)错。固定数组中的数组元素个数一旦定义好后,在程序运行过程中不再会发生变化,但数组元素的值是可以变化的。
(10)对。
(11)对。
(12)错。While关键字和Until关键字可以同时省略,表示无条件循环。此时,循环体中应有Exit Do子句。
(13)对。
(14)错。动态数组在定义时没有被分配存储空间。
(15)对。
四、 程序阅读题
(1)执行下面程序后,显示的结果是        。
  Private Sub Form_Click()
Dim x As Integer
x = Int(Rnd) + 4
Select Case x
Case 5
 Print &优秀&
Case 4
 Print &良好&
Case 3
 Print &及格&
Case Else
 Print &不及格&
End Select
End Sub
 
答:运行结果是:“良好”。因为x=0+4=4,在Select Case语句中执行Print &良好&语句。
(2)执行下面程序段后,变量x的值为       。
Dim x As Integer
x = 5
For i = 1 To 20 Step 3
      x = x + i \ 5
Next i
答:变量x的值为16。因为循环体共执行Int((20-1)/3+1)=7次,前两次循环x的值不变;第3次循环后x的值为6;第4、5次循环,x的值每次加2;第6、7次循环x的值每次加3;故循环结束后x的值为16。
 (3)执行下面程序后,输出的结果是       。
     Private Sub Form_Click()
Dim x As Integer
For i = 1 To 3
     For j = 1 To i
     For k = j To 3
      x = x + 1
      Next k
     Next j
Next i
Print x
End Sub
答:输出结果是x=14。这是一个3重循环,最内层的循环体共执行14次,每次加1。
 (4)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim x As Integer
x = 0
Do While x & 50
      x = (x + 2) * (x + 3)
      n = n + 1
Loop
Print &x=&; &n=&; n
End Sub
答:输出结果是x=72 n=2。本程序执行循环2次,第1次循环,x的值为6,n值为1;第2次循环,x的值为72,n值为2。x大于50时,循环终止。
 (5)执行下面程序后,输出的结果是       。
     Private Sub Form_Click()
Dim x As Integer, a As Integer
x = 0
For j = 1 To 5
   Next j
    x = j
    Print x, a
End Sub
答:输出结果是6
15。变量x中保存的是循环变量j的终止值6。循环体执行了5次,故a的值是15。
 (6)以下程序的循环次数是        。
For j = 8 To 35 Step 3
     P
Next j
答: 循环体共执行Int((35-8)/3+1)=10次。
 (7)执行下面程序输入4后,程序输出的结果是       。
Private Sub Form_Click()
x = InputBox(x)
If x ^ 2 & 15 Then y = 1 / x
If x ^ 2 & 15 Then y = x ^ 2 + 1
Print y
End Sub
答: 输出结果是17。因为x^2=16&15,故程序执行y = x ^ 2 + 1=17。
 (8)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim sum As Integer
sum% = 19
sum = 2.23
Print sum%; sum
End Sub
答:输出结果是2
2。程序中变量sum被定义成整型变量,所以赋与实数值时,系统会把小数部分除去。%是类型符号,也是表示整型。
 (9)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
a = 100
     Do
a = a + 1
Loop Until a & 100
Print a
End Sub
答:输出结果是101。程序中使用的是后测型循环结构。循环体执行1此后,变量a的值变为101,满足循环结束条件,故循环终止。
(10) 执行下面程序后,输出的结果是       。
Private Sub Form_Click()
a = &ABCD&
b = &efgh&
c = LCase(a)
d = UCase(b)
Print c + d
End Sub
答:输出结果是&abcdEFGH&。LCase()函数的作用是把字符串中的大写字母转换成小写;UCase()函数的作用是把字符串中的大写字母转换成大写。
(11) 执行下面程序后,输出的结果是       。
Private Sub Form_Click()
x = 2: y = 4: z = 6
x = y: y = z: z = x
P z
End Sub
答:输出结果是4
4。应注意的是本程序无法实现3个变量值的互换。
(12)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim count As Integer
count = 0
While count & 20
count = count + 1
Wend
Print count
End Sub
答:输出结果是20。程序中的循环体执行20次,当count的值为20时,不再满足循条件,程序执行循环结构后面的打印语句。
(13)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
a = &*&: b = &$&
For k = 1 To 3
x = Str(Len(a) + k) & b
P
Next k
End Sub
答:输出结果是&2$& &3$& &4$&。程序循环执行时,Len(a)的返回值始终是1,Str(Len(a)+k)的值分别是2、3、4。字符串连接符&把两个字符连接在一起。
(14)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
k = 0: a = 0
Do While k & 70
k = k + 2
k = k * k + k
a = a + k
Loop
Print a
End Sub
答:输出结果是78。程序中的循环体可以被执行两次。第1次执行后变量k、a的值均为6,第2次循环后,k的值是72,a的值是78。
(15)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim M(10) As Long, N(10) As Long
i = 3
For t = 1 To 5
M(t) = t
N(i) = 2 * i + t
Next t
Print N(i); M(i)
End Sub
答:输出结果是11
3。本程序中的循环体执行5次,但由于变量i的值保持不变,故只对M(t)和N(3)进行赋值。循环结束后,N(3)的值是11,M(3)的值是3。
(16)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim a()
a = Array(1, 2, 3, 4)
j = 1
For i = 3 To 0 Step -1
s = s + a(i) * j
j = j * 10
Next i
Print s
End Sub
答:输出结果是1234。程序中的循环体执行4次,变量s的值为4+30+200+。
(17)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim M(10)
For k = 1 To 10
M(k) = 11 - k
Next k
x = 6
Print M(2 + M(x))
End Sub
答:输出结果是4。循环执行完成后数组M的值为(10,9,,8,7,6,5,4,3,2,1)。M(6)的值是5,故M(2+5)=M(7)的值是4。
(18)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim a(10) As Integer, p(3) As Integer
k = 5
For i = 1 To 10
a(i) = i
Next i
For i = 1 To 3
p(i) = a(i * i)
Next i
For i = 1 To 3
k = k + p(i) * 2
Next i
Print k
End Sub
答:输出结果是33。前两个循环执行完成后数组a的值为(1,2,3,4,5,6,7,8,9,10),数组p的值为(1,3,9)。第3个循环执行后,k=5+1×2+4×2+9×2=33。
(19)执行下面程序后,输出的结果是       。
Private Sub Form_Click()
Dim a(10, 10) As Integer
For i = 2 To 4
For j = 4 To 5
a(i, j) = i * j
Next j
Next i
Print a(2, 5) + a(3, 4) + a(4, 5)
End Sub
答:输出结果是42。程序中数组a定义了11×11=121个元素,但循环语句只对其中的部分元素赋了值。其中a(2,5)的值是10,a(3,4)的值是12,a(4,5)的值是20,三者之和是42。
(20)以下程序运行的结果是_______。
Option Base 1
Private Sub Command1_Click()
Dim a,b(3,3)
a=array(1,2,3,4,5,6,7,8,9)
For i=1 To 3
For j=1 To 3
b(i,j)=a(i*j)
If (j&=i) Then Print Tab(j*3);Format(b(i,j),&# # #&);
Next i
End Sub
9
答:输出结果是选项D。
五、 填空题
(1) 在VB中声明符号常量的关键字是_______。
(2) 设a=1,b=2,c=3,则VB6.0表达式:a&b or b&c and c&a 的值是_______。
(3) &a&,&T&,&Z&,&9&,这四个字符中,_______的ASCII码值最大。
(4) 执行语句 B = MsgBox(&XXX&,,&YYY&)后,在消息框中的标题信息是_______。
(5)函数Len(&Hello!&+Space(2)+Mid(&Shanghai&,5,3))的值是_______。
(6)表达式 Ucase(Mid(&abcdefgh&,3,4)) 的值是_______。
(7)表达式 Int(+0.5)/100 的结果是_______。
(8)使用数组声明语句Dim a(3, -2 TO 2, 5),则数组a包含元素的个数有_______。
(9) For-Next循环的&step&子句缺省时,循环变量每次改变的值是_______。
(10)填空,使得程序运行后,能在窗体上打印如图所示的图案。
Private Sub Form_Click()
Print
For i = 1 To 4
Print Tab(8 - i);
For j = 1 To 8
Print &*&;
Next i
End Sub
(11)下面程序的功能是利用随机函数产生10个(1~100)之间的随机整数,打印其中能被5整除的数并求其和,请用正确的内容填空。
Private Sub Form_Click()
Dim sum As Integer, x As Integer
For i = 1 To 10
x = Int(Rnd * 100 + 1)
sum = sum + x
Print &x=&; x
End If
Next i
If sum && 0 Then
Print &sum=&; sum
End If
End Sub
(12)用正确的内容填空,使得以下程序能够找出50以内所有能构成直角三角形的整数。
Private Sub Form_Click()
Dim a As Integer, b As Integer
Dim c As Single
For a = 1 To 50
For b = a To 50
c = Sqr(a ^ 2 + b ^ 2)
Then Print a, b, c
Next b
Next a
End Sub
(13)用正确的内容填空,使得以下程序能够计算1+1/3+1/5+……+1/(2N+1),直到1/(2N+1)小于10-5。
Private Sub Form_Click()
sum = 1: n = 1
Do
n = n + 2
temp = 1 / n
sum = sum + temp
If temp & 0.00001 Then
Loop
Print &N=&; n
Print &sum=&; sum
End Sub
(14)某大奖赛,有7位评委给参赛选手打分。以下程序是输入7位评委对某选手的打分后,去掉最高分和最低分后计算其平均值作为该选手的成绩。请填空使得程序能正确运行。
Private Sub Form_Click()
sum = 0
For i = 1 To 7
cj = Val(InputBox(&请输入第& & i & &位评委的打分&, &录入&))
If i = 1 Then
If Min & cj Then
Min = cj
ElseIf Max & cj Then
sum = sum + cj
Print &该选手的成绩为:&, aver
End Sub
(15)以下程序用随机函数模拟掷骰子,统计掷50次骰子出现各点的次数,请用正确的内容填空。
Private Sub Form_Click()
Dim a(1 To 6) As Integer
Randomize
For i = 1 To 50
a(n) = a(n) + 1
Next i
For i = 1 To 6
P &点出现&; a(i); &次&
Next i
End Sub
答:
(1)Const
(7)1234.56
(10)Next j
(11)x Mod 5
(12)c = Int(c) And c &= 50
(13)Exit Do
(14)(sum - Max - Min) / 5
(15)Int(Rnd * 6) + 1
六、 编程题
编写程序将1~100自然数中能被3和5同时整除的数打印出来,并统计其个数。
解答:一个整数能被另一整数整除的条件是,它们相除时余数为零。
Private Sub Form_Click()
Dim i As Integer, n As Integer
For i = 1 To 100
If i Mod 3 = 0 And i Mod 5 = 0 Then
‘能够被3和5同时整除的条件
Print i
n = n + 1
End If
Next i
Print &1~100自然数中能被3和5同时整除的个数为:&; n
End Sub
我国现有人口13亿,设年增长率为0.75%,编写程序,计算多少年后将超过16亿。
解答:本题有两种解法,可以根据公式:
16=13((1+0.0075)n
直接利用标准函数对数求得:
n = Log(16 / 13) / Log(1+0.0075)
也可以利用循环求得:
Private Sub Form_Click()
x = 13
n = 0
Do While x & 16
x = x * 1.0075
n = n + 1
Loop
P &年后我国人口将超过16亿,达到&; &亿&
End Sub
编写程序输出100~200之间不能被3整除的自然数。
解答:
Private Sub Form_Click()
Dim i As Integer
For i = 100 To 200
If i Mod 3 && 0 Then
'不能够被3整除的条件
Print i
End If
Next i
End Sub
设计程序,求s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值。
Private Sub Form_Click()
Dim n As Integer, s As Integer
s = 0
n = Val(InputBox(&请输入n:&))
‘n由Inputbox函数输入再转换为数值型数据
For i = 1 To n
For j = 1 To i
s = s + j
Next j
Next i
Print s
End Sub
编写程序计算S的近似值,直到最后一项的绝对值小于10-5为止。并用Print方法输出计算结果。其中:

解答:
Private Sub Form_Click()
Dim s As Single, k As Integer
s = 0
k = 1
Do While Abs(1 / k) & 0.00001
s = s + (-1) ^ (k + 1) / k
k = k + 1
Loop
Print s
End Sub
假设某项税收的规定如下:
收入在500元以内,免征;
收入在500~1000元内,超过500元的部分纳税3%;
收入超过1000元时,超过的部分纳税4%;
收入超过2000元时,超过的部分纳税5%。
试编程实现上述操作。
解答:
Private Sub Form_Click()
Dim income As Single, tax As Single
income = Val(InputBox(&请输入收入:&))
'income由Inputbox函数输入
Select Case income
Case Is & 2000
tax = 500 * 0.03 + 1000 * 0.04 + (income - 2000) * 0.05
Case Is & 1000
tax = 500 * 0.03 + (income - 1000) * 0.04
Case Is & 500
tax = (income - 500) * 0.03
Case Else
tax = 0
End Select
Print tax
End Sub
编写程序,用InputBox函数输入3个正整数,打印其中最大的数。
解答:
Private Sub Form_Click()
Dim max As Integer, temp As Integer
max = 0
For i = 1 To 3
Print &输入第&; &个数&;
temp = Val(InputBox(&输入整数&))
Print temp
If temp & max Then max = temp
Next i
Print &你输入的最大的数是&; max
End Sub
编写程序,任意输入三个整数A,B,C,按由大到小顺序把它们打印出来。
解答:
Private Sub Form_Click()
Dim a%, b%, c%, t%
a = Val(InputBox(&输入整数a&, &数据输入&))
b = Val(InputBox(&输入整数b&, &数据输入&))
c = Val(InputBox(&输入整数c&, &数据输入&))
Print &排序前
&; c
If a & b Then
t = a: a = b: b = t
End If
If a & c Then
t = a: a = c: c = t
End If
If b & c Then
t = b: b = c: c = t
End If
Print &排序后
&; c
End Sub
编写程序,计算直到第n项的绝对值小于10-8
解答:
Private Sub Form_Click()
Dim x As Single, t As Single, sinx As Single
i = 1
sinx = 0
x = Val(InputBox(&请输入x的值(弧度)&, &数据输入&))
t = x
Do While (Abs(t) & 0.)
sinx = sinx + t
t = -t * x * x / ((i + 1) * (i + 2))
i = i + 2
Loop
Print &编程求得的sin(&; &)值为&; sinx
Print &调用内部函数求得的sin(&; &)值为&; Sin(x)
End Sub
分别编写两个程序,在窗体上分别打印出如下所示的图形。
解答:打印左边图案:
Private Sub Form_Click()
Print
'打印一空行
For i = 5 To 1 Step -1
'步长为-1
Print Tab(10);
'从第10列开始打印
Print Spc(10 - i);
'打印由Spc函数值规定的空格
For j = 1 To 2 * i - 1
Print &*&;
'打印三角形的&*&号
Next j
Next i
End Sub
打印右边图案:
Private Sub Form_Click()
Print
For i = 1 To 4
Print Tab(7);
Print Spc(4 - i);
For j = 1 To 2 * i - 1
Print &*&;
Next j
Next i
For i = 5 To 1 Step -1
Print Tab(0);
Print Spc(10 - i);
For j = 1 To 2 * i - 1
Print &*&;
Next j
Next i
End Sub
编写程序,输出1000之内的所有完数。“完数”是指一个数恰好等于它的因子之和,如6的因子为1、2、3,而6=1+2+3,因而6是完数。
解答:
Private Sub Form_Click()
For i = 1 To 1000
For k = 1 To i - 1
If i Mod k = 0 Then
Sum = Sum + k
If Sum = i Then
Print &i=&; &是完全数&
Next i
End Sub
一只小球从10米高度上自由落下,每次落地后反弹回原高度的40%,再落下。编程计算小球在第8次落地时,共计经过了多少米?
解答:
Private Sub Form_Click()
For i = 1 To 7
h = 0.4 * h
Sum = Sum + 2 * h
Print &小球第8次落地时,经过了&; S &米&
End Sub
编写程序,求出所有小于或等于100的自然数对。自然数对是指两个自然数和与差都是平方数,如8和17的和为8+17=25与其差17-8=9都是平方数,则8和17就称为自然数对。
解答:
Private Sub Form_Click()
Dim i As Long, j As Long
Dim a As Single, b As Single
For i = 1 To 100
For j = 1 To i
If Sqr(a) = Int(Sqr(a)) And Sqr(b) = Int(Sqr(b)) Then
Print i, j
Next i
End Sub
找出100~999之间的所有“水仙花数”。 所谓“水仙花数”是一个三位数,其各位数的立方各等于该数本身,例:153=13+53+33,故153是“水仙花数”。
解答:
Private Sub Form_Click()
Dim p As Integer
For n = 100 To 999
a = Int(n / 100)
b = Int((n - a * 100) / 10)
c = n - (a * 100 + b * 10)
p = a ^ 3 + b ^ 3 + c ^ 3
If p = n Then
P &是水仙花数&
Next n
End Sub
编写程序,在窗体上打印下图所示的“数字金字塔”:

Private Sub Form_Click()
Print &&
For i = 1 To 9
Print Space(16 - i);
For j = 1 To i
Print Format(j, &0&);
Next j
If i & 1 Then
For j = i - 1 To 1 Step -1
Print Format(j, &0&);
Next j
End If
Print
Next i
End Sub
用一元纸币兑换一分、二分和五分的硬币,要求兑换硬币的总数为50枚。编程列出所有可能的兑换方案。
解答:采用穷举法。一元等于100分,考虑5分最多20枚,2分最多50枚,余下是1分硬币。
Private Sub Form_Click()
For i = 0 To 20
‘i表示5分硬币数量
For j = 0 To 50
‘j表示2分硬币数量
k = 100 - 5 * i - 2 * j
‘k表示1分硬币数量
If k + i + j = 50 Then
Print i, j, k
End If
Next j
Next i
End Sub
编写程序,建立并输出一个10×10的矩阵,该矩阵两条对角线上的元素为1,其余元素均为0。
解答:
Option Base 1
Private Sub Form_Click()
Dim a(10, 10) As Integer
For i = 1 To 10
For j = 1 To 10
a(i, j) = 0
If i = j Then a(i, j) = 1
If i + j = 11 Then a(i, j) = 1
For i = 1 To 10
For j = 1 To 10
Print a(i, j); & &;
If j = 10 Then Print
Next i
End Sub
课件名称:课件分类:计算机课件类型:教学课件文件大小:9.18MB下载次数:0评论次数:0用户评分:0
1. 2. 3. 4. 5. 6. 7. 8.

我要回帖

更多关于 vb程序设计30道编程题 的文章

 

随机推荐