习题6(第七章)数组 下载本文

【题7.88】以下程序的功能是 。 main() { int num[10]={10,1,-20,-203,-21,2,-2,-2,11,-21}; int sum=0,i; for(i=0;i<10;i++) { if(num[i]>0) sum=num[i]+sum; } printf(“sum=m”,sum); }

【题7.89】下面程序的运行结果是 。 main() { int i,j,row,col,min; int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}}; min=a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]

【题7.90】若有以下输入(代表回车),则下面程序的运行结果是 。 52 main() { int a[8]={6,12,18,42,44,52,67,94}; int low=0,mid,high=7,found,x; found=0; scanf(“%d”,&x); while((low<=high)&&(found==0)) { mid=(low+high)/2; if(x>a[mid]) low=mdi+1; else if(x

}

【题7.91】下面程序的运行结果是 。 main() { int a[9]={0,6,12,18,42,44,52,67,94}; int x=52,i,n=9,m; i=n/2+1; m=n/2; while(m!=0) { if(xa[i]) { i=i+m/2+1; m=m/2; } else break; } printf(“The index is:%d”,i); }

【题7.92】下面程序用“顺序查找法”查找数组a中是否存在某一关键字。请填空。 main() { int a[8]={25,57,48,37,12,92,86,33}; int i,x; scanf(“%d”,&x); for(i=0;i<8;i++) if(x==a[i]) { printf(“Found! The index is:%d\\n”,--i); 【1】; } if(【2】) printf(“Can’t found!”); }

【题7.93】下面程序用“快速顺序查找法”查找数组a中是否存在某一关键字。请填空。 main() { int a[9]={25,57,48,37,12,92,86,33}; int i,x; scanf(“%d”,&x); 【1】; i=0; while(a[i]!=x) i++; if(【2】) printf(“Found! The index is:%d\\n”,i); else printf(“Can’t found!\\n”); }

【题7.94】下面程序用插入法对数组a进行降序排序。请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=1;i<5;i++) { m=a[i]; j=【1】; while(j>=0&&m>a[j]) { 【2】; j--; } 【3】=m; } for(i=0;i<5;i++) printf(“%d”,a[i]); printf(“\\n”); }

【题7.95】下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。

请填空。

main() { int a[3]={5,9,19}; int b[5]={12,24,26,37,48}; int c[10],i=0,j=0,k=0; while(i<3&&j<5) if(【1】) { c[k]=b[j]; k++; j++; } else { c[k]=a[i]; k++; i++; } while(【2】) { c[k]=a[i]; i++; k++; } while(【3】) { c[k]=b[j]; k++; j++; } for(i=0;i

【题7.96】下面程序的运行结果是 。 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”); } }

【题7.97】若有以下输入(代表回车),则下面程序的运行结果是 。 3245 8 main() { int i=0,base,n,j,old,num[20]; printf(“Enter data that will be converted\\n”); scanf(“%d”,&n); old=n; printf(“Enter base\\n”); scanf(“%d”,&base); do{ i++; num[i]=nose; n=n/base; }while(n!=0); printf(“The data %d has been converted into the %d – base data:\\n”,old,base); for(j=i;j>=1;j--) printf(“]”,num[j]); }

【题7.98】若有以下输入(代表回车),则下面程序的运行结果是 。 7 4 8 9 1 5 main() { int a[6],i,j,k,m; for(i=0;i<6;i++) scanf(“%d”,&a[i]); for(i=5;i>=0;i--) { k=a[5]; for(j=4;j>=0;j--) a[j+1]=a[j]; a[0]=k;