b=&a;
2.若有以下定義和語句,則sizeof(a)的值是,sizeof(b)的值是。
unionshare
{inti
floatf;
};
struct{intday;charmonth;intyear;unionsharek;}a,*b;
b=&a;
二、選擇題
1.以下程序的輸出結果是。
unionmyun
{struct
{intx,y,z;}u;
intk;
}a;
main()
{a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);
}
A.4B.0C.5D.6
2.若程序中有下麵的說明和定義
structdata
{intx;chary;}a={10,A};
則會發生的情況是。
A.程序將順利編譯、連接、執行
B.編譯出錯
C.能順利通過編譯、連接,但不能執行
D.能順利通過編譯,但連接出錯
3.設有如下定義:
structsk
{inta;floatb;}data,*p;
若有p=&data;,則對data中的a域的正確引用是。
A.(*p).data.aB.(*p).a
C.p->data.aD.p.data.a
4.有以下結構體說明和變量的定義,指針q指向變量b。則不能把結點b鏈接到結點a之後的語句是。
structnode
{chardata;
structnode*next;
}a,b,*p=&a,*q=&b;
A.a.next=q;B.p.next=&b;
C.p->next=&b;D.(*p).next=q;
5.當說明一個共用體變量時係統分配給它的內存是。
A.各成員所需內存量的總和
B.結構體中第一個成員所需內存量
C.成員中占內存量最大者所需的容量
D.結構體中最後一個成員所需內存量
6.C語言結構體類型變量在程序執行期間。
A.所有成員一直駐留在內存中
B.隻有一個成員駐留在內存中
C.部分成員駐留在內存中
D.沒有成員駐留在內存中
三、編程題
1.有5個學生,每個學生的數據包括學號、姓名、3門課程的成績,現要求從鍵盤輸入這5個學生的數據,並在屏幕上輸出每個學生3門課程的平均成績。
2.編寫一個函數creat用來建立一個動態鏈表,其中每個結點包括學號、姓名和年齡。
3.在上題的基礎上,再編寫一個函數delage用來刪除鏈表中的結點。要求輸入一個年齡,從鏈表中刪除與該年齡相同的結點。