当前位置:文档之家› 《C++数组》习题

《C++数组》习题

《C++数组》习题
学号姓名
一、选择题
1、下列对字符数组进行初始化得语句正确得就是
A.char a[]= "Hello”;
B。

char a[][]={'H’,'e','l’,’l’,'o'};
C。

char a[5]=”Hello"; ﻩ
D。

char a[2][5]= {”Hello","World"};
2、以下一维数组a得正确定义就是
A、int a(10) ; ﻩB.int n=10,a[n];
C.int n; ﻩﻩﻩ
D.#define size 10
cin>〉n; ﻩ inta[size];
int a[n];
3、以下对二维数组a进行不正确初始化得就是
A、int a[2][3]={0};
B.inta[][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);
4、执行以下程序后,s得值为
int a[]={5,3,7,2,1,5,4,lO);
int s=0,k;
for(k=0;k<8;k+=2)
s+=*(a+k);
A。

17 B。

27 C.13 D.无定值
5、为了判断两个字符串sl与s2就是否相等,应当使用
A、if (s1==s2)
B、if (s1=s2)
C、if(strcpy(S1,s2))
D。

if(strcmp(s1,s2)==O)
6、有定义int a[2][5];,若a[0][1]得地址为x,则a[0][O]、a[1][3]地址分别为(假设一个整型数据占用两个字节得内存空间): A、x-2,x+14 ﻩB.x—1,x+7
C.x+1,x+7 ﻩD.x—1,x+14
7、若有定义float a[m][n];,且a[1][1]得地址为x,每个float 元素占用4个字节,则a[il[j]得地址为
A.x+4*(i-1)*n+4*(j-1) B、x+(i-1)*n+(j-1)
C、x+4*(i-1)*j+(j-1)ﻩﻩﻩD.x+4*i*j+4*j
二、填空题
1、char st[20]= "SEU\0\t\\";
ﻩcout〈<sizeof(st)<<strlen(st)<<endl;则输出得内容就是,如将st数组定义中得20去掉,则输出得内容就是、
三、程序阅读题
1、写出如下程序得运行结果。

int main()
{
int i,j;
int a[10]={1,1,1,1,1,1,1,1,1,1};
for(i=0; i〈10;i++)
ﻩfor(j=0;j<i; j++)
ﻩa[i]=a[i]+a[j];
ﻩfor(i=0; i<10; i++)
ﻩcout<<a[i]<〈'\t’;
cout〈<'\n';
return 0;

2、写出如下程序得运行结果。

int main()

ﻩint a[3][3] = {1,0,2,2,2,0,0,1,0};
ﻩint i,j;
ﻩfor(i=0; i〈3; i++)
ﻩfor(j=0; j〈3; j++)
ﻩﻩ{
ﻩa[i][j]=a[a[i][j]][a[j][i]];
ﻩcout〈<a[i][j]<<’\t’;

return 0;
四、程序填空题
1、定义函数,在一维数组中找出最大值与最小值,主函数中调用该函数并输出数组得最大最小元素。

void cal(int a[],int n, ){ max=a[0];
;
ﻩfor(int i=1;i<n;i++){
ﻩif(a[i]>max) ;
if(a[i]<min) min=a[i];
}
}
int main(){
int a[10];
cout<〈”输入10个整数:"<<endl;
ﻩfor(int i=0;i<10;i++) cin>〉a[i];
ﻩ ;
cal( ,max,min);
for(i=0;i〈10;i++) cout<〈a[i]<<” ”;
cout〈〈endl;
ﻩcout〈<"max=”<〈max〈<”,min=”<<min<〈endl;
ﻩreturn 0;

2、下列函数inverse得功能就是使一个字符串按逆序存放,请填空。

void inverse(char str[])

ﻩchar m;
ﻩint i,j;
for(i=0,j=strlen(str); ;i++, ) {
ﻩm=str[i];
ﻩstr[i]=;
ﻩ ;
}

3、下列程序用于判断字符串S就是否对称,对称时返回1,否则返回0。

如f("a
bba”)返回1,而f("abab")返回0、请填空、
int f( )
{
int i=0,j=0;
while(s[j]!=’\0') ;
for(j--;i<j&&s[i]==s[j];i++,j--);
return( );
4、下面函数就是寻找二维数组中每一行得最大值,请填空。

#define N 5
#define M 5
void max(int a[N][M])
{
ﻩint i,j,p;
ﻩfor(i=0;i<N;i++)
{
ﻩ;
ﻩfor(j=1;j〈M;j++)
ﻩif(a[i][p]<a[i][j])
;
ﻩcout〈<i〈〈”:”<〈a[i][p]<〈endl;


5、下面得程序就是把十进制数转换为某个指定得进制,请填空。

intmain()
{
ﻩint num[65],i=0,base;
long n;
cout〈〈"input a decimal number:";
cin>〉n;
cout<〈”input basenumber:";
cin>>base;
do
{
ﻩﻩ ;
i++;
ﻩn=n/base;
}while( );
for( ;i>=0;i——)
ﻩﻩcout<〈num[i];
return 0;
}。

相关主题