A-A+
下列程序正确的运行结果为()#include<stdio.h>main(){int a[]=
问题详情
下列程序正确的运行结果为()
#include<stdio.h>
main()
{int a[]={2,6,8,10,14,18);
int *ptr[-]={&a[0],&a[1],&a[2],&a[3],&a[4]);
int i;
for(i=0;i<5;i++)
a[i]=a[i]/2+a[i]
printf("%dn",*(*(ptr+2)));
printf("%dn",*(*ptr));
}
A.12
21
B.21
12
C.12
3
D.3
12
参考答案
正确答案:A
A
[解析]
#include<stdio.h>
main()
{int a[]={2,6,8.10,14,18);
int *ptr[]={&a[4],&a[3],&a[2],&a[1],&a[0]};/*定义一个指向整型数据的指针的数组,并以数组a的前5个元素的地址为初值*/
for(i=0;i<5;i++)
a[i]=a[i]/2+a[];/*数组a的元素分别加上各自现有值的1/2并保存在该元素中*/
printf("%d\n",*(*(ptr+2)));/*输出的是指针数组ptr的第三个元素所指向的数组a的元素值*/
printf("%d\n",*(*ptr));/*输出的是指针数组ptr的第一个元素所指向的数组a的元素值*/
}