(1)定义结构体的关键字是
- 格式:doc
- 大小:29.50 KB
- 文档页数:2
(1) 定义结构体的关键字是,定义共用体的关键字是。
(2) 结构体和共用体的相同点是,不同点是。
(3) 若有以下定义和语句,则sizeof(a)的值是__ ___,而sizeof(b)的值是__ _。struct tu
{ int m; char n; int y;}a;
struct
{ float p, char q; struct tu r} b;
(4) 设有下面结构类型说明和变量定义,则变量a在内存所占字节数是。如果将该结构改成共用体,结果为。
struct stud
{ char num[6]; int s[4]; double ave; } a;
(5) 下面程序用来输出结构体变量ex所占存储单元的字节数,请填空。
struct st
{ char name[20]; double score; };
main()
{ struct st ex ; printf("ex size: %d\n",sizeof( )); }
(6) 下面定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
struct node
{ int info; link; }
(7) 以下程序执行后输出结果是。
main()
{ union { unsigned int n; unsigned char c; } u1;
u1.c='A'; printf("%c\n",u1.n); }
(8) 变量root如图所示的存储结构,其中sp是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数。请填空,完成此结构的类型说明和变量root的定义。
root
struct
{ char *sp ; __ __; _ _; } root;
2. 阅读下面的程序,写出程序结果
(1)
struct info
{ char a,b,c;};
main()
{ struct info s[2]={{‘a’,‘b’,‘c’},{‘d’,‘e’,‘f’}};int t;
t=(s[0].b-s[1].a)+(s[1].c-s[0].b);
printf("%d\n",t); }
(2)
{ union { char i[2]; int k; } stu;
stu.i[0]='2'; stu.k=0;
printf("%s,%d\n",stu.i,stu.k);
}
(3)
union myun
{ struct{ int x, y, z; } u; int k; } a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(“%d\n",a.u.x); }
3. 程序设计题
(1)设计一个程序,用结构类型实现两个复数相加。
(2)定义一个结构类型变量(包括年、月、日)实现:输入一个日期显示它是该年第几天。