问题详情

有以下程序: main() { int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t; for(i=0;i<3;i++) for(k=i+i;k<4;k++)if(a[i][i]<a[k][k]){t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;} for(i=0;i<4;i++)printf("%d,",a[0][i]); } 程序运行后的输出结果是( )。


A、6,2,1,1,

B、6,4,3,2,

C、1,1,2,6,

D、2,3,4,6,

时间:2022-01-04 01:13 关键词:

答案解析

B
解析:该程序实现对二维数据反对角线上的元素从大到小的排序,并输出排序后的数组的第一行。外层循环变量i表示第i行第i列的数字,内层循环变量k表示第i+1行第i+1列的数字,if语句对相关数值进行比较和交换,最后数组变为a[4][4]={{6,4,3,2,},{8,2,5,7,},{3,7,1,5,},{4,8,6,1,}},并将第一行输出。