计算机技术基础习题集
c = ( )
If c >= \ j = Val(c)
num(j) =( )+ 1 End If Next i End Sub
6.下面程序是把给定的十六进制整数字符串转换为十进制数。 例如:3F8=> (3*16+15)*16+8=1000 Option Explicit
Private Sub Form_Click ( )
Dim St As String,Dem As Long St=“3F8” ( ) Print St;“=>”;Dem End Sub
Private Function Convert(S As String)As Long Dim n%,i%,SubC As String*1,p& n=Len(S) p=0
For i=1 To n
SubC=( )
Select Case UCase(SubC) Case“0”To“9” p=p*16+Val(SubC) Case“A” To“Z” p=p*16+( ) End Select Next i ( ) End Function 6.3 编程题
1.编写一个函数过程isPrime(ByVal m%) As Boolean,该函数实现的功能是对任意整数判断其是否为素数,如果是素数,函数值为True;否则,函数值为False。
2.编写一个子过程SortReverse(xx%()),该子过程完成的功能是将任意整型数组就地逆置(所谓就地逆置是指在数组空间里实现翻转)。
46
计算机技术基础习题集
3.编写一个函数过程jsVal() As Long,该函数实现的功能是计算所有四位数中各个位置上的数字是0或2或4或6或8的数的和。
4.编写一个子过程Sort(xx%()),该子过程完成的功能是将任意数组进行递增排序。
5.编写一个函数CountSubtring%(ss$,sub$)统计字符串ss中出现存放在sub中的单词次数。
6.编写一个函数CountWord%(ss$)用于统计任意一英文语句中有多少个单词。
47
计算机技术基础习题集
习题六 参考答案
6.1 选择题 1.B 2.D 3.A 4. C 5.B 6.C
7.B 数组做为形参整体传输时,只能通过传址的形式完成,相当于传递数组的起始位置。
8.C UBound(数组名[,维])计算某数组中某维的上界,LBound(数组名[,维])计算某数组中的某维的下界。 9.B
10.D Static具有保值的特点;在过程体内不能用Public、Private声明 变量。
11.B Fun子过程中的形参n是地址传递,可以从实参中获得初值,也可以把结果返回给主调程序,此时要求实参是变量,才能获得效果。而A、C、D调用时实参是表达式或常量,在VB中语法没有错(其他有的语言不允许),但得不到子过程中操作的结果。
12. D A形参是数组,不允许为值传递;B子过程名无值也无类型,n不能声明为整型;C数名与形参名同名。 13.C 14.A
15.D P1是递归调用函数。
16.C P1子过程的形参都是地址传递,P2子过程x是地址传递,y是值传递。
17.B 形参是数组,应该是地址传递,实参可得到子过程中操作的结果。 18.D Static定义的变量是静态变量,每次运行包含该变量的过程后,该变量的值保留,直到工程结束。 19.C 20.C 21.C
22.C 表达式、函数、常量只能传值 23.C 24.B
25.D 关键的是x被赋值后,由于是整型变量的原因,所以x的值为3(四舍五入) 26.D
48
计算机技术基础习题集
27.A 28.B
6.2 填空题 1. 144
是用递归函数实现将十进制数以r进制显示 2. 6
用辗转相减法求m、n的最大公约数(求最大公约数还可以用辗转相除法)。 3. IsP=True 初值假定为质数。
m Mod i=0
p1=True And p2=True (或者写P1 And P2) 相邻的两个是质数。 =p2 为下一个相邻的质数做准备。
4. InStr(s1, s2) 查找s1中第一次出现s2位置
Mid(s1, i + ls2) 截取s2后面的字符串。 InStr(s1, s2) 再次查找s1中出现s2位置 Text1.Text或者写Text1
5. List1.AddItem 向List1中添加项目
num%(),s$ 定义过程参数,与Command1_Click中的调用对应
Mid(s,i,1) 截取s中的第i个字符 num(j) 实现num(j)增1 6. Dem=Convert(St)
Mid(S,i,1)
Asc(SubC)-55或Asc(SubC)-Asc(“A”)+10或Asc(SubC)-65+10 Convert=p 6.3 编程题
1.
Private Function IsPrime(ByVal m%) As Boolean Dim i As Integer IsPrime = True For i = 2 To m-1
If m Mod i = 0 Then IsPrime = False: Exit For Next i End Function
2.
Private Sub SortReverse(xx%())
Dim i As Integer,j As Integer,temp As Integer
i=LBound(xx) j=Ubound(xx) Do While i 49 计算机技术基础习题集 temp=xx(i); xx(i)=xx(j) xx(j)=temp; i=i+1; j=j-1; Loop End Sub 3. Private Function jsVal() As Long Dim data%, ge%, shi%, bai%, qian% For data = 1000 To 9999 ge = data Mod 10 shi = data \\ 10 Mod 10 bai = data \\ 100 Mod 10 qian = data \\ 1000 If ge Mod 2 = 0 And shi Mod 2 = 0 And bai Mod 2 = 0 And qian Mod 2 = 0 Then jsVal = jsVal + data End If Next data End Function 4. Private Sub Sort(xx%()) Dim i As Integer, j As Integer, t As Integer For i = LBound(xx) To UBound(xx) - 1 For j = i + 1 To UBound(xx) If xx(i) > xx(j) Then t = xx(i) xx(i) = xx(j) xx(j) = t End If Next j Next i End Sub 5. Private Function CountSubstring%(ss As String, sub As String) Dim i%, cnt% i = InStr(1, ss, sub) 50