计算机等级考试二级VB常用算法

计算机等级考试二级VB常用算法
计算机等级考试二级VB常用算法

目录

计算机等级考试二级VB常用算法(1):累加和连乘 (1)

计算机等级考试二级VB常用算法(2):最值问题 (4)

计算机等级考试二级VB常用算法(3):素数 (5)

计算机等级考试二级VB常用算法(4):进制转化 (8)

计算机等级考试二级VB常用算法(5):约数因子 (10)

计算机等级考试二级VB常用算法(6):排序 (13)

计算机等级考试二级VB常用算法(7):排序 (17)

计算机等级考试二级VB常用算法(8):查找 (20)

计算机等级考试二级VB常用算法(9):其它数学问题 (23)

计算机等级考试二级VB常用算法(10):字符处理 (26)

计算机等级考试二级VB常用算法(1):累加和连乘

1、算法说明

累加形式:V=V+e

连乘形式:V=V*e

其中:V是变量,e是递增表达式。累加和连乘一般通过循环结构来实现。

注意:需在执行循环体前对变量V赋初值。一般的,累加时置初值0;连乘时置初值为1.

举例

求N!的结果。

Private Sub Command1_Click()

Dim n%,i%,s&

n = Val(InputBox("输入n"))

s = 1

For i = 1 To n

s = s * i

Next i

Print s

End Sub

错误的写法:

Private Sub Command1_Click()

Dim n%,i%,s&

n = Val(InputBox("输入n"))

For i = 1 To n

s = 1 …赋初值语句位置不对!

s = s * i

Next i

Print s …输出s的值为n,而不是n!

End Sub

应用举例

根据下列公式,求自然对数e的的近似值。

要求:误差小于0.00001

Private Sub Command1_Click()

Dim i%,n&,t!,e!

e = 2

i = 1

t = 1

Do While t > 0.00001

i = i + 1

t = t / i

e = e + t

Loop

Print "计算了";i;"项目和是:";e

Print Exp(1)…与上句输出值进行对比以证明算法的正确性

End Sub

解题技巧

1)由于这类题目往往是根据精度要求来求值,因此我们不能预知具体循环次数,所以这类题目一般用Do循环,很少用For循环。设定循环变量和通项变量,注意各变量的初值;

2)分解通项表达式中各因子,并分别将各因子用循环变量表示;

3)如果步骤2中有的因子比较复杂,难以直接用变量表示,此时可以考虑使用Function过程;

4)根据步骤1、2、3,写出通项表达式;

5)根据精度要求(往往是通项小于10负多少次方这样一个关系表达式),写出一条满足精度要求后跳出循环的语句。通常是用:if 通项表达式>10^(-N)then exit do ,注意这句话一般需放在累加或者连乘式之前。

实例说明

以2002年春上机试卷06编程题为例

根据X值计算:

n=1,2,……

要求:n项绝对值小于等于10-6为止。

1、由于循环次数不确定,因此确定用Do循环结构并定义循环变量用n表示(初值1);用户输入的值用x表示;通项用dblCos表示;累加值用sum表示,初值为0;

2、分解通项式的组成

可以分解为三部分:

可以表示为:(-1)^(n+1)

可以表示为:x^(2*(n-1))

比较复杂,难以直接表示

3、由于步骤2中复杂,此时考虑使用过程。

于是定义过程,输入值是n,返回值是

于是有:

private Function comp(n as long)as long

dim I as long

dim result as long

result=1 …此处注意,由于是连乘,初值为1

for I=1 to 2*(n-1)

result=result*I

next I

comp=result

End Function

注意:由于是参数按地址传递,因此对于本题,实参的值不能在过程中被改变!(也是改错题常考的地方!!)

4、根据步骤1、2、3,写出通项dblCos的表达式:

dblCos=(-1)^(n+1)* x^(2*(n-1))/comp(n)

5、根据精度要求知:

If abs(dblCos)<=10^(-6)then exit do

最后程序为:

Private Sub Command1_Click()

Dim n As Long,dblCos As Double,x As Double

x = Val(Text1.Text)

n = 1

Do

dblCos = (-1)^ (n + 1)* x ^ (2 * (n - 1))/ comp(n)

If Abs(dblCos)<= 10 ^ (-6)Then Exit Do

Sum = Sum + dblCos

n = n + 1

Loop

Print Sum

End Sub

Private Function comp(n As Long)As Long

Dim I As Long

Dim result As Long

result = 1 '此处注意,由于是连乘,初值为1

For I = 1 To 2 * (n - 1)

result = result * I

Next I

comp = result

End Function

注意:如果调试运行时死循环,可以按Ctrl+Break中断死循环,不需要重新启动机器。(或者Ctrl+Scroll Lock)

2、实战练习

1)补充代码(2003秋二(7))

本程序的功能是求下面数列前n项之和。

S(x,n)=x/2+2!*x^3/2*4+3!*x^5/2*4*6+……+n!*x^2n-1/2*4*6……2n

Option Explicit

Private Sub Command1_Click()

Dim x As Single,s As Single

Dim n As Integer,i As Integer

x=InputBox("输入X:","求数列和",1)

n=InputBox("输入N:","求数列和",1)

For i=1 To n

s=s+fun(x,i)

Next i

Label1.Caption= _(1)_

Text1=s

End Sub

Private Function fun(x As Single,n As Integer)As Single

__(2)__

p=1

For i=1 To n

__(3)___

Next i

fun=x^(2*n-1)*p

End Function

2)编程题(2003春上机试卷03)

按下列公式编写求积分余弦函数值的程序。当通项绝对值小于10-5时停止计算。

计算机等级考试二级VB常用算法(2):最值问题

1、算法说明

在若干数中求最大值,一般先取第一个数为最大值的初值(即假设第一个数为最大值),然后,在循环体内将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值,直到循环结束。

求最小值的方法类同。

求若干数平均值,实质上就是先求和,再除以这些数的个数。

应用举例

随机产生n个1-100(包括1和100)的数,求它们的最大值、最小值和平均值。Private Sub Command1_Click()

Dim n As Integer, i As Integer, min As Integer, max As Integer, aver As Single, s As Integer n = Val(InputBox("输入个数:"))

s = Int(Rnd * 100) + 1

max = s

min = s

aver = s

Print "第1个数是:" & s

For i = 2 To n

s = Int(Rnd * 100) + 1

Print "第" & i & "个数是:" & s

If s > max Then max = s

If s < min Then min = s

aver = aver + s

Next i

aver = aver / n

Print "max="; max; "min="; min; "aver="; aver

End Sub

解题技巧

最大值、最小值、平均值类型题目往往和数组放在一起考!有的不仅求这些值,还要对具有最大值或者最小值的行或列或者某个元素进行处理,这时就要在记录最大、最小值时,同时记录该值所在的行号和列号。

2、实战练习

1) 补充代码(2000春二(9))

本程序的功能是在二维数组中查找鞍点元素,即该元素在所在行中为最大,且在所在列中为最小。在一个数组中可能存在,也可能不存在这样的元素。数组各元素的值从文件data.txt中读取。

Private Sub Form_Click()

Dim a(3,3) As Integer,i As Integer,j As Integer

Dim maxvr As Integer,col As Integer, As Integer

Open data.txt For Input As #1

For i=1 To 3

For j=1 To 3

Input #1,a(i,j)

Print a(i,j);

Next j

Print

Next i

For i=1 To 3

maxvr= (1)

col=1

For j=2 To 3

If maxvr

maxvr= (2)

col=j

End If

Next j

For j=1 To 3

If maxvr>a(j,col) Then (3)

Next j

计算机等级考试二级VB常用算法(3):素数

1、算法说明

素数(质数):就是一个大于等于2的整数,并且只能被1和本身整除,而不能被其他整数整除的数。

判别某数m是否是素数的经典算法是:

对于m,从I=2,3,4,……,m-1依次判别能否被I整除,只要有一个能整除,m就不是素数,否则m是素数。

Private Function sushu(ByVal n As Long) As Boolean

Dim i As Long

For i = 2 To n - 1

If (n Mod i) = 0 Then Exit For

Next I

If I=n then sushu=True

End Function

很显然,实际上,我们可以改进上面

For i = 2 To n – 1

为:

For i = 2 To int(sqr(m))

这样可以很好的提高效率。

以上判断是否为素数的代码务必识记!

应用举例

求100-200之内素数。

Private Sub Command1_Click()

Dim j As Integer

For j = 100 To 200

If sushu(j) = True Then

Print j

End If

Next j

End Sub

解题技巧

识记判断素数的算法过程,根据题意,灵活调用!

实例说明

编程题(2002年春上机试卷04)

找出10000以内所有可以表示为两个平方数和的素数。

思路:

首先找10000以内的所有素数,对于每个素数判断其是否可以表示为两个平方数之和(即对于任意小于该素数shu的数I,如果I和shu-I均为平方数,则说明其可以表示为两个平方数之和。)

判断数I是否为平方数的方法:sqr(i)=int(sqr(i))

Private Sub Command1_Click()

Dim j As Integer

Dim m As Long, n As Long

For j = 2 To 10000

If sushu(j) = True Then

If pf(j, m, n) = True Then

List1.AddItem j & "=" & m & "+" & n

End If

End If

Next j

End Sub

Private Function pf(ByVal shu As Long, m As Long, n As Long) As Boolean

Dim i As Long

For i = 1 To shu - 1

If (Sqr(i) = Int(Sqr(i))) And (Sqr(shu - i) = Int(Sqr(shu - i))) Then

pf = True

m = i

n = shu - i

Exit Function

End If

Next

End Function

2、实战练习

1) 补充代码(2002春二(7))

下列程序的功能是:查找四位正整数中的超级素数。超级素数的定义为:当一个素数从低位到高位依次去掉一位数后剩下的数仍然是素数,则此数为超级素数。如数2333、233、23、2均为素数,所以2333为超级素数。

Option Explicit

Private Sub Command1_Click()

Dim I As Integer, flg As Boolean

For I = 1001 To 9999 Step 2

Call sup_prime(I, flg)

If flg Then

Debug.Print I

End If

Next I

End Sub

Private Sub sup_prime( (1), F As Boolean)

Dim p As Integer

F = True

Do While N > 0

If prime(N) Then

(2)

Else

(3)

Exit Sub

End If

Loop

End Sub

Public Function prime(p As Integer) As Boolean

Dim k As Integer

If p = 1 Then

Exit Function

Else

For k = 2 To Sqr(p)

If p Mod k = 0 Then Exit Function

Next k

(4)

End If

End Function

2) 编程题(2004春上机试卷03)

随机生成15个两位正整数,从中找出所有的素数,并记下它是第几个数,再找出其中最大的素数,并给出它的位置。

计算机等级考试二级VB常用算法(4):进制转化

1、算法说明

1) 十进制正整数m转换为R(2-16)进制的字符串。

思路:将m不断除r取余数,直到商为0,将余数反序即得到结果。

算法实现:

Private Function Tran(ByVal m As Integer, ByVal r As Integer) As String

Dim StrDtoR As String, n As Integer

Do While m <> o

n = m Mod r

m = m \ r

If n > 9 Then

StrDtoR = Chr(65 + n - 10) & StrDtoR

Else

StrDtoR = n & StrDtoR

End If

Loop

Tran = StrDtoR

End Function

2) R(2-16)进制字符串转换为十进制正整数。

思路:R进制数每位数字乘以权值之和即为十进制数。

算法实现:

Private Function Tran(ByVal s As String, ByVal r As Integer) As integer

Dim n As Integer, dec As Integer

s = UCase(Trim(s))

For i% = 1 To Len(s)

If Mid(s, i, 1) >= "A" Then

n = Asc(Mid(s, i, 1)) - Asc("A") + 10

Else

n = Val(Mid(s, i, 1))

End If

dec = dec + n * r ^ (Len(s) - i)

Next i

Tran = dec

End Function

解题技巧

进制转化的原理要清楚,同时编写代码时候要留意16进制中的A-F字符的处理。

2、实战练习

1) 补充代码(2002秋二(9))

本程序是把给定的二进制整数转换为八进制整数。

Private Sub Command1_Click()

Dim a As String, b As String, c As String

Dim L As Integer, m As Integer, n As Integer

a = InputBox("请输入一个二进制数", "输入框")

(1)

a = String(L, "0") & a

(2)

For m = 1 To n / 3

b = Mid(a, 3 * m - 2, 3)

(3)

Next m

Text1.Text = c

End Sub

Private Function zh(s As String) As String

Dim i As Integer, n As Integer, p As Integer

p = 1

For i = 2 To 0 Step -1

(4)

p = p + 1

Next i

zh = Str(n)

End Function

2) 补充代码(2001春二(7))

下面程序是把给定的16进制正整数转换为10进制数。

Option Explicit

Private Sub Form_Click()

Dim St As Integer,Dem As Long

St=InputBox("输入一个十六进制数")

Dem=Convert(St)

Print St; ">="; Dem

End Sub

Private Function Convert(S As String)As Long

Dim N As Integer,I As Integer,Substring As String*1

Dim P As long,K As Long,Asc1 As Integer

N= (1)

P=16^N

For I=1 To N

P=P/16

Substring= (2)

Select Case Substring

Case "0" To "9"

K=K+P*Val(Substring)

Case (3)

Asc1=Asc(Substring)-Asc("A")+10

(4)

End Select

Next I

(5)

计算机等级考试二级VB常用算法(5):约数因子

1、算法说明

1) 最大公约数:

用辗转相除法求两自然数m、n的最大公约数。

(1)首先,对于已知两数m、n,比较并使得m>n;

(2)m除以n得余数r;

(3)若r=0,则n为求得的最大公约数,算法结束;否则执行步骤(4)(4)m?n n?r 再重复执行(2)

譬如:10与5

分析步骤:m=10 n=5

r=m mod n=0

所以n(n=5)为最大公约数

24与9

分析步骤:m=24 n=9

r=m mod n=6

r≠0 m=9 n=6

r=m mod n=3

r≠0 m=6 n=3

r=m mod n=0

所以n(n=3)为最大公约数

算法实现

循环实现

Private Function GCD(ByVal m As Long, ByVal n As Long) As Long

Dim temp As Long

If m < n Then temp = m: m = n: n = temp

Dim r As Long

Do

r = m Mod n

If r = 0 Then Exit Do

m = n

n = r

Loop

GCD = n

End Function

递归实现

Private Function GCD(ByVal m As Long, ByVal n As Long) As Long Dim temp As Long

If m < n Then temp = m: m = n: n = temp

Dim r As Long

r = m Mod n

If r = 0 Then

GCD = n

Else

m = n

n = r

GCD = GCD(m, n)

End If

End Function

2) 最小公倍数

m×n÷最大公约数

3) 互质数

最大公约数为1的两个正整数

解题技巧

该算法需要识记!

这种类型题目的扩展是约数和因子题型。

2、实战练习

1) 补充代码(2003春二(9))

给定一个十进制正整数,找出小于它并与其互质的所有正整数(所谓互质数是指最大公约数为1的两个正整数,下图是程序执行画面)。

Option Explicit

Private Function gcd((1))As Integer

Dim r As Integer

r = m Mod n

If r = 0 Then

gcd = n

Else

m = n: n = r

(2)

End If

End Function

Private Sub Command1_Click()

Dim n As Integer, p As Integer

n = Val(Text1)

For p = n - 1 To 2 Step -1

If (3)Then List1.AddItem p

Next p

End Sub

2) 编程题(2002秋上机试卷01)

生成一个三行八列的二维数组A(3,8),其中前两行元素产生的方法是:

用初值X1=26及公式Xi+1=(25×Xi+357) Mod 1024,产生一个数列:X1、X2、......、X16 。其中X1~X8作为A的第一行元素;X9~X16作为A的第二行元素;A的第三行元素值取前两行同列元素的最大公约数。最后按图示格式显示在图片框中。

计算机等级考试二级VB常用算法(6):排序

1、算法说明

1) 选择法排序

(1) 从n个数中选出最小数的下标,出了循环,将最小数与第一个数交换位置;

(2) 除第一个数外,在剩下的n-1个数中再按方法(1)选出次小的数,与第二个数交换位置;

(3) 以此类推,最后构成递增序列。

譬如:

8 6 9 3 2 7

第一轮交换后 2 6 9 3 8 7

第二轮交换后 2 3 9 6 8 7

第三轮交换后 2 3 6 9 8 7

第四轮交换后 2 3 6 7 8 9

第五轮无交换 2 3 6 7 8 9

程序代码如下:

Private Sub xzPaiXu(a() As Double, sheng As Boolean)

'a为需要排序的数组,sheng为True则为升序排列,为False,则为降序排列。

Dim i As Integer, j As Integer

Dim temp As Double

Dim m As Integer

For i = LBound(a) To UBound(a) - 1 '进行数组大小-1轮比较

m = i '在第i轮比较时,假定第

'i个元素为最值元素

For j = i + 1 To UBound(a) '在剩下的元素中找出最

'值元素的下标并记录在m中

If sheng Then '若为升序,则m记录最小元素

'下标,否则记录最大元素下标

If a(j) < a(m) Then m = j

Else

If a(j) > a(m) Then m = j

End If

Next j '将最值元素与第i个元素交换

temp = a(i)

a(i) = a(m)

a(m) = temp

Next i

End Sub

调用该过程示例:

Option Base 1

Private Sub Command1_Click()

Dim b(6) As Double

b(1) = 8

b(2) = 6

b(3) = 9

b(4) = 3

b(5) = 2

b(6) = 7

Call xzPaiXu(b, True)

For i% = 1 To 6

Print b(i)

Next

End Sub

2) 冒泡法排序

选择排序法在每一轮排序时找最值元素的下标,出了内循环(一轮排序结束),再交换最小数的位置;而冒泡法在每一轮排序时将相邻的数比较,当次序不对就交换位置,出了内循环,最值数已经冒出。

譬如:

8 6 9 3 2 7

8 6 9 3 2 7

8 6 9 2 3 7

8 6 2 9 3 7

8 2 6 9 3 7

2 8 6 9

3 7

….

2 3 8 6 9 7

….

2 3 6 8 7 9

….

2 3 6 7 8 9

….

2 3 6 7 8 9

程序代码如下:

Private Sub mpPaiXu(a() As Double, sheng As Boolean)

'a为需要排序的数组,sheng为True则为升序排列,为False,则为降序排列。

Dim i As Integer, j As Integer

Dim temp As Double

Dim m As Integer

For i = LBound(a) To UBound(a) - 1 '进行n-1轮比较

For j = UBound(a) To i + 1 Step -1 '从n到i个元素两两进行比较

If sheng Then '若次序不对,马上进行交换

If a(j) < a(j - 1) Then

temp = a(j)

a(j) = a(j - 1)

a(j - 1) = temp

End If

Else

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

temp = a(j)

a(j) = a(j - 1)

a(j - 1) = temp

End If

End If

Next j '出了内循环,一轮排序结束

'最值元素冒到最上边

Next i

End Sub

调用该过程代码基本同上。

2、实战练习

1) 补充代码(2003秋二(10))

下面是一个采用拉锯式排序法对数组元素按升序进行排序的程序,所谓“拉锯式排序法”是这一遍把最小的元素从下到上送到最上的位置,下一遍则是从上到下把最大的元素送到最下的位置。

Option Base 1

Private Sub Command1_Click()

Dim a(10) As Integer,i As Integer

For i = 1 To 10

a(i) = Int(Rnd * 10)+1

Text1 = Text1 & Str(a(i))

Next i

Call shaker_sort(a)

For i = 1 To 10

Text2 = Text2 & Str(a(i))

Next i

End Sub

Private Sub Shaker_sort(k() As Integer)

Dim i As Integer,c As Integer,d As Integer

Dim t As Integer

c = 1

d = (1)

Do

For(2)Step-1

If k(i=1)>k(i) Then

t = k(i-1):k(i-1) = k(i):k(i) = t

End If

Next i

(3)

For i = c+1 To d

If (4)Then

t = k(i-1):k(i-1) = k(i):k(i) = t

End If

Next i

d = d-1

Loop While(5)

End Sub

2) 编程题(2002秋上机试卷04)

把文本框输入的字符串按降序添加到列表框中。

计算机等级考试二级VB常用算法(7):排序

1、算法说明数组中元素的插入和删除一般是在已固定序列的数组中插入或删除一个元素,使得插入或删除操作后的数组还是有序的。

基本思路:首先要找到插入位置或要删除的元素。

1) 插入

代码如下:

Private Sub Command1_Click()

Dim a(10) As Integer

Dim i As Integer, k As Integer

For i = 0 To 9 '生成数组

a(i) = i * 3 + 1

Print a(i);

Next i

Print

Print "插入14"

For k = 0 To 9 '查找插入14在数组中的位置

If 14 < a(k) Then Exit For

Next k

For i = 9 To k Step -1 '从最后元素开始逐个后移,腾出位置

a(i + 1) = a(i)

Next i

a(k) = 14 '插入数14

For i = 0 To 10

Print a(i);

Next i

Print

End Sub

2) 1 4 7 10 13 16 19 22 25 28

K

删除代码如下:

Dim a() as integer

….

ReDim a(1 to n)

For i=k+1 to n

a(i-1)=a(i)

Next I

Redim preserve a(1 to n-1)

2、实战练习1) 补充代码(2001秋二(8))

C盘根目录下文件Data4.txt的内容是:2,4,6,8,10,1,3,5,7,9。下面程序的功能是将文件后半部分的奇数分别按序插入到前半部分的适当位置,得到的新数列是:1 2 3 4 5 6 7 8 9 10。(实现方法:第一次调整后的数列是:1 2 4 6 8 10 3 5 7 9第二次调整后的数列是:1 2 3 4 6 8 10 5 7 9)。

Option Explict

Private Sub Form_Click()

Dim A(10) As Integer,i As Integer,J As Integer

Open "c:\Data4.txt" For Input As #12

Do (1)

J=J+1

Input #12,A(J)

Loop

Call Insert(A)

For i=1 To 10

Print A(i);

Next i

Print

Close #12

End Sub

Private Sub Insert(A() As Integer)

Dim i As Integer,Putp As Integer,J As Integer

Dim Getp As Integer,N As Integer,Tem As Integer

N=UBound(A)/2

Putp=1

Getp=N+1

For i=1 To N

Tem=A(Getp)

For J=Getp To Putp +1 Step -1

(2)

Next J

A(Putp)=Tem

Getp=Getp+1

Putp= (3)

Next i

End Sub

2) 补充代码(2001春二(8))

下面程序得功能是将无序数组中相同得数只保留一个,其余得删除,并输出经过删除后的数组元素,删除相同数是通过将该数组元素后面的元素在数组内依次前移替换前一个元素的值实现的。数组各元素的值从文件data.txt中读取。

Option Explict

Option Base 1

Private Sub Form_Click()

Dim I As Integer,J As Integer,K As Integer

Dim A()As Integer,T As Integer,M As Integer

Open "c:\my documents\2000test\data.txt" For Input As #1

Do While (1)

I=I+1

Redim Preserve A(I)

Input #1,A(I)

Loop

M=1:T= (2)

Do While M

I=M+1

Do While I<=T

If A(I)=A(M)Then

For J=1 To (3)

A(J)=A(J+1)

Next J

T=T-1

Else

I= (4)

End If

Loop

M=M+1

Loop

Redim Preserve A(T)

For I=1 To T

VB常用算法

常用算法 1.判断素数 素数是指只能被1与自己整除的数是素数,最小的素数是2,如3,5,7等都是素数判断方法一: Private Function Prime(N As Integer)As Boolean Dim i As Integer For i=2 To N-1(或sqr(N)或N\2) If N Mod i=0 Then Exit For Next i (或N/i=Int(N/i)) If i=N Then Prime=True End Function 判断方法二: Private Function Prime(N As Integer)As Boolean Dim i As Integer For i=2 To N-1 If N Mod i=0 Then Exit Function Next i Prime=True End Function (2)求最大公约数(欧几里德算法,辗转相除法) 最大公约数是指两个数最大的公约数 Private Function Gcd(byval m As Integer,ByVal n As Integer)As Integer Dim r As Integer r=m Mod n Do while r<>0 m=n n=r r=m Mod n Loop Gcd=n End Function 利用递归实现判断最大公约数 Private Function Gcd(ByVal m As Integer,ByVal n As Integer)As Integer Dim r As Integer r=m Mod n If r=0 Then Gcd=n ELse M=n n=r Gcd=Gcd(m,n) End If

全国计算机等级考试二级VB笔试试题及答案

2009年9月全国计算机等级考试二级VB笔试试题及答案 一、选择题(每小题2分,共70分) 一、选择题 1.下列数据结构中,属于非线性结构的是()。 A. 循环队列 B.带链队列 C.二叉树 D.带链栈 答案C Array解析树均是非线性结构 2. 下列数据结构中,能够按照”先进后出”原则存取数据的是()。 A. 循环队列 B.栈 C.队列 D.二叉树 答案B 解析:栈是先进后出或后进先出的线性表 3. 对于循环队列,下列叙述中正确的是()。 A.队头指针是固定不变的 B.队头指针一定大于队尾指针 C.队头指针一定小于队尾指针 D.队头指针可以大于队尾指针,也可以小于队尾指针 答案D 解析:如果队头指针大于队尾指针说明队列已经循环存放数据了,如果队头指针小于队尾指针说明没有进行循环存放 4. 算法的空间复杂度是指()。 A.算法在执行过程中所需要的计算机存储空间 B.算法所处理的数据量

C.算法程序中的语句或指令条数 D.算法在执行过程中所需要的临时工作单元数 答案A 解析:算法的空间复杂度是指执行算法所需要的内存空间,包括算法程序所占空间,输入的初始数据所占空间和执行过程中所需要的额外空间. 5. 软件设计中划分模块的一个准则是()。 A. 低内聚低耦合 B. 高内聚低耦合 C. 低内聚高耦合 D. 高内聚高耦合 答案B 解析:模块内部各元素之间的联系要紧密,高内聚,模块间的连接的紧密程度要低,低耦合,这样可以提高模块的独立性. 6.下列选项中不属于结构化程序设计原则的是()。 A.可封装 B.自顶向下 C.模块化 D.逐步求精 答案A 7.软件详细设计产生的图如下 该图是( ). A.N-S图 B. PAD图 C. 程序流程图 D.E-R图 答案C 8.数据库管理系统是()。

VB程序设计的常用算法填空题

VB程序设计的常用算法 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If Then Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 m=inputBox("m=") n=inputBox("n=") nm=n*m If m < n Then r=m mod n Do While m=n n=r

VB常用算法介绍

常用算法介绍 VB 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]围的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer

Dim i As Integer, p As Integer '产生100个[0,99]围的随机整数,每行10个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10

全国计算机等级考试二级笔试试卷VB语言程序设计

2011年9月全国计算机等级考试二级笔试试卷VB语言程序设计 一、选择题 1、下列叙述中正确的是 A、算法就是程序 B、设计算法时只需要考虑数据结构的设计 C、设计算法时只需要考虑结果的可靠性 D、以上三种说法都不对 2、下列关于线性链表的叙述中,正确的是 A、各数据结点存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 B、各数据结点的存储顺序可以不一致,但它们的存储空间必须连续 C、进行插入与删除时,不需要移动表中的元素 D、以上三种说法都不对 3、下列关于二叉树的叙述中,正确的是 A、叶子结点总是比度为2的结点少一个 B、叶子结点总是比度为2的结点多一个 C、叶子结点数是度为2的结点数的两倍 D、度为2的结点数是度为1的结点数的两倍 4、软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。 A、学生成绩管理系统 B、C语言编译程序 C、UNIX操作系统D 5 该系统总体结构图的深度是 A、7 B、6 C、3 D、2 6、程序调试的任务是 A、设计测试用例 B、验证程序的正确性 C、发现程序中的错误 D、诊断和改正程序的错误 7、下列关于数据库设计的叙述中,正确的是 A、在需求分析阶段建立数据字典 B、在概念设计阶段建立数据字典 C、在逻辑设计阶段建立数据字典 D、在物理设计阶段建立数据字典 8、数据库系统的三级模式不包括 A、概念模式 B、内模式 C、外模式 D、数据模式 9、有三个关系R、S和T如下: R S 则由关系R和S得到关系T的操作是 A、自然连接 B、差 C、交 D、并 10、下列选项中属于面向对象设计方法主要特征的是 A、继承 B、自顶向下 C、模块化 D、逐步求精 11、以下描述中错误的是 A、窗体的标题通过其Caption属性设置

VB练习题

判断题: 1、VB中,每一种对象有着不同的属性设置,每一种对象能识别的事件也不同。(对) 2、Val(“123hello”) 和Val(“hello123”)返回值一样。(错) 3、赋值语句X=123+”123”和X=”123”+123中,X的值一样。(对) 4、赋值语句X=”123”+”123”和X=”123”+123中,X的值一样。(错) 5、执行Print 5*8 和Print “5*8 ”语句运行结果一样。(错) 6、标签框和文本框内容的最大区别就是在程序运行过程中标签框的内容不可编辑,而文本框的内容可编辑。(对) 7、用vb编写程序时,标签控件能代替文本框控件使用. (错) 8、VB程序代码中,Label1.Caption=””的作用是该标签框中得内容清除。(对) 9、变量名的长度最长可达1024个字符。(错)225个 10、sum和int.sum都可以作为VB的变量名。(错) 11、下列程序的运行结果是15 (对) Dim s as Double Dim i as Integer S=0 I=1 Do While i<=5 I=i+2 S=s+i Loop Label1.Caption=s 12、对于熟练的程序员,可以省略程序的调试过程。(错) 13、在VB中,使用if语句就可以根据条件改变程序的执行路径。(对) 14、VB编程的一般步骤应该是:分析问题——设计界面——编写代码——调试与运行程序。(对) 单项选择题 1、小明想用VB设计一个加法器程序,做了如下规划,下列说法错误的是。(D) A、程序运行时标题栏显示加法器 B、前两个标签框显示的内容分别为“+”和“=” C、Command1用来计算出结果 D、使用了三个命令按钮、两个标签框和三个文本框 2、从下面的对象属性可以看出,该对象的标题为(A)

VB程序设计的常用算法教案.doc

VB程序设计的常用算法教案 算法(algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,......个位是0的个数存放在x(10)。 将程序编写在一个gettjput过程中,代码如下: public sub gettjput() dim a(1 to 100) as integer

dim x(1 to 10) as integer dim i as integer, p as integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 for i = 1 to 100 a(i) = int(rnd * 100) if a(i) < 10 then form1.print space(2); a(i); else form1.print space(1); a(i); end if if i mod 10 = 0 then form1.print next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 for i = 1 to 100 p = a(i) mod 10 ' 求个位上的数字 if p = 0 then p = 10 x(p) = x(p) + 1 next i form1.print "统计结果"

VB程序设计的常用算法4

VB程序设计的常用算法4 十、数制转换 将一个十进制整数m转换成→r(2-16)进制字符串。 方法:将m不断除r 取余数,直到商为零,以反序得到结果。下面写出一转换函数,参数idec为十进制数,ibase为要转换成数的基(如二进制的基是2,八进制的基是8等),函数输出结果是字符串。 Private Function TrDec(idec As Integer, ibase As Integer) As String Dim strDecR$, iDecR% strDecR = "" Do While idec <> 0 iDecR = idec Mod ibase If iDecR >= 10 Then strDecR = Chr$(65 + iDecR - 10) & strDecR Else strDecR = iDecR & strDecR End If idec = idec \ ibase Loop TrDec = strDecR End Function 十一、字符串的一般处理1.简单加密和解密 加密的思想是:将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式:c=chr(Asc(c)+k) 例如序数k为5,这时"A"→"F","a""f","B""G"…当加序数后的字母超过"Z"或"z"则c=Chr(Asc(c)+k -26) 例如:You are good→ Dtz fwj ltti 解密为加密的逆过程 将每个字母C减(或加)一序数K,即c=chr(Asc(c)-k), 例如序数k为5,这时"Z"→"U","z"→"u","Y"→"T"…当加序数后的字母小于"A"或"a"则c=Chr(Asc(c)-k +26) 下段程序是加密处理: i = 1: strp = "" nL = Len(RTrim(strI)) Do While (i <= nL) strT = Mid$(strI, i, 1) '取第i个字符 If (strT >= "A" And strT <= "Z") Then iA = Asc(strT) + 5 If iA > Asc("Z") Then iA = iA - 26 strp = strp + Chr$(iA) ElseIf (strT >= "a" And strT <= "z") Then iA = Asc(strT) + 5 If iA > Asc("z") Then iA = iA - 26 strp = strp + Chr$(iA) Else strp = strp + strT End If i = i + 1 Loop Print strp

VB程序设计的常用算法

VB程序设计的常用算法 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n,使得m>n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); (4) m←n,n←r,再重复执行(2)。 例如:求m=14 ,n=6的最大公约数. m n r

计算机等级考试二级VB模拟试题四及答案解析

计算机等级考试二级VB模拟试题四及答案解析 一、选择题 (1)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private SubCommand1_Click() Move 500,500 End Sub 程序运行后,单击命令按钮,执行的操作为 A)命令按钮移动到距窗体左边界、上边界各500的位置 B)窗体移动到距屏幕左边界、上边界各500的位置 C)命令按钮向左、上方向各移动500 D)窗体向左、上方向各移动500 正确答案: B (2)在窗体上有若干控件,其中有一个名称为Text1的文本框。影响Text1的Tab顺序的属性是 A)TabStop B)Enabled C)Visible D)TabIndex 正确答案: D (3)以下定义数组或给数组元素赋值的语句中,正确的是 A)Dim a As Variant a=Array(1,2,3,4,5) B)Dima(10)As Integer a=Array(1,2,3,4,5) C)Dim a%(10) a(1)="ABCDE" D)Dim a(3),b(3)As Integer a(0)=0 a(1)=1 a(2)=2 b=a 正确答案: A (4)在窗体上画一个名称为List1的列表框,为了对列表框中的每个项目都能进行处理,应使用的循环语句为 A)For i=0 ToList1.ListCount-1 …… Next B)For i=0 To List1.Count-1 …… Next C)For i=1 To List.ListCount …… Next

D)For i=1 ToList1.Count

VB常用算法——排序

VB常考算法(八)排序: 1、算法 1)选择法排序 算法说明:根据上例中求最小值的思路,我们可以使用如下方法进行从小到大排序:第一轮,以第一个元素逐个跟后面的所有元素比较,如果比后面的元素大就进行交换,经过一轮比较,第一个元素被确定为最小;同样的方法,下一轮以第二个元素跟剩下的所有元素进行比较确定下次小的元素;以此类推… 下面我们以图形的形式体现对5个数进行选择排序的过程: 第一轮:第二轮: 第三轮: 从上图可以发现对5个元素进行排序,总共经过了5-1=4轮,而每一轮中比较的次数也不相同,第一轮2、3、4、5号元素参与跟1号元素的比较,共4次,第二轮3、4、5号元素参与跟2号元素的比较,共3次,以次类推,比较次数逐步减少。经过四轮的比较,利用逐步求最小值的方法将5个数从小到大排好序。对于这样一个排序的过程,我们可以使用两个循环分别控制比较的轮数和每一轮的次数。 程序代码: Private Sub Command1_Click() Dim n As Integer n = InputBox("请输入数组元素的个数:") Dim a() As Integer, i As Integer, j As Integer Print "排序前:" ReDim a(n) For i = 1 To n a(i) = Int(Rnd * (99 - 10 + 1) + 10) Print a(i); 最小值 次小值

Next i For i = 1 To n - 1 For j = i To n If a(i) > a(j) Then temp = a(i) '交换元素 a(i) = a(j) a(j) = temp End If Next j Next i Print Print "排序后:" For i = 1 To n Print a(i); Next i End Sub 2)冒泡法排序 算法说明:相邻的元素进行比较,如果前面的元素比后面的元素大,则将它们进行交换,具体思路:设在数组a 中存放n 个元素,第一轮,将a(1)和a(2)进行比较,若a(1)>a(2),则交换这两个元素的值,然后继续用a(2)和a(3)比较,若a(1)>a(2),则交换这两个元素的值,以此类推,直到a(n-1)和a(n)进行比较处理后,a(n)中就存放了n 个数中最大的值;第二轮,用a(1)与a(2),a(2)与a(3),…,a(n-2)与a(n-1)进行比较,处理方法相同,这一轮下来,a(n-1)中存放n 个数中第二大的值;…;第n-1轮,a(1)与a(2)进行比较处理,确保最小值在a(1)中。经过n-1轮比较处理,n 个数已经按从小到大的顺序排列好。 下面我们以图形的形式体现对5个数进行冒泡排序的过程: 第一轮: 第三轮: 第四轮: 最大值

计算机二级考试VB一般程序设计习题

般程序设计习题 '〖第1题〗:(事件)单击窗体。 '(响应)求100以内偶数的和,并将结果输出在窗体上。 '将结果存入变量SUM中 '答案:DimiAsInteger Fori=ITolOO lfiMod2=0Then sum=sum+i EndIf Next Printsum '〖第2题〗:(事件)双击窗体。 '(响应)求s=1+1X 2+1 X 2X 3+…+1X 2 X 3X …X 10, '并将结果存到变量S中 答案:DimijAsInteger DimkAsLong k=1 s=0 Fori=1To10 Forj=1Toi k=k*j Next s=s+k k=1 Next Print(CStr(s)) '〖第3题〗:(事件)单击窗体。 '(响应)求1+2+3+……+100的值,并把结果输出在窗体上。'结果存入变量SUM中o '答案:DimiAsInteger Fori=1To100 sum=sum+i Next Printsum '〖第4题〗:判断一个数是否是素数。 '答案:DimiAsInteger Prime=True Fori=2ToInt(Sqr(m)) lfmModi=0ThenPrime=False:ExitFor Nexti '〖第5题〗:(事件)单击窗体。 '(响应)求1-1/2+1/3-1/4+ ……+1/99-1/100 的值。 '将结果存入变量J中。 DimiAsInteger Fori=1To100 IfiMod2=1Then j=j+1/i ElseIfiMod2=0Then j=j-1/i EndIf Next Printj ”〖第6题〗:(事件)单击窗体。 '(响应)求200~300之间既能被3整除又能被7整除的数 '并求出所有数之和存入变量SUM中 '答案:DimiAsInteger Fori=2 0仃o300 If((iMod3)=0)And((iMod7)=0)Then Print(CStr(i)) sum=sum+i

VB程序设计的常用算法

VB 程序设计的常用算法 算法( Algorithm ):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100 个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0 的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0 的数的个数。即个位是1 的个数存放在x(1) 中,个位是2 的个数存放在x(2)中,...................... 个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100 个[0,99]范围内的随机整数,每行 1 0个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i);

计算机等级考试二级VB基础教程

计算机等级考试二级VB基础教程 1.1Visual Basic 概述 1.Visual Basic是什么 Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言。 “Visual” 指的是开发图形用户界面(GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,一种在计算技术发展历史上应用得最为广泛的语言。Visual Basic 在原有BASIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和Windows GUI 有直接关系。专业人员可以用Visual Basic 实现其它任何Windows 编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。Visual Basic Scripting Edition (VBScript) 是广泛使用的脚本语言,它是Visual Basic 语言的子集,可嵌入HTML语言中,用于网页设计,如ASP(Active Server Page)文件。 VB简单易学,通用性强,用途广泛。 2.VB的功能 VB可以用于可以开发多媒体、数据库、网络、图形等方面的应用程序。 数据访问特性允许对包括Microsoft SQL Server 和其它企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。 有了ActiveX(TM) 技术就可使用其它应用程序提供的功能,例如Microsoft Word 字处理器,Microsoft Excel 电子数据表及其它Windows 应用程序。 Internet 能力强大,很容易在应用程序内通过Internet 或intranet访问文档和应用程序,或者创建Internet 服务器应用程序。 已完成的应用程序是使用Visual Basic 虚拟机真正.exe 文件,可以自由发布。 3.VB的发展 VB是伴随Windows操作系统而发展的,在中国使用较广的版本有VB4.0、VB5.0、VB6.0。 VB4.0是为配合WIN95的问世于1995年推出的,既可用于编写WIN3.X平台的16位应用程

计算机二级考试VB基础题

一、选择题 1.在设计阶段,当双击窗体上的某个控件时,所打开的窗口是()。 A.工程资源管理器窗口 B.工具箱窗口 C.代码窗口 D.属性窗口 2.刚建立一个新的标准EXE工程后,不在工具箱中出现的控件是()。 A.单选按钮 B.图片框 C.通用对话框 D.文本框 3.VB的启动有多种方法,下面不能启动VB的是()。 A.使用“开始”菜单中的“程序”命令 B.使用“开始”菜单中的“运行”命令,在弹出的对话框中输入VB启动文件名 C.使用“我的电脑”,在VB所在硬盘驱动器中找到相应的VB文件夹 D.先打开VB的“文件”菜单,再按Alt+Q组合键 4.VB的工程资源管理器可管理多种类型的文件,下面叙述不正确的是()。 A.窗体文件的扩展名为.frm,每个窗体对应一个窗体文件 B.标准模块是一个纯代码性质的文件,它不属于任何一个窗体 C.用户通过类模块来定义自已的类,每个类都用一个文件来保存,其扩展名为.bas D.资源文件是一种纯文本文件,可以用简单的文字编辑器来编辑 5.通过()窗口可以在设计时直观地调整窗体在屏幕上的位置。 A.代码窗口 B.窗体布局窗口 C.窗体设计窗口 D.属性窗口 6.下列不能打开属性窗口的操作是()。 A.按F4键 B.执行“视图”菜单中的“属性窗口”命令 C.按Ctrl+T D.单击工具栏上的“属性窗口”图标 7.Visual Basic6.0默认的工具栏是()工具栏。 A.文件 B.数据库 C.格式 D.标准 8.下列可以打开文件对话框的操作是()。 A.Ctrl+D B.Ctrl+E C.Ctrl+F D.Ctrl+G 9.以下不能在“工程资源管理器”窗口中列出的文件类型是()。 A..bas B..res C..frm D..ocx 10.以下不属于Visual Basic系统的文件类型是()。 A..frm B..bat C..vbg D..vbp 11.如果要向工具箱中加入控件的部件,可以利用“工程”菜单中的()命令。 A.引用 B.部件 C.工程属性 D.加窗体 12.以下关于窗体描述正确的是()。 A.只有用于启动的窗体可以有菜单 B.窗体事件和其中所有控件事件的代码都放在窗体文件中 C.窗体的名字和存盘的窗体文件名必须相同 D.开始运行时窗体的位置只能是设计阶段时显示的位置 13.VB中控件主要分为3类,下面哪一种不是VB中的控件类()。 A.标准控件 B.ActiveX C.可插入控件 D.外部控件 14.以下叙述中错误的是()。 A.双击鼠标可以触发DblClick事件 B.窗体或控件的事件的名称可以由编程人员确定 C.移动鼠标时,会触发MouseMove事件 D.控件的名称可以由编程人员设定

计算机二级VB考试试题

站长提醒广大考生:下面的138道题目,在二级考试中命中率极高。 一、选择题 (1) 下面叙述正确的是(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对 (2) 以下数据结构中不属于线性数据结构的是(C) A. 队列 B. 线性表 C. 二叉树 D. 栈 (3) 在一棵二叉树上第5层的结点数最多是(B) 注:由公式2k-1得 A. 8 B. 16 C. 32 D. 15 (4) 下面描述中,符合结构化程序设计风格的是(A) A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口 C. 注重提高程序的执行效率 D. 不使用goto语句 (5) 下面概念中,不属于面向对象方法的是(D) 注:P55-58 A. 对象 B. 继承 C. 类 D. 过程调用 (6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B) A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (7) 在软件开发中,下面任务不属于设计阶段的是(D) A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型 (8) 数据库系统的核心是(B) A. 数据模型 B. 数据库管理系统 C. 软件工具 D. 数据库 (9) 下列叙述中正确的是(C) A.数据库是一个独立的系统,不需要操作系统的支持 B.数据库设计是指设计数据库管理系统 C.数据库技术的根本目标是要解决数据共享的问题 D.数据库系统中,数据的物理结构必须与逻辑结构一致 (10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A) 注:P108

计算机等级考试二级_VB笔试真题及答案

2006年9月二级VisualBasic程序设计笔试试卷及答案 一、单项选择 (1)下列选项中不符合良好程序设计风格的是_____ 。 A) )源程序要文档化B)数据说明的次序要规范化 C) )避免滥用goto 语句D)模块设计要保证高耦合、高内聚 (2)从工程管理角度,软件设计一般分为两步完成,它们是_____ 。 A) )概要设计与详细设计B)数据设计与接口设计 C) )软件结构设计与数据设计D)过程设计与数据设计 (3)下列选项中不属于软件生命周期开发阶段任务的是_____ 。 A) )软件测试B)概要设计C)软件维护D)详细设计 (4)在数据库系统中,用户所见的数据模式为_____ 。 A) )概念模式B)外模式C)内模式D)物理模式 (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和_____ 。 A) )编码设计B)测试阶段C)运行阶段D)物理设计 (6)设有如下三个关系表: 下列操作中正确的是_____ 。 (7)下列叙述中正确的是_____ 。 A) )一个算法的空间复杂度大,则其空间复杂度也必定大 B) )一个算法的空间复杂度大,则其时间复杂度必定小 C) )一个算法的时间复杂度大,则其空间复杂度必定小 D) )上述三种说法都不对 (8)在长度为64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为_____ 。 A) ) 63 B) 64 C) 6 D) 7 (9)数据库技术的根本目标是要解决数据的_____ 。 A) )存储问题B)共享问题C)安全问题D)保护问题 (10)对下列二叉树: 进行中序遍历的结果是_____ 。 A) ) ACBDFEG B) ACBDFGE C) ABDCGEF D) FCADBEG (11)以下叙述中正确的是_____ 。

VB常用算法——素数

VB常考算法(三)素数: 1、算法说明 所谓素数是指只能被1和它本身整除的数。 1)判断某数是否为素数。根据循环控制变量来判断。 算法说明:根据素数只能被1和它本身整除的性质,我们可以使用循环依次判断2到n-1(或者Sqr(n))之间有没有被它整除的数,一旦有退出循环,退出循环后通过检验循环变量的值来判断是不是素数。即,当循环正常退出,循环变量的值等于n时,该数是素数;当循环提前退出,循环变量的值小于等于n-1,该数不是素数。 程序代码如下: Private Sub Command1_Click() Dim n As Integer, i As Integer n = Val(Text1.Text) If n < 1 Then MsgBox "请正确输入数据" Else n = Val(Text1.Text) For i = 2 To n - 1 If n Mod i = 0 Then Exit For Next i If i = n Then MsgBox n & "是素数" Else MsgBox n & "不是素数" End If End If End Sub 2)判断某数是否为素数。根据标志位flg来判断。 Private Sub Command1_Click() Dim n As Integer, i As Integer Dim flg As Boolean flg = True n = Val(Text1.Text) If n < 1 Then MsgBox "请正确输入数据" Else n = Val(Text1.Text) For i = 2 To n - 1 If n Mod i = 0 Then flg = False Next i If flg = True Then MsgBox n & "是素数" Else MsgBox n & "不是素数"

计算机等级考试VB模拟训练题(十二)

第47套 1.基本操作(2小题,每小题15分,共计30分) (1)在名称为Form1的窗体上建立一个名称为Text1的文本框,一个名称为Cmd1,标题为“输出”的命令按钮(如图所示)。要求程序运行后,在文本框输入几个字符,在单击“输出”按钮,则在窗体上显示文本框中的的文字。*注意:1)在程序中不能使用任何变量。2)保存时必须存放在考生文件夹下,窗体文件名为lq1.frm,工程文件名为lq1.vbp。 (2)在名称为Form1的窗体上建立二个名称分别为Cmd1、Cmd2,标题为“按钮一”、“按钮二”的命令按钮(如图所示)。要求程序运行后,如果单击“按钮一”,则把“按钮二”移到“按钮一”上,使两个按钮重合。*注意:1)在程序中不得使用任何变量(必须通过属性设置来移动控件)。2)保存时必须存放在考生文件夹下,窗体文件名为lq2.frm,工程文件名为lq2.vbp 2.简单应用(2小题,每小题20分,共计40分) (1)在考生文件夹中有工程文件lq5.vbp及其窗体文件lq5.frm,该程序是不完整的。请在有?号的地方填入正确内容,然后删除?及所有注释符(即'号)但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在窗体上有三个名称分别为Text1、Text2、Text3的文本框,一个名称为C1,标题为“计算”的命令按钮(如图所示)。要求程序运行后,在Text1和Text2中分别输入两个整数,单击“计算”按钮后,可把两个整数之间的所有整数(含着两个整数)累加起来并在Text3中显示出来。 (2)在窗体上建立一个名称为Text1的文本框,建立一个名称为Cmd1,标题为“计算”的命令按钮(如图所示)。要求程序运行后,如果单击“计算”按钮,则求出100-200之间所有可以被3整除的数的总和,在文本框中显示出来,并把结果存入考生文件夹下的out.txt文件中。注意,在考生的文件夹下有一个mode.bas标准模块,该模块中提供了保存文件的过程putdata,考生可以直接调用。*注意:保存时必须存放在考生文件夹下,窗体文件名为lq6.frm。工程文件名为lq6.vbp,结果存入out.txt文件。

VISUALBASIC常用算法汇总

VB常用算法(1):累加和连乘 1、算法说明累加形式:V=V+e连乘形式:V=V*e 其中:V是变量,e是递增表达式。累加和连乘一般通过循环结构来实现。 注意:需在执行循环体前对变量V赋初值。一般的,累加时置初值0;连乘时置初值为1. 举例求N!的结果。 Private Sub Command1_Click()Dim n%,i%,s& n=Val(InputBox("输入n"))s=1 For i=1To n s=s*i Next i Print s End Sub 错误的写法: Private Sub Command1_Click() Dim n%,i%,s& n=Val(InputBox("输入n")) For i=1To n s=1‘赋初值语句位置不对! s=s*i Next i Print s‘输出s的值为n,而不是n!End Sub 应用举例 根据下列公式,求自然对数e 的的近似值。 要求:误差小于0.00001 Private Sub Command1_Click() Dim i%,n&,t!,e! e=2 i=1 t=1 Do While t>0.00001 i=i+1 t=t/i e=e+t Loop Print"计算了";i;"项目和是:";e Print Exp(1)‘与上句输出值进行对比以证明算法的正确性 End Sub 解题技巧 1)由于这类题目往往是根据精度要求来求值,因此我们不能预知具体循环次数,所以这类题目一般用Do循环,很少用For循环。设定循环变量和通项变量,注意各变量的初值; 2)分解通项表达式中各因子,并分别将各因子用循环变量表示; 3)如果步骤2中有的因子比较复杂,难以直接用变量表示,此时可以考虑使用Function过程; 4)根据步骤1、2、3,写出通项表达式; 5)根据精度要求(往往是通项小于10负多少次方这样一个关系表达式),写出一条满足精度要求后跳出循环的语句。通常是用:if通项表达式>10^(-N)then exit do,注意这句话一般需放在累加或者连乘式之前。

全国计算机等级考试VB二级上机题库,有答案

VB上机试题 全国计算机等级考试二级VB上机题库(第一套) 一、基本操作题(2小题,每小题15分,共计30分) 1.在名称为Form1的窗体上画一个文本框,其名称为T1,宽度和高度分别为1400和400;在画两个按钮,其名称分别为C1和C2,标题分别为“显示”和“扩大”,编写适当的事件过程。程序运行后,如果单击C1命令按钮,则在文本框中显示“等级考试”,如图1所示,如果单击C2命令按钮,则使文本框在高、宽方向上各增加一倍,文本框中的字体大小扩大到原来的3倍,如图2所示。 注意: 要求程序中不得使用变量。 存盘时必须放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。 图1 图2 解析:(大家请注意,以下分析加入我个人的理解和方法,都已通过上机验证,有的题方法不止一种,大家可以和我互相交流,我的邮箱:hero_chenxi@https://www.360docs.net/doc/279651911.html,,QQ:313691262,也可从论坛讨论https://www.360docs.net/doc/279651911.html,) 这道题没什么难度,主要考你窗体、按钮及文本框的基本属性,所以大家一定要熟练掌握常用控件的基本属性。打开VB(不用我说了吧),新建一个工程(标准的EXE),单击控件面板的“TextBox”控件(也可双击,直接在窗体建立),在属性面板中将“名称”修改为T1,“Width”修改为1400,“Height”修改为400。然后单击控件面板的“CommanButton”添加两个命令按钮,在属性面板中将“名称”分别修改为C1和C2,“Caption”分别修改为显示和扩大。 接下来双击显示按钮,进入代码编写窗口,键入:(按钮的Click事件)T1.text=”等级考试” 双击扩大按钮,键入:(按钮的Click事件) T1.width=T1.width+1400 T1.Height=T1.Height+400 T1.fontsize=T1.fontsize*3 最后单击保存按钮,工程命名为sjt1.vbp,窗体命名为sjt1.frm。 总结:这道题只要错一点就没有分,主要考大家仔细认真及属性设置的熟练程度,大家一定了解Caption、Text等属性在不同控件含义是不同,有的控件有这个属性,而那个控件没有,名称属性是不能在运行期间改变的等等。以上限于时间原

相关文档
最新文档