当前位置:文档之家› 数组习题及参考答案

数组习题及参考答案

第七章数组
一、单项选择题
1.若有说明“int a[3][4]={0};”,则下面正确的是_____。

A.只有元素a[0][0]可得到初值0
B. 此说明语句不正确
C. 数组a各元素都可得到初值,但其值不一定是0
D. 数组a中每个元素均可得到初值0
2.以下不能正确定义二维数组的选项是_____。

A. int a[2][2]={{1},{2}}
B. int a[2][2]={{1},2,3}
C. int a[2][]={{1,2},{3,4}}
D. int a[][2]={1,2,3,4}
3.在下列对字符数组进行初始化中正确的是_____。

A.char s1[]=”abcd”
B.char s2[3]=”xyz”
C.char s3[][]={…a‟,‟x‟,‟y‟}
D.char s4[2][3]={“xyz”,”mnp”}
二、写出下列程序的运行结果
有以下程序:
1. #include <iostream.h>
int main ()
{
int a[]={4,0,2,3,1},i,j,t;
for(i=1;i<5;i++)
{
t=a[i];j=i-1;
while(j>=0&&t>a[j])
{
a[j+1]=a[j];
a[j]=t;
j--;
}
}
for(i=0;i<5;i++)
{
cout<<a[i]<<‟…;
}
return 0;
}
三、编程题
1. 任意输入15个正整数,将这15个数排成一圈,编程找出其中的连续4个数,使得它们的和最大(不小于任意其他连续4个数的和)。

2. 设有4行4列队数组b,其元素为b[i][j]=i+j+1(i,j=0,1,2,3)。

编程实现:
(1)求第二列元素之和。

(2)求第三列元素的平均值。

(3)求数组b中的最大数,最小数及主对角线元素的平方和。

第七章数组一、单项选择题
二、写出下列程序的运行结果
1. 4 3 2 1
三、编程题
1.
#include <iostream.h>
void main()
{
const int n=15;
int i,a[n];
cout<<"Input"<<n<<"positive integers:"<<endl;
for(i=0;i<n;i++)
cin>>a[i];
int max4=0,s4,start,t1,t2,t3,t4;
for(i=0;i<n;i++)
{
t1=i%n;
t2=(i+1)%n;
t3=(i+2)%n;
t4=(i+3)%n;
s4=a[t1]+a[t2]+a[t3]+a[t4];
if(s4>max4)
{
max4=s4;
start=i;
}
}
t1=start;
t2=(start+1)%n;
t3=(start+2)%n;
t4=(start+3)%n;
cout<<"max4="<<a[t1]<<"+"<<a[t2]<<"+"<<a[t3]<<"+"<<a[t4]<<"最大,这四个数的下标为"<<t1<<','<<t2<<','<<t3<<','<<t4<<endl;
}
输出结果:
Input 15 positive integers:
88 99 1 2 3 4 5 6 7 8 9 10 55 66 1
max4=66+1+88+99 最大,这四个数的下标为13,14,0,1
2.
#include <iostream.h>
void main()
{
int b[4][4],i,j;
/*为数组b各元素赋值*/
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
b[i][j]=i+j+1;
cout<<" "<<b[i][j];
}
cout<<endl;
}
cout<<"--The result--"<<endl;
//求第二行元素之和
int sum_line2=0;
for(j=0;j<4;j++)
sum_line2+=b[1][j];
cout<<"sum_line2="<<sum_line2<<endl;
//求第三行元素之平均值
int sum_col3=0;
for(i=0;i<4;i++)
sum_col3+=b[i][2];
cout<<"ave_col3="<<sum_col3/4.0<<endl;
//求最大数,最小数及主对角线元素之平方和
int max_elem=b[0][0],min_elem=b[0][0],sum_diag=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(b[i][j]>max_elem)max_elem=b[i][j];
if(b[i][j]<min_elem)min_elem=b[i][j];
if(i==j)sum_diag+=b[i][j]*b[i][j];
}
}
cout<<"max_elem="<<max_elem<<endl;
cout<<"min_elem="<<min_elem<<endl;
cout<<"sum_diag="<<sum_diag<<endl;
}
输出结果:
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
--the result—
sum_line2=14
ave_col3=4.5
max_elem=7
min_elem=1
sum_diag=84。

相关主题