…
struct abc s1,s2; …
则会发生的情况是
A)编译时错 B)程序将顺利编译、连接、执行 C)能顺利通过编译、连接、但不能执行 D)能顺利通过编译、但连接出错 【例2】说明语句,则下面的叙述中不正确的是 struct ex
{ int x ; float y; char z ;} example;
A)struct是结构体类型的关键字 B)example是结构体类型名 C)x,y,z都是结构体成员名 D)struct ex是结构体类型名
2.结构体成员的引用
【例1】有以下定义和语句,可用a.day引用结构体成员day,请写出引用结构体成员a.day的其它两种形式【1】和【2】
struct { int day;char mouth;int year;}a,*b;b=&a;
3.结构体的应用
【例1】下面程序的输出结果为 struct st
{ int x;int *y; }*p; int dt[4]={10,20,30,40};
struct st aa[4]={50 ,&dt[0] ,60 ,&dt[1] ,70 ,&dt[2] ,80 ,&dt[3]}; main( )
{ p=aa; printf(\;
printf(\; printf(\;} A)10 B)50 C)51 D)60 20 60 60 70 20 21 21 31
考点2 链表
1.链表是一种常用的数据结构,可以对存储单元进行动态分配。
2.链表由若干个结点构成,每个结点有两个域:数据域和指针域。数据域存放数据,指针域存入下一个结点的首地址。
3.重点掌握链表结点的定义、链表的建立、向链表中插入新结点、删除链表中的结点、查找结点的方法。
考点3 共用体
1.共用体是多个变量共同占用同一段内存空间的构造类型。
2.各成员变量的存放采用\覆盖技术\在某一时刻总是最后一次存放的值起作用。共用体变量所占内存空间的大小等于最长的成员所占内存空间的大小。
21
3.共用体变量与结构体变量相似,也是通过运算符“.”或者“->”逐级引用其成员变量的,其成员变量的运算与同类型的普通变量的运算相同。 【例1】变量a所占内存字节数是 union U
{ char st[4]; int i; long l; }; struct A { int c; union U u; } a;
A)4 B) 5 C) 6 D) 8
【例2】设有下列定义: union data
{int d1; float d2;}demo;
则下列叙述中错误的是______。(2007.09)
A)变量demo 与成员d2 所占的内存字节数相同 B)变量demo 中各成员的地址相同 C)变量demo 和各成员的地址相同
D)若给demo.d1 赋99 后,demo.d2 中的值是99.0
【例3】若有下面的说明和定义,则sizeof(struct aa)的值是 struct aa
{ int r1; double r2; float r3;
union uu{ char u1[5]; long u2[2]; } ua; } mya;
A) 30 B) 29 C) 24 D) 22
【例3】有以下程序 main( )
{ union { unsigned int n; unsigned char c;}u1; ul.c='A'; printf(\ }
执行后输出结果是
A) 产生语法错 B) 随机值 C) A D) 65
考点4 用typedef定义类型
可以用typedef声明新的类型名来代替已有的类型名。声明一个新的类型名的格式:typedef 已有的类型名 新类型名; 此后,可以用新类型名定义变量。
22