C语言程序设计第十一章
C语言程序设计(第三版)谭浩强著 各章习题答疑
以八、 /* 以八、十六进制输出 */
} ???? 是对应的带符号短整数。 输出结果是八进制整数 十六进制整数
2
3.9 计算某个表达式的值。 通用程序清单如下: stdio.h” #include ”stdio.h stdio.h void main() { ?????? x; 计算表达式值存入x x=( 表达式 );/* 计算表达式值存入x */ printf(”% printf( %?\n”,x); ,x); } ?????? 表达式对应的数据类型符(需事先判断) ? 表达式为整型,则为d 表达式为实型,则为f 3
第七章习题答疑(二)
折半查找法在排序数组中查找某个数。 上课时已有提示。 7.13 字符串连接(b[]中字符串连接到a[]中字符串后) 设:a[10]=”12 ,b[]=”abc 12”, abc” 12 abc (1)找到a串的’\0’的下标(i=2) ’ (2)j=0; 当型循环(b[j]!=’\0’) ’\ ’ a[i]=b[j],i++,j++ (3)a[i]=’\0’ \ 7.15 字符串复制(b[]中字符串复制到a[]中) 设:a[10]=”12”,b[]=”abc” (1)i=0; 当型循环(b[i]!=’\0’) a[i]=b[i],i++ (2)a[i]=’\0’ 7.9
18
第十章习题答疑(一)
输入3个整数,按照由小到大顺序输出。 int x,y,z,*px=&x,*py=&y,*pz=&x; 用以前的程序,其中的x、y、z换成*px、*py、*pz 10.3 输入10个整数存入一维数组a[10],将其中最小数与第1 个数交换,最大数与最后一个数交换。 要求编3个函数: 10 10 输入10个整数、交换、输出交换后的10个整数。 输入函数: void in(int *p,int n) 输出函数: void out(int *p,int n) 交换函数: void change(int *p,int n) 其中寻找最大最小数的方法: int *q,*max,*min; for (max=min=p,q=p+1;q<p+n;q++) { if(*max<*q) max=q; if(*min>*q) min=q; } 19 交换的方法:*p和*min,*(p+n-1)和*max 10.1
C语言第11章精品PPT课件
11.1 文件的概述
12
11.1.2 文件的打开与关闭
1. 文件打开函数fopen( )
常用的调用形式: FILE *fp; fp = fopen(文件名, 文件使用方式); 文件名:需要打开的文件名称(字符串)。 文件使用方式:是具有特定含义的符号。
函数功能:
按指定的文件使用方式打开指定的文件。 若文件打开成功,为该文件分配一个文件缓冲区和一个 FILE类型变量,返回一个FILE类型指针; 若文件打开失败,返回NULL。
设备文件
在C语言中,“文件”的概念被进一步扩大, 把每台与主机相连的输入输出设备都看作是一个 文件。即把实际的物理设备抽象为逻辑文件,它 们被称为设备文件。
对外部设备的输入输出就是对设备文件的 读写。
2021/2/21
11.1 文件的概述
5
11.1.1 文件和文件指针
2. 文件的种类
按文件存储数据的形式
1
C 语言程序设计
第11章 文 件
计算机科学系
第11章 文件
2
11.1 文件的概念 11.2 文本文件的读写 11.3 二进制文件的读写
2021/2/21
11.1 文件的概述
3
11.1.1 文件和文件指针
1. 什么是文件
文件:存储在外部存储介质上相关数据的集合。
例如:程序文件中保存着程序,数据文件中保存着数据。
因此对uunnss于iiggnn每eedd 个cha使r 用*ics中utrepm的;p; 磁//**盘CTue文rmrpeo件nrta必rayc须t*i/v先e p定oin义ter一*/ 个FILsEho类rt型的文件t指oke针n;变量/* 并Use指d f向or此va变lid量ity。checking */
C语言程序设计全套教学教程完整版电子课件最全ppt电子教案
上一页 下一页
目录
8.1 指针的概念、定义和引用 8.1.1 指针的概念 8.1.2 指针变量的定义 8.1.3 指针变量的引用 8.2 指针与函数 8.2.1 指针变量作函数参数 8.2.2 返回值为指针的函数 8.2.3 通过指针调用函数
上一页 下一页
Hale Waihona Puke 目录8.3 指针与数组 8.3.1 指针与数组的关系 8.3.2 数组名作函数参数的指针解释 8.3.3 指针数组 8.3.4 多级指针 8.4 指针与字符串 8.4.1 字符串的表示形式 8.4.2 字符串指针作函数参数
2.汇编语言
汇编语言的指令与机器语言的指令基本上保持了一一对应的关系。与 机器语言比起来,汇编语言易记、易读、易检查、易修改,但却不能 被计算机直接识别和执行,必须由翻译程序翻译成机器语言程序后才 能执行。汇编语言仍然是面向特定计算机的语言,也仍然是低级语言
下一页
返回
1.1 程序设计语言概述
3.高级语言 高级语言是接近人类自然语言和数学语言的程序设计语言,具有以下
上一页 下一页
目录
5.2 do-while语句 5.3 for语句 5.4 break和continue语句 5.5 多重循环 5.6 综合应用举例 第6章 数组 6.1 数组概述 6.2 一维数组
上一页 下一页
目录
6.2.1 一维数组的定义 6.2.2 一维数组的引用 6.2.3 一维数组的初始化 6.2.4 一维数组的程序举例 6.3 二维数组 6.3.1 二维数组的定义 6.3.2 二维数组的引用 6.2.3 二维数组的初始化
翻译成目标程序,然后执行该目标程序。解释方式是把源程序逐句翻
上一页 下一页 返回
1.1 程序设计语言概述
C语言程序设计习题集(有答案)
高等教育自学考试C语言程序设计(二)课程代号(05772)同步练习题班级学号姓名二O 一六年三月目录第一章C语言概述第二章基本数据类型第三章控制结构第四章运算符和表达式第五章函数第六章数组第七章字符与字符串第八章变量类别与编译预处第九章指针第十章结构体、共用体和枚举类型第十一章文件第一章C语言概述一、单项选择题1.在计算机上可以直接运行的程序是()。
A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序2. 一个C语言程序是由()A.若干函数组成B.若干过程组成C.若干主程序组成D.若干子程序组成3. C语言不具有的特点是()A.具有结构化的控制语句B.数据类型丰富C.语法限制不太严格,程序设计自由度大D.在可移植性上,C语言比其他语言差4. 以下叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个主函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面5. 以下叙述正确的是()A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别和执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,所以具有其他语言的一切优点二、填空1. 计算机语言的发展经过了、和等阶段。
2. C语言既适合编写,也适合编写应用软件。
标准答案一、单项选择题CADDC二、填空1. 机器语言,汇编语言,高级语言2. 系统软件第二章基本数据类型一、单项选择题1.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%22.属于C语言基本数据类型的是( )A.指针型B.无符号整型C.数组型D.结构型3.C语言的长整型数值在计算机中占用的字节个数是( )A.1B.2C.3D.44.C语言中,″\x3d″在内存中占用的字节数是( )A.1B.2C.4D.55.下列关于C语言的叙述错误的是( )A. 英文字母大小写不加以区分B. 不同类型的变量可以出现在同一个表达式中C. 在赋值表达式中赋值号两边的类型可以不同D. 某些运算符在不同的场合可以有不同的含义6.下列转义字符中错误的是( )A. ′\000′B. ′\14′C. ′\x111′D. ′\2′7.下列标识符中,不是C语言保留字的是( )A. charB. whileC. minD. default8.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default9. 数据-324在二进制文件和文本文件中所占的字节数分别是()A.2,2B.2,4C.4,2D.4,410. 请选出可以作为C语言用户标识符的一组标识符()A.void, define, WORD B.A3_B3, _123, abcC.FOR, -abc, Case D.2a, Do, Sizeof11.下列运算符优先级最高的是()A.关系运算符B.赋值运算符C.算术运算符D.逻辑运算符12. sizeof(float)是()A.一种函数调用B.一个不合法的表示形式C.一个整型表达式D.一个浮点表达式13. 下列叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面14. 编译C语言程序时,程序中的注释部分将()A.不参加编译,也不会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.参加编译,并会出现在目标程序中15. 下列字符串常量不正确的是()A.'abc' B."12'12" C."0" D." "16. 下列4个选项中,均是合法整型常量的是()A.160 -0xffff 011B.-0xcdf 01ª0xeC.-01 986,012 0668D.-0x48a 2e5 0x17. 以下选项中不属于C语言类型的是()A.signed short int B.unsigned long intC.unsigned int D.long short18. 数值029是一个()A.八进制数B.十六进制数C.十进制数D.非法数19. 在C语言中,要求运算数必须是整型的运算符是()A./ B.++ C.!=D.%20. 当c的值不为0时,以下能将c的值赋给变量a,b 的是()A.c=b=a B.(a=c) || (b=c)C.(a=c) && (b=c) D.a=c=b二、填空1. 表示空类型的保留字是_____________。
《C语言程序设计教程》(第三版)课后习题参考答案(精选5篇)[修改版]
第一篇:《C语言程序设计教程》(第三版)课后习题参考答案C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。
《C语言程序设计》课件第11章
fgets(line, n, • line 可以是字符数组f名p)、; 字符指针变量名,它是从文件中
读出的字符串在程序中的存放处。 • n是一个int型数,指出从文件中读出的n-1个字符,添一
个‘\0’字符,把n个字符放到字符数组line中。 • fgets函数是一个返回值为字符型的指针的函数。在正常情
二进制文件与正文文件
5
二进制文件与正文文件比较 6
• ASCII码形式输出时
• 用二进制形式输出时
– 一个字节与一个字符一一对 应
– 便于对字符进行逐个处理, 也便于输出字符;
– 占存储空间较多;
– 可节省外存空间和转换时间; – 一个字节并不对应一个字符,
不能直接输出字符形式。 – 可读性差,常用于保存中间结
可从文件中读取内容,也可向文件中写入 打开读/写正文文件 内容,但写入时只能在文件的尾部追
加内容。若文件不存在则先建立之。
11.3.1 打开文件
14
• "存取方式"
“rb”
打开只读二进制文件
“wb”
打开只写二进制文件
“ab”
打开追加二进制文件
“rb+” 或 “r+b” 打开读/写二进制文件
“wb+”或 “w+b” 打开读/写二进制文件
C语言程序设计( (11)
第 11 章 文件
canf、g etchar函数就属于这类输入。从文件编码的方式 来看,文件可分为ASCII码文件和二进制码文件两种。ASCII码文 件也称为文本文件、字符文件或正文文件,它是按字符来存储的, 具有可读性。这种文件在磁盘中存放时每个字符对应一个字节, 用于存放对应的ASCII码。
第 11 章 文件
typedef struct {
int_fd; int_cleft; int_mode; char*_next; char *_buff; } FILE;
/*文件号*/ /*缓冲区中的剩余字符*/ /*文件的操作模式*/ /*下一个字符的位置*/
/*文件缓冲区的位置*/
第 11*fp1,fp2;
11.2 文件的打开与关闭
1. 文件类型指针 文件的属性包括文件的名字、文件的性质、文件的当前状态 等。ANSI C为每个被使用的文件在内存开辟了一块用于存放上述 信息的小区,利用一个结构体类型变量来存放。该变量的结构体 类型由系统取名为FILE,在头文件stdio.h中定义如下:
第 11 章 文件
第 11 章 文件
printf("cannot open file\n"); exit(0); } while((strlen(fgets(str,128,fp1)))>0)
/*从文件中读回的字符串长度大于0*/ { fputs(str,fp2);
/*从文件1读字符串并写入文件2*/
第 11 章 文件
功能:从fp指定的文件中读取size*count个字节的数据,并 把它放入由buf指定的内存中。当文件以二进制形式打开(即 fp=fopen(“file1”, “rb”);)时,fread函数就可以用来读取 各种类型的数据信息。如语句
C 语言程序设计章 (11)
{
MyStack<int,5> ss;
for(int i=0;i<10;i++)
{try
{if(i%3)cout<<ss.pop()<<endl;
else ss.push(i);
}
catch (StackOverflowException &e)
{ e.getMessage();
}
catch (StackEmptyException &e)
– try语句块和catch语句块是一个整体,两者之间不能有其他的语句;
– 一个try语句块后面可以有多个catch语句,但是,不可以几个try语句块后 面用一个catch语句。
C++语言程序设计
11
11.3 用类对象传递异常
– throw语句所传递的异常,可以是各种类型的:整型、实型、字符型、指针, 等等。也可以用类对象来传递异常。
template <class T, int i> //类模板定义 class MyStack { T StackBuffer[i];
int size; int top; public: MyStack( void ) : size( i ) {top = i;}; void push( const T item ); T pop( void ); };
理的机制。
C++语言程序设计
6
• 例:程序将连续地输入两个实数,通过调用函数,返回这两个数相除的商。并且 要注意除数不能为0。
• 用一般的方法处理除法溢出
void main()
#include <iostream>
《C语言程序设计》-何钦铭
《C语⾔程序设计》-何钦铭第⼀章引⾔1.2 程序与程序设计语⾔冯 · 诺依曼模型的存储程序概念:将程序与数据共同存储结构化的程序设计⽅法:将复杂程序划分为若⼲个相互独⽴的模块(⼀个模块可以是⼀条语句、⼀段程序或⼀个函数等)使完成每个模块的⼯作变得单纯⽽明确,在设计⼀个模块时不受其他模块的牵连。
同时,通过现有模块积⽊式的扩展就可以形成复杂的、更⼤的程序模块或程序1.3 C语⾔的发展历史与特点C语⾔的特点:(拥有底层操作能⼒)1.结构化语⾔2.易于移植3.简洁紧凑,使⽤⽅便灵活4.强⼤的处理能⼒5.⽣成的⽬标代码质量⾼,运⾏效率⾼第⼆章⽤C语⾔编写程序2.3 计算分段函数#include <stdio.h> //编译预处理指令程序运⾏时,⾸先从main函数开始运⾏%f指定输出时保留6位⼩数,%.2f则指定输出时保留2位⼩数循环体语句只能是⼀条语句(如果循环体语句由多条语句组成,必须⽤⼤括号把他们括起来,变成⼀条复合语句)整型数据的输出格式控制说明%md,指定了数据的输出宽度为m(包括符号位)。
若数据的实际位数(含符号位)⼩于m,左端补空格;若⼤于m,按实际位数输出实型数据的输出格式控制说明 %m.nf,指定了输出浮点型数据时保留n位⼩数,且输出宽度是m(包括符号位和⼩数点)。
若数据的实际位数(含符号位)⼩于m,左端补空格;若⼤于m,按实际位数输出f是针对浮点型数据⽽⾔,若输出数据为整型,则%m.nf应改为%md赋值运算符左边只能是⼀个变量第三章分⽀结构ch = getchar() //从键盘输⼊⼀个字符,并赋值给变量chputchar(输出参数); //输出参数是字符型变量或字符型常量第四章循环结构else和 if 的匹配准则:else与最靠近它的、没有与别的 else 匹配过的匹配do-while语句:循环条件需要在循环体中明确,且⾄少会执⾏⼀次循环体do {循环体语句} while (表达式);//判断⼀个数是否为素数#include <stdio.h>int main() {int i,m;printf("Enter a number:");scanf("%d", &m);for(i=2;i<=m/2;i++)if(m%i==0)break; //若m能被某个i整除,则m不是素数,提前结束循环if(i>m/2 && m!=1) //若循环正常结束,说明m不能被任何⼀个i整除printf("%d is a prime number! \n", m);elseprintf("No! \n");return 0;}break语句强制循环结束,不再执⾏循环体中位于其后的其他语句,break语句应该和if语句配合使⽤,即条件满⾜时,才执⾏break跳出循环;否则若break⽆条件执⾏,意味着永远不会执⾏循环体中break后⾯的其他语句continue语句:跳过循环体中continue后⾯的语句,继续下⼀次循环,continue语句⼀般也需要与if语句配合使⽤break语句和continue语句的区别在于,break结束循环,⽽continue跳过后⾯语句继续循环。
《C语言程序设计教程》全册教案完整版教学设计
《C语言程序设计教程》第一章教案一、教学目标1. 让学生了解C语言的发展历程和特点。
2. 掌握C语言的基本语法和结构。
3. 学会使用C语言编写简单的程序。
二、教学内容1. C语言的发展历程和特点2. C语言的基本语法和结构3. C语言程序的基本框架4. 简单的C语言程序示例三、教学方法采用讲授法、示例法、练习法相结合的方式进行教学。
四、教学步骤1. 引入话题:介绍C语言的发展历程和特点。
2. 讲解C语言的基本语法和结构,包括数据类型、变量、常量、运算符、表达式等。
3. 讲解C语言程序的基本框架,包括主函数、变量定义、函数体等。
4. 通过示例程序,让学生了解和掌握C语言编程的基本方法。
5. 布置练习题,让学生课后巩固所学知识。
五、教学评价通过课堂提问、练习题、课后作业等方式对学生的学习情况进行评价。
《C语言程序设计教程》第二章教案一、教学目标1. 让学生掌握C语言的运算符和表达式。
2. 学会使用C语言进行基本的输入输出操作。
3. 了解C语言的控制语句,包括条件语句和循环语句。
二、教学内容1. C语言的运算符和表达式2. C语言的输入输出操作3. C语言的控制语句三、教学方法采用讲授法、示例法、练习法相结合的方式进行教学。
四、教学步骤1. 复习C语言的基本语法,引入运算符和表达式的概念。
2. 讲解各种运算符的用法和优先级,通过示例让学生掌握运算符和表达式的使用。
3. 讲解C语言的输入输出操作,包括printf函数和scanf函数的使用。
4. 讲解C语言的控制语句,包括if语句、switch语句、for循环、while循环等。
5. 通过示例程序,让学生掌握控制语句的使用方法。
6. 布置练习题,让学生课后巩固所学知识。
五、教学评价通过课堂提问、练习题、课后作业等方式对学生的学习情况进行评价。
《C语言程序设计教程》第三章教案一、教学目标1. 让学生掌握C语言的函数概念和作用。
2. 学会自定义函数,并了解函数的调用方式。
C程序设计智慧树知到答案章节测试2023年中国海洋大学
第一章测试1.C程序中语句的结束符是;。
()A:错B:对答案:B2.一个C程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
()A:错B:对答案:A3.C语言编写的程序需要编译连接才能运行。
()A:对B:错答案:A4.构成C程序的基本单位是函数。
()A:错B:对答案:B5.没有main函数程序就无法执行。
()A:对B:错答案:B第二章测试1.“A”是合法的字符常量是。
()A:错B:对答案:B2.long是合法的用户标识符。
()A:对B:错答案:B3.在C语言中,变量所分配的内存空间大小由变量的类型决定()A:对B:错答案:A4.下面正确的int型常量表示是________。
()A:0xagB:089C:16.700答案:D5.下面错误的实型常量表示是________。
()A:62.123B:12E-88C:3.5e7.8D:.23答案:C第三章测试1.有以下程序,程序的输出结果是int main(){ int a=3; a+=a-=a*a;printf(“%d”,a); return 0;}()A:-3B:-12C:0D:9答案:B2.运行以下程序的输出结果是________。
int main(){ int x,y, z ; x=y=1;z=x++,y++,++y; printf(“%d,%d,%d”, x,y,z) ; return 0;}()A:2,3,3B:2,2,1C:2,3,1D:2,3,2答案:C3.有如下的变量定义:int i=8,a,b;double x=1.42,y=5.2;则以下符合C语言语法的表达式是________。
()A:y=i+=(b=i)B:y=x%iC:a+=a-=(b=4)(a=3)D:a=a3=2答案:D4.设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是________。
C程序设计第十一章
FILE * fopen(char *filename, char *mode)
函数 exit(0)的功能:终止程序 参见教材 P.240 表 11.1 } 头文件stdlib.h
mode :打开文件的使用方式,用字符串表示, exit(0);
第11章
11.2 文件的打开和关闭
关闭文件
返回 0则表示文件已被正常关闭。 fclose(fp) ;
第11章
11.3 文件的读写
C提供不同的读写文件的函数:
文本文件的读写
fgetc fputc
读写一个字符
fgets fputs
fscanf fprintf
读写一个字符串
格式化读写
二进制文件的读写
fread fwrite
读写一个“内存块”
第11章
fscanf与fprintf举例 ①
#include <stdio.h> 例 1 :从键盘输入 40 个学生的英语成绩, #include <stdlib.h> 存放在新建的文本文件 s.dat中。
void main() { FILE *fp ; int i , score ; if ( ( fp=fopen("s.dat", "w") ) == NULL ) { printf("open file error!\n"); exit(0); } for ( i=1 ; i<=40 ; i++ ) { scanf("%d", &score ) ; //从键盘输入 fprintf( fp, "%6d", score ) ; //写入文件 } fclose(fp) ; }
C语言程序设计课件第11章091115
文件的打开与关闭
因此5个符号组合起来共有12种打开方式: • (1)r、w、a: 打开文本文件,只可读或只可写(追加) • (2)r+、w+ 、a+:打开文本文件,既可读又可写(追加) • (3)rb、wb、ab:打开二进制文件,只可读或只可写(追加) • (4)rb+、wb+、ab+:打开二进制文件,既可读又可写(追加) 要保证打开文件正确才能执行后续操作,用如下代码: • FILE *fp; FILE *fp; • fp=fopen("D:\\record\\s.txt","r"); •if(!(fp=fopen("D:\\record\\s.txt","r"))) if(!fp) //如果文件指针为0则打开失败 • { printf("can't open file s.txt \n"); • exit(1); • }
文件指针
以下主要讨论磁盘文件,磁盘是一种外部介质,与键
盘和显示器不同,它可以持久地保存数据。 专门存放数据的磁盘文件我们称其为数据文件 流的数据组织形式分为字符序列和字节序列,前者称 为文本流,后者称为二进制流。
• 例:double型常量136467.56789,如果是一个文本流,共
占12个字节(一个字符对应一个ASCII码,每一个ASCII码 占一个字节);如果是二进制流,共占8个字节 • 例:long int型常量100,如果是一个文本流,共占3个字节; 如果是二进制流,共占4个字节
函数的使用方法 两种用程序实现文件复制的方法
流与文件的概念
流:数据的流动称为流,---数据流动总是和设备或外
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文件关闭 FCLOSE
• 作用:使文件指针变量与文件“脱钩”,释放文件结构体 和文件指针
• 函数原型:int fclose(FILE *fp)
int fputs(char *s,FILE字符串 返值ffgg:eettss正从常ffpp时u所t返s指把回文s读指件取向读字的n-符字1个串符字的串符首写送地入入址fps;指指出向向错的的或文内文件存件区尾, ,
设备文件:非存储介质(键盘、显示器、打印机等 ) 按数据的组织形式: 文本文件: ASCII文件,每个字节存放一个字符的 ASCII码 二进制文件:数据按其在内存中的存储形式原样存 放
文件特点:
文本文件特点: 存储量大、速度慢、便于对字符操作
如 int型数11100 0011111111011100 内存存储形式
件“w/wb” (只写) fp=fop为en输(“出aa打.c开”,或“w建”立); 一个文本/二进制文件 – 打“““系w•••“ra+a++开标标标////a统rawbbb准准准文例b+”+自+””(例输输出”追件((读动读(加读入出错Fffp写写Io)写打Fcf=L--输p)h--)I{}pE)--fi=Laf开o--出er(--Efpf*--nope键 显 -*fp和ep-n=*pfxr-eif;为i盘示-=il(nnp关-te“N(显t(;读nc0器ff为U向(a:i闭)为/示\“l;m写\eL读F文fn读eeL三器i打/aln本=写)e/mg写开“个/o打yc二e建或p:i,\\开”e进标s\\立建rsfbnst”一e制ktdt一)立ne准ddc;个er文g\o个ri一\ryno文文tu件rie文r个\ts!本\尾\bt件本文n.kd/追”二/本ca)二:\t加;进\”/t进二,e数”制s使制进rt据”文.d)文制用;a件件文t文” 件件方式
函数原型:int fgetc(FILE *fp)
功能:从fp指向的文件中读取一字节代码 返值:正常,返回读到的代码值;读到文件尾或出错 ,为EOF
数据块I/O: FREAD与FWRITE
• 函数原型:
size_t fread(void *buffer,size_t size, size_t count,FILE *fp) size_t fwrite(void *buffer,size_t size, size_t count,FILE *fp)
例 fprintf(fp,“%d,%6.2f”,i,t); //将i和t按%d,%6.2f格式输出到fp文件 fscanf(fp,“%d,%f”,&i,&t); //若文件中有3,4.5 ,则将3送入i, 4.5送入t
字符串I/O: FGETS与
函数原型:
FPUTS char *fgets(char *s,int n,FILE *fp)
typedef struct { int _fd; //文件号
int _cleft; //缓冲区中剩下的字符数 int _mode; //文件操作方式 char *_next; //文件当前读写位置 char *_buff; //文件缓冲区位置 }FILE;
文件类型指针
• 指针变量说明: FILE *fp; • 用法:
– 文件打开时,系统自动建立文件结构体, 并把指向它的指针返回来,程序通过这个 指针获得文件信息,访问文件
– 文件关闭后,它的文件结构体被释放
11.3 文件的打开与关闭
C文文件使件用操方例作式文用件库打函开数与实测试现含,包义 含在stdio.h 文“r/r件b”使(只用读)方FI式LE:打*开f为p;输文入件打-开->一文个文件本读/二/写进制--文>件关闭文
ASCII形式 0011110111111100001111000011110000111100 0011111111011100
二进制形式
二进制文件特点: 存储量小、速度快、便于存放中间结果
文件类型指针
– 文件结构体FILE
• 缓冲文件系统为每个正使用的文件在内存开辟文件信 息区
• 文件信息用系统定义的名为FILE的结构体描述 • FILE定义在stdio.h中
– 格式化I/O:fprintf与fscanf
• 函数原型: int fprintf(FILE *fp,const char *format[,argument,…]) int fscanf(FILE *fp,const char *format[,address,…])
功能:按格式对文件进行I/O操作 返值:成功,返回I/O的个数;出错或文件尾,返回EOF
第十一章 文件
C文件概述 文件类型指针 文件的打开与关闭 文件的读写 文件的定位 出错的检测
C文件概述
– 文件:存储在外部介质上数据的集合,是操作系统 数据管理的单位
文件分类 按文件的逻辑结构:
记录文件:由具有一定结构的记录组成(定长和不 定长) 流式文件:由一个个字符(字节)数据顺序组成 按存储介质: 普通文件:存储介质文件(磁盘、磁带等)
功能:关闭fp指向的文件 返值:正常关闭为0;出文错件时打,非开0 时返回的文件类型指
针
文件的读写
– 字符I/O:fputc与fgetc
• fputc
– 函数原型:int fputc(int c, FILE *fp)
– 功能:把一字节代码c写入fp指向的文件中 – 返值:正常,返回c;出错,为EOF fgetc
功能:读/写数据块 返值:成功,返回读/写的块数;出错或文件尾,返回0 说明:
typedef unsigned size_t; buffer: 指向要输入/输出数据块的首地址的指针 size: 每个要读/写的数据块的大小(字节数) count: 要读/写的数据块的个数 fp: 要读/写的文件指针 fread与fwrite 一般用于二进制文件的输入/输出