参考答案和解析
正确答案:C
更多“经过下面的语句后 inti,a[10],*p; 定义后,下列语句中合法的是()。A、p=100B、p=a[5]C、p=a+2D、p=(i+2”相关问题
  • 第1题:

    已知函数的原形如下,其中结构体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

  • 第2题:

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

    A.p=s+5;

    B.s=p+s;

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

    D.*p=s[0];


    正确答案:B

  • 第3题:

    类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不调用构造函数,所以此语句只调用一次构造函数。对成员函数的引用可以通过两种形式:指针->成员函数(形参表)或者对象名.成员函数名(形参表)。

  • 第4题:

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

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

    A.p=a;

    B.p[0]=a;

    C.p[o]=&a[1][2];

    D.p[1]=&a;


    正确答案:B
    选项B表示把整型数组a[o]的指针赋给p[0]。

  • 第5题:

    经过下面的语句定义后:int i,a[10],*p;下列语句中,合法的是______。

    A.p=100;

    B.p=a[5];

    C.p=a[2]+2;

    D.p=a+2;


    正确答案:D

  • 第6题:

    若有定义语句:int a[21[3],* P[3];则以下语句中正确的是( )。

    A.p:a;

    B.p[0]=a;

    C.p[O]=&a[1][2];

    D.1a[1]=&a;


    正确答案:C
    A选项错误,因为P是指向一个指针数组,作为数组名,不能指向别的地方。B选项错误,因为P[0]是一个int指针,也就是int-;而a是一个指向指针的指针in‘}}。c选项正确,因为p[O]是一个int},a[1][2]是int,&a[1][2]是int+,类型吻合。D选项错误,因为a作为数组名,不能取地址。即使能取,P[1]是int·,&a是int+t;,类型不对。因此C选项正确。

  • 第7题:

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

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

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

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

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


    正确答案:A
    解析:本题中的*p=&a中,*不是间址运算符,只是一个指针说明符。间址运算符用于表示某变量是指针型数据,用于存放某个地址,例如int*p,k;p=&k;*p=2;这里的*就是间址运算符。

  • 第8题:

    试题23

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

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

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

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

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


    正确答案:A
    试题23分析
    *号只是一个说明符,而非间址运算符。说明只能存放double类型的变量。
    试题23答案
    A

  • 第9题:

    设有说明:intI,*p=&I,要实现I的内容加10,则下面语句()是错的。

    • A、*p=*&I+10
    • B、i=*p+10
    • C、*p=*p+10
    • D、*p=&I+10

    正确答案:D

  • 第10题:

    已知函数原型为:structtree*f(intx1,int*x2,structtreex3,structtree*x4),其中tree为已定义的结构体类型,且有下列变量定义:structtreept,*p;inti;请选择正确的函数调用语句()

    • A、&pt=f(10,&i,pt,p);
    • B、p=f(i++,(int*)p,pt,&pt);
    • C、p=f(i+1,&(i+2),*p,p)
    • D、f(i+1,&i,p,p);

    正确答案:B

  • 第11题:

    下列不正确的定义是()。

    • A、int*p=&i,i;
    • B、int*p,i;
    • C、inti,*p=&i;
    • D、inti,*p;

    正确答案:A

  • 第12题:

    单选题
    若有语句:inti,*p=&i;则均表示变量地址的选项是()
    A

    *&p,*p,&i

    B

    i,p,&*i

    C

    *&i,&i,*p

    D

    &i,p,&*p


    正确答案: B
    解析: 暂无解析

  • 第13题:

    已有定义: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,代表第三个元素的地址。

  • 第14题:

    若有定义语句: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错误。

  • 第15题:

    程序中有语句: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;。

  • 第16题:

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

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

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

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

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

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


    正确答案:A
    在变量定义doublea,*p:&a;中,*号是一个指针运算符,而非间址运算符,因此A)错误。

  • 第17题:

    l设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是( )。A.float*p=&x;S

    l设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是( )。

    A.float*p=&x;

    B.int*p-(float)x;

    C.float p=&x;

    D.float*p=1024;


    正确答案:A
    指针是用来存放地址的变量,用(类型名*指针变量名)的形式定义。赋值时应将某个变量地址即&x赋给指针变量,因此选择A)。

  • 第18题:

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

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

    B.定义语句中的木号是-个说明符

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

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


    正确答案:A
    在变量定义doublea,*P:&a;中,}号是一个指针运算符,而非间址运算符,所以A错误。

  • 第19题:

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

    A.p=a;

    B.p[0]=a;

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

    D.p[1]=&a;


    正确答案:C

  • 第20题:

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

    • A、p[0]=&a[1][2];
    • B、p=a;
    • C、p[0]=a;
    • D、p[1]=&a;

    正确答案:A

  • 第21题:

    若有语句:inti,*p=&i;则均表示变量地址的选项是()

    • A、*&p,*p,&i
    • B、i,p,&*i
    • C、*&i,&i,*p
    • D、&i,p,&*p

    正确答案:D

  • 第22题:

    设有定义“a=3,b,*p=&a”,则下列语句中使b不为3的语句是()。

    • A、b=*&a;
    • B、b=*p;
    • C、b=a;
    • D、b=*a;

    正确答案:D

  • 第23题:

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

    p=100

    B

    p=a[5]

    C

    p=a+2

    D

    p=&(i+2


    正确答案: B
    解析: 暂无解析