度制,等等。
(2)修改该程序,体会其他数学函数、字符运算函数的功能以及使用规则。
第3章 结构化程序设计与数组
习 题
一、判断题
1.若行If语句中逻辑表达式值为True,则关键字Then后的若干语句都要执行。 2.在行If语句中,关键字End If是必不可少的。 3.块If结构中的Else子句可以缺省。
4.For/Next语句中,循环控制变量只能是整型变量。 5.For/Next语句中,“Step 1”可以缺省。
6.For/Next循环正常(未执行Exit For)结束后,控制变量的当前值等于终值。 7.在循环体内,循环变量的值不能被改变。
8.Do/Loop While结构中的循环体,至少被执行一次。
9.Do/Loop Until结构的循环,是“先判断、后执行(循环体)”的循环结构。 10.使用On Error GoTo语句并编写相应程序,可以捕获程序中的编译错误。 二、选择题
1.下列关于Select Case之测试表达式的叙述中,错误的是 。
A、只能是变量名 B、可以是整型 C、可以是字符型 D、可以是浮点类型 2.下列关于Select Case的叙述中,错误的是 。 A、Case 10 To 100
表示判断Is是否介于10与100之间
B、Case \ 表示判断Is是否和\、\两个字符串中的一个相同 C、Case \ 表示判断Is是否为大写字母X
D、Case -7,0,100 表示判断Is是否等于字符串\,0,100\3.由“For i=1 To 16 Step 3”决定的循环结构被执行( )次。 A、4
B、5
C、6
D、7
4.若i的初值为8,则下列循环语句的循环次数为 次。 Do While i<=17 i=i+2 Loop A、3次 A、4
B、4次 B、5
C、5次 C、6
D、6次 D、0
5.由“For i=1 To 9 Step -3”决定的循环结构被执行 次。
6.窗体通用部分的语句“Option Base 1”,决定本窗体中数组下标界 。
A、下界必须为1 B、缺省的下界为1 C、下界必须为0 D、缺省的下界为0 三、填空题
1.若x>y,则交换变量x、y值的行If语句写作 。 2.Select Case结构中测试表达式的值,在其表达式列表中用 表示。
3.用InputBox函数为数组B所有元素B(0)、B(1)、…、B(9)依次赋值的语句写作 。 4.声明动态数组的语句是 语句。
5.语句“Dim c As ”定义的变量c,可用于存放控件的Caption的值。 6.用Dim c(2 to 5) As Integer 语句定义的数组占用 个字节的内存空间。 四、程序阅读题(写出下列程序的运行结果) 程序1. 请写出单击窗体后,窗体上的显示结果。 Private Sub Form_Click()
Dim a As Integer, s As Integer a = 5: s = 0 Do While a< = 0
s = s + a: a = a - 1 Loop Print s; a End Sub
程序2. 请写出输入8、9、3、0后窗体上的显示结果。 Private Sub Form_Click()
Dim i As Integer, sum As Integer, m As Integer Do
m = InputBox(\请输入m\累加和等于\ If m = 0 Then Exit Do sum = sum + m Loop Print sum End Sub
程序3. 请写出单击窗体后,窗体上的显示结果。 Private Sub Form_Click() Dim a(5) As Byte, i As Byte a(0) = 1 For i = 1 To 5
a(i) = a(i - 1) + i: Print a(i); Next i End Sub
程序4. 请写出单击窗体后,窗体上的显示结果。 Private Sub Form_Click()
Dim a(5, 5) As Byte, i AsByte, j As Byte For i = 1 To 5 : For j = 1 To 5 a(i, j) = i * j Next j, i
For i = 1 To 5 : Print a(i, i); : Next i End Sub
程序5. 请写出单击窗体后,窗体上的显示结果。 Private Sub Form_Click()
Dim i As Integer, j As Integer For i = 1 To 6
Print Spc(6 - i) ;
For j = 1 To (2 * i) - 1: Print \ Print Next i End Sub
程序6. 请写出单击窗体后,窗体上的显示结果。 Private Sub Form_Click()
Dim a(1 To 2,1 To 3) As Integer, i As Integer, j As Integer For i = 1 To 2 For j = 1 To 3
a(i,j) = i + j: Print Tab(j * 5 + 2); a(i,j), Next j Print Next i End Sub
234n?1n?1.【程序说明】下面是一段计算数学表达式 1 ? ? ? ? ? ? ? 1 ? 的程序。
2!3!4!n!Private Sub Form Click()
Dim n As Integer, p As Integer, s As Sigle, q As Integer, i As Integer n = InputBox(\请输入N的值:\ s = 0:p = -1:q = 1 For i = 1 To n
p = -p: q = (1) s = (2) (3)
五、程序填空题
Print s End Sub
2.【程序说明】下列程序求两个正整数m、n的最大公约数。 Private Sub Form_Click()
Dim m As Integer, n As Integer, r As Integer
m = InputBox(\请输入M的值:\请输入N的值:\ Print m; \和\的最大公约数是:\ r = m Mod n
Do Until (1)
m = n: n = r: r = (2) Loop Print n End Sub
3.【程序说明】下列程序用来在窗体上输出如图10-3所示的数据。 Private Sub Form_Click()
Dim a(5, 5) As Byte, i As Byte, j As Byte For i = 1 To 5 For j = 1 To 6 - i a(i, j) = ⑴ Next j, i For i = 2 To 5
For j = ⑵ To 5 a(i,j) = j + i - 6 Next j, i For i = 1 To 5 For j = 1 To 5
Print a(i,j); Next j ⑶ Next i End Sub
4.【程序说明】以下程序产生30个两位随机整数、并按从小到大的顺序存入数组a中,再将其中的奇数按从小到大的顺序在窗体中用紧凑格式输出。
Private Sub Form Click()
Dim a(30) As byte, i as Byte, j As Byte, m As Byte For i = 1 To 30: a(i) = ⑴ : Next i For i = 1 To 29 For j = ⑵
图10-3
1 2 3 4 5 2 3 4 5 2 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4
If a(i) > a(j) Then
m = a(i): ⑶ :a(j) = m End If Next j,i
For i = 1 To 30
If ⑷ Then Print a(i); Next i End Sub 六、程序设计题
1.用InputBox函数输入3个任意整数,按从大到小的顺序输出。 2.编程,输入x值,按下式计算并输出y值。
?x?3?2?xy?f(x)???x?0?3.编程,在窗体上输出九九乘法表。
x?31?x?3 0?x?1x?04.计算下式的和,变量x与n的数值用输入对话框输入。
xx2x3xn
s????...?2!3!4!(n?1)!
5.用近似公式求自然对数的底数e的值,直到前后两项之差小于10-4为止。
1111 e?1????...?1!2!3!n!
6.编程,输入n(n为1位正整数),输出n+1层的杨辉三角形。如n为6时,输出结果如图10-4所示。
图10-4
第4章 函数与过程