预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共59页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

输出两个字符串对应位置相同的字符。第8章结构型、共用型和枚举型namesexagescore WangHongF2090.00 LiMingM1986.00 SunMeiF2183.00 8.1结构型的定义说明: (1)结构型名的命名应该符合C语言中标识符的命名规则。 (2)结构型的成员表列用花括弧括起来,结构型定义完成时使用分号结束。 (3)结构型各成员的定义方法与变量相同,各成员定义之间用分号分隔开。 例如:定义表示学生信息结构型: structstudent{ charname[20]; charsex; intage; floatscore;}; 以上用户定义的结构型student,它包含有姓名、性别、年龄和成绩4个成员。定义结构型时应注意以下几点: (1)结构型成员可以是任何基本数据类型的变量。 (2)结构型成员也可以是数组、指针类型的变量。 (3)在C语言中不支持动态结构型。一个结构型变量所占用内存空间的大小就是其各个成员所占用内存单元之和。 (4)在同一结构型内各成员的名称不能相同。但不同结构型中的成员名可以相同,并且结构型的成员名可以与程序中的变量名相同。8.2结构型变量的定义和引用 1.先定义结构型,再定义结构型变量。 struct结构型名 { 类型名1成员名1; 类型名2成员名2; …… 类型名n成员名n; }; 结构型名变量名;2.在声明类型的同时定义变量 struct结构型名 { 类型名1成员名1; 类型名2成员名2; …… 类型名n成员名n; }变量名; 3.直接定义结构型变量,没有结构型名 struct { 类型名1成员名1; 类型名2成员名2; …… 类型名n成员名n; }变量名;关于结构型与结构型变量说明: 定义时必须先说明一个结构型,然后再定义该类型的结构型变量。 系统只能对变量赋值、存取、运算,不能对一个类型赋值、存取或运算。 在编译时,对类型不分配内存空间,只对变量分配内存空间。 (4)对结构型变量的成员分配存储空间时,是按结构型说明的成员顺序进行的。 (5)结构型中的成员也可以是一个结构型;结构型中的成员指的是最底层的成员;8.2.2结构型变量成员的引用注意【例8.1】建立一个简单的学生信息表,包括:姓名、性别、年龄及一门课程的成绩,并显示出来。#include<stdio.h>main(){structstudent{charname[20];charsex;intage;charaddr[30];floatscore;}stu;printf(“inputname:”);gets(stu.name);printf(“inputsex:”);stu.sex=getchar();printf(“inputage:”);scanf(“%d”,&stu.age);printf(“inputscore:”);scanf(“%f”,&stu.score);printf(“name:%s,sex:%c,age:%d,score:%5.2f\n”,stu.name,stu.sex,stu.age,stu.score);}8.3结构型数组的定义和引用方法2structstudent{charname[20];charsex;intage;floatscore;};structstudentstu[3];方法3struct{charname[20];charsex;intage;floatscore;}stu[3];2.结构型数组的初始化structstudent{charname[20];charsex;intage;floatscore;}stu[3]={{“WangHong”,?F?,20,90.0},{“LiMing”,?M?,19,86.0},{“SunMei”,?F?,21,83.0}};定义结构型数组时其长度可以不指定(隐含大小),在编译时系统会根据给出的结构型元素初值的个数来确定数组元素的长度。8.3.2结构型数组元素的引用【例8.2】统计学生的平均成绩和不及格的人数。#include<stdio.h>main(){structstudent{charname[20];charsex;intage;floatscore;}stu[3]={{"WangHong",'F',20,90.0},{"LiMing",'M',19,50.0},{"SunMei",'F',21,83.0}};inti,n=0; floatave,sum=0;for(i=0;i<3;i++){sum+=stu[i].score;if(stu[i].score<60) n++; }ave=sum/3;printf("ave=%5.2f\nn=%d\n",ave,n); }8.4指向结构型数据的指针变量的定义和引用1.结构型