c语言结构体作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、当说明一个结构体变量时系统分配给它的内存是A A)各成员所需内存量的总和

B)结构中第一个成员所需内存量

C)成员中占内存量最大者所需的容量

D)结构中最后一个成员所需内存量

2、以下对结构体类型变量td的定义中,错误的是C

A)typedef struct aa {int n;

fliat m;

}AA;

AA td; B)struct aa

{int n;

fliat m;

};

struct aa td;

C)struct yy

{int n;

float m;

}aa;

Struct yy td; D)struct yy

{ int n;

float m;

}td;

3、下列程序的输出结果是B

struct abc

{ int a, b, c; };

main()

{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;

t=s[0].a+s[1].b;

printf("%d \n",t);

}

A)5 B)6 C)7 D)8 4、设有如下说明A

typedef struct yy

{ int n; char c; double x;}STD;

则以下选项中,能正确定义结构体数组并赋初值的语句是

A)STD tt[2]={{1,'A',62},{2, 'B',75}};

B)STD tt[2]={1,"A",62},{2, "B",75};

C)struct yy tt[2]={{1,'A'},{2, 'B'}};

D)struct yy tt[2]={{1,"A",62.5},{2,"B",75.0}};

5、在32位IBM-PC机上使用C语言,若有如下定义

struct data

{

int i;

char ch[8];

double f;

}b;

则结构变量b占用内存的字节数是C

A)13 B)8 C)16 D)24

6、已知学生记录描述为

struct student

{int no;

char name[20];

char sex;

Struct

{int year;

int month;

int day;

}birth;

};

struct student s;

设变量s中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是D A)year=1984;month=11;day=11;

B)birth.year=1984;birth.month=11;birth.day=11;

C)s.year=1984;s.month=11;s.day=11;

D)s.birth.year=1984;s.birth.month=11;s.birth.day=11;

编程题:

1.获取当前年月日及时间,并做一个每秒刷新时间的功能

2.按分组讨论点菜系统,定义结构体模板,

A、确定保存员工信息的结构体

B、确定保存台桌信息的结构体

C、确定保存菜谱信息的结构体、

D、确定保存点菜信息的结构体

E、根据项目需求考虑还需要哪些结构体

确定完结构体后做以下操作

1)用结构体数组分别定义相应的变量,并分别初始化5个员工、5张台桌、5个菜谱的信息。(员工要分角色)

2)封装3个函数用于打印员工信息、台桌信息、菜谱信息

3)在主函数里调用上面的打印信息,测试打印函数正确性

4)封装一个函数 Staff_Add(),参数返回值自行定义,功能要求往员工结构体数组的最后一个元素增加新员工数据,新员工数据可以在外面主调函数里输入后,把数组传参进来(注意:新添加的结构体信息要保存在结构体数组的哪个位置?)

5)如果以上都做完的同学,可以做一个删除一位员工信息的函数,但是是假删除,不能真把员工信息清除,其实本质是修改员工,可以设置个标志位,作为员工数据有效性的标志,即在职变成离职。若要打印员工信息的时候,要加一个判断,判断该标志位是否有效?有效才显示,无效则表示该员工无效,但数据还是存储在数组里。

相关文档
最新文档