第四部分数组
时间:2021.02.02
创作:欧阳术
4.1选择题
1.  以下关于数组的描述正确的是(c )。 
A. 数组的大小是固定的,但可以有不同的类型的数组元素
B. 数组的大小是可变的,但所有数组元素的类型必须相同
C. 数组的大小是固定的,所有数组元素的类型必须相同
D. 数组的大小是可变的,可以有不同的类型的数组元素
2.  以下对一维整型数组a的正确说明是(d )。     
A.int a(10);                B. int n=10,a[n];
C.int n;                    D. #define  SIZE  10
scanf("%d",&n);              int  a[SIZE];
int a[n];         
3.  在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。   
A. 整型常量
B. 整型表达式
C. 整型常量或整型表达式
D. 任何类型的表达式
4.  以下对一维数组m进行正确初始化的是(c )。     
A. int m[10]=(0,0,0,0) ;          B. int m[10]={ };
C.int m[ ]={0};                  D. int m[10]={10*2};
5.  若有定义:intbb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。 
A. &bb[0]+1    B. &bb[1]    C. &bb[0]++ D.bb+1
6.  假定int类型变量占用两个字节,其有定义:int  x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。
A. 3  B.6      C. 10  D. 20
7.  若有以下说明:                           
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
        则数值为4的表达式是(d )
A.a[g-c]          B. a[4]          C. a['d'-'c']        D. a['d'-c]
8.  以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。   
#include<stdio.h>
main()
{
int a[10],i=0;
while(i<10) scanf("%d",________ );
}
A. a+(i++)      B. &a[i+1]      C.a+i                D. &a[++i]
9.  执行下面的程序段后,变量k中的值为(a )。
int  k=3, s[2];
s[0]=k;  k=s[1]*10;
A. 不定值 B.33      C. 30    D. 10
10. 以下程序的输出结果是(c )
main()
{
inti,a[10];
for(i=9;i>=0;i--)  a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A. 258 B.741            C. 852      D. 369
11. 以下程序运行后,输出结果是(d )。 
main()
{
int  n[5]={0,0,0},i,k=2;
for(i=0;i<k;i++)  n[i]=n[i]+1;
printf("%d\n",n[k]);
}
A. 不确定的值    B.2    C. 1        D. 0
12. 以下程序运行后,输出结果是(b )。   
main()
{
int    y=18,i=0,j,a[8];
do
{  a[i]=y%2; i++;
          y=y/2;
}  while(y>=1);
for(j=i-1;j>=0;j--) printf("%d",a[j]);
printf("\n");
}
A. 10000          B.10010          C. 00110            D. 10100
13.以下程序运行后,输出结果是(a )。
main()
{
int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;
for(k=0;k<4;k++)
if(a1[i]<a2[j])    a[k]=a1[i++];
else a[k]=a2[j++];
for(k=0;k<4;k++)    printf("%d",a[k]);
}
A.1234            B.1324      C.2413  D.4321
14.以下程序运行后,输出结果是(b )。
main()
inti,k,a[10],p[3];
k=5;
for (i=0;i<10;i++)  a[i]=i;
for (i=0;i<3;i++)  p[i]=a[i*(i+1)];
for (i=0;i<3;i++)  k+=p[i]*2;
printf("%d\n",k);
}
A. 20            B.21  C. 22    D. 23
15. 以下程序运行后输出结果是(d )。 
main( )
{
int n[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for (i=0;i<k;i++)
for (j=0;j<k;j++) 
n[j]=n[i]+1;
printf("%d\n",n[1]);    }
A. 2          B.1  C. 0        D. 3
16. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查x。到则输出x在10个整数中的序号(从1开始);不到则输出0。程序缺少的是(b )。
main()
{
inti,a[10],x,flag=0;
for(i=0;i<10;i++)   
scanf("%d",&a[i]);
数组全部赋值为1scanf("%d",&x);
for(i=0;i<10;i++)    if  _______      {flag=i+1;  break;}
printf("%d\n",  flag);
}
A.x!=a[i]    B. !(x-a[i])        C. x-a[i]        D. !x-a[i]
17.若说明:int a[2][3];  则对a数组元素的正确引用是(c )。
A. a(1,2) B. a[1,3]      C.a[1>2][!1]        D. a[2][0]
18. 若有定义:int  b[3][4]={0};则下述正确的是(b ) 。 
A.此定义语句不正确
B. 没有元素可得初值0
C.数组b中各元素均为0
D.数组b中各元素可得初值但值不一定为0
19. 若有以下数组定义,其中不正确的是(d ) 。
A. inta[2][3];
B int  b[][3]={0,1,2,3};
C. intc[100][100]={0};
D. int  d[3][]={{1,2},{1,2,3},{1,2,3,4}};
20. 若有以下的定义:int  t[5][4];能正确引用t数组的表达式是(c )。
A. t[2][4]    B. t[5][0]        C. t[0][0]          D. t[0,0]
21. 在定义int  m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是(a )。 
A. 4    B. 1      C. 2      D. 5
22. 在定义int  n[5][6]后第10个元素是(c)。 
A. n[2][5]  B. n[2][4]  C. n[1][3]  D. n[1][4]

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