单选题 [程序说明] 下面的程序将16个整数按如下方阵存入数组X(4,4)中:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
求出主对角线上元素之和存入内存变量Z1,再求出另一对角线上元素之和存入内存变量Z2。
[程序]
SET TALK OFF
DIMENSION X(4,4)
W=0
J=1
DO WHILE J<=4
I=1
DO WHILE I<=4
W=W+1
______
I=I+1
ENDDO
J=J+1
ENDDO
STORE O TO Z1,Z2
I=1
DO WHILE I<=4
J=1
DO WHILE J<=4
IF ______
Z1=Z1+X(I,J)
ENDIF
IF ______
Z2=Z2+X(I,J)
ENDIF
J=J+1
ENDDO
I=I+1
______
? "Z1=",Z1
? "Z2=",Z2
SET TALK ON
【正确答案】 D
【答案解析】[解析] 前两个DO WHILE循环是给数组X(4,4)赋值。DO WHILE J<=4…ENDDO是控制数组的列元素,D0 WHILE I<=4…ENDDO是控制数组的行元素,第1空功能是把变量W值赋给数组X(I,J)。
【正确答案】 B
【答案解析】[解析] 题意要求把主对角线上元素之和存入内存变量Z1,主对角线上的行标列标相同,第一个IF语句判断I、J是否相等,若I=J,则求X(I,J)元素的和。
【正确答案】 C
【答案解析】[解析] 另一对角线上的行标、列标之和为5,即X(1,4)、X(2,3)、X(3,2)、X(4,1)。第二个IF语句判断足I+J是否等于5,若I+J=5,则把另一对角线上元素之和存入内存变量Z2。所以第3空应填I+J=5。
【正确答案】 A
【答案解析】[解析] 此处用了"DO WHILE…ENDDO"的循环结构。