第七章 数组 下载本文

/* ② */

}

① A) 0 B) 1 C) 2 D) 3 ② A) 0 B) 1 C) 2 D) 3

【7.50】 阅读下列程序,选择程序的运行结果。 #define FMT “%X\\n” #include main ( )

{ static int a[ ][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };

printf (FMT, a[2][2]); /* ① */ printf (FMT, *(*(a+1)+1) ); /* ② */ }

① A) 9 B) A C) B D) 前面三个答案均是错误的 ② A) 6 B) 7 C) 8 D) 前面三个答案均是错误的 【7.51】选择下列程序的运行结果。 #include main ( )

{ int n[3][3], i, j;

for ( i=0; i<3; i++) for ( j=0; j<3; i++ ) n[i][j] = i+j; for ( i=0; i<2; i++ ) for ( j=0; j<2; j++ ) n[i+1][j+1] += n[i][j]; printf (“%d\\n”,n[i][j];

}

A) 14 B) 0 C) 6 D)不确定

【7.52】阅读下列程序,选择程序的运行结果。 main ( )

{ int a[6][6], i, j;

for ( i=1; i<6; i++ ) for ( j=1; j<6; j++ ) a[i][j] = (i/j)*(j/i); for ( i=1; i<6; i++ ) { for ( j=1; j<6; j++ ) printf (“-”, a[i][j]); printf (“\\n”); }

}

A) 1 1 1 1 1 B) 0 0 0 0 1

1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0

C) 1 0 0 0 0 D) 1 0 0 0 1

0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1

【7.53】阅读下列程序,选择程序的运行结果。 main ( ) { int a[6],i;

for ( i=0; i<6; i++ ) { a[i] = 9*(i-2+4*(i>3)) % 5; printf(“-”,a[i]); }

}

A) -3-4 0 4 0 4 B) -3-4 0 4 0 3 C) -3-4 0 4 4 3 D) -3-4 0 4 4 0

【7.54】阅读下列程序,选择程序的运行结果。 #include main ( )

{ int i, k, a[10], p[3];

k=5;

for ( i=0; i<10; i++ ) a[i] = i; for ( i=0; i<3; i++) p[i] = a[i*(i+1)]; for ( i=0; i<3; i++) k += p[i]*2; printf (“%d\\n”, k );

}

A) 20 B) 21 C) 22 D) 23

【7.55】阅读程序,写出执行结果。

#include main ( ) { char str[30];

scanf (“%s”, str); printf (“%s”, str);

}

运行程序,输入:Fortran Language

【7.56】阅读程序,写出执行结果。 #include “stdio.h” main ( ) { char str[30]; gets (str); printf (“%s\\n”, str); {

运行程序,输入:Fortran Language

【7.57】阅读程序,写出执行结果。 #include “stdio.h” func ( int b[ ] ) { int j;

for (j=0; j<4; j++)

b[j]=j;

} main ( ) { int a[4], i; func (a);

for ( i=0; i<4; j++) printf ( “%d”, a[i]); }

【7.58】写出程序的运行结果。 #include #include main ( )

{ char str[100] = “How do you do”; strcopy ( str + strlen(str)/2,”es she”); printf (“%s\\n”,str);

}

【7.59】运行下面的程序,如果从键盘上输入字符串“qwerty”和字符串“abcd“,请写出程序的运行结果。

#include strle ( char a [ ], char b [ ] ) { int num=0, n=0;

while ( a[num]!=?\\0? ) num++; while (b[n]) { a[num]=b[n];

num++; n++; }

return ( num );

} main ( )

{ char str1[81], str2[81]; gets (str1); gets (str2);

printf (“%d\\n”, strle (str1, str2 ) ); }

7.3 程序选择填空

【7.60】下面程序输出两个字符串中对应位置相同的字符。请选择填空。 #include char x[ ]=”programming”; char y[ ]=”Fortran”; main ( ) { int i=0;

while ( x[i]!=?\\0? && y[i]!=?\\0? ) if ( x[i]= =y[i] ) printf(“%c”, ① ); else i++;

}

A) x[i++] B) y[++i] C) x[i] D) y[i]

【7.61】有已按升序排好序的字符串a,下面的程序是将字符串s中的每个字符按升序的规则插到数组a中。

#include #include main ( )

{ char a[20] = “cehiknqtw”; char s[ ] = “fbla”;