程序改错题
- 格式:doc
- 大小:307.50 KB
- 文档页数:81
程序改错题〖第1题〗『程序改错』(1.0分)(题号:451)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:以下程序是单击命令按钮,将用户在组合框中输入' 的某一值,与组合框其他项进行比较,如有相同,' 则将相同表项删除,其他项不动。
'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Command1_click()Dim a As String, i As Integer'**********FOUND**********a = Trim(Combo1.Index)If Len(a) <> 0 Then'**********FOUND**********For i = 0 To Combo1.ListCount'**********FOUND**********If Combo1.List(i) = a Then Combo1.AddItem i Next iEnd IfCombo1.SetFocusEnd SubPrivate Sub Form_Load()Dim i As IntegerFor i = 0 To 9bo1.AddItem iNextEnd Sub答案:1). a = Trim(Combo1.Text)2). For i = 0 To Combo1.ListCount - 13). If Combo1.List(i) = a Then Combo1.RemoveItem i 〖第2题〗『程序改错』(1.0分)(题号:127)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:下面程序可输出如下图形:' *' ***' *****' *******' *********'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()dim m as integer,n as integer,s as string,i as integer,j as integer n = 4m = 1s = "*"For i = 5 To 1 Step -1'**********FOUND**********Print Spc(n)For j = 1 To 2 * m - 1Print s;Next jPrint'**********FOUND**********n = n + 1'**********FOUND**********m = m - 1Next iEnd Sub答案:1). Print Spc(n);2). n = n - 1 或n = - 1+n3). m = ★m ★+★1〖第3题〗『程序改错』(1.0分)(题号:137)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:求s=72+102+132+……822的值。
'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()ClsDim s As LongDim i As Integer'**********FOUND**********s =1'**********FOUND**********For i = 7 To 822s = s + I'**********FOUND**********Next 30Print sEnd Sub答案:1). s =02). For i = 7 To 822 step 303). Next i〖第4题〗『程序改错』(1.0分)(题号:147)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:下面的程序用来产生并输出图示的杨辉三角。
' 1' 1 1' 1 2 1' 1 3 3 1' 1 4 6 4 1' 1 5 10 10 5 1'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Public Sub readin(a() As Integer, n As Integer)Dim i, j As IntegerFor i = 1 To n'**********FOUND**********a(i, n) = 1a(i, 1) = 1Next iFor i = 3 To n'**********FOUND**********For j = 2 To na(i, j) = a(i - 1, j) + a(i - 1, j - 1)Next jNext iEnd SubPublic Sub printf(a() As Integer, n As Integer)Dim i, j As IntegerFor i = 1 To n'**********FOUND**********For j = 1 To nPrint Tab(5 * j + 10); a(i, j);Next jPrintNext iPrintEnd SubPrivate Sub Form_Click()Dim x(10, 10) As IntegerCall readin(x(), 6)Call printf(x(), 6)End Sub答案:1). a(i, i) = 12). For j = 2 To i - 1 或For j = 2 To -1 + i3). For j = 1 To i〖第5题〗『程序改错』(1.0分)(题号:476)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:由输入对话框输入n(设n为大于零且小于30的自然数),' 计算如图1所示的表达式,并在标签框Label1上显示。
'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()Dim n As Integer, sum As Double, k As Integern = Val(InputBox("n=", "请输入自然数n(n>0 且n<30)"))'**********FOUND**********Do While n > 0 Or n < 30n = Val(InputBox("n=", "请重输入"))Loopsum = 0k = 0Do'**********FOUND**********k = sum + ksum = sum + 1 / (k * (k + 1))'**********FOUND**********Loop Until k > nLabel1.Caption = "Sum=" + Str(sum)End Sub答案:1). Do While n <= 0 Or n >= 30 或Do While ★n★<=★0★Or★n>=★302). k = k + 1 或k = 1 + k3). Loop Until k >= n 或Loop Until n <= k〖第6题〗『程序改错』(1.0分)(题号:134)'------------------------------------------------'【程序改错】'题目:程序功能根据输入的学习成绩,分别显示优秀' (90分以上), 良好(75分以上),及格(60分以上)' ,不及格几个等级.'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()ClsDim i As Integeri = InputBox("请输入学习成绩")Select Case I'**********FOUND**********Case 0<I<100MsgBox "成绩应该在0--100之间"'**********FOUND**********Case 90Print "优秀"Case 75 To 90Print "良好"Case 60 To 75Print "及格"'**********FOUND**********CaseMsgBox "不及格", vbCriticalEnd SelectEnd Sub答案:1). Case ★i > 100 ★or★i < 0 或Case ★100 < i ★or★i < 0 或Case ★i > 100 ★or★0>i 或Case ★100 < i ★or★0>i2). Case 90 To 1003). Case else〖第7题〗『程序改错』(1.0分)(题号:133)'------------------------------------------------'【程序改错】'题目:下面程序将10个整数从大到小排序'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()Dim t%, m%, n%, w%dim a(10) as integerFor m = 1 To 10a(m) = Int(10 + Rnd() * 90)Print a(m); " ";Next mPrintFor m = 1 To 9t = m'**********FOUND**********For n =2 To 10'**********FOUND**********If a(t) > a(n) Then n = tNext n'**********FOUND**********If t = m Thenw = a(m)a(m) = a(t)a(t) = wEnd IfNext mFor m = 1 To 7Print a(m)Next mEnd Sub答案:1). For n = ★m★+★1★To 102). If a(t) > a(n) Then t = n 或If a(n) < a(t) Then t = n3). If ★t★<>★m★Then〖第8题〗『程序改错』(1.0分)(题号:461)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:产生30个小于100的成绩随机数,并统计出优、良' 、中等、及格、不及格数的个数,并计算出成绩属' 于优秀段的成绩平均分。