- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;理解C语言共用体、枚举、位运算、复杂函数递归、编译预处理等概念方法
了解使用命令执行参数和回调函数的一般步骤
使用递归函数和指针处理复杂问题
使用特殊编程技术的能力;9.1.1共用体;【例9-1】几所学校要联合统计学生的成绩,但是一个问题难住了统计人员,不同学校相同的课程计分方式不一样,有的学校使用百分制,有的学校使用五级制,如何设计数据的存储结构才能正确数据保存呢?
本应用中,五级制和百分制成绩二选一,所以使用共用体来存储
共用体字段在使用中需要使用一个标记来确定使用的是哪个字段
本例中,五级制和百分制需要根据情况分别讨论;共用体示例;intReadStuScore(structStuScore*s){
intflagInputError=1;
charc;
scanf(%s%d%c,s-name,s-id,s-flag);
switch(s-flag) {
casem: caseM:
printf(请输入百分制成绩:);
scanf(%d,s-score.mark);
return1;
caseg:caseG:
printf(请选择五分制成绩:A.优秀;B.良好;C.中等;D.及格;E.不及格:);
/*while语句将输入缓冲区数据清空,保证后续正确读入字符*/
while((c=getchar())!=\nc!=EOF);
scanf(%c,c);
switch(c) {
caseA:casea:strcpy(s-score.grade,Distinction);break;
caseB:caseb:strcpy(s-score.grade,Merit);break;
caseC:casec:strcpy(s-score.grade,Medium);break;
caseD:cased:strcpy(s-score.grade,Passed);break;
caseE:casee:strcpy(s-score.grade,Failed);break;
default:flagInputError=0;break;
}
break;
default:flagInputError=0;break;
}
if(flagInputError==0)
printf(输入成绩有误,请重新输入这条数据!\n);
returnflagInputError;
};共用体示例;;;共用体空间占用分析;9.1.2枚举;【例9-3】几所学校要联合统计学生成绩,不同学校相同的课程计分方式不一样,有的使用的是百分制,而有的使用的却是五级制,如何对成绩进行平均分的统计呢?
分析:
使用枚举确定五级制转换为百分制成绩;;??例9-4】微信某一个版本发布后,用户发现多了一个状态设置功能,大家纷纷玩起了状态设置,但是有个缺点,同一时刻只能有一个状态。现在假设由你来设计这个状态参数,允许用户同时设置多个状态,该如何实现呢?
分析:
使用枚举类型定义每个状态
;;;9.2.1位运算;【例9-5】使用二进制记录例9-4微信状态,通过二进制运算实现个状态的设置。
分析:
状态只有0,1两个值,可以使用一位二进制数表示,
;voiddisplay(intstatus)
{
intset[32]={1,2,4,8,16,32,64,128,256,512,1024,2048};
intc,i;
for(i=0;i12;i++)
{
c=statusset[i];
switch(c)
{
case1:printf(等天晴\t);break;
case2:printf(发呆\t);break;
case4:printf(疲惫\t);break;
case8:printf(美滋滋\t);break;
case16:printf(胡思乱想\t);break;
case32:printf(裂开\t);break;
case64:printf(冲\t);break;
case128:printf(求锦鲤\t);break;
case256:printf(emo\t);break;
c
您可能关注的文档
- 工业机器人系统操作员 高级 课件 卫家鹏 项目2 电气系统装调.pptx
- 工业机器人系统操作员 高级 课件 卫家鹏 项目1 机械系统装调.pptx
- 冲压工艺与模具设计(第二版)课件 第9、10章 精冲模、级进模.pptx
- 冲压工艺与模具设计(第二版)课件 第6--8章 拉伸、其他冲模、汽车模具.pptx
- 冲压工艺与模具设计(第二版)课件 第10、11章 级进模、工艺规程.ppt
- 冲压工艺与模具设计(第二版)课件 第1--3章 绪论、冲压加工基、设备.pptx
- 冲压工艺与模具设计(第二版)课件 第4、5章 冲裁、弯曲.pptx
- 工厂供电 试卷B.doc
- 《财务管理学(第10版)》参考答案 王化成.pdf
- 《文献检索与论文写作》教学大纲思政版.docx
文档评论(0)