若有以下的定义:int a[]= {1,2,3,4}.*p=a;则值为3的表式是()A、p+=2,*(p++)B、p+=2.*++pC、p+=3,*kp++D、*p+=2

题目

若有以下的定义:int a[]= {1,2,3,4}.*p=a;则值为3的表式是()

  • A、p+=2,*(p++)
  • B、p+=2.*++p
  • C、p+=3,*kp++
  • D、*p+=2
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有以下说明: 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是个地址值。

第2题:

若有定义语句:“int year=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是( )。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P


正确答案:D

第3题:

若有以下说明: 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)

第4题:

若有定义语句:int year=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*p++;


正确答案:D
解析:++的优先级比木的高,所以先运算p++,使得p指向了year变量的下一个存储单元中的内容,然后在取其中的值,得到的一个没有意义的数字,*p++自然就不对了。

第5题:

有以下程序

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);}

程序运行后的输出结果是


正确答案:8
8 解析:*p=&a[3],即*p=4,*q=p+ 2;即*q=6,所以*p+*q=10。

第6题:

若有定义: int*p; 则下列各选项中,不同于表达式“*p=*p+1;”的是( )。

A.*p++;

B.++*p;

C.*p+=1;

D.++(*p);


正确答案:A
解析:题目中的语句“*p=*p+1;”是将指针变量p所指向的存储单元的值加1,然后再放入p所指向的存储单元中。选项A中,语句“*p++;”,当把该表达式赋给一整型变量k时,就会发现,原语句可变为“k=*p;p=p+1;”,即语句“*p++”最后所执行的是p的值(即p中存放的地址)加1,与题中语句“*p=*p+1;”的意思不同。再来看选项B,C,D,选项B中的语句可表示为“*p=*p+1;”。选项C中的语句可表示为“*p=*p+1;”。选项D中的语句也可表示为“*p=*p+1;”。

第7题:

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

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

B.p+=2,* + +p

C.p+=3,* p+ +

D.p +=2,+ + * p


正确答案:A

第8题:

若有int x[5],*p=x;则数组元素x[3]可以表示为*(p+【 】),也可以表示为p[3]。


正确答案:3
3

第9题:

变量定义如下;int *p; 则下列不同于*p=*p+1; 的是( )。

A.*p++;

B.++ *p;

C.*p+=1;

D.++( *p);


正确答案:A
解析:*p=*p+1;是将指针变量p所指向的存储单元的值加1,然后放入p所指向的存储单元中。而选项A中最后是将p的值加1,即移动一个单位的存储单元。

第10题:

下列程序的输出结果为______。 main ( ) { int p, y=0, x=0; p=x<<8 | ~y>>8; printf("%d",p); p+

下列程序的输出结果为______。 main ( ) { int p, y=0, x=0; p=x<<8 | ~y>>8; printf("%d ",p); p+=(p+=2); printf("%d\n",p); }

A.-1 0

B.0 0

C.0 4

D.-1 2


正确答案:D

更多相关问题