第5章 数组
一、选择题
1、下列关于数组的描述正确是:()
A) 数组的长度是固定的,而其中元素的数据类型可以不同
B) 数组的长度是固定的,而其中元素的数据类型必须相同
C) 数组的长度是可变的,而其中元素的数据类型可以不同
D) 数组的长度是可变的,而其中元素的数据类型必须相同
2、在C++语言中引用数组元素时,下面关于数组下标数据类型的说法错误的是:()
A) 整型常量             B) 整型表达式
C) 整型常量或整型表达式 D) 任何类型的表达式
3、要定义数组A,使得其中每个元素的数据分别依次为:3948000,错误的定义语句是:()
A) int A[]={3,9,4,8,0,0,0};  B) int A[9]={3,9,4,8,0,0,0};
C) int A[]={3,9,4,8};        D) int A[8]={3,9,4,8};
4、有如下数组声明:int value[30];,下标值引用错误的是:()
A) value[30]  B)  value[0]  C)  value[10]    D)  value[20]
5、以下叙述中错误的是:()
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统自动扩展数组长度
D)可以通过赋初值的方式确定数组元素的个数
6在C++语言中,一维数组的定义方法为:(  )。
  类型说明符 数组名     
A)[常量表达式]  B)[整型常量]    C)[整型变量]    D)[整型常量]或[整型表达式]
7对以下说明语句的正确理解是(  )。
int a[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5]    B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
8假定short类型变量占用两个字节,其有定义:short x[10]={0,2,4};,则数组x在内存中所占字节数是(  )。
A)3  B)6  C)10  D)20
9、以下正确的二维数组定义是:()
A)  int a[][]={1,2,3,4,5,6};
B)  int a[2][]={1,2,3,4,5,6};
C)  int a[][3]={1,2,3,4,5,6};
D)  int a[2,3]={1,2,3,4,5,6};
10、以下对二维数组a进行初始化正确的是:()
A)  int a[2][]={{1,0,1},{5,2,3}} ;
B)  int a[][3]={{1,2,3},{4,5,6}} ;
C)  int a[2][4]={{1,2,3},{4,5},{6}} ;
D)  int a[2][3]={{1,0,1},{},{1,1}} ;
11、若有定义:int a[3][4];则正确引用数组a元素的是:()
A. a[2][4] 数组全部赋值为1 B. a[3][3]  C. a[0][0]  D. a[3][4]
12、若有定义:int a[][4]={0,0};以下叙述中错误的是:()
A)  数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1
D)只有元素a[0][0]a[0][1]可得到初值0,其余元素均得不到初值0
13、下面选项中等价的是:()
A) int a[2][3]={1,0,2,2,4,5}与int a[2][]= {1,0,2,2,4,5};
B)  int a[][3]= {1,0,2,2,4,5}与int a[2][3]= {1,0,2,2,4,5};
C)  int a[2][3]={3,4,5}与int a[][3]={3,4,5};
D)  int a[2][3]={0,1}与int a[2][3]={{0},{1}};
14以下不能对二维数组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};
15有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为(  )。
A)3,2  B)3,1  C)2,2  D)2,1
16若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上) (  )。
A)i*m+j    B)j*m+I      C)i*m+j-1  D)i*m+j+1
17定义如下变量和数组:
int k;
int a[3][3]={9,8,7,6,5,4,3,2,1};
则下面语句的输出结果是(  )。
for(k=0;k<3;k++) cout << a[k][k];
A)7 5 3  B)9 5 1  C)9 6 3  D)7 4 1
18若有说明:int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是(  )。
A)2  B)3  C)4  D)无确定值
19下面程序输出的结果是(  )。
void main()
{ int i;
 int a[3][3]={1,2,3,4,5,6,7,8,9};
 for(i=0;i<3;i++)
   cout <<a[2-i][i];
}
A)1 5 9  B)7 5 3  C)3 5 7  D)5 9 1
20执行下面的程序段后,变量k中的值为(  )。
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值  B)33  C)30  D)10
掌握数组作为函数参数的使用方法
21、若用数组名作为函数调用的实参,传递给形参的是:()
A)  数组的首地址           B)  数组中第一个元素的值
C)  数组中的全部元素的值   D)  数组元素的个数
22、对数组名作函数的参数,下面描述正确的是:()
A) 数组名作函数的参数,调用时将实参数组复制给形参数组
B) 数组名作函数的参数,主调函数和被调函数共用一段存储单元
C) 数组名作参数时,形参定义的数组长度不能省略
D) 数组名作参数,不能改变主调函数中的数据
23、已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是:()
A) int MAT[][10]  B)  int MAT[3][]  C)  int MAT[10][3]  D)  int MAT[][]
24、设主调用函数为如下程序段,则函数f中对形参数组定义错误的是:()
int a[3][4];
f(a);
A) f(int array[3][4])  B) f(int array[][4])  C) f(int array[3][])  D) f(int array[2][3])
25、下面程序执行后的输出结果是:()
#include <iostream>
using namespace std;
int f(int b[],int m,int n)
{ int i,s=0;
   for(i=m;i<n;i++) s=s+b[i-1];
   return s;
int main()
{ int x,a[]={1,2,3,4,5,6,7,8,9};
   x=f(a,3,7); 
   cout<<x;
   return 0;
}
A) 10  B) 18  C)  8  D) 15
26、下面程序执行后的输出结果是:()
#include <iostream>
using namespace std;
#define N 20
void fun(int a[],int n,int m)
{    int i;
    for(i=m;i>=n;i--) a[i+1]=a[i];
}
int main()
{  int i;
    int a[N]={1,2,3,4,5,6,7,8,9,10};
    fun(a,2,9);
    for(i=0;i<5;i++) cout<<a[i];
    return 0;
}
A)  10234    B)  12344    C) 12334  D) 12234
27、下面程序执行后的输出结果是:()
#include <iostream>
using namespace std;
void swap1(int c[])
{    int t;
    t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{    int t;
    t=c0;c0=c1;c1=t;
}
int main( )
{    int a[2]={3,5},b[2]={3,5};
    swap1(a) ; swap2(b[0],b[1]);
    cout<<a[0] <<a[1] <<b[0] <<b[1];
    return 0;
}
A)  5353  B) 5335  C)  3535  D)  3553
28下面程序执行后的输出结果是:()
#include <iostream>
using namespace std;
int fun(int t[],int n)
{    int m;
    if(n>=2) { m=fun(t,n-1); return m; }
    return t[0];
}
int main()
{    int a[]={11,4,6,3,8,2,3,5,9,2};
    cout<<fun(a,10);
    return 0;
}
A)  10  B)  11  C)  12  D)  13

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。