第 六 章 数组补充练习文档格式.docx
- 文档编号:20316835
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:17
- 大小:22.32KB
第 六 章 数组补充练习文档格式.docx
《第 六 章 数组补充练习文档格式.docx》由会员分享,可在线阅读,更多相关《第 六 章 数组补充练习文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
6for(i=1;
10;
i++)a[0]=a[0]+a[i];
7printf(“%f\n”,a[0]);
8}
A.没有错误B.第3行有错误C.第5行有错误D.第7行有错误
8.下面程序中有错误的行是 (每行程序前面的数字表示行号)。
3floata[3]={1};
5scanf(“%d”,&
a);
7printf(“a[0]=%d\n”,a[0]);
A.3B.6C.7D.5
9.定义如下变量和数组:
intk;
inta[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是 。
for(k=0;
k<
k++)printf(“%d”,a[k][2-k]);
A.357B.369C.159D.147
10.下面程序的运行结果是 。
main()
{
inta[6],i;
for(i=1;
6;
i++)
{
a[i]=9*(i-2+4*(i>
3))%5;
printf(“%2d”,a[i]);
}
}
A.-40404B.-40403C.-40443D.-40440
11.以下对二维数组a的正确说明是( )。
A.doublea[1][4];
B.inta[3][];
C.floata(3,4);
D.floata(3)(4);
12.若说明:
inta[3][4];
则对a数组元素的正确引用是( )
A.a[1+1][0]B.a[2][4]C.a[1,3]D.a
(2)
(1)
13.若有说明:
则对a数组元素的非法引用是( )
A.a[0][4]B.a[0][2*1]C.a[1][3]D.a[4-2][0]
14.若有说明:
则下面正确的叙述是( )。
A.数组a中每个元素均得到处置0B.只有元素a[0][0]可得到初值0
C.此说明语句不正确D.数组a中各元素都可得到初值,但其值不一定为0
15.若有说明:
则数组a中的元素( )
A.可在程序的编译阶段得到初值0B.可在程序的运行阶段得到初值0
C.不能得到确定的初值D.可在程序的编译或运行阶段得到初值0
16.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( )。
(假设a[0][0]位于数组的第一个位置上。
)
A.i*m+j+1B.i*m+jC.j*m+ID.i*m+j-1
17.以下能对二维数组a进行正确初始化的语句是 。
A.inta[2][]={{1,0,1},{5,2,3}};
B.inta[][3]={{1,2,3},{4,5,6}};
C.inta[2][4]={{1,2,3},{4,5},{6}};
D.inta[][3]={{1,0,1},{},{1,1}};
18.以下不能对二维数组a进行不正确初始化的语句是 。
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2][3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
19.若有说明:
inta[3][4]={0};
则下面正确的叙述是 。
A.只有元素a[0][0]可得到初值0B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0D.数组a中每个元素均可得到初值0
20.若有说明:
inta[][3]={1,2,3,4,5,6,7};
则a数组第一维的大小是 。
A.2B.3C.4D.无确定值
二、填空题:
1.在C语言中,二维数组的定义方式为:
类型说明符数组名[【1】][【2】];
2.在c语言中,二维数组元素在内存中的存放顺序是( )。
3.若有定义:
doublex[3][5];
则x数组中行下标的下限为【1】,列下标的上限为【2】。
4.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为:
()。
(假设a[0][0]位于数组的第一个位置上。
5.若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2]得到的初值是【1】,a[2][1]得到的初值是【2】
三、阅读程序写结果
1.下面程序的运行结果是 。
main()
{inti=1,n=3,j,k=3;
inta[5]={1,4,5};
while(i<
=n&
&
k>
a[i])i++;
for(j=n-1;
j>
=i;
j--)
a[j+1]=a[j];
a[i]=k;
for(i=0;
=n;
printf(“%3d”,a[i]);
}
2.下面程序的运行结果是 。
{inta[10]={1,2,2,3,4,3,4,5,1,5};
intn=0,i,j,c,k;
for(i=0;
10-n;
{c=a[i];
for(j=i+1;
j<
j++)
if(a[j]==c)
{for(k=j;
k++)
a[k]=a[k+1];
n++;
}
(10-n);
printf(“%d”,a[i]);
printf(“\n”);
3.当从键盘输入18时,下面程序的运行结果是 。
{intx,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;
=0;
printf(“%d”,a[j]);
4.以下程序的功能是 。
{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
intsum=0,i;
for(i=0;
{if(num[i]>
0)
sum=num[i]+sum;
printf(“sum=%6d”,sum);
5.下面程序的运行结果是 。
{inta[10]={1,2,3,4,5,6,7,8,9,10};
intk,s,i;
floatave;
for(k=s=i=0;
{if(a[i]%2==0)continue;
s+=a[i];
k++;
if(k!
=0)
{ave=(float)s/k;
printf(“Thenumberis:
%d.Theaverageis:
%f\n”,k,ave);
6.下面程序的运行结果是()。
main()
{inti,f[10];
f[0]=f[1]=1;
for(i=2;
f[i]=f[i-2]+f[i-1];
{if(i%4==0)printf(“\n”);
printf(“%3d”,f[i];
)
7.下面程序的运行结果是()。
{inti=1,n=3,j,k=3;
inta[5]={1,4,5};
while(i<
n&
for(j=n-1;
j--)
a[i]=k;
for(i=0;
printf(“%3d”,a[i]);
8.下面程序的运行结果是 。
{inta[9]={0,6,12,18,42,44,52,67,94};
intx=52,i,n=9,m;
i=n/2+1;
m=n/2;
while(m!
{if(x<
a[i])
{i=i-m/2-1;
m=m/2;
elseif(x>
{i=i+m/2+1;
elsebreak;
printf(“Theindexis:
%d”,i);
9.下面程序的运行结果是 。
{inta[6][6],i,j;
for(j=1;
a[i][j]=(i/j)*(j/i);
{for(j=1;
printf(“%2d”,a[i][j]);
printf(“\n”);
main()
{inta[5][5],i,j,n=1;
5;
i++)
for(i=0;
i++)
a[i][j]=n++;
printf(“Theresultis:
\n”);
i++)
{for(j=0;
printf(“%4d”,a[i][j]);
11.下面程序的运行结果是 。
{inti,j,a[2][3]={{2,4,6},{8,10,12}};
printf(“Theoriginalarrayis:
2;
i++)
j++)
}
printf(“\ntheresultis:
for(j=0;
printf(“%4d”,a[j][i]);
}
12.下面程序的运行结果是 。
main()
{inta[5][4]={3,6,2,1,3,9,0,8,2,1,5,6,7,2,7,4,0,0,0,0};
inti,j;
4;
i++)
for(j=0;
j++)
a[4][j]+=a[i][j];
for(i=0;
printf(“%3d”,a[4][i]);
}
13.下面程序的运行结果是 。
{inti,j,row,col,min;
inta[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};
min=a[0][0];
if(a[i][j]<
min)
{min=a[i][j];
row=i;
col=j;
printf(“min=%d,row=%d,col=%d\n”,min,row,col);
四、完善程序:
1.下面程序以每行4个数据的形式输出a数组,请填空。
#defineN20
{inta[N],i;
N;
i++)scanf(“%d”,【1】);
{if(【2】)【3】
printf(“%3d”,a[i]);
printf(“\n”);
2.设数组a包括10个整型元素。
下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。
请填空。
{inta[10],b[10],i;
scanf(“%d”,&
for(【1】;
i++)
【2】
{printf(“%3d”,b[i]);
if(【3】==0)printf(“\n”);
3.下面程序中数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。
【1】;
【2】;
b[i]=a[i]-a[i-1];
if(【3】)printf(“\n”);
4.下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。
{inta[5],max,min,i,j,k;
min=a[0];
if(a[i]<
min){min=a[i];
【1】;
}
max=a[0];
if(a[i]>
max){max=a[i];
【2】;
【3】
printf(“\nThepositionofminis:
%3d\n”,k);
printf(“Thepositionofmaxis:
%3d\n”,j);
printf(“%5d”,a[i]);
5.下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一二维数组b中,并按矩阵形式输出a和b。
例如:
arraya:
arrayb:
456645
123312
{inta[2][3]={4,5,6,1,2,3},b[2][3];
printf(“arraya:
=1;
{printf(“%5d”,a[i][j]);
【1】;
}
for(【2】;
i++)b[i][0]=a[i][2];
printf(“arrayb:
printf(“%5d”,b[i][j]);
【3】;
6.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。
intk,s,i;
{if(a[i]%2!
=0)【1】;
s+=【2】;
=0){ave=s/k;
printf(“%d,%f\n”,k,ave);
7.以下程序的功能是求数组num中小于零的数据之和。
{intnum[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,
-2,-234,-90,22,90,-45,20};
=19;
{if(【1】)
sum=【2】;
8.以下程序可求出所有的水仙花数。
(提示:
所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数。
例如:
407=4×
4×
4+0×
0×
0+7×
7×
7,故407是一个水仙花数。
)请填空。
{intx,y,z,a[8],m,i=0;
printf(“Thespecialnumbersare(inthearrangeof1000):
m++)
{x=m/100;
y=【2】;
z=m%10;
if(x*100+y*10+z==x*x*x+y*y*y+z*z*z)
{【3】;
i++;
for(x=0;
x<
i;
x++)
printf(“%6d”,a[x]);
}
9.下面程序可求出矩阵a的主对角线上的元素之和。
{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
if(【1】)sum=sum+【2】;
printf(“sum=%d\n”,sum);
10.下面程序可求出矩阵a的两条对角线上的元素之和。
{inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;
I<
I++)
for(j=0;
if(i==j)sum1=sum1+a[i][j];
for(【1】;
if((i+j)==2)sum2=sum2+a[i][j];
printf(“sum1=%d,sum2=%d\n”,sum1,sum2);
}
11.以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。
{inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
inti,j,c[3][4];
c[i][j]=【1】;
printf(“%3d”,c[i][j]);
【2】;
五、编程
1.数组a包括10个整数,把a中所有的后项除以前项之商取整后存入数组b,并按每行3个元素的格式输出数组b。
试编程。
2,若有说明:
inta[2][3]={{1,2,3},{4,5,6}};
现要将a的行和列的元素互换后存到另一个二维数组b中。
3.通过循环按行顺序为一个5*5的二维数组a赋1到25的自然数,然后输出初数组的左下半三角。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组补充练习 数组 补充 练习