1、第7章 习题讨论,退出,单选题,多选题(无),填空题,编程题,补充1. 假设已通过下列Sub语句定义了SubA过程。若要调用该过程,可以采用_语句。Sub SubA(x As Integer)A. Print SubA(20) B. Call SubA(50000)C. y = SubA(700) D. SubA 32000,答案:D,单选题,2下面程序运行的结果是Private Sub Form_Load()ShowDim x As Integer, x1 As Integerx = 5: x1 = 4Call Ktest(x, x1)Print x; x1;Call Ktest(x, x1
2、)Print x; x1End SubSub Ktest(ByVal t As Integer, t1 As Integer)t = t + 5t1 = t1 + t * 2End SubA. 10 14 25 39 B. 5 24 44 5C. 5 24 5 44 D. 10 24 15 44,答案:C,在窗体上已经建立了一个文本框Text1和一个命令按钮(Command1),运行程序后单击命令按钮,则在文本框Text1中显示的内容是Dim a As Integer 模块级变量Private Sub Command1_Click()Dim b As Integer, c As Integer
3、a = 2: b = -1Call MySub(b, c)c = c + b:Call MySub(c, b)a = a + cText1.Text = a + b + cEnd SubSub MySub(ByVal x, y)Dim b As Integera = x + a + bx = 2 * a + xy = x + 1End Sub,答案:10,填空补充题,填空补充题,1. 设计一个能检查是否为数字字符串的通用过程,调用该过程检验三个文本框中输入的字符是否都是数字。如果都是数字,则求这三个数字之和并把结果显示在第4个文本框中。,编程第1题,编程及上机调试 第1题,Private Su
4、b Command1_Click()Dim a As String, b As String, c As Stringa = Trim(Text1.Text)b = Trim(Text2.Text)c = Trim(Text3.Text)If che(a) And che(b) And che(c) ThenText4.Text = Val(a) + Val(b) + Val(c)ElseText4.Text = “存在非数字字符“End If End Sub,Function che(x As String) As Booleanche = TrueFor k = 1 To Len(x)s
5、= Mid(x, k, 1)If s “9“ Thenche = FalseExit ForEnd IfNext k End Function,2 .编写一个标准模块,该模块包含一个能比较3个数大小和送回大数的Sub过程。调用该过程来求6个数的最大数。利用文本框控件数组和文本框来分别输入数据和输出最大数。,编程及上机调试 第2题,Private Sub Command1_Click()a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)d = Val(Text4.Text)e = Val(Text5.Text)f = Val(Tex
6、t6.Text)Call max(a, b, c, m)Call max(m, d, e, m)Call max(m, f, f, m)Text7.Text = m End Sub,标准模块文件 Sub max(x, y, z, m) 比较三个数大小并返回大数If x y Then m = x Else m = yIf m z Then m = z End Sub,编写程序时一定要考虑到程序的优化问题.衡量程序优化的基本标准是采用好的算法、结构合理、简明易读、运行时间短和占用内存空间少。下面给出一个求解某个问题的程序,但运行时间比较长,请读者修改程序,并求出正确的答案。把324表示为3个加数之
7、和,使第一个加数能被23整除,第二个加数能被19整除,第三个加数能被43整除,求出这3个加数等于多少?,编程及上机调试,Private Sub Form_Load()showFor a = 1 to 324For b = 1 to 324For c = 1 to 324if (a Mod 23=0) And (b Mod 19=0) And (c Mod 43=0) _And (a+b+c=324) ThenPrint “这三个加数是:”;a,b,cEnd ifNext c,b,a End Sub,Private Function fun(ByVal m As Integer)If m Mod
8、 2 = 0 Thenfun = 2Elsefun = 1End If End Function Private Sub Command1_Click()Dim i As Integer, s As Integers = 0For i = 1 To 5s = s + fun(i)NextPrint s End Sub 程序运行后,单击命令按钮,在窗体上显示的是 A)6 B)7 C)8 D)9,答案:B,单选题(29)在窗体上画出一个名称为command1的命令按钮,然后编写如下通用过程和命令按钮的事件过程:,(34)在窗体上画一个名称为command1的命令按钮,然后编写如下程序: Dim s
9、w As Boolean Function func(X As Integer) As IntegerIf X 20 ThenY =XElseY = 20 + XEnd Iffunc = Y End Function,单选题,Private Sub Form_MouseDown(Button As Integer, Shift As Integer,X As Single, Y As Single)sw = False End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As
10、Single)sw = True End Sub Private Sub Command1_Click()Dim intnum As Integerintnum = InputBox(“)If sw ThenPrint func(intnum)End If End Sub程序运行后,单击命令按钮,将显示一个输入对话框,如果在对话框中输入25,则程序的执行结果为 A)输出0 B)输出25 C)输出45 D)无任何输出,答案:D,单选题,Public Sub fun(a() As Integer, x As Integer)For i = 1 To 5x = x + a(i)Next i End
11、Sub 在窗体上画一个名称为text1的文本框和一个名为command1的命令按钮。然后编写如下的事件过程: Private Sub Command1_Click()Dim arr(5) As Integer, n As IntegerFor i = 1 To 5arr(i) = i + 1Nextfun arr, nText1.Text = Str(n) End Sub程序运行后,单击命令按钮,则在文本框中显示的内容是 A)30 B)25 C)20 D)15,答案:C,单选题(35)设有如下通用过程,(11) 在名称为form1的窗体上画一个文本框,其名称为text1,在属性窗口中把该文本框
12、的multiline属性设置为true,然后编写如下的事件过程:Private Sub Form_Click()Open “d:textsmtext1.txt“ For Input As #1Do While Not _Line Input #1, aspect$whole$ = shole$ + aspect$ + Chr$(13) + Chr$(10)LoopText1.Text = whole$Close #1Open “d:testsmtext2.txt“ For Output As #1Print #1,_Close #1 End Sub上述程序的功能是,把磁盘文件smtext1.txt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt。请填空。,答案: eof(1) Whole$,填空题,Private Sub Form_Load()ShowFor i = 1 To 11Print Tab(20 - i);For j = 1 To i - 1If j 9 Then i = kPrint Chr(k + 47);Next iNext j End Sub,