计算机二级c语言第九章 数组和指针习题与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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++)