📜  门| GATE-IT-2004 |第 59 题

📅  最后修改于: 2021-09-25 05:10:03             🧑  作者: Mango

考虑下面的 C 程序,它应该计算给定的 4 x 4 矩阵 M 的转置。请注意,程序中有一个 X 表示一些遗漏的语句。选择正确的选项来替换程序中的 X。

#include
#define ROW 4
#define COL 4
int M[ROW][COL] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
main()
{
    int i, j, t;
    for (i = 0; i < 4; ++i)
    {
        X
    }
    for (1 = 0; i < 4; ++i)
        for (j = 0; j < 4; ++j)
            printf ("%d", M[i][j]);
}
A)

 

B)
for(j = 0; j < 4; ++j){
     M[i][j] = t;
     t = M[j][i];
     M[j][i] = M[i][j];
}

 

C)
for(j = i; j < 4; ++j){
     t = M[i][j];
     M[i][j] = M[j][i];
     M[j][i] = t;
}

 

D)
for(j = i; j < 4; ++j){
     M[i][j] = t;
     t = M[j][i];
     M[j][i] = M[i][j];
}

 

(一) A
(乙)
(C)
(四)答案: (C)
解释:

  • 要计算转置j 需要以 i 开头,所以 A 和 B 是错误的
  • 在 D 中,给定语句是错误的,因为临时变量 t 需要分配一些值,反之亦然
    for(j = 0; j < 4; ++j){
         t = M[i][j];
         M[i][j] = M[j][i];
         M[j][i] = t;
    }

所以答案是C

在解决方案中查看正确的选项 C:https://ide.geeksforgeeks.org/r7wbP6

这个问题的测验