计算机二级c语言第九章 数组和指针习题与答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第九章数组和指针

1、有以下程序

main()

{ int a[]={2,4,6,8,10}, y=0, x, *p;

p=&a[1];

for(x= 1; x< 3; x++) y += p[x];

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

}

程序运行后的输出结果是

A)10 B)11 C)14 D)15

2、有以下程序

void sum(int a[])

{ a[0] = a[-1]+a[1]; }

main()

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

sum(&a[2]);

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

}

程序运行后的输出结果是

A)6 B)7 C)5 D)8

3、有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++< 7) if(p[i]%2) j+=p[i];

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

}

程序运行后的输出结果是

A)42 B)45 C)56 D)60

4、设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A)for(i=0;i<6;i++) printf("%2d",*(p++));

B)for(i=0;i<6;i++) printf("%2d",*(p+i));

C)for(i=0;i<6;i++) printf("%2d",*p++);

D)for(i=0;i<6;i++) printf("%2d",(*p)++);

5、有以下程序

#include < stdio.h >

main()

{ int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5);

printf("%d %d\n",*p,*q); }

程序运行后的输出结果是

A)运行后报错 B)6 6 C)6 11 D)5 10

6、有以下程序段

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是

A)5 B)6 C)8 D)9

7、已有定义:int i,a[10],*p;则合法的赋值语句是

A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2;

8、以下能正确定义一维数组的选项是

A)int num []; B)#define N 100

int num [N];

C)int num[0..100]; D)int N=100;

int num[N];

9、有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i< 7&&p[i]%2)

{k=k+p[i];i++;}

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

}

执行后输出结果是

A)58 B)56 C)45 D)24

10、有以下程序

main()

{ int x[8]={8,7,6,5,0,0},*s;

s=x+3;

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

}

执行后输出结果是

A)随机值 B)0 C)5 D)6

11、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是

A)&aa[0]+1 B)&aa[1] C)&aa[0]++ D)aa+1

12、以下程序的输出结果是

main()

{ int i, 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

13、有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为9的表达式是

A)*p+9 B)*(p+8) C)*p+=9 D)p+8

14、有如下程序

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

15、若已定义:

int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;

其中 0≤i≤9, 则对a数组元素不正确的引用

A)a[p-a] B)*(&a[i]) C)p[i] D)a[10]

16、以下程序的输出结果是

main()

{ int i, 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

17、以下程序的输出结果是

main()

{ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i;

i=8;

p=a+i;

printf("%s\n",p-3);

}

A)6 B)6789 C)'6' D)789

18、执行以下程序后,y的值是

main()

{ int a[]={2,4,6,8,10};

int y=1,x,*p;

p=&a[1];

for(x=0;x< 3;x++) y + = * (p + x);

printf("%d\n",y); }

A)17 B)18 C)19 D)20

19、阅读下列程序:

main()

{ int n[3],i,j,k;

for(i=0;i< 3;i++) n[i]=0;

k=2;

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

相关文档
最新文档