c语言结构体作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)如果以上都做完的同学,可以做一个删除一位员工信息的函数,但是是假删除,不能真把员工信息清除,其实本质是修改员工,可以设置个标志位,作为员工数据有效性的标志,即在职变成离职。若要打印员工信息的时候,要加一个判断,判断该标志位是否有效?有效才显示,无效则表示该员工无效,但数据还是存储在数组里。