问题
单项选择题
有以下程序:
main()
int a[4][4]=1,4,3,2,,8,6,5,7,,3,7,2,5,,4,8,6,1,),i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i])t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
程序运行后的输出结果是______。
A) 1,6,5,7,
B) 8,7,3,1,
C) 4,7,5,2,
D) 1,6,2,1,
答案
参考答案:A
解析: 本题首先定义了一个4行4列的二维数组,并用了三层for循环来进行由小到大的排序。外层循环变量i表示数组的列.第二层循环变量j表示数组的行,第三层循环用于求第i列第j行的最小值,其中通过if语句对相关数值进行比较和交换。最后通过for循环对排序后数组对角线上的元素输出。