云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数组练习题

数组练习题

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 22:52:18

C语言程序设计电子教案 5

do

{mid=(top+bot)/2; if(x==a[mid])

{printf(“found”);find=1;} else if(x

}while((top<=bot)&&(find==0)); }

例14:下面程序用“顺序查找法”查找数组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);____________;} if(____________)

printf(“Can’t found!”); }

例15:要求写一函数,实现对包含任意个数据的数列实现头尾颠倒。 void f(int a[ ],int n) {int I,t;

for(I=0;I

t=a[i];a[i]=a[n-i];a[n-i]=t; }

}

例16:下面程序的运行结果是( )。 main()

{int a[10]={1,2,2,3,4,3,4,5,1,5}; int n=0,I,j,c,k; for(I=0;I<10-n;I++) {c=a[i];

for(j=I+1;j<10-n;j++) if(a[j]==c)

{for(k=j;k<10-n;k++) a[k]=a[k+1]; n++;

} }

for(I=0;I<10-n;I++) printf(“%d”,a[i]); }

答案:12345

C语言程序设计电子教案 6

例17:当从键盘输入18并回车后,下面程序的运行结果是( )。 main() {

int x,y,I,a[8],j,u,v; scanf(“%d”,&x); y=x;I=0; do

{ u=y/2; a[i]=y%2; I++;y=u; }while(y>=1);

for(j=I-1;j>=0;j--) printf(“%d”,a[j]); }

答案:10010

例18:有17个人围成一圈,编号为0—16,从第0号的人开始从1报数,凡报到3的倍数离开圈子,然后再数下去,直到最后只剩下一个人为止,问此人原来的位置是多少号。

main()

{int a[17],I,t=0,s=0; for(I=0;I<17;I++) a[i]=1; while(t<=16)

{ for(I=0;I<17;I++)

if(a[i]==0) {s=s+1;

if(s%3==0) {a[i]=0;t=t+1;} }

}

for(I=0;I<17;I++)

if(a[i]==1) printf(“%d”,i); }

第二节 二维数组

1、二维数组的定义

二维数组定义的一般形式为:

类型说明符 数组名[常量表达式][常量表达式] 注意:

二维数组在内存中是按一维连续顺序存放的。设有一个m*n的二维数组a,其中第i行第j列元素a[i][j]在数组中的顺序号计算公式为:i*n+j

例19:以下对二维数组a的正确说明是( )。

A)int a[3][] B)float a(3,4) C)double a[1][4] D)float a(3)(4) 答案:C

2、二维数组的引用

二维数组的元素的表示形式为:数组名[下标][下标]

例20:若有说明:int a[3][4];则对数组元素的正确引用是( )。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1)

C语言程序设计电子教案 7

答案:C

3、二维数组初始化

①分行给二维数组赋初值

如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; ②可写在一个花括弧内

如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; ③可给部分赋值

如:int a[3][4]={1,2,3};

如:int a[3][4]={{1},{2},{3}}; ④可省略一维长度

如:int a[ ][4]={1,2,3,4,5,6,7,8,9,10}; 如:int a[ ][4]={{1},{2},{3}};

例21:以下不能对二维数组a进行正确初始化的语句是()。 A)int a[2][3]={0};

B)int a[ ][3]={{1,2},{0}};

C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[ ][3]={1,2,3,4,5,6}; 答案:C

例22:若有说明:int a[ ][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( )。 答案:3

4、函数参数(p 160)

例23:求一个3*4矩阵的所有靠外侧的元素之和。设矩阵为: 3 8 9 10 a= 2 5 –3 5 7 0 -1 4 main()

{int add(int m,int n,int arr[]);

int total,a[3][4]={3,8,9,10,2,5,-3,5,7,0,-1,4}; total=add(3,4,a[0]);

printf(“total=%f”,total); }

add(int m,int n,int arr[]) {int I,j,sum=0;

for(I=0;I

sum=sum+arr[I*n+j]; for(j=0;j

5、二维数组举例

例24:将一个二维数行、列互换后输出。 Void f(int a[ ],int n,int m ,int b[ ]) {int I,j;

C语言程序设计电子教案 8

for(I=0;I

for(j=0;j

b[j*n+i]= a[I*m+j]; for(j=0;j

for(I=0;I

printf(“M”,b[j*n+i]); printf(“\\n”); } }

例25:求矩阵对角线元素之和 main()

{int a[3[3]={1,3,6,7,9,11,14,15,17},sum=0,I,j; for(I=0;I<3;I++) for(j=0;j<3;j++)

if((I==j)||(I+j==3)) sum=sum+a[I][j];

}

例26:下面程序的功能是检查一个二维数组是否对称(即:对所有I和j都有a[I][j]=a[j][I])。请填空。

main()

{int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; int I,j,found=0 for(I=0;I<4;I++) for(j=0;J

if(a[i][j]!=a[j][i] ) {found=1;break;} if(found) printf(“No”); }

例27:以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。请填空。 2 -1 -7 -9 a= -4 0 b= -8 10 3 1

main()

{int a[3][2]={2,-1,-4,0,3,1}; int b[4][3]={7,-9,-8,10}; int I,j,k,s,c[3][2]; for(I=0;I<3;I++) for(j=0;j<2;j++)

{for(s=0,k=0;k<2;k++) s+=a[i][k]*b[k][j]; c[i][j]=s; }

for(I=0;I<3;I++)

搜索更多关于: 数组练习题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

C语言程序设计电子教案 5 do {mid=(top+bot)/2; if(x==a[mid]) {printf(“found”);find=1;} else if(x

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com