for(i=0;i<3;i++) for(【1】;【2】;j--)
if((i+j)==2) sum2= sum2+a[i][j]; printf(“sum1=%d, sum2=%d\\n”, sum1,sum2); }
答:【1】j=2 【2】j>=0
[题6.63] 下面程序的运行结果是___. main()
{int a[5][5],i,j,n=1; for(i=0;i<5;i++)
for(j=0;j<5;j++) a[i][j]=n++;
printf(“The result is:\n”); for(i=0;i<5;i++) {for(j=0;j<=i;j++)
printf(”%4d”,a[i][j]); printf(“\n”); } } 答:1
6
7
11 12 13
16
16 17 18 19 21 22 23 24 25
[题6.64] 下面程序可求出矩阵a的主对角线上的元素之和。请填空。 main()
{int a[3][3]={1,3,5,7,9,1l,13,15,17},sum=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(【1】)sum=sum+【2】; printf(\=%d\n”,sum); } 答【1】 i==j 【2】a[i][j]
[题6.66]下面程序的功能是生成并打印某数列的前20项,该数列第1,2项分别为0和l,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出。请填空。 main()
{int x[21],i,j; x[1]=0;x[2]=1; i=3; do{
x[i]=【1】; x[i+1]=【2】;
17
i=【3】; }while(i<=20); for(i=1;i<=20;i++) { printf(”%5d”,x[i]); if(i%4==0) printf(“\\n”); } }
答【1】x[i-1]+x[i-2]
【2】 fabs((double)(x[i-1]-x[i]))
[题6.67] 若有以下输入(_代表空格,
1_4_2_3_3_4_1_2_3_3_2_2_2_3_3_1_1_1_4_1_1_1_-1
{ int a[M],c[5],i,n=0,x;
printf(“Enter 0 or 1 or 2 or 3 or 4,to end with -1\\n”); scanf(“%d”,&x); while(x!=-1) {if(x>=0&&x<=4)
{a[n]=x;n++;} scanf(”%d”,&x);
18
}
for(i=1;i<5;i++) c[i]=0; fOr(i=0;i for(i=1;i<=4;i++) printf(“%d:%d\n”,i,c[i]); printf(“\n”); } The result is: 1: 8 2: 5 3: 6 4: 3 [题6.69]设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请填空。 main() {int a[10],b[10],i; for(i=0;i<10;i++) scanf(”%d”,&a[i]); for(【1】;i<10;i++) 【2】 for(i=1;i<10;i++) 19 {printf(\%3d\,b[i]); if(【3】==0)printf(“\n”); }答【1】 i=1【2】 b[i]=a[i-1]+a[i]【3】(i%3) [题6.71] 下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。请填空。 main() {int a[5],max,min,i,j,k; for(i=0;i<5;i++) scanf(“%d”,&a[i]); min=a[0]; for(i=1;i<5;i++) if(a[i] for(i=1;i<5;i++) if(a[i]>=max){max=a[i];【2】;} 【3】 printf(“\nThe position of min is:=\n”,k); printf(“The position of max is:=\n”,j); for(i=0;i<5;i++) printf(”%5d”,a[i]); } 20