有下列程序: #include<stdi0.h> voidmain( ) {inta[]={1,2,3,4),y,*p=&a[3]; --p;y=*p

题目

有下列程序: #include<stdi0.h> voidmain( ) {inta[]={1,2,3,4),y,*p=&a[3]; --p;y=*p;printf("y=%d\n",y); } 程序的运行结果是( )。

A.y=0

B.y=1

C.y=2

D.y=3

参考答案和解析
正确答案:D
D。【解析】本题定义一个一维数组和指针,接着将数组第4个元素的地址赋予*P数组下标从0开始,进行--p使指针P指向了数组的第3个元素,通过y=*P将数组第3个元素的值3赋予y,所以选项D正确。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序片段 int a[ ]={1,2,3,4},y,*p=&a[3]; --p; y=*p; printf("y=%dn",y); 程序的运行结果是

A.y=0

B.y=1

C.y=2

D.y=3


C

第2题:

有以下程序includemain(){inta[]={1,2,3,4},y,*p=&a[3]; --p;y=*p;printf("y=%d\n

有以下程序 #include <stdio.h> main() { int a[]={1,2,3,4},y,*p=&a[3]; --p; y=*p;printf("y=%d\n",y); } 程序的运行结果是

A.y=0

B.y=1

C.y=2

D.y=3


正确答案:D
解析:在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。

第3题:

有以下程序:includemain(){int a[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y

有以下程序: #include<stdio.h> main() { int a[]={1,2,3,4},y,*p=&a[3]; --p;y=*p;printf("y=%d\n",y); } 程序的运行结果是( )。

A.y=0

B.y=1

C.y=2

D.y=3


正确答案:D
解析:本题主要考查一维数组及数组元素的地址。程序中定义数组a后知,a[0]=1,a[1]=2,a[2]=3,a[3]=4;在定义指针p时给其赋值为a[3]的地址。执行--p;语句后,p指向数组元素a[2];然后执行y=*p;语句,y的值为指针p所指向的变量的值为3。

第4题:

有以下程序:includemain(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n

有以下程序: #include<stdio.h> main() {inta[]={1,2,3,4},y,*p=&a[3]; --p;y=*p;printf("y=%d\n",y); } 程序的运行结果是( )。

A.y=0

B.y=1

C.y=2

D.y=3


正确答案:D

第5题:

有下列程序: #include<stdi0.h> structord {intx,y;}dt[2]={1,2,3,4}; voidmain( ) {structord*p=dt; printf("%d,",++P->x);printf("%d,",++P ->y); } 程序的运行结果是( ).

A.1,2

B.2,3

C.3,4

D.4,1


正确答案:B
B。【解析】在本题中结构体成员访问运算符->的优先级高于++算术运算符,所以表达式++p>x的计算过程是首先取出结构体dt[0]的成员变量X的值1,然后再对其值加1,得到2输出。表达式++p->y的计算过程是首先取出结构体dt[0]的成员变量y的值2,然后再对其值加1,得到3输出。

第6题:

有以下程序

#include <stdio.h>

main()

{ int a[ ]={1,2,3,4},y,*p=&a[3];

--p; y=*p;printf("y=%d\n",y);

}

程序的运行结果是

A.y=0

B.y=1

C.y=2

D.y=3


正确答案:D
解析:在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。

第7题:

有下列程序: include main() {int a[]={1,2,3,4},y,*p=&a[3]; --

有下列程序: #include <stdio.h> main() {int a[]={1,2,3,4},y,*p=&a[3]; --p; y=*p; printf("y=%d\n",y); } 程序的运行结果是( )。

A.y=0

B.y=1

C.y=2

D.y=3


正确答案:D
解析:首先定义了一个一维数组和指针,接着将数组第四个元素的地址赋予*p,进行--p使指针p指向了数组的第三个元素,通过 y=*p:将数组第三个元素的值3赋予y,所以选项D)正确。

第8题:

有以下程序includemain(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n"

有以下程序 #include <stdio.h> main() { int a[]={1,2,3,4},y,*p=&a[3]; --p; y=*p;printf("y=%d\n",y); } 程序的运行结果是

A.y=0

B.y=1

C.y=2

D.y=3


正确答案:D
解析: 在程序中指针变量P初始指向a[3],执行p减1后,P指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。

第9题:

有以下程序

#include <stdio.h>

main( )

{ int a[ ]={1,2,3,4},y,*p=&a[3];

--p; y=*p; printf("y=%d\n",y);

}

程序的运行结果是

A)y=0

B)y=1

C)y=2

D)y=3


正确答案:D