若有以下定义和语句 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 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,

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若有以下定义的语句: struct student { int age; int num;}; struct student stu[3]={{1001,20},{1002,19},{1003,21}}; main() { struct student *p; p=stu; …} 则以下不正确的引用是( )。

A.(p++)->num

B.p++

C.(*p).num

D.P=&stu.age.


正确答案:D
解析:结构体成员的引用可以用“结构体变量名.成员名”或者“结构体变量指针->成员名”两种方式来引用。注意:结构体类型的变量、数组和指针变量的定义。

第2题:

若有以下程序段: struct st {int n; int*m: }; int a=2,b=3,c=5; struct st s[3]=({101,&a},{102,&c},{103,&B)}; main() {struct st*p; p=s; } 则以下表达式中值为5的是( )。

A.(*p).m

B.*(p+1)->m

C.*(p++)->n

D.(p++)(*m)


正确答案:B

第3题:

以下对结构体类型变量的定义中,不正确的是

A.typedef struct aa

{ int n;

float m;

}AA;

AA tdl;

B.#define AA struct aa

AA{ int n;

float m;

} tdl;

C.struct

{ int n;

float m;

} aa;

struct aa tdl;

D.struct

{ int n;

float m;

} tdl;


正确答案:C

第4题:

有以下程序: #include <stdio.h> main( ) { struct node{int n; struct node*next;} *P; struct node x[3]={{2,x+1),{4,x+2},{6,NULL}}; P= X; printf("%d,",p->n); printf("%d\n",p->next->n); } 程序运行后的输出结果是( )。

A.2,3

B.2,4

C.3,4

D.4, 6


正确答案:B
略。

第5题:

若有以下说明和语句: struct st{int n;char*ch;} struct st a[3]={5,"abc"7,"def",9",ghk"),*p=a; 则值为6的表达式是______。

A.p++->n

B.p->n++

C.(*p).n++

D.#NAME?


正确答案:D
解析:根据结构变量的存储特点,p+l意味着增加地址值为结构体数组a的—个元素所占的字节数,即P++使p由a[0]指向a[1]起始地址。本题++p->n得到p指向的结构体变量中成员n的值使之加1。因为p指向数组a起始地址,p->n的值为5,再执行自加l运行,结果为6。

第6题:

以下程序的输出是______。 struct st {int x;int*y; }*p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[1],60,&dt[2],60,&dt[3]}; main() { p=aa; printf("%d\n",++(p->X)); }

A.51

B.11

C.50

D.60


正确答案:A
解析:p是指向结构aa的结构指针,++(p->x)是对p的x成员的值进行加1。p=aa使得p指向aa的首地址,p->x的值为50,那么++(p->X)就等于51。

第7题:

设有以下程序段: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++->n

B.p->n++

C.(*p).n++

D.++p->n


正确答案:D

第8题:

若有以下说明和语句:sturct st { int n;char *ch;}; struct st a[3]={5, "abc",7, "def",9, "ghk"},*p=a;则值为6的表达式是( )。A)p++->n B)p->n++C)(*p).n++ D)++p->n


正确答案:D
*p=a,使p指向a的首地址,p->n的值为5,++5的值为6.

第9题:

以下对结构体类型变量的定义中,不正确的是( )

A.typedef struct aa { int n; float m; }AA; AA tdl;

B.#define AA struct aa AA{ int n; float m; }tdl;

C.struct { int n; float m; }aa; struct aa tdl;

D.struct { int n; float m, }tdl;


正确答案:C

第10题:

设有如下定义:

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
解析:本题主要考查了结构体变量引用成员数据的方法,主要有以下几种:结构体变量名.成员名或结构体指针->成员名的方法来引用结构体成员。

更多相关问题