更多“设有定义:int x=0,*p;紧接着的赋值语句正确的是(  )。”相关问题
  • 第1题:

    设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是( )。

    A.p=1;

    B.*q=2;

    C.q=p;

    D.*p=5;


    正确答案:D
    解析:本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q,并让它指向p。选项A中将常量1赋给指针p,而p的值应为地址,所以不正确。选项B中*p的值也应为地址,故将常量 2复制给*p不正确。选项C中将p的值赋给q,使q也指向p所指向的存储单元,该存储单元中存放的是常量0,而q被定义为一个指向指针的指针变量,它所指向的存储单元中应该存放的是地址值,故不正确。所以,4个选项中选项D符合题意。

  • 第2题:

    设有如下定义: struct sk { int a;float b; } data; int *p; 若要使p指向data中的a域,正确的赋值语句是( )。

    A.p=&a;

    B.p=data.a;

    C.p=&data.a;

    D.p=a;


    正确答案:C
    解析:要注意不能将结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员进行输入和输出。引用结构体变量中成员的方式有以下几种:结构体变量名.成员名;指针变量名->成员名;(*指针变量名).成员名。

  • 第3题:

    若已定义x为int类型变量,说明指针变量p的正确语句是______。

    A.int p=&x;

    B.int*p=x;

    C.int *p=&x;

    D.*p=*x;


    正确答案:C

  • 第4题:

    有如下定义语句:int a[]={1,2,3,4,5);,则对语句int *p=a;正确的描述是( )。

    A.语句int *p=a;定义不正确

    B.语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素

    C.语句int *p=a;是把a[0]的值赋给变量p

    D.语句int *p=a;是把a[1]的值赋给变量p


    正确答案:B

  • 第5题:

    设有定义:int x=o,* P;,立刻执行以下语句,正确的语句是( )。

    A.p=x;

    B.* p=x;

    C.p=NULL;

    D.* p=NULL;


    正确答案:C
    如果没有把P指向一个指定的值,*P是不能被赋值的。定义指针变量不赋初始值时默认为null。

  • 第6题:

    若定义下列结构体,结构体变量p的出生年份赋值正确的语句是( )。 struct st { int x; int y; int z; } struct worker { char name[20]; char sex; struct st birth; }p;

    A.x=1987

    B.birth.x=1987;

    C.p.birth.x=1987;

    D.p.x=1987;


    正确答案:C
    解析: 本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

  • 第7题:

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

  • 第8题:

    设有如下定义: 若要使P指向data中的n域,正确的赋值语句是( )。A. B. C. S

    设有如下定义:若要使P指向data中的n域,正确的赋值语句是( )。

    A.

    B.

    C.

    D.


    正确答案:C
    本题主要考查了结构体变量引用成员数据的方法,主要有以下两种:结构体变量名.成员名或结构体指针_>成员名。

  • 第9题:

    设有定义语句“int x=10, *p=&x”,则表达式的值为10的有( )。

    A、p

    B、*p

    C、*&x

    D、*p=x

    E、x=*p


    参考答案BCDE

  • 第10题:

    设有C语句:struct T{int n;double x;}d,*p;,若要使p指向结构体变量中的成员n,正确的赋值语句是()

    • A、p=&d.n
    • B、*p=d.n
    • C、p=(struct T *)&d.n
    • D、p=(struct T *)d.n

    正确答案:C

  • 第11题:

    单选题
    设有定义:int x=0,*p;紧接着的赋值语句正确的是(  )。
    A

    *p=x;

    B

    *p=NULL;

    C

    p=x;

    D

    p=NULL;


    正确答案: C
    解析:
    指针赋值的正确写法:①p=&x,表示p指向x的存储单元;②p=NULL,表示p是空指针。③*p=x,表示将p指向的内容赋值为x,但前提是p已进行了初始化。答案选择D选项。

  • 第12题:

    单选题
    设有定义:int x,*p;,能使指针变量p指向变量x的语句是()
    A

    *p=&x;

    B

    p=&x;

    C

    *p=x;

    D

    p=*&x;


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

  • 第13题:

    设有如下定义:

    struck sk

    { int a;

    float b;

    } data;

    int *p;

    若要使P指向data中的a域,正确的赋值语句是

    A.p=&a;

    B.p=data.a;

    C.p=&data.a;

    D.*p=data.a;


    正确答案:C

  • 第14题:

    若已有定义int x;下列说明指针变量p指向x的正确语句是( )

    A. int p=&x;

    B. int *p=&x;

    C. int p=x;

    D. int *p=x;


    正确答案:B

  • 第15题:

    设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是 ______。

    A.p=1;

    B.*q=2

    C.q=p

    D.*p=5


    正确答案:D
    解析:本题中n是int型变量,p是指向int型的指针变量,q是指向指针的指针变量,故正确答案为D。

  • 第16题:

    下面是类MyClass的定义,对定义中各种语句描述正确的是( )。

    class MyClass { publiC: void MyClass(int a) //①

    { x=a; ) int func(int a,int b) //②

    { x=a; y=b; } int func(int a,int b,int c=0) //③

    { x=a; y=b; z=c; } static void resetValue() //④

    { x=0; } private: int X,y,Z; };

    A.语句①是类MyClass的构造函数定义

    B.语句②和语句③实现类成员函数的重载

    C.语句④实现对类成员变量x的清零操作

    D.语句①、②、③和④都不正确


    正确答案:D
    解析:类的构造函数没有返回类型,所以语句①是错误的;语句②和语句③将会使函数func()的调用产生歧义;成员函数resetValue()是静态成员函数,那么它不能访问类MyClass中的非静态数据成员,所以语句④也不正确。

  • 第17题:

    设有如下定义:

    struct sk

    { int n;

    float x; } data, *p;

    若要使p指向data中的n域,正确的赋值语句是

    A.p=&data.n;

    B.*p=data.n;

    C.p=(struct sk*)&data.n;

    D.p=(struct sk*)data.n;


    正确答案:C
    解析:本题主要考查了结构体变量引用成员数据的方法,主要有以下几种:结构体变量名.成员名或结构体指针->成员名的方法来引用结构体成员。

  • 第18题:

    设定义下列结构体,结构体变量p的出生年份赋值正确的语句是( )。

    Struct st

    { int x;

    inty;

    int z;

    }

    Struct worker

    { char name[20];

    char sex;

    struct st birth;

    }p;

    A.x=1987

    B.birth.x=1987;

    C.p.birth.x=1987;

    D.p.x=1987;


    正确答案:C
    解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

  • 第19题:

    若已定义:int x=12;对①int *p=&x;和②*p=x;这两条语句的正确理解是()

    A.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p所指向的变量

    B.语句①和②中的*p含义相同,都表示给指针变量赋值

    C.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p

    D.语句①和②的执行结果都是把变量x的地址赋给指针变量p


    参考答案:A

  • 第20题:

    设有定义:int nl=0,n2,*p=&n2,*q=&n1;,下列赋值语句中与n2=n1;语句等价的是( )。

    A.*p=*q;

    B.p=q;

    C.*p=&n1;

    D.p=*q;


    正确答案:A
    解析:在定义指针变量p和q时,分别把变量n2和n1的地址赋给了指针变量p和q,所以*p和*q中内容就分别是变量n2和n1的值,所以语句*p=*q与语句 n2=n1等价。因此选项 A正确。

  • 第21题:

    设有定义:int x,*p;,能使指针变量p指向变量x的语句是()

    • A、*p=&x;
    • B、p=&x;
    • C、*p=x;
    • D、p=*&x;

    正确答案:B

  • 第22题:

    有以下说明语句:struct point{int x;int y;}p;则正确的赋值语句是()

    • A、point.x=1;point.y=2;
    • B、point={1,2};
    • C、p.x=1;p.y=2;
    • D、p={1,2};

    正确答案:C

  • 第23题:

    单选题
    若已定义:int x=12;对①int *p=&x;和②*p=x;这两条语句的正确理解是()
    A

    语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p所指向的变量

    B

    语句①和②中的*p含义相同,都表示给指针变量赋值

    C

    语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p

    D

    语句①和②的执行结果都是把变量x的地址赋给指针变量p


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

  • 第24题:

    单选题
    设有定义:struct{int n;float x;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是(  )。
    A

    s[0]=m[1];

    B

    s=m;

    C

    s.n=m.n;

    D

    s[2].x=m[2].x;


    正确答案: A
    解析:
    定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s[2]与m[2]数组越界,D项错误。答案选择A选项。