数组练习题及答案 联系客服

发布时间 : 星期四 文章数组练习题及答案更新完毕开始阅读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》;j0) p=j; if(p!=i) {strcpy(t,c[p]); strcpy(c[p],c[i]); strcpy(c[i],t); } }

for(i=0;i

五、综合应用

1、插入法:有n个数,已按由小到大顺序排列好,把它插入到原有数列中,而仍然保持有序。

void f(int a[ ],int n,int x) {int I,j;

while(a[i]<=x && ix)

{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;

while(a[i]<=x && i

for(j=n-1;j>=I;j--)

16

要求输入一个数据,