1、VB习题库 VB程序设计练习题一 程序改错题1 启动考生文件夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是: 从键盘上输入N(0N N M = M + 1 S = S * M*found*End doMODI1.Print N!=; SEnd Sub2启动考生文件夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:为10行10列的二维数组A赋值,数组A每一维的下界均为0。请找出程序中的错误并做修改,调试运行后在MOD
2、I1.FRM窗体上显示出结果。改错要求:程序中共有三个错误,请修改*found*下面的错误。注意:要求在指定位置修改,不得增加或删减程序行。MODI1.BAS的内容是:Sub Main() Dim i As Integer, j As Integer*found* Dim A(1 TO 10, 1 TO 10) For I=0 TO 9 For J=0 TO 9 A(I,J)=I*J Modi1.Print TAB(J*4);A(I,J); *found* Next i Modi1.Print *found* Next jEnd Sub3 启动考生文件夹下的工程文件MODI1.VBP,其中含有
3、MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是: 程序运行时输出1 2 3 6。请找出程序中的错误并做修改,调试运行后在MODI1.FRM窗体上显示出结果。 改错要求:程序中共有三个错误,请修改*found*下面的错误。 注意:要求在指定位置修改,不得增加或删减程序行。MODI1.BAS的内容是:Sub Main Dim S, K, X As Integer S = 0 For K = 1 To 3*found* CALL SUBA(K) S = S + x Modi1.Print x; Next KMODI1.Print SEnd SubFu
4、nction SUBA(K) As Integer Select Case K Case 1 x = 1 Case 2 x = 2*found* ELSE x = 3*found* End SUBA = xEnd Function 4 启动考生文件夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:调用子程序计算阶乘10!。请找出程序中的错误并做修改,调试运行后在MODI1.FRM窗体上显示出结果。 改错要求:程序中共有三个错误,请修改*found*下面的错误。 注意:要求在指定位置修改,不得增加或删减程序
5、行。MODI1.BAS的内容是:Sub Main() Dim m, n As Integer*found* Dim s As IntegerCall multi(10, s) MODI1.Print 10!=; sEnd SubPrivate Sub multi(n, s)*found* m = 0, s = 1 Do While m = 0 Then*found* Modi1.Print X1=; 【2】*found* Modi1.Print X2=; 【3】End IfIf D 0 Then Modi1.Print X1=; P; +; Q; i Modi1.Print X2=; P; -
6、; Q; iEnd IfEnd Sub 5 启动考生文件夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:求函数f(x)的值。当自变量x0时,函数值为0;当自变量0x a Modi1.Print sum End Sub10 启动考生文件夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:在7个数中除去最大数和最小数后,求剩余5个数的平均值。 请在【1】、【2】、【3】处将程序补充完整,调试运行后在MODI1.FRM窗体
7、上显示出结果。注意: 不得增行或删行, 也不得更改相关的程序结构!MODI1.BAS的内容是:Sub Main() Dim max_a as double, min_a as double Dim sum as double,ave as double /定义数组a并赋值/ a=array(7.5,7.8,9.1,8.7,9.2,8.5,8.1) max_a=0 : min_a=10 For I=0 to 6 sum=sum+a(i) If min_aa(i) Then *found* 【1】 End If *found* If 【2】 Then max_a=a(i) End If Next
8、I *found* ave=(sum-max_a-min_a)【3】 Modi1.print ave End Sub11 启动考生文件夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:将数组A的10个元素从小到大排序。 请在【1】、【2】、【3】处将程序补充完整,调试运行后在MODI1.FRM窗体上显示出结果。注意: 不得增行或删行, 也不得更改相关的程序结构!MODI1.BAS的内容是:Option Base 1Sub Main() Dim i As Integer, j As Integer A =
9、Array(1, 12, 3, 14, 7, 6, 9, 4, 18, 8) For i = 1 To 10 Modi1.Print A(i); Next i Modi1.Print *found* For i = 1 To 【1】 *found* For j = 【2】 To 10 *found* If A(i) 【3】 A(j) Then t = A(i) A(i) = A(j) A(j) = t End If Next j Next i For i = 1 To 10 Modi1.Print A(i); Next iEnd Sub 12 启动考生文件夹下的工程文件MODI1.VBP,其中
10、含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:建立一个55阶矩阵,该矩阵两条对角线上的元素为1,其余元素为0,请将矩阵打印出来。请在【1】、【2】、【3】处将程序补充完整,调试运行后在MODI1.FRM窗体上显示出结果。 注意: 不得增行或删行, 也不得更改相关的程序结构!MOD1.BAS的内容是:Sub main() Dim s(5, 5) As Integer For N = 1 To 5 For M = 1 To 5*found* If 【1】 Or N+M=6 Then s(N, M) = 1 Else*found* 【2】 En
11、d If Next M Next N For N = 1 To 5*found* For M = 1 To 【3】 Modi1.Print Tab(M * 3); s(N, M); Next M Modi1.Print Next NEnd Sub13 启动考生文件夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:某校有N个学生,年龄在17到25岁之间,统计各年龄的学生人数。请在【1】、【2】、【3】处将程序补充完整,调试运行后在MODI1.FRM窗体上显示出结果。 注意: 不得增行或删行, 也不得更改相关
12、的程序结构!MOD1.BAS的内容是:Sub main() Dim age As Integer, i As Integer, n As Integer Dim A(17 To 25) As Integer For i = 17 To 25 A(i) = 0 Next i n = Val(InputBox(请输入学生人数:) *found* For i = 1 To 【1】 age = Val(InputBox(请输入每个学生的年龄:) *found* 【2】 Next i *found* For i = 【3】 MODI1.Print A(i); Next iEnd Sub14 启动考生文件
13、夹下的工程文件MODI1.VBP,其中含有MODI1.FRM窗体与MODI1.BAS模块,模块MODI1.BAS中过程MAIN()的功能是:已知10道选择题的正确答案依次为A、C、B、D、A、A、B、C、D、D,每题2分;利用InputBox对话框输入学生答案,计算出该生的得分,当输入字符E或e时可提前结束输入。请在【1】、【2】、【3】处将程序补充完整,调试运行后在MODI1.FRM窗体上显示出结果。 注意: 不得增行或删行, 也不得更改相关的程序结构!MOD1.BAS的内容是:Option Base 1Sub main() Dim a, score As Integer, i As Integer Dim x As String, st As String a = Array(A, C, B, D, A, A, B