以下程序按下面指定的数据给 x 数组的下三角置数,并按如下形式输出,请填空。
4
3 7
2 6 9
1 5 8 10
#include <stdio.h>
main()
{ int x[4][4],n=0,i,j;
for(j=0;j<4;j++)
for(i=3;i>=j; 【 12 】 ) {n++;x[i][j]= 【 13 】 ; }
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++) printf("%3d",x[i][j]);
printf("\n");
}
}
第1题:
以下程序按下现指定的数据给x数组的下三角置数,并按如下形式输出,请填空。
4
3 7
2 6 9
1 5 8 10
include <stdio.h>
main()
{ int x[4][4],n=0,i,j;
for(j=0;j<4;j++)
for(i=3;i>j;【 】) {n++;x[i][j]=【 】:}
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++) printf("%3d",x[i][j]);
printf("\n");
}
}
第2题:
以下程序段按以下形式输出数组num右上半三角的数据,请在下划线处填空。 1 2 3 4 6 7 8 11 12 16 #define N 4 int num[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<N;i++) { for(j=0; j<i ;j++) printf("%3c",' '); for((1) ;j<N;j++) printf("%3d",num[i][j]); printf("n"); }
第3题:
【填空题】下面程序以每行4个数的形式输出a数组,请分析程序填空。 #define N 20 main() { int a[N],i; for(i=0;i<N;i++) scanf("%d",【1】); for(i=0;i<N;i++) { if(【2】) 【3】; printf("%3d",a[i]); } }
第4题:
函数fun()的功能是:逆置数组元素中的值,形参m给出数组中数据的个数。
例如,若x所指数组中的数据依次为:9、8、7、6、5,则逆置后依次为:5、6、7、8、9。
注意:部分源程序给出如下。
请勿改动函数main()与其他函数中的任何内容,仅在fun()函数的横线上填写所需的若干表达式或语句。
试题程序:
【1】m/2【2】i【3】a[m-1-i]
【解析】该题中函数功能是逆置数组元素的值。此类题的解题思路,是在简单的两个数值交换的基础上,增加对数值定位的功能,也就是确定要交换的数值在数组中的位置。
第一空:对数组中的元素进行逆置,根据上面的分析,整个数组中元素交换的循环次数,应该是只需要交换整个数组长度的一半的次数,所以,第一空应填:“m/2”。
第二空:元素逆置,就是第一个和最后一个交换,依次类推。个数为m的数组中,与第i个元素相对应需要交换的元素是第m-1-i个元素,所以第二空填:“i”。
第三空:根据两个元素交换的算法,第i个和第m-i-1个元素交换的过程,应填:“a[m-1-i]”。
第5题:
【填空题】以下程序实现输出x,y,z三个数中的最大者。请分析程序填空。 main() {intx=4,y=6,z=7;; int; if()u=x; elseu=y; if(else v=z; printf("v=%d",v); }