单选题设有如下定义:struct{int n;char c;}a[2], *p=a;则以下错误引用结构体成员n的是(  )。A(*a)-11Ba[0].nCp-nD(*p).n

单选题
设有如下定义:struct{int n;char c;}a[2], *p=a;则以下错误引用结构体成员n的是(  )。
A

(*a)->11

B

a[0].n

C

p->n

D

(*p).n


参考解析

解析:
可用以下3种形式来引用结构体变量中的成员,其中结构体变量名也可以是已定义的结构体数组的数组元素:①结构体变量名.成员名;②指针变量名->成员名;③(*指针变量名).成员名。题目中a为数组名是地址常量,不是指针变量,A项引用错误。a[0]为变量名,B项引用正确。p为指针,且正确的指向结构体变量,C项引用正确。D项符合第三种引用方式,引用正确。答案选择A选项。

相关考题:

以下结构体类型说明和变量定义中正确的是A)typedef struct{int n; char c;} REC;REC t1,t2;B)struct REC;{int n; char c;};REC t1,t2;C)typedef struct REC ;{int n=0; char c='A';} t1,t2D)struct{int n;char c;}REC;REC t1,t2;

设有定义:struct person{ int ID;char name[12];}p;请将 scanf("%d", 【 1 2 】 ); 语句补充完整,使其能够为结构体变量 p 的成员 ID 正确读入数据。

设有定义"struct {int a; float b; char c;} abc, *p_abc=abc;",则对结构体成员a的引用方法可以是abc.a和p_abc【20】a。

有以下说明和定义语句 struct student { int age;char num[8]; struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}}; struct student *p=stu;}; 以下选项中引用结构体变量成员的表达式错误的是A.(p++)->numB.p->numC.(*p).numD.stu[3].age

以下结构体类型说明和变量定义中正确的是( )。A.typedef structB.struct REC; {int n;char c;}REC; {int n;char c;}; REC t1,t2; REC t1,t2;C.typedef struct REC;D.struct {int n=0;char c='A';}t1,t2; {int n;char c;}REC; REC t1,t2;

设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A.PER 是结构体变量名B.PER是结构体类型名C.typedef struct 是结构体类型D.struct 是结构体类型名

设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中 ,能正确定义结构体数组并赋初值的语句是A.STD tt[2]={{1,'A',62},{2,'B',75}};B.STD tt[2]={1,"A",62,2,"",75};C.struct tt[2]={{1,'A'},{2,'B'}};D.struct tt[2]={{1,"A",62.5},{2,"B",75.0}};

设有定义“stmct{int a;float b;char c}abc,*p_abc=abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc______。

设有定义“struct {int a; float b; char c;} abc, *p_abc=abc;”,则对结构体成员a的引用方法可以是abc.a和p_abca。

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

以下对结构体类型变量td的定义中,错误的是 ______。A.typedef struct aaB.struct aa {int n; {int n; float m; float m; }AA; }td; AAtd; struct aa td;C.structD.struct {int n; {int n; float m; float m; }aa; }td; struct aa td;

下列结构体类型说明和变量定义中正确的是( )。A.typedef struct {int n; char c;}REC; REC t1,t2;B.struct REC; {int n; char c;}; REC t1,t2;C.typedef struct REC; { int n=0; char c='A';} t1,t2;D.stmct { int n; char c;} REC; REC t1,t2;

有如下说明和定义语句: struct student { int age; char num{8};}; struct student stu[3]={{20,"200401"},{21,"200402"),{19,"200403"}}; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是( )。A.(p++)->numB.p->numC.(*p).numD.stu[3].age

设有以下说明语句 typedef struct { int n; char ch[8]; }PER;A.PER 是结构体变量名B.PER 是结构体类型名C.typedef struct 是结构体类型D.struct 是结构本类型名

设有以下语句 ( ) struct st {int n;struct st * next;}; static struct st a [3]={5,a [1],7,a[2],9,'\0'},*p; p=a[0] 则表达式( )的值是6。A.p+ + ->nB.p->n + +C.(* P). n+ +D.+ +p - >n

若有以下定义和语句 struct a{ int n,m;}; struct a st[3]={{2,3},{4,5},{6,7}}; struct a*p=st;则以下错误的引用是A.(p++)-n; B.st[0].n; C.(*p).n; D.P=st.m,

有以下说明和定义语句struct student{ int age; char num[8];};struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是A.(p++)-num B.p-num C.(*p).num D.stu[3].age

有以下说明和定义语句:struct student{int age; char num[8] ;};struct student stu [3] = { { 20, "200401" } , {21, "200402" } , {19, "200403" } };stract student * p = stu;以下选项中引用结构体变量成员的表达错误的是( )。A.(p++) ->numB.p- >numC.( *p).numD.stu[3].age

设有以下语句: struct st{int n;struct st*next;}; static struct st a[3]={5,a[1],7,a[2],9,'\0'},*p; p=a[0];则表达式的值是6的为______。A.p++->nB.p->n++C.(*p).n++D.++p->n

设有以下说明语句: typedef struct { int n; char ch[8]; }PER; 则下面叙述中,正确的是( )。A.PER是结构体变量名B.PER是结构体类型名C.typedef struct是结构体类型D.struct是结构类型名

设有定义语句“struct {int a;float b;char c;}abc,*p;”,则对结构体成员a的引用可以是( )。 A、abc.aB、abc->aC、(*p).aD、p->a

假设有如下定义: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;

以下对结构体类型变量td的定义中,错误的是( )。A.typcdef struct aa { int n; float m; } AA; AA td;B.struct aa {int n; float m; } struct aa td;C.struct {int n; float m; } aa; struct aa td;D.struct {int n; float m; }td;

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

单选题以下结构体类型说明和变量定义中正确的是(  )。Atypedef struct{int n;char c;}REC; REC t1,t2;Bstruct REC;{int n;char c;}; REC t1,t2;Ctypedef struct REC:{int n=0;char c = 'A';} t1,t2; REC t1,t2;Dstruct{int n;char c;}REC;

单选题有如下定义:struct{  int num;  char name[10];  struct {  int y;  int m;  int d; }birth; }s,*ps=s;以下对内嵌结构体成员的引用形式错误的是(  )。Aps.birth.yBs.birth.yCps-birth.yD(*ps).birth.y

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

单选题设有如下定义:struct{int n;char c;}a[2], *p=a;则以下错误引用结构体成员n的是(  )。A(*a)-11Ba[0].nCp-nD(*p).n