已知在4行3列的全局数组score(4,3)中存放了4个学生3门课程的考试成绩(均为整数)。现需要计算每个学生的总分,某人编写程序如下: Option Base 1 Private Sub Command1_Click()   Dim sum As Int

admin2020-02-27  32

问题 已知在4行3列的全局数组score(4,3)中存放了4个学生3门课程的考试成绩(均为整数)。现需要计算每个学生的总分,某人编写程序如下:
Option Base 1
Private Sub Command1_Click()
  Dim sum As Integer
  sum=0
  For i=1 To 4
    For j=1 To 3
      sum=sum+score(i, j)
    Next j
    Print "第" & i & "个学生的总分是:"; sum
  Next i
End Sub
运行此程序时发现,除第1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。以下修改方案中正确的是(  )。

选项 A、把外层循环语句For i=1 To 4改为 For i=1 To 3内层循环语句For j=1 To 3 改为 For j=1 To 4
B、把sum=0 移到For i=1 To 4 和 For j=1 To 3 之间
C、把sum=sum+score(i, j)改为sum=sum+score(j, i)
D、把sum=sum+score(i, j)改为 sum=score(i, j)

答案B

解析 程序变量sum的值在开始计算第2个学生的总成绩时,仍保留着第一个学生的总成绩,这样会把前面学生的总成绩计算进去,显然不对。因此,sum=0这一句应该放在第1层For循环体的第一句,即For i=1 to 4和for j=1 to 3之间。
转载请注明原文地址:https://kaotiyun.com/show/iDTp777K
0

最新回复(0)