工学

单选题有如下说明语句inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=a;则数值为9的表达式是()A *p+9B *(p+8)C *p+=9D p+7

题目
单选题
有如下说明语句inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=a;则数值为9的表达式是()
A

*p+9

B

*(p+8)

C

*p+=9

D

p+7

参考答案和解析
正确答案: A
解析: 暂无解析
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是( )。

A)*p+9 B)*(p+8)C)*p+=9 D)p+8


正确答案:B
*p=a是将数组的首地址赋给p,因此数值9的表达式为*(p+8)

第2题:

有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是

A.*p+9

B.*(p+8)

C.*p+=9

D.p+8


正确答案:B
解析:本题考查的是指针的运用。因为指针p初始指向数组a的首地址,所以*p返回的是数组元素a[0]的值,因此选项A的结果是1+9=10;选项B是取指针p往后移动8个单位位置处的值,即a[8]的值9;选项C中表达式的值和选项A相同,只不过选项C中的表达式会改变a[0]的值;选项D的值是一个地址值,即数组元素 a[8]的地址值,该值无法确定。所以,4个选项中只有选项B正确。

第3题:

有如下说明

int a [10]={1,2,3,4,5,,6,7,8,9,10},*p=a;

则数值为9 的表达式是______。

A.*p+9`

B.*(p+8)

C.*p+=9

D.p+7


正确答案:C

第4题:

有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是A.*p+9 B.*(p+8) C.*p+=9 D.p+8


正确答案:B
本题主要考查指针变量对数组元素的引用。在本题中,首先定义了一个一维数组a,并对其进行初始化操作,然后定义了一个同类型的指针变量p,使其指向数组a的首地址。
通过指针引用数组元素主要分如下两种情况。
(1)引用数组a首元素的常用等价方式有:
① 获取首元素地址:a,p;
② 访问首地址的值:a[0],p[0],*a,*p。
(2)引用数组第i个元素(从0开始计数)的常用等价方式有:
① 获取i元素地址:a+i,&a[i],p+i,&p[i];
② 访问i运算的值:*(a+i),a[i],*(p+i),p[i]。
题目要求访问值为9的元素,从数组中不难看出该元素是数组的第8个元素(从0开始计数),结合上面的分析可以知道,用指针变量p引用数组a中的第8个元素的值的方法可以为*(p+8)或p[8],因此本题的正确答案选B。

第5题:

若有以下定义和语句: int a[]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为3的表达式是______。

A.p+=2,*(p++)

B.p+=2,*++p

C.p+=3,*p++

D.p+=2,++*p


正确答案:A
解析:引用一个数组元素,可以用:(1)下标法,如a[i]形式:(2)指针法,如*(a+i)或*(p+i)。数组的下标从0开始,值为3的数组元素是a[2]。B、C的内容为a[3],D将a[2]前自加,结果为4。

第6题:

有如下程序

int a[10]={1,2,3,4,5,6,7,8,9,10};

int *p=&a[3],b;b=p[5];

则b的值是

A.5

B.6

C.9

D.8


正确答案:C
解析:p=&a[3]将指针指向数组a的第4个元素,p[5]指向数组a的第9个元素,而a[8]=9,所以b=9。

第7题:

若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为6的表达式是_______。

A.*p+6

B.*(p+6)

C.*p+=5

D.p+5


正确答案:C
解析:选项A,*p+6,其值等于1+6=7;选项B,*(p+6),其值等于a[6]=7;选项C,*p+=5,其值等于*p=*p+5=1+5=6;选项D,p+5是个地址值。

第8题:

若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},,*p=a;则值为6的表达式是( )。A.*p+6 B.*(p+6) C.*p+=5 D.p+5


正确答案:C

A项是1+6=7B项是p+6指向7D项是指针,是一个地址。应该改为*(p+5)

第9题:

有如下说明int a[10]={1,2,3,4,5,6,7 },*p=a;则数值为5的表达式是A.*p+4 B.*(p+4) C.*p+=4 D.p+4


正确答案:B
本题考查C语言的数组元素的引用方法。我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0)即*p来引用;对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”*(p+1)就代表存储单元a[1],注意,一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式*(p+2)来引用,……,对于数组元素a[9],可以用表达式*(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i10,则数组元素a[i]可以用*(p+i)来表示。

第10题:

有如下程序段: int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[3],b;b=P[5];则b的值是( )。

A.5

B.6

C.9

D.8


正确答案:C
解析:p=&a[3]将指针指向数组a的第4个元素,p[5]则是数组a的第9个元素,而a[8]=9,所以b=9。

更多相关问题