下列程序正确的运行结果为( ) #include<stdio.h> main() {int a[]={2,6,8,10,14,18); int *ptr[-]={&a[0],&a[1],&a[2],&a[3],&a[4]);

admin2010-04-24  7

问题 下列程序正确的运行结果为(    )    #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=a/2+a    printf("%d\n",*(*(ptr+2)));    printf("%d\n",*(*ptr));    }

选项 A、12       21
B、21       12
C、12       3
D、3       12

答案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=a/2+a;/*数组a的元素分别加上各自现有值的1/2并保存在该元素中*/
printf("%d\n",*(*(ptr+2)));/*输出的是指针数组ptr的第三个元素所指向的数组a的元素值*/
printf("%d\n",*(*ptr));/*输出的是指针数组ptr的第一个元素所指向的数组a的元素值*/
}
转载请注明原文地址:https://jikaoti.com/ti/uDtaFFFM
0

相关试题推荐
最新回复(0)