文章目录
六、有一个5*5的矩阵,各元素都是随机产生的两位整数,找出最大值、最小值以及它们的下标并求出平均值。如下图所示输出。
八、单击窗体,生成0~10之间的随机整数矩阵,分别放在两个图画框内,求两个矩阵之和放入第三个图画框内。
九、编写一个程序,用随机函数产生4行5列的两位整数并输出。然后分别实现第1行和第三行数据交换和第2行和第4行交换,输出交换前和交换后的结果。(利用图片框)
十、在文本框输入大于10的偶数,找出最接近这个数的素数,输出在窗体上
前言
备考技能考时的一些练习题
题目难度较大
答案都是小编自己打出来的,也需会有错。
内容
一、编写程序,点击相应的按钮在图片框中输出相对应的图形。
答案:
Private Sub Command1_Click()
Dim i As Integer
P1.Cls
For i = 1 To 6
P1.Print Space(10 - i); String(6, "*"); Space(2 * i - 2); String(6, "*")
Next
End Sub
Private Sub Command2_Click()
P1.Cls
For i = 1 To 6
P1.Print Space(10 - i); String(6, CStr(Chr(64 + i))); Space(2 * i - 2); String(6, CStr(Chr(64 + i)))
Next ‘转换为字符串就可以用string输出了。
End Sub
二、界面如图所示。编写程序实现图片框输出图形
答案:
Private Sub Command1_Click()
Dim i As Integer
P1.Cls
P1.Print
s = 0
b = 1
For i = 1 To 5
If i = 2 Then
s = s + 1
End If
If i >= 3 Then
b = b + 2
End If
P1.Print Space(7 - i); "*"; Space(b); String(s, "*")
Next
For i = 1 To 3
P1.Print Space(i + 2); "*"; Space(b - 2); String(1, "*")
b = b - 2
Next
P1.Print Space(6); "*"
End Sub
Private Sub Command2_Click()
P1.Cls
Dim i As Integer
P1.Print
s = 0
b = 1
For i = 1 To 5
If i = 2 Then
s = s + 1
End If
If i >= 3 Then
b = b + 2
End If
P1.Print Space(7 - i); String(1, CStr(Chr(64 + i))); Space(b); String(s, CStr(Chr(64 + i)))
Next
For i = 1 To 3
P1.Print Space(i + 2); String(1, CStr(Chr(69 - i))); Space(b - 2); String(1, CStr(Chr(69 - i)))
b = b - 2
Next
P1.Print Space(6); "A"
End Sub
三、界面如图所示。编写程序实现图片框输出图形
答案:
Private Sub Command1_Click()
Dim i, j As Integer
P1.Cls ‘清除图片框内容
s = 0
For i = 1 To 6 ‘定义6行
P1.Print Space(24 - (i * 3)); ‘定义前面的空格数
s = I ‘定义变量s,用于输出靠后的降序数;
For j = 1 To 2 * i – 1 ‘定义每行的个数
If j <= i Then ‘当小于等于改行的i时,
P1.Print j; ‘就升序输出1到i
Else
s = s – 1 ‘否则,就s=s-1,s就会每一次循环就减一
P1.Print s; ‘就能降序输出到1了
End If
Next
s = 0 ‘s记得到最后要重置为0
P1.Print
Next
End Sub
Private Sub Command2_Click()
Dim i As Integer
Dim j As Integer
P1.Cls
For i = 1 To 6
P1.Print Space(24 - i * 3);
s = s + i
For j = 1 To 2 * i - 1
If j <= i Then
P1.Print Chr(64 + j) & " ";
Else
s = s - 1
P1.Print Chr(s) & " ";
End If
Next
s = 64
P1.Print
Next
End Sub
四、界面如图所示。编写程序实现图片框输出图形
答案:
Private Sub Command1_Click()
Dim i, j As Integer
P1.Cls
For i = 1 To 6
For j = i To 1 Step -1
P1.Print j;
Next
P1.Print
Next
End Sub
Private Sub Command2_Click()
Dim i, j As Integer
P1.Cls
For i = 6 To 1 Step -1
P1.Print Space(18 - i * 3);
For j = 1 To i
P1.Print j;
Next
P1.Print
Next
End Sub
Private Sub Command3_Click()
Dim i, j As Integer
P1.Cls
For i = 6 To 1 Step -1
P1.Print Space(3 * (i - 1));
For j = i To 6
P1.Print j;
Next
P1.Print
Next
End Sub
Private Sub Command4_Click()
Dim i, j As Integer
P1.Cls
For i = 6 To 1 Step -1
For j = i To 1 Step -1
P1.Print j;
Next
P1.Print
Next
End Sub
五、(多项选择和多项删除)
答案:(首先把列表框的sorted的属性改为true)按字母排列
答案:
Private Sub Command1_Click()
Dim i As Integer
s = 0
For i = (List1.ListCount - 1) To 0 Step -1 ‘从后往前就不会改变索引值了。
If List1.Selected(i) = True Then
List2.AddItem List1.List(i)
List1.RemoveItem i
End If
Next
End Sub
Private Sub Command2_Click()
For i = (List1.ListCount - 1) To 0 Step -1 ‘先把所有的添加进list1中
List2.AddItem List1.List(i)
Next
For i = (List1.ListCount - 1) To 0 Step -1 ‘再删除所有
List1.RemoveItem i
Next
End Sub
Private Sub Command3_Click()
Dim i As Integer
s = 0
For i = (List2.ListCount - 1) To 0 Step -1
If List2.Selected(i) = True Then
List1.AddItem List2.List(i)
List2.RemoveItem i
End If
Next
End Sub
答案(2)
答案:
Private Sub Command5_Click()
For i = 0 To List1.ListCount – 1 ‘首先定义i循环从0到list1的最后一项的索引值。
If List1.Selected(i) = True Then ‘如果被选择就添加。(跟常规一样)
List2.AddItem List1.List(i)
End If
Next
For i = (List1.ListCount - 1) To 0 Step -1 ‘从最后一项的索引值到第一项的索引值,从后
If List1.Selected(i) = True Then ‘往前,这样就不会导致前面被删除导致索引值
List1.RemoveItem I ‘改变。这样就可以删除了。
End If
Next
End Sub
六、有一个5*5的矩阵,各元素都是随机产生的两位整数,找出最大值、最小值以及它们的下标并求出平均值。如下图所示输出。
答案:
Dim a(1 To 5, 1 To 5)
Private Sub Command1_Click()
Dim i, j As Integer
For i = 1 To 5
For j = 1 To 5
a(i, j) = Int(Rnd * (99 - 10 + 1) + 10)
P1.Print CStr(a(i, j)) & " ";
Next
P1.Print
Next
End Sub
Private Sub Command2_Click()
Dim i, j, s As Integer
s = 0
Min = a(1, 1)
For i = 1 To 5
For j = 1 To 5
If a(i, j) > Max Then
Max = a(i, j)
End If
If a(i, j) < Min Then
Min = a(i, j)
End If
s = s + a(i, j)
Next
Next
For i = 1 To 5
For j = 1 To 5
If a(i, j) = Max Then
P2.Print "MAX=" & Max
P2.Print " 行 " & i & " " & "列 " & j
End If
Next
Next
For i = 1 To 5
For j = 1 To 5
If a(i, j) = Min Then
P2.Print "MIN=" & Min
P2.Print " 行 " & i & " " & "列 " & j
End If
Next
Next
P2.Print "平均值= " & (Int((s / 25) * 10)) / 10
End Sub
七、计算:n+nn+nnn+nnn......
例:输入a=1,n=5,输出1+11+111+1111+11111=12345
答案:
Private Sub Command1_Click()
Dim s As Single
Dim b As String
Dim i, j As Integer
Sum = 0
a = Val(Text1.Text)
n = Val(Text2.Text)
For i = 1 To n
For j = 1 To i
b = b & CStr(a)
Next
c = c & b & "+"
Sum = Sum + Val(b)
If i = n Then
Print Left(c, Len(c) - 1) & "=" & CStr(Sum)
End If
b = ""
Next
End Sub
八、单击窗体,生成0~10之间的随机整数矩阵,分别放在两个图画框内,求两个矩阵之和放入第三个图画框内。
答案:
Dim a(1 To 5, 1 To 4)
Dim b(1 To 5, 1 To 4)
Dim c(1 To 5, 1 To 4)
Private Sub Command1_Click()
For i = 1 To 5
For j = 1 To 4
c(i, j) = a(i, j) + b(i, j)
P3.Print c(i, j);
Next
P3.Print
Next
End Sub
Private Sub Form_Click()
Dim i, j As Integer
Randomize
For i = 1 To 5
For j = 1 To 4
a(i, j) = Int(Rnd * (10 - 0 + 1) + 0)
P1.Print a(i, j);
Next
P1.Print
Next
For n = 1 To 5
For m = 1 To 4
b(n, m) = Int(Rnd * (10 - 0 + 1) + 0)
P2.Print b(n, m);
Next
P2.Print
Next
End Sub
九、编写一个程序,用随机函数产生4行5列的两位整数并输出。然后分别实现第1行和第三行数据交换和第2行和第4行交换,输出交换前和交换后的结果。(利用图片框)
答案:
Private Sub Command1_Click()
For i = 1 To 4
For j = 1 To 5
If i = 1 Then
t(j) = a(i, j)
a(i, j) = a(3, j)
End If
If i = 3 Then
a(i, j) = t(j)
End If
If i = 2 Then
m(j) = a(i, j)
a(i, j) = a(4, j)
End If
If i = 4 Then
a(i, j) = m(j)
End If
Next
Next
For i = 1 To 4
For j = 1 To 5
P2.Print a(i, j);
Next
P2.Print
Next
End Sub
Private Sub Form_Load()
Dim i, j As Integer
For i = 1 To 4
For j = 1 To 5
a(i, j) = Int(Rnd * (99 - 10 + 1) + 10)
P1.Print a(i, j);
Next
P1.Print
Next
End Sub
十、在文本框输入大于10的偶数,找出最接近这个数的素数,输出在窗体上
答案:
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
min = 10
b = 0
a = Val(Text1.Text)
If a > 10 And a Mod 2 = 0 Then
For i = 2 To Val(a + 10)
f = 0
For j = 2 To i - 1
If i Mod j = 0 Then
f = 1
Exit For
Else
f = 0
End If
Next
If f = 0 Then
If Abs(a - i) < min Then
min = Abs(a - i)
b = i
End I
End If
Next
Print b
Else
MsgBox "请输入大于10的偶数"
End If
End Sub
总结:这些题难度比较大,考试出的难度大概率比这个小。多练习多做题考试没问题。