第11章 文件

第11章 文件
第11章 文件

第11章文件

本章要点

●文件的打开与关闭

●文件的读写

●文件的定位

本章难点

●fopen函数和fclose函数的用法

●fread函数、fwrite函数、fprintf函数和fscanf函数的用法

11.1 C文件概述

以前各章节中所用到的原始数据都是通过键盘输入的,并将输入的数据放入到指定的变量或数组中,若要处理这些数据,可以从指定的变量或数组中取出并进行处理。但是当重新执行程序时,这些输入的数据都将丢失。如果数据量很庞大时,一旦某个数据输入错误,则全部数据都要重新输入。另外,一些程序运行后会产生大量输出结果,对这些结果有时需要反复查看或使用,因此,需要将这些输出结果保存起来。C语言中引入了文件,将程序运行时所需要的和所产生的数据(原始的、中间的、最终的)独立在源程序文件之外,以“数据文件”的形式存储到计算机外存,以备计算机需要时调入内存。这种“数据文件”就是磁操作系统管理下的“文件”。

文件(file)是程序设计中的一个重要概念。所谓“文件”一般是指存储在外部介质上数据的集合。一批文件是以数据的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的。如果想找存在外部介质上的数据,必须先按文件名找到指定的文件,然后再从该文件中读取数据。要向外部介质上存储数据也必须先建立一个文件(以文件名标识),才能向它输出数据。

C语言将文件看作是一个字符(字节)的序列,即一个一个字符(字节)的数据顺序组成。根据数据的组成形式,可分为ASCII文件和二进制文件。ASCII文件又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式按原样输出到磁盘上存放。因而一个C文件就是一个字节流或二进制流。

C语言中,要调用一个文件,一般需要该文件的一些信息,例如:文件的名字,文件当前的读写位置,文件的操作方式等。缓冲文件系统会为每一个文件系统开辟这样一个“文件信息区”,包含在头文件stdio.h中,它被定义为FILE类型数据。

typedef struct

{

short level; /*缓冲区“满”或“空”的程度*/

unsigned flags; /*文件状态标志*/

char fd; /*文件描述符*/

unsigned char hold; /*如无缓冲区不读取字符*/

short bsize; /*缓冲区的大小*/

unsigned char *buffer; /*数据缓冲区的位置*/

unsigned char *curp; /*指针, 当前的指向*/

unsigned istemp; /*临时文件, 指示器*/

short token; /*用于有效性检查*/

}FILE;

在编写源程序使用一个文件时,只需要先预包含stdio.h头文件,然后定义一个指向该结构体类型的指针,而不必关心FILE结构的细节。例如:

FILE *fp;

fp是一个指向FILE类型结构体的指针变量。可以使文件指针fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。也就是说,通过文件指针变量能够找到与它相关的文件。

C语言中,对文件一般的操作步骤为:

1)定义文件类型指针

2)建立/打开文件。

3)从文件中读数据或向文件中写数据。

4)关闭文件。

11.2 打开与关闭文件

11.2.1 打开文件

文件在进行读写操作之前要先打开。所谓打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件。ANSI C规定了标准输入输出函数库,用fopen( )函数来实现打开文件。fopen函数的调用方式通常为

FILE *fp;

fp=fopen(文件名,使用文件方式);

例如:打开一个和可执行文件在相同路径下的文本文件test.txt。

FILE *fp;

fp=fopen("test.txt","r");

又如,打开一个D盘下myfile文件夹下的文本文件test.txt。

方式1:

FILE *fp;

fp=fopen("d:\\myfile\\test.txt","r");

方式2:

FILE *fp;

fp=fopen("d:/myfile/test.txt","r");

其中方式1中指定路径时用了两个反斜线“\\”,第一个表示转义字符,第二个表示根目录。方式2改为正斜线“/”也可以。

文件使用方式见表11.1。

表11.1文件使用方式

说明:

1)用“r”方式打开一个文件时,该文件必须已经存在,且只能从该文件中读出数据。

2)用“w”方式打开的文件只能向该文件写入数据。若要打开的文件不存在,则以指定的文件名建立该文件;若打开的文件已经存在,则将该文件删去,重建一个新文件。

3)若要向一个已经存在的文件中追加信息,只能用“a”方式打开文件。若此时该文件不存在,则会建立一个新文件。

4)如果不能实现“打开”任务,fopen函数将会带回一个出错信息。出错的原因可能是用“r”方式打开一个并不存在的文件;磁盘出故障;磁盘已满无法建立新文件等。如果出错,fopen函数将带回一个空指针NULL。在程序中可以用这一信息来判断是否完成打开文件的操作,并作相应处理。

常用下面程序段打开文件:

FILE *fp;

if ((fp=fopen("test.txt", "r"))==NULL)

{

printf("cannot open this file\n");

exit(0);

}

5)标准输入文件(键盘)、标准输出文件(显示器)和标准出错输出(出错信息)是由系统打开的,可直接使用。

11.2.2 关闭文件

文件打开后若不再继续使用,可使用fclose( )函数将指定的文件关闭。“关闭”就是使文件指针变量不指向该文件,也就是文件指针变量与文件“脱钩”,此后不能再通过该指针对原来与其相联系的文件进行读写操作。fclose函数调用的一般形式为

fclose(文件指针);

例如:

fclose(fp);

fclose函数正确执行关闭文件操作,返回0;否则返回EOF(-1)。EOF是在stdio.h文件中定义的符号常量,值为-1。

应该养成在程序终止之前关闭所有文件的习惯,如果不关闭文件将会丢失数据。因为,在向文件写数据时,是先将数据输到缓冲区,待缓冲区充满后才正式输出到文件。如果当数

据未充满缓冲区而程序结束运行,就会将缓冲区中的数据丢失。用fclose函数关闭文件,可以避免这个问题,它先把缓冲区中的数据输出到磁盘文件,然后才释放文件指针变量。

11.3 读写数据文件

文件打开之后,就可以对它进行读写操作了。

11.3.1 单字符读写函数(fputc函数和fgetc函数)

1.fputc函数

把一个字符写到磁盘文件中去。其一般调用形式为

fputc(ch, fp);

其中ch是要输出的字符,它可以是一个字符常量,也可以是一个字符变量。fp是文件指针变量。fputc(ch,fp)函数的功能是把字符ch写入文件指针fp所指向的文件中去,每写一个字符,文件内部位置指针向后移动一个字节。写入成功时返回写入字符的ASCII码,失败时返回EOF。

例11.1从键盘输入一行字符,写入文件mydata.txt中。

#include

#include

void main()

{ char ch;

FILE *fp;

if ((fp=fopen("mydata.txt", "w"))==NULL)

{

printf("cannot open this file\n");

exit(0); /*终止程序*/

}

printf("Input a string:\n");

ch=getchar();

while (ch!='\n')

{

fputc(ch,fp);

ch=getchar();

}

fclose(fp);

}

2.fgetc函数

从指定的文件读入一个字符。其一般调用形式为

ch=fgetc(fp)

其中fp为文件类型指针变量,ch为字符变量。fgetc函数带回一个字符赋给ch。如果遇到文件结束符,函数返回一个文件结束标志EOF。

如果想从一个磁盘文件顺序读入字符并在屏幕上显示出来,可以用:

ch=fgetc(fp);

while (ch!=EOF)

{

printf("%c",ch);

ch=fgetc(fp);

}

当读入的字符值等于EOF(-1)时,表示读入的已不是正常的字符而是文件结束符。但这种判断文件是否结束的方法只适合文本文件,不能用于判断读入的二进制文件是否结束。ANSIC提供一个feof函数来判断文件是否真的结束。如果fp所指向的文件当前状态是文件结束,函数feof(fp)的值为1(真);否则为0(假)。

如果想顺序读入一个二进制文件中的数据,可以用:

while (!feof(fp))

{

c=fgetc(fp);

M

}

这种方法也适合文本文件。

例11.2 读入文件mydata.txt内容,在屏幕上显示出来。

#include

#include

void main()

{ char ch;

FILE *fp;

if ((fp=fopen("mydata.txt", "r"))==NULL)

{

printf("cannot open this file\n");

exit(0); /*终止程序*/

}

ch=fgetc(fp);

while (ch!=EOF)

{

printf("%c",ch);

ch=fgetc(fp);

}

fclose(fp);

}

11.3.2 格式化字符串读写函数(fprintf函数和fscanf函数)

1.fprintf函数

fprintf( )函数的一般调用方式为:

fprintf(文件指针, 格式字符串, 输出表列);

它的功能是将输出表列中的变量值按照格式字符串指定的格式输出到文件指针所指向的文件中。

例如:

fprintf(fp,"%d %6.2f",x,y);

它的作用是将整型变量x和实型变量y的值按%d和%6.2f的格式输出到fp所指向的文件上。

2.fscanf函数

fscanf( ) 函数的一般调用方式为:

fscanf(文件指针, 格式字符串, 输入表列)

它的功能是从文件指针所指向的文件中按照字符串指定的格式将文件中的数据送到输入表列所指向的内存单元中。

例如:

fscanf(fp,"%d,%f",&x,&y);

若磁盘文件中有以下字符:

3,5.5

则将磁盘文件中的数据3送给变量x,5.5送给变量y。

例11.3 从键盘输入10个学生的数据并保存到磁盘文件中,再读入这10个学生数据显示在屏幕上。

#include

#include

#define N 10

struct student

{ char num[15];

char name[20];

char sex[5];

}stu[N];

void main()

{ FILE *fp;

int i;

if ((fp=fopen("class.txt", "w"))==NULL)

{

printf("cannot open this file\n");

exit(0); /*终止程序*/

}

printf("Input data:");

for(i=0;i

{ printf("\nnum:");

gets(stu[i].num);

printf("\nname:");

gets(stu[i].name);

printf("\nsex:");

gets(stu[i].sex);

fprintf(fp,"%s %s %s\n",stu[i].num,stu[i].name,stu[i].sex);

}

fclose(fp);

fp=fopen("class.txt","r");

printf("num name sex\n");

i=0;

while(fscanf(fp,"%s %s %s",stu[i].num,stu[i].name,stu[i].sex)!=EOF)

{

printf("%s %s %s\n",stu[i].num,stu[i].name,stu[i].sex);

i++;

}

fclose(fp);

}

注意:在本例中,如果输入的字符串不带空格,读和写都全部正确,但是如果输入的字符串带有空格,虽然向文件中写入的数据依然保持正确,但在读取数据时就会发生错误。这是由于fscanf( )函数读取数据时以空格作为数据与数据之间的间隔,要解决输入含有空格数据的问题,就必须使用下面要介绍的数据块读写函数。

11.3.3 数据块读写函数(fread函数和fwrite函数)

常常要求一次读入一组数据(例如,一个实数或一个结构体变量的值),ANSI C标准提出设置两个函数(fread和fwrite),用来读写一个数据块。它们的一般调用形式为:fread(buffer, size, count, fp);

fwrite(buffer, size, count, fp);

其中:

buffer:是一个指针。对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址(以上指的是起始地址)。

size:要读写的字节数。

count:要进行读写多少个size字节的数据项。

fp:文件型指针。

如果fread或fwrite调用成功,则函数返回值为count的值。

例如:

float f[5];

fread(f,4,5,fp);

其意义是从fp所指的文件中,每次读4个字节(一个实数)送入到实型数组f中,连续读5次,即读5个实数到f数组中。

例11.4 利用fread( )和fwrite( )函数实现例11.3。

#include

#include

#define N 10

struct student

{ char num[15];

char name[20];

char sex[5];

}stu[N];

void main()

{ FILE *fp;

int i;

if ((fp=fopen("class.txt", "wb"))==NULL)

{

printf("cannot open this file\n");

exit(0); /*终止程序*/

}

printf("Input data:");

for(i=0;i

{ printf("\nnum:");

gets(stu[i].num);

printf("\nname:");

gets(stu[i].name);

printf("\nsex:");

gets(stu[i].sex);

if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

printf("file write error\n");

}

fclose(fp);

fp=fopen("class.txt","rb");

printf("num name sex\n");

i=0;

while(fread(&stu[i],sizeof(struct student),1,fp)!=NULL)

{

printf("%s %s %s\n",stu[i].num,stu[i].name,stu[i].sex);

i++;

}

fclose(fp);

}

注意:fscanf和fprintf函数总是成对出现,即fprintf输出的文件,要使用fscanf来读入;同理,fread和fwrite函数也必须成对出现。fread和fwrite函数一般用于二进制文件的输入输出。

11.4文件的定位

前面介绍的对文件的读写方式都是顺序读写,即读写文件只能从头开始,顺序读写各个数据。但在实际问题中常要求读写文件中某一指定位置的内容。为解决这一问题,可移动文件内部的位置指针到需要读写的位置,再进行读写,这种读写称为随机读写。实现文件随机读写的关键是要按要求移动文件位置指针,这称为文件的定位。

11.4.1 rewind函数

rewind函数的作用是将文件内部的位置指针移动到文件的开始位置。

例11.5 有一个磁盘文件,第一次将它的内容显示在屏幕上,第二次把它复制到另一文件中。

#include

void main()

{

FILE *fp1,*fp2;

fp1=fopen("file1.c", "r");

fp2=fopen("file2.c", "w");

while(!feof(fp1)) putchar(getc(fp1));

rewind(fp1); /*使文件的位置指针重新定位于文件开头*/

while(!feof(fp1)) putc(getc(fp1),fp2);

fclose(fp1);

fclose(fp2);

}

11.4.2 fseek函数

fseek函数可以实现改变文件的位置指针。

fseek函数的调用形式为:

fseek(文件类型指针, 位移量, 起始点)

其中:

(1)“起始点”用0、1或2代替,0代表“文件开始”,1为“当前位置”,2为“文件末尾”。

(2)“位移量”指以“起始点”为基点,向前移动的字节数。ANSI C和大多数C版本要求位移量是long型数据。这样当文件的长度大于64K时不致出问题。ANSI C标准规定在数字的末尾加一个字母L,就表示是long型。

(3)fseek函数一般用于二进制方式打开的文件,因为文本文件要发生字符转换,计算位置时往往会发生混乱。

下面是fseek函数调用的几个例子:

fseek(fp, 100L, 0); 将位置指针移到离文件头100个字节处

fseek(fp, 50L, 1); 将位置指针移到离当前位置50个字节处

fseek(fp, -10L, 2); 将位置指针从文件末尾处向后退10个字节

例11.6 在磁盘文件stud.dat上存有20个学生的数据。要求从文件中读出第10个学生数据。

#include

#include

struct student

{ char num[15];

char name[20];

char sex[5];

}stu;

void main()

{ FILE *fp;

int i=9;

if ((fp=fopen("stud.dat", "rb"))==NULL)

{ printf("cannot open this file\n");

exit(0); /*终止程序*/

}

fseek(fp,i*sizeof(struct student),0);

fread(&stu,sizeof(struct student),1,fp);

printf("%s %s %s\n",stu.num,https://www.360docs.net/doc/e217794063.html,,stu.sex);

fclose(fp);

}

11.4.3 ftell函数

ftell函数的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。如果ftell函数返回值为-1L,表示出错。例如:

i=ftell(fp);

if(i==-1L) printf("error\n");

变量i存放当前位置,如调用函数出错(如不存在此文件),则输出“error”。

11.5 习题

1.程序中对文件操作的基本步骤是什么?

2.试举例说明在什么情况下打开文件操作可能出错。忘记关闭文件为什么可能造成数据的丢失。

3.编写一个比较两个文本文件内容是否相同的程序。

4.将一个磁盘文件中的信息复制到另一个磁盘文件中。

5.从键盘输入字符串追加到指定的文件中去。

6.统计一篇文章中大写字母的个数和文章中句子数(句子的结束标志是句点后跟一个或多个空格。

7.有10个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门课程成绩),计算出平均成绩,将原有数据和计算出的平均分数放在磁盘文件stud.dat 中。

8.将上题“stud.dat”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件stu_sort.dat中。

9.将上题已排序的学生成绩文件进行插入处理。插入一个学生的3门课成绩,程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

第11章一次函数单元试题 题号一1 二2 三3 四4 五5 六6 七7 八8 得分 任何学习不可可能重复一次就可以掌握,必须经过多次重复、多方面、多个角度的反复训练才能取得跟多的收获,我们设计的试卷主要就是从这点出发,所以从你下载这张试卷开始,就与知识接近了一步。 一、选择题:(每题3分,共30分) 1、下面变量之间的关系不是函数关系的是() A.长方形的面积一定,它的长与宽的关系;B.梯形的面积一定,它的上底与高的关系C.三角形的面积一定,它的高与底的关系;D.正方形的周长与面积的关系 2、已知等腰三角形的周长为20cm,将底边长y(cm)表示成腰长x(cm)的函数,下面关系式 中正确的是() A.y=20-2x(x>0) B.y=20-2x(x为全体实数) C.y=20-2x(5

C .相互平行的是①和③ D .关于x 轴对称的是②和③ 6、一次函数y=kx+2的图象过点(1,1),那么( ) A .y 随x 的增大而增大 B .y 随x 的增大而减小 C .图象经过原点 D .图象不经过第二象限 7、某人骑自行车外出,年行路程s(km)与时间t(h)的函数关系如图所示,现有下列说法:①第3h 的速度比第1h 的速度快;②第3h 的速度比第1h 的速度慢;③第3h 后已停止前进;④第3h 后保持匀速前进。其中说法正确的是( ) A .②③ B .①③ C .①② D .②④ 8、如图所示的直线l1与l2的交点坐标可以看作方程组( )的解。 A .?? ?-=-=-121y x y x B .???=--=-1 21 y x y x C .? ? ?=-=-123 y x y x D .???-=--=-123y x y x 9、下图中表示一次函数y=mx+n 与正比例函数y=mnx(m 、n 是常数,且mn ≠0)图象是( ) 10、已知一次函数y=(m+2)x+(1-m)中,y 随x 的增大而减小,且其图象与y 轴的交点在x 轴上方,则m 的取值范围是( ) A .m>-2 B .m<1 C .-2”“<”或“=”) 2、如图,直线y=ax+b 经过点(-4,0), 则不等式ax+b ≥0的解集为____。 3、小明和小华两同学在一次追及过程中的图象如图所示,它 表示____比_____后出发_____小时。

( 安全管理 ) 单位:_________________________ 姓名:_________________________ 日期:_________________________ 精品文档 / Word文档 / 文字可改 公文处理及请示批办制度(通用 版) Safety management is an important part of production management. Safety and production are in the implementation process

公文处理及请示批办制度(通用版) 一、公文处理办法 公文是贯彻党和国家方针、政策、传达上级指示,请示、批复问题,部署 工作,组织生产经营和完成各项工作的重要工具。为做到准确、迅速、提高公文处理工作的效率和质量特制定本办法: (一)公司负责文书管理工作的部门是办公室,分别负责对局机关、集团等上级党政公文的统一收发、分办、传递、立卷和存档。 (二)来文处理 1、收文 凡发来公司的一切文件、函电、均由办公室收发员接收,其中,人事档案,挂号信函,在接受时,必须检查封志是否完整,发现密封受损应拒绝接收。 外出开会人员带回的文件资料,凡属发给公司的或需公司有关

部门贯彻落 实的,应立即交收发员按正常收文手续办理,不得自行保存,处理或传递。 各部门直接从上级机关取回的文件,必须进行登记后按收文程序处理。 2、开启 文件由办公室人元负责开拆,人事档案交经营部档案负责人开拆,开启机密文件时,应检查封志是否完整。 3、登记 凡上级下发的正式公文及有关部门抄送的文件,由办公室逐一编号、逐一登记,并附“文件呈批单”。其它一般通知和函电有临时存查必要的,可另行登记,不编号。 文件必须随到、随拆、随登、随送。办公室收到的文件必须当天登记。收文时应先检查有无急件,急件必须马上处理。 4、分转 文件登记完毕后,应立即移送办公室主任,依照职责分工签注

第11章数据的导入和导出 通过本章内容学习,可以使读者掌握Access与其他类型数据的共享与交互方法,能够熟练地对数据进行导入和导出操作,并且能够根据实际需求选用合适的导入和导出类型。此外,用户还能对Office软件的协同工作有了基本的认识和了解。 本章重点: 外部数据介绍 数据的导入 数据的导出 Office软件的协作

11.1外部数据介绍 Access作为一种典型的开放型数据库,能够支持与其他类型的数据库文件进行数据的交换和共享,同时也支持与其他Windows程序创建的数据文件进行数据交换。 当数据进行交换时,就需要进行数据的导入、导出操作。Access具有很强的导入和导出功能,而且,在Access中所包含的4个默认的选项卡中,有关数据导出和导入的【外部数据】选项卡就是其中的一个。由此可见,数据的共享和交换在数据库工具中起到的作用。 和旧版本的Access软件相比较,Access 2010停止了对数据访问页对象的支持,反而大幅度地提高了网络协同工作的能力。利用SharePoint网站,事先数据的共享和交换,利用Office中的Outlook邮件收发软件,加强了开发人员的协同工作等。在下面的各节中将带大家一起体会Access2010强大的协同工作能力。 11.2数据的导入 一般情况下,Access数据库获得数据的方法主要有两种,一种方法是在数据表或者窗体中直接输入数据,另一种方法是利用Access的数据导入功能,将外部数据导入到当前使用的数据库中。 简单地讲,数据的导入就是将其他格式的数据合并到Access数据库中,并实现对导入数据的调用。被导入的数据是将外部数据作为源数据,在Access中建立一个对源数据的备份,这个备份是以Access的数据结构储存的,因此备份中的数据也是单独存在的,它与原来的数据是分开使用的。 数据的各种导入操作都是在【外部数据】选项卡中的【导入并连接】选项组中实现的,其中的各个选项如图11-1所示。

When the lives of employees or national property are endangered, production activities are stopped to rectify and eliminate dangerous factors. (安全管理) 单位:___________________ 姓名:___________________ 日期:___________________ 2021新版公文处理及请示批办制 度

2021新版公文处理及请示批办制度导语:生产有了安全保障,才能持续、稳定发展。生产活动中事故层出不穷,生产势必陷于混乱、甚至瘫痪状态。当生产与安全发生矛盾、危及职工生命或国家财产时,生产活动停下来整治、消除危险因素以后,生产形势会变得更好。"安全第一" 的提法,决非把安全摆到生产之上;忽视安全自然是一种错误。 一、公文处理办法 公文是贯彻党和国家方针、政策、传达上级指示,请示、批复问题,部署 工作,组织生产经营和完成各项工作的重要工具。为做到准确、迅速、提高公文处理工作的效率和质量特制定本办法: (一)公司负责文书管理工作的部门是办公室,分别负责对局机关、集团等上级党政公文的统一收发、分办、传递、立卷和存档。 (二)来文处理 1、收文 凡发来公司的一切文件、函电、均由办公室收发员接收,其中,人事档案,挂号信函,在接受时,必须检查封志是否完整,发现密封受损应拒绝接收。 外出开会人员带回的文件资料,凡属发给公司的或需公司有关部门贯彻落

实的,应立即交收发员按正常收文手续办理,不得自行保存,处理或传递。 各部门直接从上级机关取回的文件,必须进行登记后按收文程序处理。 2、开启 文件由办公室人元负责开拆,人事档案交经营部档案负责人开拆,开启机密文件时,应检查封志是否完整。 3、登记 凡上级下发的正式公文及有关部门抄送的文件,由办公室逐一编号、逐一登记,并附“文件呈批单”。其它一般通知和函电有临时存查必要的,可另行登记,不编号。 文件必须随到、随拆、随登、随送。办公室收到的文件必须当天登记。收文时应先检查有无急件,急件必须马上处理。 4、分转 文件登记完毕后,应立即移送办公室主任,依照职责分工签注分办意见,其中急件应及时送领导或有关部门阅批。呈送领导传阅的文件必须有明确记录,传阅卷要一人一卷,并设急件卷。 不编号登记的一般函件,由收发员依照职责范围直接分转。

第十章预处理命令 所谓编译预处理是指,在对源程序进行编译之前,先对源程序中的编译预处理命令进行处理;然后再将处理的结果,和源程序一起进行编译,以得到目标代码。 一、宏定义与符号常量 在C语言中,“宏”分为无参数的宏(简称无参宏)和有参数的宏(简称有参宏)两种。 无参宏定义 1.无参宏定义的一般格式 #define 标识符字符串 其中:“define”为宏定义命令;“标识符”为所定义的宏名,通常用大写字母表示,以便于与变量区别;“字符串”可以是常数、表达式、格式串等。 2.使用宏定义的优点 (1)可提高源程序的可维护性 (2)可提高源程序的可移植性 (3)减少源程序中重复书写字符串的工作量 例9.1 输入圆的半径,求圆的周长、面积和球的体积。要求使用无参宏定义圆周率。 /*程序功能:输入圆的半径,求圆的周长、面积和球的体积。*/ #define PI 3.1415926 /*PI是宏名,3.1415926用来替换宏名的常数*/ void main() { float radius,length,area,volume; printf("Input a radius: "); scanf("%f",&radius); length=2*PI*radius; /*引用无参宏求周长*/ area=PI*radius*radius; /*引用无参宏求面积*/ volume=PI*radius*radius*radius*3/4; /*引用无参宏求体积*/ printf("length=%.2f,area=%.2f,volume=%.2f\n", length, area, volume); } 3.说明 (1)宏名一般用大写字母表示,以示与变量区别。但这并非是规定。 (2)宏定义不是C语句,所以不能在行尾加分号。否则,宏展开时,会将分号作为字符串的1个字符,用于替换宏名。 (3)在宏展开时,预处理程序仅以按宏定义简单替换宏名,而不作任何检查。如果有错误,只能由编译程序在编译宏展开后的源程序时发现。 (4)宏定义命令#define出现在函数的外部,宏名的有效范围是:从定义命令之后,到

第10章图形操作* VB为用户提供了简洁有效的图形图像功能。除了窗体和控件的图形图像特征以外,还提供了一系列基本的图形处理函数、语句和方法,可直接在窗体上产生图形,处理图像,设置图形颜色以及控制其位置和外观。本章主要介绍VB的坐标系统、自定义坐标系统;与图形操作有关的属性;PictureBox、Image、Line和Shape四种图形控件及应用;Line、Circle、Pset和Point四种图形方法及应用;与图形、图像处理有关的示例。 10.1 图形操作基础 10.1.1 图形的坐标系统 在VB中,每个对象定位于存放它的容器内,使用的是容器的坐标系统,对象的Left、Top属性指示了相对于容器左侧、顶部的距离。例如,窗体处于屏幕(Screen)内,屏幕是窗体的容器。在窗体内绘制控件,窗体就是容器。如果在图片框内绘制图形或控件,该图片框就是容器。对象位置及大小只能在容器界定的范围内变动。当移动容器时,容器内的对象也随着一起移动。而且与容器的相对位置保持不变。 每个容器都有一个坐标系统。构成一个坐标系统需要三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向。 容器的ScaleTop、ScaleLeft属性用于控制容器对象左边和顶端的坐标,这两个属性值指定了该容器对象坐标系统的坐标原点。所有容器对象的ScaleTop、ScaleLeft值默认为0,坐标原点在容器的左上角。 容器的ScaleHeight、ScaleWidth属性确定对象内部垂直方向和水平方向的大小,这个数值与所用的度量单位有关。度量单位不同,ScaleHeight、ScaleWidth属性值也不同。 属性ScaleMode决定对象坐标的度量单位,共有11种设置(常用8种),见表10-1。 表10-1 ScaleMode属性的设置 -258-

第十一章 线性算子的谱 1. 设[0,1],()()(),X C Ax t tx t x X ==∈。证明()[0,1]A σ=,且其中没有特征值。 证明 当[0,1]λ∈时,常值函数1不在I A λ-的值域中,因此I A λ-不是满射,这样 ()A λσ∈。 反之若[0,1]λ∈,定义算子1 :()R R x t t λλλ= -。则由于[0,1]λ∈,且 11max ()(,[0,1]) a t b R x x t x t d λλλ≤≤=≤- 因此R λ是C[0,1]中有界线性算子。 易验证()()R I A I A R I λλλλ-=-=,所以()A λσ∈。 总之()[0,1]A σ=, 若Af f λ=,则对任意t λ≠,()()tf t f t λ=,可推得()0f t =。由于()[0,1]f t C ∈,必有()0f t ≡,所以A 无特征值。证毕。 2. 设[0,2],()()(),.it X C Ax t e x t x X π==∈,证明 (){1}A σλλ==。 证明 对任意000 ,()()()()it it it it e e I A x t e e x t -=-。因为常值函数1不在0 it e I A -的值 域中,因此0()it e A σ∈。这样{1}()A λλσ=?。 反之,若 1λ≠,定义1 :()()()it R R x t x t e λλλ= -。类似第1题可证R λ是有界线性算子,且()()R I A I A R I λλλλ-=-=。即()A λσ∈。 因此(){1}A σλ λ==。证毕。 3. 设2 1223, (,,,)(,,,)n n X l Ax A x x x x x x ===L L L L , 试求()A σ。 解 对任意 λ,若1λ<,定义(1,,,,)n x λλλ=L L ,显然 22,(,,,,)(1,,,,)n n x l Ax x λλλλλλλλλλ∈===L L L L ,因此{1}λλ=的内点都

第十一章 一次函数 (2012江苏苏州,2,3分)若式子在实数范围内有意义,则x 的取值范围是( ) (2012江苏苏州,7,3分)若点(m ,n )在函数y=2x+1的图象上,则2m ﹣n 的值是( ) (2012北海,15,3分)15.函数y x 的取值范围是___________。 【解析】二次根式有意义的条件是被开方数为非负数,既:2x-1≥0,解得:.x ≥2 1 。 【答案】12 x ≥ 【点评】本题主要考察了二次根式有意义的条件和解不等式的方法。需要注意的是移项要变号。难度较小。 (2012黑龙江省绥化市,2,3分)函数y =x 的取值范围是 . 【解析】 解:由题意3x -1≥0 得x ≥1 3 . 【答案】 x ≥ 13 . 【点评】 本题主要考查了函数自变量的取值范围.对于此类题型主要有三种情况:①函数是自变量的整式形式,自变量取一切实数;②函数是自变量的分式形式,自变量取保证分母不为0的实数;③函数是自变量的二次根式形式,自变量取保证被开方数非负的实数.复杂点就是将三者混合在一起考.难度较小.

(2012江西,6,3分)某人驾车从A地上高速公路前往B地,中途在服务区休息了一段时间.出发时油箱中存油40升,到B地后发现油箱中还剩油4升,则出发后到B地油箱中所剩油y(升)与时间t(小时)之间函数的大致图象是( ) . A. B. C. D. 解析:分析题干条件,从A地上高速公路到中途在服务区,油箱中所剩油逐渐减少,在服务区休息的这段时间,油箱中所剩油不变,从服务区到B油箱中所剩油逐渐减少到4升,结合图象的意义,即可找出答案.解答:解:选项A、B中,在服务区休息的这段时间,油箱中所剩油在减少,不符合实际意义,选项D中,从服务区到B油箱中所剩油逐渐增加,也不符合实际意义,只有C正确. 故选C. 点评:本题考查利用函数的图象解决实际问题.正确理解函数图象横纵坐标表示的意义,理解问题的过程,就能够通过图象得到函数问题的相应解决. (2012黑龙江省绥化市,18,3分)如图,A、B、C、D为圆O的四等分点,动点P从圆心O出发,沿 --的路线作匀速运动.设运动时间为t秒,∠APB的度数为y度,则下列图像中表示y(度)OC CD DO 与t(秒)之间的函数关系最恰当的是() 【解析】解:当动点P在OC上运动时,∠APB逐渐减小;当P在 CD 上运动时,∠APB不变;当P在DO 上运动时,∠APB逐渐增大.故选C.. 【答案】C. 【点评】本题主要考查学生对圆周角、圆内的角及函数图象认识的问题.要能根据几何图形和图形上的数据分析得出所对应的函数的类型和所需要的条件,结合实际意义画出正确的图象. (2012黑龙江省绥化市,19,3分)甲、乙两队举行了一年一度的赛龙舟比赛,两队在比赛时的路程s(米)与时间t(分钟)之间的函数关系如图所示,请你根据图像判断,下列说法正确的是()

第十一章控制与控制过程 一、填充题 1.因果关系链 2.盈利能力,偿债能力,维持营运的能力,投资能力 3.公开评价,对职工表现的客观认识,组织对每个人的工作要求 4.确立标准,衡量成效,纠正偏差5.制定标准 6.市场地位 7.产品的技术先进水平与功能完善程度 8.社会的承认 9.通过提供某种商品或服务取得一定的利润

10.统计性标准(历史性标准) 11.最大产出量 12.需要控制的对象可能发生重大变化的时间间隔 13.纠正偏差 14.偏差原因的分析 15.追踪决策 l6.适时控制、适度控制、客观控制、弹性控制 17.偏差未产生以前,可能性,预先采取必要的防范措施,防止偏差的产生 18.企业经营状况的预警系统19.范围,程度,频度 20.规模特点,复杂程度

21.企业计划,实际作业 22.程序控制,跟踪控制,自适应控制,最佳控制 23.先行性 24.前馈控制,同期控制,反馈控制 25.问题的发生 26.财务分析,成本分析,质量分析,职工成绩评定 27.活动性质,管理层次,受培切}程度 28.经营括动状况 29.产品某个质量特征或某项工作质量完善程度的数值 30.控制程度

31.计划,衡量标准 二、选择题 1.C 2.B 3.A 4.C 5.A 6.C 7.D 8.B 9.D 10.B 11.B 12.C 13.A 14.B 15.D 16.B 17.D 三、多选题 1.ABCDD 2.ABC 3.ABC 4.ABD 5.AB 6.BCD 7.ABC 8.BC 9.ABC 四、简答题 1、控制是管理工作的最重要职能之一。它是企业计划与实际作业动态相适应的管理职能。 由于理想的状态是不可能成为企业

数据库系统原理及MySQL应用教程(第2版) 课后习题参考答案 第11章MySQL存储过程与函数 1、存储过程和存储函数是在数据库中定义一些被用户定义的SQL语句集合。 二者存在以下几个区别: 1)存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。 2)存储过程可以返回参数,而函数只能返回值或者表对象。 3)存储过程可以使用非确定函数,不允许在用户定义函数主体中内置非确定函数。 4)存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用。 2、创建一个存储过程,根据学生的学号查询学生的姓名 create PROCEDURE getnamebysno(in xh char(10),out name char(20)) BEGIN select sname into name from student where sno=xh; 调用该存储过程:call getnamebysno(‘1101’); 创建一个名为numstu的存储函数,查询学生的人数 Create function numstu() Returns integer Begin Return(select count(*) from student); 调用:select numstu() 3、存储过程的优点: ◆存储过程增强了SQL语言的功能和灵活性 ◆存储过程能实现较快的执行速度。 ◆存储过程允许标准组件是编程。

◆存储过程能过减少网络流量。 ◆存储过程可被作为一种安全机制来充分利用。 4、查看存储函数状态方法: ●通过show status语句 ●如果要查看存储过程或函数的详细信息,要使用show create语句 5、游标是一个被SELECT语句检索出来的结果集。在存储了游标后,应用程序或用户就可以根据需要滚动或浏览其中的数据。 6、游标(cursor)具有以下特性: ●只读的,不能更新的 ●不滚动的 ●不敏感的,不敏感意为服务器可以活不可以复制它的结果表 (1)游标的声明:语法格式:declare cursorname cursor for select _ statement (2)打开游标:Open cursor_ name (3)读取游标:fetch cursor_name into var_ name [,var_name] …(4) 关闭游标:close cursorname 7、CREATE PROCEDURE sp_update email(IN USer_name VARCHAR(50),IN e_mail VARCHAR(50)) UPDATE content SET email=e_mail WHERE username=user_name; 8、A 9 D 10 D 11 B 12 (1) create proceduce p1() select dno,count(*) from emp group by dno; (2) create proceduce p2(in gy char(10)) select * from emp where dno=gy; (3) create proceduce p3() select count(*) as 人数from emp where sex=’女’; (4) create proceduce p4(in gy char(10)) select avg(empage) from emp where dno=gy; call p4(‘11’);

教案 科目数学时间学生 第11章-一次函数 1.常量和变量 在一个变化过程中,通常有两种量: 常量:数值始终不变的量 变量:数值发生变化的量 例题1:一辆汽车以速度v=50km/h的速度行使,其路程s和时间t之间的关系如下: =?其中v=50km/h,所以 s v t =? 50 s t 请指出s,v,t中的常量和变量. 2.函数: 如例题1所示,根据路程,时间,速度之间的关系,列出下式: =? s t 50 在这样的变化过程中,有两个变量:s,t,当t的值确定时,有唯一的s值与之对应,我们说t是自变量,s是t的函数.当t=a时,s=b,那么b叫做当自变量的值为a 时的函数值. 例题2:设圆的半径为r,面积为S,写出r与S的关系式,指出其中的变量与常量.当r取1,2,3的时候,S是否有唯一的值与之对应? 例题3:y=x2中y是不是x的函数?反过来,x是不是y的函数? 定义域(自变量的取值范围):使函数有意义或符合实际的自变量的取值范围. 例题4:一辆汽车的油箱中有汽油50L,如果不再加油,那么油箱中的油量y(单位:L)随行车里程x(单位:km)的增加而减少,平均耗油量为0.1L/km. (1)写出表示y与x的函数关系的式子; (2)写出自变量x的取值范围; (3)汽车行驶200km时,油箱中还有多少汽油? 3.函数的图象:由于函数中某个自变量和对应的应变量可以写成(a,b)这样的

有序数对 ,而任何一个有序数对可以看成平面直角坐标系中的一个点,所以,一个函数就对应着直角坐标系中的无数个点,这些点组成了函数在平面直角坐标系中的图象,我们简称为函数的图象. 正方形的周长C 和边长x 之间的关系式为C =4x,其中x 的取值范围是x>0.请填写下面的表格: x 0.5 1 1.5 2 2.5 3 3.5 4 4.5 C 将上面表格中的数值在平面直角坐标系中画出,其中S 表示纵轴,x 表示横轴. 把一个自变量与函数对应值分别作为点的横,纵坐标,那么坐标平面内由这些点组成的图形,就是这个函数的图象. 例题5:下列各图给出了自变量x 与y 之间的函数是 ( ) 例题6:在平面直角坐标系纵画出下列函数的图象: (1)y =4x+2 (2)y =-6 x (x>0) 例题7:下面哪个点不在函数y=-2x+3的图象上 ( ) x y o A x y o B x y o D x y o

公文处理及请示批办制度 示范文本 In The Actual Work Production Management, In Order To Ensure The Smooth Progress Of The Process, And Consider The Relationship Between Each Link, The Specific Requirements Of Each Link To Achieve Risk Control And Planning 某某管理中心 XX年XX月

公文处理及请示批办制度示范文本使用指引:此管理制度资料应用在实际工作生产管理中为了保障过程顺利推进,同时考虑各个环节之间的关系,每个环节实现的具体要求而进行的风险控制与规划,并将危害降低到最小,文档经过下载可进行自定义修改,请根据实际需求进行调整与使用。 一、公文处理办法 公文是贯彻党和国家方针、政策、传达上级指示,请 示、批复问题,部署 工作,组织生产经营和完成各项工作的重要工具。为 做到准确、迅速、提高公文处理工作的效率和质量特制定 本办法: (一)公司负责文书管理工作的部门是办公室,分别负责 对局机关、集团等上级党政公文的统一收发、分办、传 递、立卷和存档。 (二)来文处理 1、收文 凡发来公司的一切文件、函电、均由办公室收发员接

收,其中,人事档案,挂号信函,在接受时,必须检查封志是否完整,发现密封受损应拒绝接收。 外出开会人员带回的文件资料,凡属发给公司的或需公司有关部门贯彻落 实的,应立即交收发员按正常收文手续办理,不得自行保存,处理或传递。 各部门直接从上级机关取回的文件,必须进行登记后按收文程序处理。 2、开启 文件由办公室人元负责开拆,人事档案交经营部档案负责人开拆,开启机密文件时,应检查封志是否完整。 3、登记 凡上级下发的正式公文及有关部门抄送的文件,由办公室逐一编号、逐一登记,并附“文件呈批单”。其它一般通知和函电有临时存查必要的,可另行登记,不编号。

.
关于下达公司文件批办流程的通知 各单位:
为强化公司各类文件批办流程管理,提高批办效率,根据精 细化管理要求,现将公司文件批办流程的一图一表印发给你们, 请遵照执行。
附件 1:公司二级单位文件批办流程 附件 2:公司外部来文批办流程 附件 3:公司内部请示、报告批办流程
综合管理部 年月日
精品 word 文档

.
公司二级单位文件批办流程
编号:
单位名称 综合管理部
层次
2
岗 公司领 主要领




A
B

流程名称 概要
分管领导
C
二级单位文件批办流程
二级单位文件批办流程管理
办公室
业务科科长
业务主办
D
E
F
开始
1
接收报告并登记
批示
办公室主任批阅
分管领

导办理
2
批示

分派
科长批办
主办办理

3
审核
分管领 导审核


是 科长
结案
审核
报告

批示
4
是 报公司
领导

反馈至相关 部门或单位
结案归档
结束
精品 word 文档

.
公司名称 公司
密级
共1 页第1页
编制单位 综合管理部
签发人
签发日

公司二级单位文件批办流程管理标准
共 1 页第 1 页
任务 名称
节点
任务程序及重点
时限
见证资料
程序
秘书(以下称经办人)接收公司的各类批
示、二级单位报告后,登记并加贴本部门
D1
文件批办单后,交办公室(兼)主任审阅。
当天
文件登记表
登记 报告
经办人根据办公室(兼)主任意见,将文 件呈送至单位领导批示。
当天
单位批办单
B1
单位领导对文件进行批示后反馈至经办 人。
1 个工作日内
批办意见
重点
文件登记、领导批办意见。
程序
D2
经办人根据领导的批办意见,需呈送分管 领导批阅的送分管部长批阅。
0.5 个工作日
内部批办单意见
经办人将领导的批办任务和意见分派至 相关科室并做好批办意见登记、存档。
当天
登记存档表
文件 C2 分管领导对文件批阅后,反馈至经办人。
当天
内部批办单意见
分发 E2 收到领导批办意见后,安排主办办理。
当天
内部批办单意见
F2
根据领导要求,按照流程办理,并及时汇 报进展情况。
领导根据文件 要求提出
处理过程记录
重点
任务分派与登记、存档; 确定业务主办。
程序
F3
根据办理情况,业务主办按要求形成结案 报告或处理意见,并报科长审核。
要求时间内
结案报告
E3 科长将审核的报告提交分管领导审核。 0.5 个工作日 结案报告审核意见
文件 C3 分管领导将审核的报告提交领导审核。
办理
B3
领导对报告进行审核、签发后,反馈至经 办人。
重点
当天 当天
结案报告审核意见 结案报告签发
结案报告;
领导签发报告并报出。
程序
根据领导的签发要求,对可以直接报出的
结案 报告
D4
报告进行登记并存档。
根据领导的签发要求,对需报送公司领导
的报告报送至公司领导秘书处。
当天 当天
结案报告存档、反馈 秘书签收记录
精品 word 文档

相关文档
最新文档