C语言数组练习及答案

  • 格式:doc
  • 大小:88.00 KB
  • 文档页数:18

第四部分数组

4. 1选择题

1 .以下关于数组的描述正确的是(c}

A.数组的大小是固定的,但可以有不同的类型的数组元素

B.数组的大小是可变的,但所有数组元素的类型必须相同

C.数组的大小是固定的,所有数组元素的类型必须相同

D.数组的大小是可变的,可以有不同的类型的数组元素

2 .以下对一维整型数组a的正确说明是(d)。

A.inta(10);

C.intn;

scanf("%d",&n); inta[n];

B.intn=10,a[n];

D.#defineSIZE10inta[SIZE];

3 .在C语言中,引用数组元素时,其数组下标的数据类型允许是(c)。

A.整型常量

B.整型表达式

C.整型常量或整型表达式

D.任何类型的表达式

页脚内容1 4 .以下对一维数组m进行正确初始化的是(c)。

A.intm[10]=(0,0,0,0);B.intm[10]={};

C.intm[]={0};D.intm[10]={10*2};

5 .若有定义:intbb[8];。则以下表达式中不能代表数组元bb[1的地址的是(c>

A.&bb[0]+1B.&bb[1]C.&bb[0]++D.bb+1

6 .假定int类型变量占用两个字节,具有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是(d)

A.3B.6C.10D.20

7 .若有以下说明:

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

charc='a',d,g;

则数值为4的表达式是(d)

A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]

8 .以下程序段给数组所有的元素输入数据,请选择正确答案填入(a)。

#includemain()

{

inta[10],i=0;

while(i<10)scanf("%d",);

页脚内容2

)

A.a+(i++)B.&a[i+1]C.a+iD.&a[++i]

9 .执行下面的程序段后,变量k中的值为(a)。

intk=3,s[2]; s[0]=k;k=s[1]*10;

A.不定值B.33C.30D.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.258B.741C.852D.369

11 .以下程序运行后,输出结果是(d)。

main()

{

页脚内容3

intn[5]={0,0,0},i,k=2;

for(i=0;i

printf("%d\n",n[k]);

}

A.不确定的值B.2C.1D.0

12 .以下程序运行后,输出结果是(b)。

main()

{ inty=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.10000B.10010C.00110D.10100

13 .以下程序运行后,输出结果是(a)。

页脚内容4

main()

(

inta[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]

elsea[k]=a2[j++];

for(k=0;k<4;k++)printf("%d",a[k]);

}

A.1234B.1324C.2413D.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);

页脚内容5

A.20B.21C.22D.23

15 .以下程序运行后输出结果是(d)。

main()

(

intn[3],i,j,k;

for(i=0;i<3;i++)

n[i]=0;

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

printf("%d\n",n[1]);}

A.2B.1C.0D.3

16 .下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输

出x在10个整数中的序号(从1开始);找不到则输出00程序缺少的是(b)。

main() (

页脚内容6inti,a[10],x,flag=0;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

scanf("%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 .若说明:inta[2][3];则对a数组元素的正确引用是(c)。

A.a(1,2)B.a[1,3]C.a[1>2][!1]D.a[2][0]

18 .若有定义:intb[3][4]={0};则下述正确的是(b)。

A.此定义语句不正确

B.没有元素可得初值0

C.数组b中各元素均为0

D.数组b中各元素可得初值但值不一定为0

19 .若有以下数组定义,其中不正确的是(d)。

A.inta[2][3];

Bintb[][3]={0,1,2.3};

页脚内容7

C.intc[100][100]={0}; D.intd[3][]={{1,2},{1,2.3},{1,2,3.4}};

20 .若有以下的定义:intt[5][4];能正确引用t数组的表达式是(c)。

A.t[2][4]B.t[5][0]C.t[0][0]D.t[0,0]

21 .在定义intm[][3]={1,2,3,4,5,6};后,m[1][0的值是(a)。

A.4B.1C.2D.5

22.在定义intn[5][6]后第10个元素是(c)。

A.n[2][5]B.n[2][4]C.n[1][3]D.n[1][4]

23 .若二维数组c有m歹I」,则计算任一元素c[i][j]在数组中的位置的公式为(d)

(假设c[0][0位于数组的第一个位置)

A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1

24 .若有以下定义语句,则表达式“x[1][1]*x[2][2]的值是(a)。

floatx[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

A.0.0B.4.0C.5.0D.6.0

25 .以下程序运行后,输出结果是(a)。

main()

{

inta[4][4]={{1,3.5},{2,4.6},{3,5.7}};

页脚内容8

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

)

A.0650B.1470C.5430D.输出值不定 26 .以下程序运行后,输出结果是(b)。

main()

{

intaa[4][4]={{1,234},{5,6,7,8},{3,9,10,2},{4,2,9,6}};

inti,s=0;

for(i=0;i<4;i++)s+=aa[i][1];

printf("%)d,s);

}

A.11B.19C.13D.20

27 .有以下程序

main()

{

inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

for(i=1;i<3;i++)

for(j=0;j<=i;j++)s+=a[i][j];

页脚内容9

printf("%d\n",s);

)

该程序的输出结果是(a)0

A.18B.19C.20D.21

28 .若定义如下变量和数组:

inti; intx[3][3]={1,234,5,6,7,8,9};

则下面语句的输出结果是(c)。

for(i=0;i<3;i++)printf("%d",x[i][2-i]);

A.159B.147C.357D.369

29 .下述对C语言字符数组的描述中错误的是(c)。

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入、输出

C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

30 .下述对C语言字符数组的描述中正确的是(a)。

A.任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间

B.一维数组的元素在引用时其下标大小没有限制

页脚内容10