第14章结构体共用体和用户定义类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D. printf(“%c\n”,class[2].name[0]);
例1.已定义且初始化好结构体数组如上,计算平均成绩,并输出不及 格学生的姓名。
void main( ) { int i; float ave,sum=0; printf("不及格学生有:\n");
结构体变量的引用:结构体变量名.成员名
例1.struct person
{ int ID;char name[12];} p;
请将scanf("%d",
);语句补充完整,使其能够为结构体变
量p的成员ID正确读入数据。 (2009年9月二级C真题)
&p.ID
例2.下面结构体的定义语句中,错误的是( )。B 月二级C真题)
(2009年9
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;
结构体数组的定义(3种形式)
1.紧跟在结构体类型说明之后进行定义。 struct student
{ char name[12]; char sex; struct date birthday; float sc[4];
}s[3]; 2. 结构体类型名可以省略。
3.先说明一个结构体类型,再单独进行变量定义。
例2.设有如下定义:
struct sk
{ int n;
float x;
}data,*p;
C
若要使p指向data中的n域,则正确的赋值语句是( )
A. p=&data.n B. *p=data.n
C. p=(struct sk *)&data.n
D. p=(struct sk *)data.n
结构体数组的定义、赋值、使用
例4. 以下程序的运行结果是( )
main()
{ struct EXAMPLE
{ struct{ int x;
int y;
}in;
2,3
int a;
int b;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf(“%d,%d”,e.in.x,e.in.y);
结构体变量的赋值和使用
struct student
{ char name[12];
char sex;
struct date birthday;
float sc[4];
}s1={“Li Ming”,’M’,1962,5,10,88,76,85.5,90};
赋值时,依次给变量中的各个成员均赋值。
printf(“%s,%c,%d,%d,%d,%f,%f,%f,%f”,s1.name,s1.sx,s1.birthd ay.year,s1.birthday.month,s1.birthday.day, s1.sc[0], s1.sc[1], s1.sc[2], s1.sc[3]);
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[
1]);
D
}
程序的运行结果是( )。 (2008年9月二级C真题)
A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D) Zhao,m,85,90
struct student
{ char name[12];
Baidu Nhomakorabea
char sex;
struct date birthday;
float sc[4];
};
struct
student
s1[2]={{“LiMing”,’M’,1962,5,10,88,76,85.5,90},{“WangM
ei”,’F’,1980,5,3,42,51,23,56}};
第14章结构体共用体和用户定 义类型
结构体类型变量的定义、赋值、使用
结构体类型的变量的定义(3种形式) 1.紧跟在结构体类型说明之后进行定义。 struct student { char name[12]; char sex; struct date birthday; float sc[4]; }s1,s2; 2. 结构体类型名可以省略。 3.先说明一个结构体类型,再单独进行变量定义。 struct student { char name[12]; char sex; struct date birthday; float sc[4]; }; struct student s1,s2;
};
struct
person
class[10]={ “John”,17,”Paul”,19,”Mary”,18,”adam”,1
6};
A. printf(“%c\n”,class[3].name);
B. printf(“%c\n”,class[3].name[1]);
C. printf(“%c\n”,class[2].name[1]);
例3.有以下程序
#include <stdio.h>
main()
{ struct STU { char name[9]; char sex; double score[2]; };
struct STU a={"Zhao",'m',85.0,90.0},
b={"Qian",'f',95.0,92.0);
结构体数组的引用
s[0].name,s[0].sex,s[0].birthday.month
s[1].name,s[1].sex,s[1].birthday.month
例1.根据下面的定义,能打印出字幕M的语句是( ) D struct person
{ char name[9];
int age;
}
结构体指针
结构体指针的定义
struct student *p,s;
p=&s;
p->name,p->sex;
例1.若有以下说明语句:
struct student
{ int age;
int num;
}std,*p;
D
p=&std;
则以下对结构体变量std中成员age的引用方式不正确的是( )
A. std.age B.p->age C.(*p).age D. *p.age