C语言程序设计完整版全套PPT教程最全电子教案.ppt

C语言程序设计完整版全套PPT教程最全电子教案.ppt

  1. 1、本文档共300页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
原创文档完整版课件完整版ppt完整版电子教案全套课件全套ppt全套电子教案课件汇总整本书课件

例如: Struct { int age; char *addr; union{ int i; char *ch; }x; }y[10]; 若要访问结构变量y[1]中联合x的成员i, 可以写成: y[1].x.i; 若要访问结构变量y[2]中联合x的字符串指针ch的第一个字符可写成: *y[2].x.ch; 若写成y[2].x.*ch;是错误的。 2、联合变量的说明 联合变量的说明和结构变量的说明方式相同, 也有三种形式。即先定义,再说明、定义同时说明和直接说明。 以联合变量department为例,说明如下: union department { int grade; char office; }; union department a,b; /*说明a,b为department类型*/ 或者: union department { int grade; char office; }a,b; /*同时说明a,b为department类型*/ 或者: union { int grade; char office; }a,b /*直接说明a,b为department类型*/ 经说明后的a,b变量均为department类型。a,b变量的长度应等于 department 的成员中最长的长度, 即等于 office数组的长度,共10个字节。a,b变量如赋予整型值时,只使用了2个字节,而赋予字符数组时,可用10个字节。 对联合变量的赋值、使用都只能是对变量的成员进行。 联合变量的成员表示为: 联合变量名.成员名 例如,a被说明为department类型的变量之后,可使用 a. grade或a.office 。不允许只用联合变量名作赋值或其它操作。也不允许对联合变量作初始化赋值,赋值只能在程序中进行一个联合变量, 每次只能赋予一个成员值。一个联合变量的值就是联合变员的某一个成员值。 【例11-4】设有一个教师与学生通用的表格,教师数据有姓名,年龄,身份,教研室四项。学生有姓名,年龄, 身份,班级四项。编程输入人员数据, 再以表格输出。 #includestdio.h #define N 3 int main() { struct { char name[15]; int age; char status; union { int grade; char office[20]; } depa; }body[3]; int i; for(i=0;iN;i++) { printf(input name:\n);/*提示语*/ gets(body[i].name); /*gets函数接收带空格的姓名*/ printf(input age:\n); scanf(%d,body[i].age); getchar(); /*吸收上一句输入的回车符*/ printf(input status(s or t) :\n); body[i]. status=getchar(); if( body[i]. status==s) { getchar(); /*吸收上一句输入的回车符*/ printf(input grade:\n); scanf(%d,body[i].depa.grade); getchar(); /*吸收上一句输入的回车符*/ } else { getchar(); /*吸收上一句输入的回车符*/ printf(input office:\n); gets(body[i].depa.office); } } printf(name\t\tage status grade/office\n); for(i=0;iN;i++) { if(body[i].status==s) printf(%15s\t%3d%3c%20d\n,body[i].name,body[i].age,body[i].status,body[i].depa.grade); /*对齐输出数据*/ else

您可能关注的文档

文档评论(0)

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

教师资格证持证人

全网 内容最全课件 价格最低 质量最高 不是之一,是唯一。 每个人使用的办公软件版本不一样,如有个别显示不出的文件,建议使用必威体育精装版版。

版权声明书
用户编号:8070063100000015
领域认证该用户于2023年03月20日上传了教师资格证

1亿VIP精品文档

相关文档