第7章 数组
【练习 7-1】将例 7-3 程序中的 break 语句去掉,输出结果有变化吗假设输入数据不变,输出什么 解答:
当去掉 break 语句后,一旦找到数据将不跳出循环,而是继续往下找值为 x 的元素,因 此程序输出会有变化。当输入数据仍为 2 9 8 1 9 时,输出将是 index is 1 index is 4。
【练习7-2】将数组中的数逆序存放。输入一个正整数n(1
【练习7-3】求最大值及其下标。输入一个正整数n(1
int i,index,n; int a[10];
int i,n,temp; int a[10];
printf(\ scanf(\
printf(\ for(i=0;i scanf(\ printf(\ for(i=0;i for(i=0;i temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; } printf(\ scanf(\ printf(\ for(i=0;i return 0; 【练习 7-4】找出不是两个数组共有的元素。输入一个正整数 n (1<n≤10),再输入 n 个整数,存入第1个数组中;然后输入一个正整数m(1 int i,j,k,m,n,flag,equal; printf(\ scanf(\ printf(\ for(i=0;i printf(\ for(j=0;j flag=1;数组x和数组y的长度相同 C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度 7.以下程序的输出结果是 C 。 int main(void) { int m[ ][3]={1,4,7,2,5,8,3,6,9}; int i, j, k=2; for (i=0;i<3;i++) int a[25],b[25],c[25]; printf (\ } A.4 5 6 B.2 5 8 C.3 6 9 D.7 8 9 8.以下程序的输出结果是 B 。 int main(void) { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i, s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf(\ } A.11 B.19 C.13 D.20 二.填空题 1.设有定义语句:int a[ ][3]={{0},{1},{2}}; 则数组元素a[1][2]的值是 0 。 2.下列程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到a数组中,然后输出。 请填空。 int main(void ) { int x[10],a[9],i; for(i=0; i<10; i++) scanf(\ for( _i=1_; i<10; i++ ) a[i-1]=x[i]+_x[i-1] _ ; for(i=0; i<9; i+ +) printf(\ printf(\ } 3.写出下列程序的运行结果是 -12 。 int main(void) { int a[10]={10,1,-20,-203,-21,2,-2,-2,11,-21}; int j,s=0; for(j=0;j<10;j++) if(a [j]%2==0) s+=a[j]; printf(\ } 4.写出下面程序的运行结果 。 #include <> int main(void) { float s[6]={1, 3, 5, 7, 9}; float x; int i; scanf(“%f”, &x); for (i=4 ; i>=0; i--) if(s[i]>x) s[i+1]=s[i]; else break; printf(\ return 0; } (1) 如果输入 4,则输出 2 。 (2) 如果输入 5,则输出 3 。 5.下列程序的功能是输出如下形式的方阵,请填空。 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 int main(void) { int i,j,x; for(j=4;_j>=1_;j--) { for(i=1;i<=4;i++) { x=(j-1)*4+_i_; printf(\ } printf(\ } } 以下程序的功能是用来检查二维数组是否对称(即对所有的i,j都有a[i] [j]=a[j] [i])。请填空。 int main(void) { int a[4][4]={1,2,3,4,2,2,5,6,3,7,8,6,7,4}; int i,j,found=0; for(j=0;j<4;j++) { for(i=0;i<4;i++) if(_a[j][i]!=a[i][j]_){ } if(found!=0) printf(\该二维数组不对称\\n\ else printf(\该二维数组对称\\n\ return 0; } if(_found==1_)break; _found=1;_ break; } 三.程序设计题 1. 选择法排序。输入一个正整数 n (1 int i,n,index,k,temp; int a[10]; printf(\ scanf(\ printf(\ for(i=0;i