发布时间 : 星期四 文章数组练习题及答案更新完毕开始阅读34e87955f11dc281e53a580216fc700abb685264
if(a[j]>a[j+1]) {temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } }
5、下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。请填空。 main()
{int a[5],max,min,i,j,k; for(i=0;i<5;i++) scanf(\ 《1》a[0]; for(i=1;i<5;i++)
if(a[i] if(a[i]>max){max=a[i];《4》;} a[k]=max;a[j]=min; printf(\ printf(\ for(i=0;i<5;i++) printf(\ } 6、有三行文字,找出其中共有多少个空格、多少个单词。规定单词间以一个或多个空格相隔。如果一个单词恰好在行末结束,则下一行开头应有空格。句号或逗号后面 亦应有空格。(注:填空请用数组表示方法) main() {char a[3][80]; int i,j,wd=0,bk=0,《1》; for(i=0;i<3;i++) for(j=0;j<80;j++) scanf(\ for(i=0;i<3;i++) for(j=0;j<80;j++) { if((a[i][j]>='a'&&a[i][j]<='z')||(a[i][j]>='A'&&a[i][j]<='Z')&&(《2》)) {wd=wd+1;flag=1;} if(《3》) {bk=bk+1;flag=0;} } 13 } 7、删除一个字符串中的第n个字符。(注:填空请用数组表示方法) void del_str(char a[],int n) {《1》; } 8、下面程序可求出矩阵a的两条对角线上的元素之和,请填空。 main() {int a[4][4]={1,3,6,7,9,11,14,15,0,19,13,2,5,8,12,21}; int sum1=0,sum2=0,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) if(i《1》) sum1=sum1+a[i][j]; for(i=0;i<4;i++) for(《2》;j>=0;j--) if(i+j==《3》) sum2=sum2+a[i][j]; printf(\ } 9、下面程序的功能是检查一个二维数组是否对称,(即:对所有i和j都有a[i][j]=a[j][i])。请填空。 main() {int a[4][4],i,j,found=0; for(i=0;i<4;i++) for(j=0;j<4;j++) scanf(\ for(j=0;j<4;j++) for(i=j+1;i<4;i++) if(a[i][j]《1》) {《2》;break;} if(found==1) printf(\ else printf(\ } 10、设计一个函数,有一个数组有n个数据,已按由小到大排序好,要求输入一个数,把它插入到原有数列中,而且仍然保持有序。 void f3(char a[],int n,int x) {int i=0,j,flag=0; while((i 14 {if(a[i]>x) 《1》; i++; } if(flag==1) for(j=《2》;j<=《3》;j--) a[j+1]=a[j]; else a[n]=x; } 11、下面函数是用折半查找方法在数组a中查找x。 void binary_search(int a[],int n,int x) {int mid,top,bot,i,find; top=0; bot=n-1; find=0; do {mid=(top+bot)/2; if(x==a[mid]) 《1》; else if(xa[mid]) 《3》=mid+1; }while((top<=bot)&&(find==0)); if(find==1) printf(\ else printf(\ } 12、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。 main() {int a[2][3]={{1,2,3},{4,5,6}}, b[3][2],i,j; for(i=0;i<=1;i++) for(j=0;j<=2;j++)《1》; for(i=0;i { for(j=0;j printf(“\\n”); } 14、有n个串,要求按字母先后顺序排列,并按序输出。(注:填空请用数组表示方法) main() {char c[10][80]; int n,i,j,p; scanf(\ for(i=0;i 15 for(i=0;i<=n-2;i++) {《2》; for(j=i《3》;j for(i=0;i 五、综合应用 1、插入法:有n个数,已按由小到大顺序排列好,把它插入到原有数列中,而仍然保持有序。 void f(int a[ ],int n,int x) {int I,j; while(a[i]<=x && i {for(j=n-1;j>=I;j--) a[j+1]=a[j]; a[i]=x; } else a[i]=x; } 改写: void f(int a[ ],int n,int x) {int I,j;