Рубрики

ВОРОТА | GATE-CS-2014- (Set-3) | Вопрос 20

Пусть A — квадратная матрица размером nx n. Рассмотрим следующую программу. Каков ожидаемый результат?

C = 100

for i = 1 to n do

    for j = 1 to n do

    {

        Temp = A[i][j] + C

        A[i][j] = A[j][i]

        A[j][i] = Temp - C

    

for i = 1 to n do

    for j = 1 to n do

        Output(A[i][j]);

(A) Сама матрица A
(B) Транспонировать матрицы A
(C) Добавление 100 к верхним диагональным элементам и вычитание 100 из диагональных элементов A
(D) Ничего из вышеперечисленного

Ответ: (А)
Объяснение: Если мы посмотрим на внутренние операторы первых циклов, мы можем заметить, что операторы меняют местами A [i] [j] и A [j] [i] для всех i и j. Поскольку цикл выполняется для всех элементов, каждый элемент A [l] [m] будет заменен дважды: один раз для i = l и j = m, а затем для i = m и j = l. Обмен дважды означает, что матрица не меняется.

Источник: http://espressocode.top/data-structures-algorithms-set-34/
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2014- (Set-3) | Вопрос 20

0.00 (0%) 0 votes