CMS专题

单选题有定义:int a[5][4],(*p)[4]=a;,则*(*(p+2)+3)等价于()。A a[2][0]B a[2][1]C a[2][2]D a[2][3]

题目
单选题
有定义:int a[5][4],(*p)[4]=a;,则*(*(p+2)+3)等价于()。
A

a[2][0]

B

a[2][1]

C

a[2][2]

D

a[2][3]

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

与以下定义等价的是 ( ) int * p [4]

A.int p [4]

B.int * p

C.int *(p[4]).

D.int( * p)[4]


正确答案:C

第2题:

有如下程序段: int a[10],*p[3],**pp,i; for(i=0;i<3:i++) p[i]=&a[i*4); pp=p; 则正确表示数组a元素的表达式是 ______。

A.pp

B.a[10]

C.p[3]

D.*(*(p+2))


正确答案:D

第3题:

设有以下定义和语句,则*(*(p+2)+1)的值为【14】。

int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2];

p=a;


正确答案:
60

第4题:

有以下程序: main() {int a[10]={1,2, 3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf("%d\n",*p+*q); } 程序运行后的输出结果是 ______。

A.16

B.10

C.8

D.6


正确答案:B
解析:;数组a各元素a[0]~a[9]的值依次为1~10;在程序的说明部分,指针变量p初始化为&a[3],即*p的值为4;指针变量q初始化为p+2,即&a[3]+2,所以*q的值为6,所以*p+*q的值为10。

第5题:

有如下定义: int a[5]={1,3,5,7,9}, * p=a; 下列表达式中不能得到数值5的是

A.a[2]

B.a[3]

C.*(p+2)

D.*p+4


正确答案:B

第6题:

若有以下定义和语句,则对a数组元素地址的正确引用为 int a[2][3],(*p)[3]; p=a;

A.*(p+2)

B.p[2]

C.p[1]+1

D.(p+1)+2


正确答案:C
解析:本题考查了通过行指针来引用二维数组元素的方法。选项C中p[1]指向了数组a的第二行,p[1]+1则指向了第二行的第二个数据元素,其他几个选项都不正确。

第7题:

有以下程序:includemain(){int a [10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3], *q=p+2;

有以下程序: #include <stdio.h> main() { int a [10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3], *q=p+2; prinff("%d\n";*p+*q); } 程序运行后的输出结果是( )。

A.16

B.10

C.8

D.6


正确答案:B
解析:由变量的定义可知,指针变量p初始化为&a[3],即*P的值为4;指针变量q初始化为p+2,即&a[3]+2,所以*q的值为6,*p+*q的值为10。

第8题:

以下程序的输出结果是 ( ) main( ) { int a [10] = {1,2,3,4,5,6,7,8,9,10,},*p=a; printf("%d\n",* (p+2)); }

A.3

B.4

C.1

D.2


正确答案:A

第9题:

有定义语句:int*p[4],以下选项中与此语句等价的是( )。

A.int p[4];

B.int**p;

C.int*(p[4]);

D.int(*p)[4];


正确答案:C

第10题:

有以下程序 main ( ) int a[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3], *q=p+2; print f ("%d\n" , *p+*q); 程序运行后输出结查是

A.16

B.10

C.8

D.6


正确答案:B
解析:本题考查的是指针的简单应用。题目中首先定义了一个int型数组a并初始化了,然后定义了两个指针变量p和q,并分别初始化p为指向数组元素a[3]、q指向p后面的第2个元素即指向a[5]。所以最终输出的值为a[3]+a[5]的值10。应该选B。

更多相关问题