若有以下说明和语句: struct student{          int age;          int nu

题目
单选题
若有以下说明和语句: struct student{          int age;          int num;  }std, *p;  p=&std;  则下面对该结构体变量std中成员age的引用方式错误的是()。
A

std.age

B

*p.age

C

(*p).age

D

p->age

参考答案和解析
正确答案: A
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.(p++)->num

B.p++

C.(*p).num

D.P=&stu.age.


正确答案:D

第2题:

若有下列说明和语句,已知int型数据占2个字节,则下列语句的输出结果是( )。

stmct st

{ char a[15];

int b;

double c;

};

printf("%d",sizeof(struct st));

A.15

B.8

C.25

D.2


正确答案:C
解析:本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中int b占2个字节,char a[15]占15个字节,double c占8个字节,所以共25个字节。

第3题:

下面结构体的定义语句中,错误的是

A)struct ord {int x;int y;int z;}; struct ord a;

B)struct ord {int x;int y;int z;} struct ord a;

C)struct ord {int x;int y;int z;} a;

D)struct {int x;int y;int z;} a;


正确答案:B

 

第4题:

若有以下说明和语句: 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。

第5题:

下面结构体的定义语句中,错误的是( )。 A.struct ord{int x;int Y;int Z;};struet ord a;SXB

下面结构体的定义语句中,错误的是( )。

A.struct ord{int x;int Y;int Z;};struet ord a;

B.struct ord{int x;int y;int Z;}struct ord a;

C.struct ord{int X;int Y;int Z;}a;

D.struct{int X;int y;int Z;}a;


正确答案:B
结构体定义的类型说明的一般形式为:struct结构体标识名{类型名1结构成员名表l;类型名2结构成员名表2;···};。注意:①结构体说明同样要以分号结尾;②紧跟在结构体类型说明之后进行定义;③在说明一个无名结构体类型的同时,直接进行定义;④先说明结构体类型,再单独进行变量定义等。所以B选项错误。

第6题:

若有结构体定义:

struct stu {int num;

char sex;

int age;

}a1,a2;

则下列语句中错误的是( )。

A.printf("%d%c,%d",a1);

B.a2.age=a1.age;

C.a1.age++;

D.a1.num=5;


正确答案:A
解析:题中a1和a2两个结构体变量名所对应的成员相同,可以与运算“++”相结合。结构体变量的输出格式为:printf("要输出变量名:%d\t",结构变量名.要输出的成员变量名)。

第7题:

下面结构体的定义语句中,错误的是( )。

A.struct ord{int x;int y;int z;};struct ord a;

B.struct ord{int x;int y;int z;};ord a;

C.struct ord{int x;int y;int z;}a;

D.struct{int x;int y;int z;}a;


正确答案:B

第8题:

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

A.(p++)->num

B.p->num

C.(*p).num

D.stu[3].age


正确答案:D
解析:结构体变量也有地址,因此可以把它的地址赋值给一个指针变量,然后通过该指针变量来引用结构体的成员,选项A和选项B就是通过指针变量来引用结构体的成员,也可以通过结构体数组元素的成员引用,而在选项D中stu[3].age不正确,因为结构体数组stu共有三个元素,其下标应该为0,1,2。

第9题:

若有以下定义的语句: 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
解析:结构体成员的引用可以用“结构体变量名.成员名”或者“结构体变量指针->成员名”两种方式来引用。注意:结构体类型的变量、数组和指针变量的定义。

第10题:

若有结构体定义:

struct stu{int num;

char sex;

int age;

}al,a2;

则下列语句中错误的是( )。

A.printf("%d,%C,%d",a1);

B.a2.age=a1.age;

C.a1.age++;

D.a1.num=5;


正确答案:A
解析:题中a1和a2两个结构体变量名所对应的成员相同,可以与运算"++"相结合。结构体变量的输出格式:prinf("要输出变量名:%d\t",结构变量名.要输出的成员变量名)。

更多相关问题