有如下变量定义,则对data中的a的正确引用是:struct sk { int a; float b; } data, *p=&data;
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
第1题:
已知有如下结构体:
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
本题主要考查结构指针:P=&data,访问结构体的成员。它可以通过结构变量访问,即data,可以用等价的指针形式:(*p).a和P->a来访问结构体变量中的成员。
第2题:
● 已知有变量 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)
第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
第4题:
已知有如下结构体:
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
第5题:
设有如下定义: 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;
第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;
第7题:
设有如下定义: 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;
第8题:
设有以下定义: 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;
第9题:
假设有如下定义: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;
第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);
}
第11题:
第12题:
设有如下定义,structsk{inta;floatb;}data,*p=&data;则对data中的a成员的正确引用是()。
第13题:
已知有结构体: struct sk { int a; float b; }data,*p; 若有p=&data,则对data的成员a的正确引用是( )。
A.struct是结构体类型的关键字
B.st是结构体类型名
C.x、y、z都是结构体成员名
D.struct str是结构体类型名
第14题:
设有如下定义:
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;
第15题:
A.(*p).data.a
B.(*p).a
C.p-data.a
D.p.data.a
第16题:
设有如下定义: 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;
第17题:
设有下列定义: 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;
第18题:
设有如下定义:
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;
第19题:
设有定义: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
第20题:
已知有结构体:
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
第21题:
设有如下定义: 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
第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;
第23题:
若有如下定义: struct sk{ int a; int b; }data,*p=&data; 则对data中的成员x的正确引用的是()。
第24题:
(*p).a
(*p).data.a
p->data.a
p.data.a