4444444 555555555 6666666 77777 888 9
(4)试编程序解决百钱买百鸡问题。公元前5世纪,我国数学家张丘建在《算经》中提出“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
(5)编程序求表达式 s=1+x+x2/2!+x3/3!+?+xn/n!+?的值和直至末项小于10-5为止,并在窗体上输出。
一.判断题
×√√√××√× 二.选择题
BBBDCCC 三.填空题
(1)7
(2)Do/Loop For/Next (3)-36 四.程序阅读题
1、 4
2、 88
6886
468864
2468852
3、y=1 y=2 y=12 y=288
4、32
5、25
6、 # # # # # #
# # # # #
# # # #
# # #
# # #
答案
While/Wend
五.程序填空题
1.①sign=1 ②For i=2 to 19 (3)sign=-sign
2.①Len(str1) ②length ③Mid(str1,i,2) ④Sum=0 3.①i mod 7=5 and i Mod 5 = 3 And i Mod 3=2 ②i<1000 4. (1)x>=0 (2)x
5.①last_one = laat_two ②last_two = this_one ③i=i+1 ④i-2 6.①i>int(sqr(m)) ②Int(Sqr(n-m)) 六.编程题
(1)
Private Sub Form_Click()
Dim i As Integer, j As Integer Dim s As Double, Sum As Double s = 1 Sum = 0
For i = 1 To 11 Step 2 For j = 1 To i s = s * j Next j
Sum = Sum + s Next i Print Sum End Sub
(2)
Private Sub Form_Click()
Dim m%, n%, mn%, r%, t% m = Val(InputBox(\ n = Val(InputBox(\ If n <= 0 Or m <= 0 Then MsgBox \数据有误\ End End If
mn = m * n If m < n Then
t = m: m = n: n = t End If
Do While (n <> 0)
r = m Mod n: m = n: n = r Loop
Form1.Print \最大公约数=\
Form1.Print \最小公倍数=\End Sub
(3)
Private Sub Form_Click() Dim i%, j% For i = 1 To 5
Print Spc(20 - i); For j = 1 To 2 * i - 1 Print Trim(Str(i)); Next j Print Next i
For i = 4 To 1 Step -1 Print Spc(20 - i); For j = 1 To 2 * i - 1
Print Trim(Str(10 - i)); Next j Print Next i End Sub
(4)
Private Sub Form_Click() Dim x As Integer Dim y As Integer Dim z As Integer For x = 0 To 100
For y = 0 To 100 - x z = 100 - x - y
If 5 * x + 3 * y + z / 3 = 100 Then Print x, y, z Next y Next x End Sub
(5)
Private Sub Form_Click()
Dim x As Single, y As Single, a As Single, i As Integer x = Val(InputBox(\输入x:\ a = 1: y = a: i = 0 While a >= 0.00001
i = i + 1: a = a * x / i: y = y + a Wend
Print \End Sub
第六章 一、判断题
1.数组中所有元素的数据类型不一定相同。
2.可以在程序中使用ReDim语句来改变动态数组的大小、维数和类型。 3.数组的下界一定是0。
4.定义数组时,其下界只能为正整数。
5.可以在通用的声明部分使用Option Base -1语句把数组下标下界的默认值设为-1。 6.在VB中,用Dim定义数组时,数组元素将自动赋初值为0。 二、选择题
1.定义数组A(1 To 5,5)后,下列哪一个数组元素不存在 。
A.A(1,1) B.A(1,0) C.A(0,1) D.(5,5)
2.在过程中定义Dim A(1 To 10,3 )As Single,则数组占用 字节的内存空间。
A.132 B.80 C.160 D.120
3.下列关于数组的说法正确的是 。
A.在VB中,一个数组中所包含的元素只能是相同类型的数据 B.在VB中,数组只能在模块中定义,不能在过程中定义模块 C.同普通变量一样,数组也可以不定义,先使用
D.在定义数组时,数组的每一维元素的个数必须是常数,不能是变量或表达式 4.使用语句Dim A() As Integer声明数组A之后,以下说法正确的是 。 A.A数组中的所有元素值为0 B.A数组中的所有元素值不确定 C.A数组中的所有元素值为Empty
D.再执行语句ReDim A(1 to 10) As Integer后,A数组中的所有元素值不为0
5.已知数组b中的5个元素分别是1,3,5,7,9,现将数组b中的5个数逆序存放(即排列为9,7,5,3,1)。为实现此功能,正确的程序段应该是: 。
A.For i = 0 To 5-1\\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i B.For i = 0 To 5: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i C.For i = 0 To 5\\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i D.For i = 1 To 5\\2: temp = b(i): b(i) = b(5 - i - 1): b(5 - i - 1) = temp: Next i
6.在窗体上画一个命令按钮,然后编写如下事件过程:
Option Base 1
Private Sub Command1_Click()
Dim a(1 To 4) As Integer, i As Integer, j As Integer, s As Long For i = 1 To 4: a(i) = i: Next i j = 1
For i = 4 To 1 Step -1 s = s + a(i) * j j = j * 10 Next i Print s End Sub
运行上面的程序,单击命令按钮,其输出结果是 。
A.4321 三、程序填空题
B.12 C.34 D.1234
1.以下代码是对冒泡法排序(升序)的改进,具体方法为:当某一趟比较中没有交换发生,则认为排序完毕,而不管比较趟数是否达到N-1次。
Const N=30
Private Sub Form_Click() Dim A(N) As Integer
Dim i As Integer, j As Integer, t As Integer For i = 1 To N
A(i) = Int(Rnd * 99 + 1) Next i
For i = N To 2 Step -1 For j = 1 To (1) If A(j) > A(j + 1) Then
(2) End If Next j Next i
For i = 1 To N (3)
If i Mod 6 = 0 Then Print Next i End Sub
2.下面的过程用来输出如图6.3所示,但不完整,请在横线上填入必要的内容,使其完整。
图6.3 输出结果图
Option Base 1
Private Sub Form_Click() Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 If j <= i Then (1) End If
Print a(i, j); \Next j
(2) Next i End Sub
3.下面的程序用随机函数生成有n(n>10)个数值元素的一维数组,求出这个数组元素的