计算机二级

设有以下语句,对a数组元素的引用中(其中0≤i<10),不正确的是( )。 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i)

题目

设有以下语句,对a数组元素的引用中(其中0≤i<10),不正确的是( )。 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i)

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

第1题:

设有以下语句,则()不是对a数组元素的正确引用,其中0≤i<10。 int a[10]={0,1,2,3,4,5,6,7,8,9},*P=a;>

A.a[P-a]

B.*(&a[i])

C.P[i]

D.*(*(a+i))


*(*(a+i))

第2题:

设有以下语句,对a数组元素的引用中(其中O≤i<10),不正确的是( )。 int a[10]={0,1,2,3,4,5,6,7,8,9),*p=a;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


正确答案:D
解析:A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量;B选项中,&a[i]是取数组a中第i个元素的地址,而对于*(&a[i]),由指针运算符*的运算规则可知,语句 *(&a[i])就是返回地址&a[i]空间中存放的值,也即a[i];C选项,由于指针p已指向数组a,所以p[i]就等于a[i],这是常用的一种数组元素引用方式;D选项是以指针方式对数组元素进行引用的,由于a只是代表数组的首地址,并不是指针,所以表达式 *(*(a+i))是错误的,正确的引用应该为 *(*(p+i))。

第3题:

设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


正确答案:D
解析:本题考核数组与指针。A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量。B选项中,&a[i]是取数组a中第i个元素的地址,而对于*(&a[i],由指针运算符*的运算规则可知,语句*(&a[i]就是返回地址&a[i]空间中存放的值,也即a[i]。C)选项,由于指针p已指向数组a,所以p[i]就等于a[i]。这是常用的一种数组元素引用方式。D)选项是以指针方式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式*(*(a+i)是错误的,正确的引用应该为:*(*(p+i))。

第4题:

设有以下语句:int a[10]={0,1,2,3,4,5,6,7,8,9),*p=a;,对a数组元素的引用中(其中0<=i<10)不正确的是( )。

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


正确答案:D

第5题:

设有以下语句,其中不是对a数组元素的正确引用的是:______(其中0≤i<10) int a[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


正确答案:D
解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。

第6题:

设有以下语句,对a数组元素的引用中(其中0<=i<10),不正确的是( )。 int a[10]={0,1,2,3,4,5,6,7,8,9),*p=a;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


正确答案:D
解析:选项A中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量。选项B中,&a[i]是取数组a中第i个元素的地址,而对于*(&a[i]),由指针运算符*的运算规则可知,语句“*(&a[i])”就是返回地址&a[i]空间中存放的值,也即a[i]选项C,由于指针p已指向数组a,所以p[i]就等于a[i]。这是常用的一种数组元素引用方式。选项D是以指针方式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式*(*(a+i)是错误的,正确的引用应该为:*(*(p+i)。

第7题:

设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A.a [p-a]

B.*(&a[i])

C.p[i]

D.*(*(a +i))


正确答案:D
解析:本题考核数组与指针。 A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量。B选项中,&a[i]是取数组a中第i个元素的地址,而对于 *(&a[i]), 由指针运算符*的运算规则可知,语句 *(&a[i])就是返回地址&a[i]空间中存放的值,也即 a[i]。C) 选项,由于指针p已指向数组a,所以p[i]就等于a[i]小这是常用的一种数组元素引用方式。D) 选项是以指针方式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式 *(*(a+ i))是错误的,正确的引用应该为:*(*(p+ i))。

第8题:

设有以下语句,则()是对a数组元素的不正确引用,其中0<=i<10。int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


参考答案:D

第9题:

设有以下语句,其中不是对a数组元素的正确引用的是______(其中0≤i<10) int a[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;

A.a[p-a]

B.*(&a[i])

C.p[i]

D.*(*(a+i))


正确答案:D
解析:观察程序可知,a实际上就是数组a的首地址,所以“(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。