好文档 - 专业文书写作范文服务资料分享网站

VB期末考试题库及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

'**********FOUND**********

Private Sub prime_f(ByVal n As Integer, a() As Integer) Dim i As Integer, k As Integer i = 2 Do

If n Mod i = 0 Then k = k + 1

ReDim Preserve a(k) a(k) = i n = n \\ i Else

i = i + 1 End If

'**********FOUND********** Loop Until n <= 1 End Sub

第4题

'[题目]本程序的功能是:查找800-1200范围内的所'有具有两个相同数字的素数。

'例如811、877等都是符合要求的数据。 Option Explicit

Private Sub Command1_Click() Dim i As Integer For i = 800 To 1200

If validate(i) And prime(i) Then List1.AddItem i End If Next i End Sub

'**********FOUND**********

Private Function validate(n As Integer) As Boolean Dim num() As Integer, k As Integer Dim i As Integer, j As Integer Do

k = k + 1

'**********FOUND********** ReDim preserve num(k) num(k) = n Mod 10 n = n \\ 10 Loop Until n <= 0 k = 0

For i = 1 To UBound(num) - 1 For j = i + 1 To UBound(num)

If num(i) = num(j) Then k = k + 1 Next j Next

If k = 1 Then validate = True End Function

Private Function prime(n As Integer) As Boolean Dim i As Integer For i = 2 To Sqr(n) '**********FOUND**********

If n Mod i = 0 Then Exit Function Next i prime = True End Function

第5题

'题目:本程序功能是查找给定范围内满足以下条件'的整数数对。

'条件1是每个整数的各位数字各不相同,且不得为'数字0,

'条件2是第二个数等于第一个数的两倍。 '例如123和246就是符合条件的数对。 Option Explicit

Private Sub Command1_Click() Dim i As Integer Dim n As Integer For i = 123 To 5678 n = i * 2

If fun(i) And fun(n) Then

List1.AddItem \ End If Next i End Sub

'**********FOUND**********

Private Function fun(Byval n As Integer) As Boolean Dim a() As Integer, i As Integer, j As Integer Do

i = i + 1

ReDim Preserve a(i) a(i) = n Mod 10

If a(i) = 0 Then Exit Function n = n \\ 10 '**********FOUND********** Loop Until n= 0

For i = 1 To UBound(a) - 1 For j = i + 1 To UBound(a) '**********FOUND**********

If a(i) = a(j) Then Exit For Next j Next i fun = True

End Function

第6题

'[题目]本程序的功能是:随机生成一个有n个元素的数组(n由inputBox函数), '找出其中的最大元素并将它删除,再输出删除后的数组。 Option Explicit Option Base 1

Dim a() As Integer, n As Integer Private Sub Command1_Click() Dim i As Integer

n = InputBox(\请输入数组个数\ ReDim a(n) For i = 1 To n

a(i) = Int(Rnd * 100) + 1 Text1 = Text1 & Str(a(i)) Next i

Call Lookup(a) '**********FOUND********** For i = 1 To n-1

Text2 = Text2 & Str(a(i)) Next i End Sub

Private Sub Lookup(a() As Integer)

Dim Maxv As Integer, maxp As Integer, i As Integer Maxv = a(1): maxp = 1 For i = 2 To n

If a(i) > Maxv Then Maxv = a(i): maxp = i End If Next i

Call move_f(a, maxp) End Sub

Private Sub move_f(a() As Integer, k As Integer) Dim i As Integer

For i = k + 1 To UBound(a) '**********FOUND********** a(i-1) = a(i) Next i

'**********FOUND********** ReDim preserve(UBound(a) - 1) End Sub

第7题

'【题目】本程序的功能是:找出介于100、999之间的''由三个不同数字组成的完全平方数。

'所谓完全平方数是指平方根为整数的数。例如,529的''各位数字不同,且平方根是23, '所以529是符合要求的数。

Option Explicit Option Base 1

Private Sub Command1_Click() Dim i As Integer, p As Single For i = 100 To 999

If pf(i) And verify(i) Then p = Sqr(i)

List1.AddItem i & \ End If Next i End Sub

Private Function pf(n As Integer) As Boolean If Sqr(n) = Int(Sqr(n)) Then pf = True End Function

'**********FOUND**********

Private Function verify(Byval n As Integer) As Boolean

Dim a() As Integer, k As Integer, i As Integer, j As Integer Do

k = k + 1

ReDim Preserve a(k) a(k) = n Mod 10 n = n \\ 10

'**********FOUND********** Loop Until n <= 0

For i = 1 To UBound(a) - 1 For j = i + 1 To UBound(a) '**********FOUND**********

If a(i) = a(j) Then Exit Function Next j Next i verify = True End Function

五、程序设计_共12题 (选:共2题,1题为8分,另一题10分=18分) 第1题

'--------------------------------- '【程序设计】

'--------------------------------- '【题目要求】

' 1) 编写程序,生成一个4行5列的二维数组,其每''个数组元素是随机产生的两位数,

' 求该数组的最大元素及其所在的行号、列号。 ' (若有多个相同的最大元素,则要一一标出其所在''行号、列号)

' [算法提示]首先找出最大元素,再将数组中的元素''与最大元素一一比较,

' 若有相等元素则输出其所在位置。 ' 窗体设计界面参见已给出的参考界面。

'【编程要求】

' 1) 运行程序,按“运行”按钮(Command1),生成一个4行5列的两位随机整数数组, ' 按参考界面格式显示在多行文本框Text1中,再调用求二维数组最大元素的通用过程, ' 最后将结果输出到一个多行文本框Text2中;(注意代码中不得使用randomize语句) ' 按“清除”按钮(Command2),则将文本框与图片框清空;

' 2) 程序中应定义一个名为maxele的通用函数过程,用于求二维数组的最大元素。 '【代码书写要求】

'1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Command1等 '2)请在“****Program*****”与“****End*****”之间添加程序代码 '3)请在指定区间

' (1)先写出自定义函数过程maxele的程序代码以及Command2的代码 ' (2)最后完善Command1_Click()事件过程代码。 ' !!!! 注意:

' Command1_Click()过程的结束语句 End Sub及其它已经给出的代码, ' 均不得删除,否则无分。

第2题

'--------------------------------- '【程序设计】

'--------------------------------- '【题目要求】

' 编一程序,将一维数组中元素向右循环移位,移位次数键盘输入。 ' 例如,数组各元素的值依次为1,2,3,4,5,6,7,8,9,10; ' 位移3次后,各元素的值依次为8,9,10,1,2,3,4,5,6,7。 ' 窗体设计界面参见已给出的参考界面。

'【编程要求】

' 1) 数组可定义为固定大小的10个元素的数组。

' 按“输入”按钮(Command1),则用inputbox函数逐一输入 ' “1---10”10个数据,并显示在文本框Text1中。 ' 在文本框Text2中输入循环移位位数(请输入3)

' 按“移位”按钮,调用通用Sub过程rmove(),实现移位操作,同时将 ' 移位后10个数据显示在文本框Text3中。

' 按“清除”按钮Command2,则将3个文本框清空,将焦点置于Text2上; ' 按“退出”按钮Command3,结束程序运行

' 2)程序中应定义一个通用Sub过程rmove(),以实现移位操作。 '【代码书写要求】

'1)文本框、命令按钮的名称必须使用系统默认的名称,如Text1,Command1等

VB期末考试题库及答案

'**********FOUND**********PrivateSubprime_f(ByValnAsInteger,a()AsInteger)DimiAsInteger,kAsIntegeri=2DoIfnModi=0Thenk=k+1
推荐度:
点击下载文档文档为doc格式
01viu0pz4p1cf865breu5a66i6tmb7010sr
领取福利

微信扫码领取福利

微信扫码分享