C语言第11章
- 格式:docx
- 大小:14.32 KB
- 文档页数:1
第11章结构体、联合体与位运算本章介绍结构体、联合体及枚举类型等三种新的构造型数据类型以及位运算的基本方法,包括结构体的含义;结构体类型变量的定义、引用及初始化方法;结构体数组的定义和数组元素的引用;结构体类型指针的概念及链表的基本操作方法;联合体的含义;联合体类型变量的定义方法;枚举类型的定义; TYPEDEF的作用和位运算的基本方法等。
11.1 结构体类型通过前面有关章节的学习,我们认识了整型、实型、字符型等C语言的基本数据类型,也了解了数组这样一种构造型的数据结构,它可以包含一组同一类型的元素。
但仅有这些数据类型是不够的。
在实际问题中,有时需要将不同类型的数据组合成一个有机的整体,以便于引用。
例如,在新生入学登记表中,一个学生的学号、姓名、性别、年龄、总分等,它们属于同一个处理对象,却又具有不同的数据类型。
如图11-1。
每增加、删减或查阅一个学生记录,都需要处理这个学生的学号、姓名、性别、年龄、总分等数据,因此,有必要把一个学生的这些数据定义成一个整体。
图11-1虽然数组作为一个整体可用来处理一组相关的数据,但不足的是,一个数组只能按序组织一批相同类型的数据。
对于一组不同类型的数据,显然不能用一个数组来存放,因为数组中各元素的类型和长度都必须一致。
为了解决这个问题,C语言中给出了另一种构造数据类型——“结构体”。
11.1.1 结构体类型与结构体变量结构体是一种构造类型,它由若干“成员”组成。
每一个成员可以是一个基本数据类型或者又是一个构造类型。
结构体既然是一种构造而成的数据类型,那么在使用之前必须先定义它,如同在调用函数之前要先定义或声明一样。
定义一个结构体类型的一般形式为:struct 结构体名{ 成员1 类型1;成员2 类型2;...成员n 类型n;};“结构体”这个词是根据英文单词structure译出的。
结构体中的每个成员均须作类型说明,成员名的命名应符合标识符的书写规定,成员名可以与程序中的变量名同名,二者不代表同一对象,互不干扰。
在学习C语言函数以前,我们需要了解什么是模块化程序设计方法。
人们在求解一个复杂问题时,通常采用的是逐步分解、分而治之的方法,也就是把一个大问题分解成若干个比较容易求解的小问题,然后分别求解。
程序员在设计一个复杂的应用程序时,往往也是把整个程序划分为若干功能较为单一的程序模块,然后分别予以实现,最后再把所有的程序模块像搭积木一样装配起来,这种在程序设计中分而治之的策略,被称为模块化程序设计方法。
在C语言中,函数是程序的基本组成单位,因此可以很方便地用函数作为程序模块来实现C 语言程序。
利用函数,不仅可以实现程序的模块化,程序设计得简单和直观,提高了程序的易读性和可维护性,而且还可以把程序中普通用到的一些计算或操作编成通用的函数,以供随时调用,这样可以大大地减轻程序员的代码工作量。
函数是C语言的基本构件,是所有程序活动的舞台。
函数的一般形式是:type-specifier function_name(parameter list)parameter declarations{body of the function}类型说明符定义了函数中return语句返回值的类型,该返回值可以是任何有效类型。
如果没有类型说明符出现,函数返回一个整型值。
参数表是一个用逗号分隔的变量表,当函数被调用时这些变量接收调用参数的值。
一个函数可以没有参数,这时函数表是空的。
但即使没有参数,括号仍然是必须要有的。
参数说明段定义了其中参数的类型。
当一个函数没有明确说明类型时,C语言的编译程序自动将整型(i n t)作为这个函数的缺省类型,缺省类型适用于很大一部分函数。
当有必要返回其它类型数据时,需要分两步处理:首先,必须给函数以明确的类型说明符;其次,函数类型的说明必须处于对它的首次调用之前。
只有这样,C编译程序才能为返回非整型的值的函数生成正确代码。
4.1.1 函数的类型说明可将函数说明为返回任何一种合法的C语言数据类型。
类型说明符告诉编译程序它返回什么类型的数据。
第11章
11.1填空题
1.1.1 C系统的标准数入文件是指_________。
1.1.2 正常执行fclose函数的返回值是。
1.1.3 在C程序中,数据可以用、两种方式存放。
1.1.4 fgets函数的作用是从指定文件读入一个字符,该文件的打开方式必须是读或读。
1.1.5 C语言中,文件的存取时是以为单位的,这种文件被称为文件。
1.1.6 在C程序中,如要定义文件指针fp,定义形式为;。
1.1.7 列出能够用于写入数据到文件的三个函数、和。
1.1.8 列出能够用于从文件中读取数据的三个函数、和。
1.1.9 函数可以把文件指针定义到文件中的任何位置。
1.1.10 有函数语句fgets(buf,n,fp);其作用是从fp指向的文件中读入字符放到buf字符数
组中,函数返回值是。
11.2编程题
2.2.1 将文件flie1.c的内容输出到屏幕,并复制到flie2.c中。
参考程序:
2.2.2 统计文件letter.txt中小写字母c的个数。
参考程序:
2.2.3 从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输
出到一个磁盘文件”test.dat”中保存。
输入的字符串以回车结束。
参考程序:
2.2.4 有5个学生,每个学生有3门课的成绩,从键盘输入数据。
(包括学生号、
姓名、三门课成绩)、计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘
文件”stud.dat”中。
参考程序:
2.2.5
2.2.6。