教学课件:《C语言程序设计》(第一套).ppt

教学课件:《C语言程序设计》(第一套).ppt

  1. 1、本文档共347页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
重 点 难 点 重点难点 枚举和位运算基础知识 利用枚举和位运算 进行实际操作 重点 难点 C语言提供了多种预处理功能,如宏定义、文件包含、 条件编译等。合理地使用预处理功能编写的程序便于阅读、修改、 移植和调试,也有利于模块化程序设计,本项目介绍常用的几种预处理功能。 任务一 利用宏定义编写程序 任务二 采用条件编译的方法编写程序 利 用 宏 定 义 编 写 程 序 准备知识 概述 无参宏定义 带参宏定义 1. 宏 定 义 概 述 在C语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。 宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。 建 立 同 学 通 讯 录 “联合”也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这在前面的各种数据类型中都是办不到的。例如, 定义为整型的变量只能装入整型数据,定义为实型的变量只能赋予实型数据。 联合类型的定义和联合变量的说明一个联合类型必须经过定义之后,才能把变量说明为该联合类型。 2. 联 合 变 量 的 说 明 联合变量的说明和结构变量的说明方式相同,也有三种形式。即先定义,再说明;定义同时直接说明。 以perdata类型为例,说明如下: union perdata { int class; char officae[10]; }; union perdata a,b; /*说明a,b为perdata类型*/ 或者可同时说明为: union perdata { int class; char office[10]; }a,b;或直接说明为:union { int class; char office[10]; }a,b 3. 联 合 变 量 的 赋 值 和 使 用 对联合变量的赋值,使用都只能是对变量的成员进行。联合变量的成员表示为:联合变量名.成员名 例如,a被说明为perdata类型的变量之后,可使用 a.class a.office 不允许只用联合变量名作赋值或其它操作。 也不允许对联合变量作初始化赋值,赋值只能在程序中进行。 知识链接 还要再强调说明的是,一个联合变量,每次只能赋予一个成员值。换句话说,一个联合变量的值就是联合变员的某一个成员值。 设 计 教 师 与 学 生 通 用 的 表 格 任务实施 张老师是某大学中文系的系主任,目前正在统计中文系的学生及教师情况,张老师打算设计一个教师与学生通用的表格来辅助完成工作。 在C语言中,“联合”可以定义多种不同的数据类型,张老师在统计时,需要将教师的教研室与学生的教室都填入相同的表格中,因此,张老师决定使用联合的相关知识来定义表格。 设计教师与学生通用的表格 任务 实施 设有一个教师与学生通用的表格,教师数据有姓名,年龄,职业,教研室四项;学生有姓名,年龄,职业,班级四项。 程序设计如下: main() { struct { char name[10]; int age; char job; union { int class; char office[10]; } depa; }body[2]; int n,i; for(i=0;i2;i++) { printf(input name,age,job and department\n); scanf(%s %d %c,body[i].name,body[i].age,body[i].job); if(body[i].job==′s′) scanf(%d,body[i].depa.class); else scanf(%s,body[i].depa.office); } printf(name\tage job class/office\n); for(i=0;i2;i++) { if(body[i].job==′s′) printf(%s\t%3d %3c %d\n,body[i].name,body[i].age ,body[i].job,body[i].depa.class); else printf(%s\t%3d %3c %s\n,body[i].name,body[i].age, body[i].job,body[i].depa.office); } } 重 点 难 点 重点难点 结构、联合、链表 利用结构与联合的相关 知识进行实际操作 重点 难点 在解决实际问题的过程中,枚举是一种很实用的

文档评论(0)

pehalf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7201060146000004

1亿VIP精品文档

相关文档