经过下面的语句后 inti,a[10],*p; 定义后,下列语句中合法的是()。A、p=100B、p=a[5]C、p=a+2D、p=(i+2

题目

经过下面的语句后 inti,a[10],*p; 定义后,下列语句中合法的是()。

  • A、p=100
  • B、p=a[5]
  • C、p=a+2
  • D、p=&(i+2
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有下面的变量定义,inti,a[10],*p;以下语句中合法的是()

A、p=a+2;

B、p=a[5];

C、p=a[2]+2;

D、p=


参考答案:A

第2题:

已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义

struct a *f(int t1,int *t2,strcut a t3,struct a *t4)

struct a p,*p1;int i;

则正确的函数调用语句为

A.&p=f(10,&i,p,p1);

B.p1=f(i++,(int *)p1,p,&p);

C.p=f(i+1,&(i+2),*p,p);

D.f(i+1,&i,p,p);


正确答案:B

第3题:

若有定义语句: int a[2][3],*p[3]; ,则以下语句中正确的是A ) p=a;B)p[0]=a; C) p[0]=&am

若有定义语句: int a[2][3],*p[3]; ,则以下语句中正确的是

A ) p=a;

B)p[0]=a;

C) p[0]=&a[1][2];

D)p[1]=&a;


正确答案:C

                                           

第4题:

类MyClass的定义如下: classMyClass { public: MyClass(){value=0;} SetVariable(inti){valtic=i;} private: intvalue; }; MyClass*P,my;p=&my; 则对下列语句序列正确的描述是( )。

A.语句p=&my;是把对象my赋值给指针变量P

B.语句MyClass*P,my;会调用两次类MyClass的构造函数

C.对语句*P.SetVariable(5)的调用是正确的

D.语句P->SetVariable(5)与语句my.SetVariable(5)等价


正确答案:D
D。【解析】语句p=&my;是把对象my的地址值赋给指针变量P。语句MyClass*P,my;,由于P只是一个指向对象的指针,因此定义指针P不调用构造函数,所以此语句只调用一次构造函数。对成员函数的引用可以通过两种形式:指针->成员函数(形参表)或者对象名.成员函数名(形参表)。

第5题:

已知:chars[10],*p=s,则在下列语句中,错误的语句是()。

A.p=s+5;

B.s=p+s;

C.s[2]=p[4];

D.*p=s[0];


正确答案:B

第6题:

若有语句int*p=newint[5];int*pi;则以下语句中,执行时会造成delete[]p语句的执行出错的是()。

A、(*p)++;

B、p++;

C、pi=p;

D、pi=p+3;


参考答案:B

第7题:

已有定义:int i,a[10],*p;,则合法的赋值语句是

A.p=100;

B.p=a[5];

C.p=a[2]+2;

D.p=a+2;


正确答案:D
解析:本题中定义了一个整型数组a和一个整型指针变量p。选项A中将一个整型数赋值给一个指针变量,C语言规定,只能将地址赋给指针指针变量;选项B中a [5]为一数组元素,同样不是一个地址;选项C中a[2]为一数组元素,同样是一个整型数据,不是个地址;选项D中数组名a代表数组首地址加2,代表第三个元素的地址。

第8题:

若有说明:inti,j=7,*p=,则与i=j;等价的语句是()

A、i=*p;

B、*p=j;

C、i=

D、i=**p;


参考答案:B

第9题:

若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。 A.定义语句中的*号是一个间址运算符S

若有定义语句:double a,*p=&a;,以下叙述中错误的是( )。

A.定义语句中的*号是一个间址运算符

B.定义语句中的*号只是一个说明符

C.定义语句中的P只能存放double类型变量的地址

D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P


正确答案:C
doublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。

第10题:

程序中有语句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是( )。

A.int*p=a;

B.intp=a;

C."p=a;

D.p=a;


正确答案:A
A。【解析】从循环语句中可以看出,是在0到4的循环中输出数组a中的前5个元素,输出的值为*(P+i),即为指针P向后移动指向的元素。所以初始化要将指针P指向数组a,即int*p=a;。

更多相关问题