参考答案和解析
(*p).a
更多“2、有如下变量定义,则对data中的a的正确引用是:struct sk { int a; float b; } data, *p=&data;”相关问题
  • 第1题:

    已知有结构体: struct sk { int a; float b; }data,*p; 若有p=&data,则对data的成员a的正确引用是( )。

    A.struct是结构体类型的关键字

    B.st是结构体类型名

    C.x、y、z都是结构体成员名

    D.struct str是结构体类型名


    正确答案:B
    解析: 本题主要考查结构类型的定义:struct是结构体类型的关键字;struct str是结构体类型名;x、 y、z都是结构体成员名;st是结构变量名。

  • 第2题:

    设有如下定义:

    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

  • 第3题:

    已知有如下结构体:

    struct sk

    { int a; float b; }data,*p;

    若有P=&data,则对data的成员a引用正确的是( )。

    A.(*p).data.a

    B.(*p).a;

    C.p->data.a

    D.p.data.a


    正确答案:B
    本题主要考查结构指针:P=&data,访问结构体的成员。它可以通过结构变量访问,即data,可以用等价的指针形式:(*p).a和P->a来访问结构体变量中的成员。

  • 第4题:

    设有如下定义: 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=data.a;


    正确答案:C

  • 第5题:

    设有下列定义:

    struct sk

    { int m;

    float x;

    }data,*q;

    若要使q指向data中的m域,正确的赋值语句是( )。

    A.q=&data.m;

    B.*q=data.m;

    C.q=(struct sk*)&data.m;

    D.q=(struct sk*)data.m;


    正确答案:C
    解析:利用强制类型转换(street sk*),把整数型地址&data.m转换成结构体变量指针赋给结构体指针变量q。

  • 第6题:

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

    A.q=&data.m;

    B.*q=data.m;

    C.q=(struct sk*)&data.m;

    D.q=(struct sk*)data.m;


    正确答案:C

  • 第7题:

    设有以下定义: 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
    解析:p定义为指针变量。选项A中对结构体分量a的引用错误,应为data.a。选项B中data.a是取分量的值,它是一个整型数据,而p的值应为地址,所以不能将data.a赋值给p。&为取地址符,取分量data.a的地址赋值给p,是正确的赋值语句。*是间接访问运算符,选项D中的浯句是将分量data.a的值赋值给p所指存储单元,*p相当于一个变量,而不能实现使p指向data中的a域。

  • 第8题:

    下列语句段中,正确的是( )。

    A.street { int x; float y; int a[2]; unsigned b[3]; char name[ 10]; };

    B.struct stu { unsigned a[3]; unsigned b[4]; }x; int *p=& x.a;

    C.stmct stu { int a; float x[4]; }y={1,1.0}; float data=y.x;

    D.struct nd { int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:struct结构类型名称{数据类型成员名1;数据类型成员名2;…数据类型成员名n;};struct为关键字,是结构的标识符:{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第9题:

    设有如下定义: struct sk { int a;float b;}data,* p; 若有p=& data;,则对data中的a域的正确引用是 ( )

    A.(* p).data

    B.(* p).a

    C.p->data

    D.p.data. a


    正确答案:B

  • 第10题:

    下面程序的功能是建立一个有 3 个 结 点的单向循环链表,然后求各个 结 点数值域 data 中数据的和。请填空。

    include <stdio.h>

    include <stdlib.h>

    struct NODE{ int data;

    struct NODE *next;

    };

    main()

    { struct NODE *p,*q,*r;

    int sum=0;

    p=(struct NODE*)malloc(sizeof(struct NODE));

    q=(struct NODE*)malloc(sizeof(struct NODE));

    r=(struct NODE*)malloc(sizeof(struct NODE));

    p->data=100; q->data=200; r->data=200;

    p-> next =q; q-> next =r; r-> next =p;

    sum=p->data+p->next->data+r->next->next 【 19 】 ;

    printf("%d\n",sum);

    }


    正确答案:
    (16)答案->next->data解析:r->next->next->next指向的是r结点,r->next->next->next->data是r的数据域data中的数据。

  • 第11题:

    变量W_data定义如下:union data_node{float ff'int n;char ch;}W_data;则变量W_data所占的内存存储空间可表示为______。

    A.sizeof(int)
    B.sizeof(char)
    C.sizeof(float)
    D.sizeof(int)+sizeof(char)+sizeof(float)

    答案:C
    解析:
    本题考查C语言编程的基本知识。本题中变量W_data类型为联合。联合中所有数据项占有相同的内存空间。联合体所占的内存存储空间为所包含数据项所占的内存存储空间的最大值。

  • 第12题:

    设有如下定义,structsk{inta;floatb;}data,*p=&data;则对data中的a成员的正确引用是()。

    • A、(*p).data.a
    • B、(*p).a
    • C、p->data.a
    • D、p.data.a

    正确答案:B

  • 第13题:

    ● 已知有变量 data1 定义如下:

    union data

    { int i;

    char ch;

    float f;

    } data1;

    则变量 data1 所占的内存存储空间可表示为 (57) 。

    (57)

    A. sizeof(int)

    B. sizeof(char)

    C. sizeof(float)

    D. sizeof(int)+sizeof(char)+sizeof(float)


    正确答案:C


  • 第14题:

    已知有结构体: struct sk { int a; float b; }data,*p; 若有p=&data,则对data的成员a的正确引用是( )。

    A.(*p).data.a

    B.(*p).a;

    C.p->data.a

    D.p.data.a


    正确答案:B
    解析:本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

  • 第15题:

    设有如下定义: 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
    解析:要注意不能将结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员进行输入和输出。引用结构体变量中成员的方式有以下几种:结构体变量名.成员名;指针变量名->成员名;(*指针变量名).成员名。

  • 第16题:

    设有下列定义: struct sk { int m; float x; )dara,*q; 若要使q指向data中的m域,正确的赋值语句是( )。

    A.q=&data.m;

    B.*q=data.m;

    C.q=(struct sk*)&data.m;

    D.q=(struct sk*)data.m;


    正确答案:C
    解析: 利用强制类型转换(struct sk*),把整数型地址&data.m转换成结构体变量指针赋给结构体指针变量q。

  • 第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题:

    设有定义:struct sk {int a;float b;} data,* p; 若有p=& data;,则对data中的a域的正确引用是 ( )

    A.(* p).data.a

    B.(* p).a

    C.p->data.a

    D.p.data.a


    正确答案:B

  • 第19题:

    已知有结构体:

    struct sk

    { iht a;

    float b;

    )data,*p;

    若有p=&data,则对data的成员a的正确引用是( )。

    A.(*p).data.a

    B.(*p).a;

    C.p->data.a

    D.p.data.a


    正确答案:B
    解析:本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

  • 第20题:

    假设有如下定义:struct a{int n;float k}data,*p;若要使p指向data中的成员n,正确的赋值语句是

    A.p=&data.n;

    B.*p=data.n;

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

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


    正确答案:C
    解析:可以通过强制类型转换(structa*)完成指针赋值。选项A)中&data.n取的是结构体中成员的地址而不是结构的地址,尽管这两个地址的值是相同的,但仍然不允许进行相互赋值;选项B)中的指针p还没有指向一个具体的空间,给其赋值没有意义;选项D)把一个整型变量强制转化为结构类型的指针没有任何实在意义。

  • 第21题:

    下列语句段中,正确的是( )。

    A.struct { int x; float y; int a[2]; unsigned b[3]; char name[ 10]; };

    B.struct stu { unsigned a[3]; unsigned b[4]; }x; int *p=& x.a;

    C.street stu { int a; float x[4]; }y={1,1.0}; float data=y.x;

    D.struct nd {int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:struct结构类型名称{数据类型成员名1;数据类型成员名2;…数据类型成员名n;};struct为关键字,是结构的标识符:{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第22题:

    设有如下定义:

    struct sk

    { int m;

    floatx;

    }data,*q;

    若要使q指向data中的m域,正确的赋值语句是( )。

    A)q=&data.m;

    B)*q=data.m;

    C)q=(struct sk*)&data.m;

    D)q=(struct sk*)data.m;


    正确答案:C

  • 第23题:

    若有如下定义:  struct sk{      int a;  int b;  }data,*p=&data;  则对data中的成员x的正确引用的是()。 

    • A、(*p).a
    • B、(*p).data.a
    • C、p->data.a
    • D、p.data.a

    正确答案:A

  • 第24题:

    单选题
    若有如下定义:  struct sk{      int a;  int b;  }data,*p=&data;  则对data中的成员x的正确引用的是()。
    A

    (*p).a

    B

    (*p).data.a

    C

    p->data.a

    D

    p.data.a


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