有以下程序: #include #define N 4 main() {int x[N][N]={0},i,j,k; for(i=0;i<N/2;i++) {for(j=i;j<N一i;j++) x[i][j]=x[N一i一1][j]=i+1; for(k

admin2021-04-28  9

问题 有以下程序:
#include
#define N 4
main()
{int x[N][N]={0},i,j,k;
for(i=0;i<N/2;i++)
{for(j=i;j<N一i;j++)
x[j]=x[N一i一1][j]=i+1;
for(k=i+l;k<N—i一1;k++)
x[k]=x[k][N—i一1]=i+1;
}
for(j=0;j<N;j++)
printf(’’%2d’’,x[1][j]);
printf(’’\n’’);
}
执行后的输出结果是(  )。

选项 A、2 2 2 2
B、2 1 1 2
C、1 1 1 1
D、1 2 2 1

答案D

解析 本题程序需要输出二维数组x中第二行的各个元素值,即x[1]这个一维数组的元素值。只有在两种情况下才会对x[1]中的元素赋值:①外层for循环中i=0时,内层第二个for循环的k取值为1.此时x[k]=x[1][0]=i,x[k][N—i一1]=x[1][3]=1;②外层for循环中i=1时,内层第一个for循环的i取值为1、2,x[j]=x[1][j]=2,即x[1][1]=2,x[1][2]=2。除了这两种情况,其他情况不会修改x[1]中的值,所以最终x[1]各个元素的值为:1、2、2、1。
转载请注明原文地址:https://kaotiyun.com/show/TUtp777K
0

最新回复(0)