c程序的文件类型,判断C语言处理的文件类型只能是文本文件

1,判断C语言处理的文件类型只能是文本文件这句话是错的,还可以处理二进制文件 。
2 , C语言可以处理的文件类型是什么C语言可以处理的文件类型是 , ASCII文件和二进制文件两种
3,依据对文件中数据的组织形式C语言中的文件类型可分为哪两种ASCII 文件和二进制文件两种 。字符文件中的字符又是用ASCII码来表示的,因此也叫ASCII文件 , 二进制文件就是用二进制数来表示的 。流式文件 顺序文件【c程序的文件类型,判断C语言处理的文件类型只能是文本文件】
4,C语言可以处理的文件类型有哪些主要是两种文件类型:1)文本文件 , 2)二进制文件 。一般来说 , 人类可读的文件都作为文本文件 , 例如一片文章 。其余都作为二进制文件 , 例如一个程序 。在C语言中,文件的操作是通过FILE结构体进行了,利用fopen返回一个指向FILE结构体的指针,在使用fopen函数过程中,使用mode控制符对是否打开哪类文件进行控制:FILE *fopen( const char *filename, const char *mode );filename:文件名,mode:打开的模式,规定了是可读、可写、追加之类的属性 。r 以只读方式打开文件,该文件必须存在 。r+ 以可读写方式打开文件 , 该文件必须存在 。rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在 。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失 。若文件不存在则建立该文件 。w+ 打开可读写文件,若文件存在则文件长度清为零 , 即该文件内容会消失 。若文件不存在则建立该文件 。a 以附加的方式打开只写文件 。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留 。(EOF符保留)a+ 以附加方式打开可读写的文件 。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留 。(原来的EOF符不保留)wb 只写打开或新建一个二进制文件;只允许写数据 。wb+ 读写打开或建立一个二进制文件,允许读和写 。ab+ 读写打开一个二进制文件,允许读或在文件末追加数据 。如果调用失败,返回一个空指针 。能够处理任意文件类型,这个跟语言不相关的,而是跟文件存储结构有关如果你知道文件结构每个字节的含义,你可以修改二进制内容5,C语言中有哪些存储类型在C语言中 , 具体的存储类别有自动(auto)、寄存器(register)、静态(static)及外部(extern)四种 。静态存储类别与外部存储类别变量存放在静态存储区,自动存储类别变量存放在动态存储区,寄存器存储类别直接送寄存器 。turbo c2.0支持四种变量存储类型 。说明符如下:autostaticexternregister 下面分别来介绍 。一、auto auto称为自动变量 。局部变量是指在函数内部说明的变量(有时也称为自动变量) 。用关键字auto进 行说明, 当auto省略时, 所有的非全程变量都被认为是局部变量, 所以auto实际上 从来不用 。局部变量在函数调用时自动产生, 但不会自动初始化, 随函数调用的结束, 这 个变量也就自动消失了, 下次调用此函数时再自动产生, 还要再赋值, 退出时又自 动消失 。二、staticstatic称为静态变量 。根据变量的类型可以分为静态局部变量和静态全程变量 。1. 静态局部变量它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它 函数使用, 当再次进入该函数时, 将保存上次的结果 。其它与局部变量一样 。2. 静态全程变量turbo c2.0允许将大型程序分成若干独立模块文件分别编译, 然后将所有模块 的目标文件连接在一起, 从而提高编译速度, 同时也便于软件的管理和维护 。静态 全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量 。它与 全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用, 而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用 。三、externextern称为外部变量 。为了使变量除了在定义它的源文件中可以使用外, 还要 被其它文件使用 。因此,必须将全程变量通知每一个程序模块文件,此时可用 extern来说明 。四、registerregister称为寄存器变量 。它只能用于整型和字符型变量 。定义符register说 明的变量被turbo c2.0存储在cpu的寄存器中,而不是象普通的变量那样存储在内 存中, 这样可以提高运算速度 。但是turbo c2.0只允许同时定义两个寄存器变量, 一旦超过两个, 编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量 来处理 。因此, 寄存器变量常用在同一变量名频繁出现的地方 。另外, 寄存器变量只适用于局部变量和函数的形式参数, 它属于auto型变量, 因此, 不能用作全程变量 。定义一个整型寄存器变量可写成:register int a;对于以上所介绍的变量类型和变量存储类型将会在以后的学习中, 通过例行程 序中的定义、使用来逐渐加深理解 。自动,静态,外部,寄存在函数体内声明的变量在默认情况下都是auto存储类型在代码块之间传递信息的一种方法就是使用外部变量 。当一个变量在函数的外部被声明时,安的存储空间是永久分配的,安人存储类型是extren.外部变量的声明看上去和函数或代码块内部所声明的变量一样 。外部变量对于它之后的所有函数都有效 。在代码块或函数后 , 外部变量仍然存在 。static的基本用途是允许一个局部变量在重新进入代码块时能够保持原来的值 。这和自动变量形成了鲜明的对比,自动变量在代码块时会被销毁,再次进入这个代码块时,它必须重新进行初始化 。register存储类型告诉编译器相关的变量应该改量存储在高速度的寄存器中 。使用register存储类型的目的一般是为了提高执行速度,但是,register声明只是向编译器所提出的“建议”,并非强制要求在c语言中,具体的存储类别有自动(auto)、寄存器(register)、静态(static)及外部(extern)四种 。静态存储类别与外部存储类别变量存放在静态存储区,自动存储类别变量存放在动态存储区 , 寄存器存储类别直接送寄存器 。简介 C语言是Combined Language(组合语言)的中英混合简称 。1. C是中级语言 。它把高级语言的基本结构和语句与低级语言的实用性结合起来 。C 语言可以像汇编语言一样对位、字节和地址进行操作 ,  而这三者是计算机最基本的工作单元 。2.C是结构式语言 。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立 。这种结构化方式可使程序层次清晰 , 便于使用、维护以及调试 。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化 。3.C语言功能齐全 。具有各种各样的数据类型 , 并引入了指针概念,可使程序效率更高 。另外C语言也具有强大的图形功能,支持多种显示器和驱动器 。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏 。4. C语言适用范围大 。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型 。C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的 。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力 , 因此适于编写系统软件,三维,二维图形和动画 。它是数值计算的高级语言 。5.C语言文件由数据序列组成,可以构成二进制文件或文本文件 常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++  , Borland C++ Builder,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc 等等…… 对于一个初学者,Microsoft Visual C++是一个比较好的软件 。界面友好,功能强大,调试也很方便 。(1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行 , 它的执行顺序是自上而下 , 依次执行 。例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c; 则执行结果就变成a = b = c = 5,不能达到预期的目的 , 初学者最容易犯这种错误 。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s 。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等 。(2) 分支结构 顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择 。对于要先做判断再选择的问题就要使用分支结构 。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序 。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句 。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解 。程序流程图是根据解题分析所绘制的程序执行流程图 。学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图 , 弄清各分支所要执行的功能 , 嵌套结构也就不难了 。嵌套只不过是分支中又包括分支语句而已,不是新知识 , 只要对双分支的理解清楚,分支嵌套是不难的 。下面我介绍几种基本的分支结构 。①if(条件) {分支体} 这种分支结构中的分支体可以是一条语句,此时“{}”可以省略,也可以是多条语句即复合语句 。它有两条分支路径可?。皇堑碧跫?,执行分支体,否则跳过分支体,这时分支体就不会执行 。如:要计算x的绝对值 , 根据绝对值定义,我们知道 , 当x>=0时 , 其绝对值不变,而x<0时其绝对值是为x的反号 , 因此程序段为:if(x<0)x=-x; ②if(条件) {分支1} else {分支2} 这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成 。如:求ax^2+bx+c=0的根 分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根 。其程序段如下: main() { int a,b,c,d,x,y; printf("Please put the number of a,b&c from the quadratic equation of one variable one by one\n"); scanf("%d%d%d",&a,&b,&c); d=b*b-4*a*c; if(d<0) { printf("NO Root!Wrong!\n"); } else { y=-b-sqrt(d)/2*a; x=-b+sqrt(d)/2*a; printf("The 1st equation root=%d\nThe 2nd equation root=%d",y,x); } } ③IF嵌套分支语句:其语句格式为: if(条件1) {分支1} else if(条件2) {分支2} else if(条件3) {分支3} …… else if(条件n) {分支n} else {分支n+1} FOR嵌套,其语句格式为: for(初值A;范围A;步长A) { for(初值B;范围B;步长B) { 循环体 } } FOR嵌套例子:九九乘法表 main() { int a,b,c; for(a=1;a<=9;a++) { for(b=1;b<=a;b++) { c=b*a; printf("%dx%d=%d ",b,a,c); } printf("\n"); } } 嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂 , 对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句 。④switch开关语句:该语句也是多分支选择语句 , 到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else语句 , 它的所有分支都是并列的,程序执行时,由第一分支开始查找 , 如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配 。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用 。“?”语句 问号语句也是分支的一种,格式类似(ac语言中的存储类型有auto, extern, register, static 这四种 , 存储类型说明了该变量要在进程的哪一个段中分配内存空间,可以为变量分配内存存储空间的有数据区、BBS区、栈区、堆区 。1. auto存储类型auto只能用来标识局部变量的存储类型,对于局部变量,auto是默认的存储类型,不需要显示的指定 。因此,auto标识的变量存储在栈区中 。2. extern存储类型extern用来声明在当前文件中引用在当前项目中的其它文件中定义的全局变量 。如果全局变量未被初始化,那么将被存在BBS区中,且在编译时 , 自动将其值赋值为0,如果已经被初始化,那么就被存在数据区中 。全局变量,不管是否被初始化,其生命周期都是整个程序运行过程中,为了节省内存空间,在当前文件中使用extern来声明其它文件中定义的全局变量时,就不会再为其分配内存空间 。3. register存储类型声明为register的变量在由内存调入到CPU寄存器后,则常驻在CPU的寄存器中,因此访问register变量将在很大程度上提高效率 , 因为省去了变量由内存调入到寄存器过程中的好几个指令周期 。4. static存储类型被声明为静态类型的变量,无论是全局的还是局部的,都存储在数据区中,其生命周期为整个程序,如果是静态局部变量,其作用域为一对{}内,如果是静态全局变量 , 其作用域为当前文件 。静态变量如果没有被初始化,则自动初始化为0 。静态变量只能够初始化一次 。

    推荐阅读