试题 百分网手机站

计算机二级VB上机重难点题型及答案

时间:2020-09-23 16:13:18 试题 我要投稿

2016年计算机二级VB上机重难点题型及答案

  一、二维数组(矩阵)操作

  1、求矩阵元素的最大值

  Dim a(5, 5) As Integer

  '省略给数组a赋值代码

  '求数组a的最大值

  Max = 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

  Next j

  Next i

  '循环结束后,max获得最大值

  '注意for i循环必须从1开始,不能从2开始

  '若for i循环从2开始,那a(1,2),a(1,3),a(1,4),a(1,5)都无法参加比较

  2、求方阵对角线元素之和、两个对角线元素之和

  假定有如下定义:

  Const N% = 6

  Dim a(1 to N,1 to N) as Integer

  则a数组的主、副对角线元素分别为:

  1.主对角线元素:a(1,1)、a(2,2)、…a(i,i)…a(N,N),“左上-右下”元素,即元素行、列下标相同;

  2.副对角线元素:a(1,N)、a(2,N - 1)、…a(i,N – i + 1)…a(N,1),“右上-左下”元素,即第1行最后一个、第2行倒数第2个……第i行倒数第i个元素。

  黑色线条表示的是主对角线,红色线条表示的副对角线

  Sum1 = 0 '获得主对角线之和

  Sum2 = 0 '获得副对角线之和

  For i = 1 To N

  For j = 1 To N

  If i = j Then '求主对角线元素之和

  Sum1 = Sum1 + a(i, j)

  End If

  If i + j = N + 1 Then '求副对角线元素之和

  Sum2 = Sum2 + a(i, j)

  End If

  Next j

  Next i

  3、列与列互换,如第2列和第4列互换

  For i = 1 To N

  t = a(i, 2)

  a(i, 2) = a(i, 4)

  a(i, 2) = t

  Next i

  注意:a(i, 2)表示第2列的数组元素,a(i,4)表示第4列的数组元素,如果是第2行与第4行互换,则可用a(2, i)表示第2行的数组元素,a(4,i)表示第4行的数组元素。

  4、二维数组每行最大值及其在该行中的位置

  Dim a(20, 5) As Integer '定义20行5列的矩阵

  For i = 1 To 20

  Max = a(i, 1) '假设该行第一个数是最大值初值

  maxi = 1 '获得假设初值的列下标

  For j = 1 To 5

  If a(i, j) > Max Then Max = a(i, j): maxi = j

  Next j

  Print "第"; i; "行最大值"; Max, "在该行的"; maxi; "位置"

  Next i

  注意:该题还可以扩展为求所有行最大值平均值、各行平均数的最大值、各行最小数的平均值;每行在某个范围内(如小于100)元素值之和、平均值;每行的偶数最大值、奇数最小值等。

  5、矩阵四周围元素之和,能被某数整除的个数

  Dim a(7, 7) As Integer

  如上声明的数组a,对数组a而言其四周围的元素即为第一行、第七行、第一列和第七列的数组元素。

  第一行数组元素满足a(1,j),j从1到7

  第七行数组元素满足a(7,j),j从1到7

  第一列数组元素满足a(i,1),i从1到7

  第七列数组元素满足a(i,7),i从1到7

  Sum=0

  For i = 1 To 7

  For j = 1 To 7

  If i = 1 Or i = 7 Or j = 1 Or j = 7 Then

  Sum = Sum + a(i, j)

  End If

  Next j

  Next i

  二、字符(单词)操作

  1、统计文本框中数字、大写字母、小写字母个数

  每次取出一个字符,利用ASCII码值进行判断,

  数值0~9的ASCII值范围是:48~57 或 Asc("0")~Asc("9")

  大写字母A~Z的ASCII值范围是:65~90 或 Asc("A")~Asc("Z")

  小写字母a~z的ASCII值范围是:97~122 或 Asc("a")~Asc("z")

  For i = 1 To Len(Text1)

  s = Mid(Text1, i, 1)

  If Asc(s) >= 48 And Asc(s) <= 57 Then

  ’是数值

  ElseIf Asc(s) >= 65 And Asc(s) <= 90 Then

  ’是大写字母

  ElseIf Asc(s) >= 97 And Asc(s) <= 122 Then

  ’是小写字母

  End If

  Next i

  注意:与该题类似的还有,统计给定字母的出现次数,此时循环中的if判断条件改成s与该字母的比较即可;判断文本框中输入的是数字信息还是非数字信息等。

  2、统计文本中某单词出现的次数、平均长度、最长单词见上机教程第十三讲考点2单词操作

  ’统计文本s中单词this出现的次数

  For i = 1 To Len(s) ’对字符串内所有字符处理

  c = Mid(s, i, 1) ’取字符

  If c <> " " Then ’不为空格字符

  word = word + c ’将该字符连接在单词中

  Else ’若为空格字符

  If word= "this" then ’如果是this单词,对该单词个数计数

  n = n + 1 ’单词个数计数

  End if

  word = "" ’存下一个单词前,将变量word清空

  End If