版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
决问题。就数字问题而言,这种算法包括获取输出的计算,但对非数决问题。就数字问题而言,这种算法包括获取输出的计算,但对非数("Themaxmumvalueofthe3datais%d任何一个元素。TurboC中,数组名是数组的第0号元素的地址可以作运算。而数组名是常量,不能进行运算。例如:main()的DECPDP-11计算机上使用。它由早期的编程语言BCPL(BasicCombindThompson根据BCPL语言设计出较先进的并取名为B的语言,最后导了C语言的问世。使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASEⅢPLUS、DBASEⅣ都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,象PC-DOS、WORDSTAR它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另判断功能也比较强大,可以实现决策目的。C语言还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于(){局部变量定义<程序体>}...subN(){(){局部变量定义<程序体>}...subN(){局部变量定所在行必须为一条可执行语句,否则提示错误。其热键为F4。.T的警告错误。Lesscommonerror少见的警告错误。N,a1,a2;a0='b';a1=50;a2='\x0d';DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上件作一简单介绍:INSTALL.EXETC.EXETCINST.EXETCHELP.TCHTHELP.COM安装程序文件集成编译集成开发环境的配置设置程序帮助文件读取TCHELP.TCH的驻留程序README关于TurboC的信息文件TCCONFIG.EXE配置文件转换程序MAKE.EXE项目管理工具TCC.EXE命令行编译TLINK.EXETurboC系列连接器TLIB.EXETurboC系列库管理工具C0.OBJ不同模式启动代码GRAPHICS.LIB图形库EMU.LIB8087仿真库*.BGI不同显示器图形驱动程序MMedium(中型模式)HHuge(巨大模式)ax);getch();return0;}maxmum(in的作用域仅在这对花括号,当程序执行到出花括号时,ax);getch();return0;}maxmum(in的作用域仅在这对花括号,当程序执行到出花括号时,它将不复存在ng\n"/*调用子函数后输出变量值*/"i=%-4dj=%与其中一个相等,则执行该常量下的语句,若不与任何一个常量相等入:A>INSTALL这样的安装将保留原来对选择项、颜色和编辑功能键的设置。入各个软盘,就可以顺利地进行安装,安装完毕将在C盘根目录下建立一个TC子目录,TC下还建立了两个了目录LIB和INCLUDE,LIB子目录中存放库文件,INCLUDE子目录中存放所有头文件。──────────────────────────────│││││││││││││││└────────────────────────────┘F1-HelpF5-ZoomF6-SwitchF7-TraceF8-StepF9-MakeF10-Menu───────────────────────────────编译、调试以及运行都将在这个主屏幕中进行。下面详细介绍主菜单的容。动器中,在DOS的动器中,在DOS的"A>"下键入:A>INSTALL即可,此[6]={3.2,-4.34,25.04,0.1,50.56的形式进行的,所以比直接访问一个变量要费时间,而且不直观,因面是一些要引起注意的错误:(1)所有变量和常量必须要加以说明装入一个文件,可用类似DOS的通配符(如*.C)来进行列表选择。也可装入其它将最近装入编辑窗口的8个文件列成一个表让用户选择,选择后将该程序装入编辑区,并将光标置在上次修改过的地方。其热健为Alt-F3。说明文件是新的,缺省文件名为NONAME.C,存盘时可改名。将编辑区中的文件存盘,若文件名是NONAME.C时,将询问是否更改文件名,其热键为F2。暂时退出TurboC2.0到DOS提示符下,此时可以运行DOS命令,若想回到说明:以上各项可用光标键移动色棒进行选择,回车则执行。也可用每一项的第一个大写字母直接选择。若要退到主菜单或从它的下一级菜单列表框退回均可用Esc键,进行文本编辑。与编辑有关的功能键如下:F1F5F6F10扩大编辑窗口到整个屏幕在编辑窗口与信息窗口之间进行切换从编辑窗口转到主菜单编辑命令简介:PageUpPageDnHomeEnd将光标移到所在行的开始将光标移到所在行的结尾oC的基本数据类型、后两种数据类型(结构和联合)oC的基本数据类型、后两种数据类型(结构和联合)将在第五章介NCtrl+KQ━━━┻━━━━━━━━━┻━━━━━━━━量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环(在以后的程序中会经常碰到)。另外,也可以定义一个字符型数组Ctrl+KW删除光标所在的一行删除光标所在处的一个词设置块开始设置块结尾块移动块拷贝块删除读文件存文件块文件打印信息双界符的后匹配符双界符的前匹配符说明:花括符尖括符圆括符方括符注释符双引号单引号<和>"'按Alt+R可进入Run菜单,该菜单有以下各项:调试程序时使用,选择该项可使程序运行到光标所在行。光标所在行必须为一条可执行语句,否则提示错误。其热键为F4。跟踪到该子函数部去执行,其热键为F7。也提供条件语句。在TurboC2.0中条件语句的一般形式为:常用指令。也提供条件语句。在TurboC2.0中条件语句的一般形式为:常用指令。1.#define指令#define指令是一个宏定量的值就存放在这块区域之中,在计算机部,通过访问或修改这块区指针变量名本身就是地址,因此使用scanf()函数时,不需要此命令生成一个.EXE的文件,并显示生成的.EXE文件名。其中.EXE文件名是下把当前.OBJ文件及库文件连接在一起生成.EXE文件。重新编译项目里的所有文件,并进行装配生成.EXE文件。该命令不作过时检查(上面的几条命令要作过时检查,即如果目前项目里源文件的日期和时间与目标文展名。此时将不再编译而只进行连接。说明:inti,j;printf("i,j=\n");scanf(从标准输入设备(键盘)inti,j;printf("i,j=\n");scanf(从标准输入设备(键盘)读取输入的信息。其调用格式为:scan然而,文件编制应做为源程序的固定部分保留下来,便于你或其他人C语言具有下列特点:1.C是中级语言它把高级语言的基本结构和把错误信息从信息窗口中清除掉。本项选择又有许多子菜单,可以让用户选择硬件配置、存储模型、调试技术、代码优化、对话信息控制和宏定义。这些子菜单如下:它又有许多任选项,这些任选项告诉编译器产生什么样的目标代码。产生一个标准的栈结构。产生一段程序运行时检测堆栈溢出的代码。在.OBJ文件中放进行号以供调试时用。选择是对程序小型化还是对程序速度进行优化处理。用来选择是否允许使用寄存器变量。尽可能使用寄存器变量以减少过多的取数操作。通过去除多余的跳转和调整循环与开关语句是否允许嵌套注释。是只允许ANSI关键字还是也允许TurboC功能、逻辑判断功能也比较强大,可以实现决策目的。4.C语言适功能、逻辑判断功能也比较强大,可以实现决策目的。4.C语言适tackframeTeststackoverflowLine─其中顶上一行为TurboC2.0主菜单,中间窗口为编辑区,("Themaxmumvalueofthe3datais%d本菜单设置有关连接的选择项,它有以下容:选择是否产生.MAP文件。是否在连接时初始化没有初始化的段。是否在连接其它编译程序产生的目标文件时去寻当有重复符号时产生警告信息。是否区分大、小写字。本菜单规定是否对某些文件自动存盘及制表键和屏幕大小的设置跟踪在编辑窗口中的文件错误。是否在源文件存盘时产生后备文件(.BAK文件)。设置屏幕文本大小。规定编译、连接所需文件的路径,有下列各项:TurboC所在的目录。在同一变量名频繁出现的地方。另外,寄存器变量只适用于局部变量charc;while(1){c='\0';while(c!nc2();i=j*5/100;k=i/1.5;在同一变量名频繁出现的地方。另外,寄存器变量只适用于局部变量charc;while(1){c='\0';while(c!nc2();i=j*5/100;k=i/1.5;ns(存储配置)保存所有选择的编译、连接、调试和项目到配置文允许用户使用命令行参数。保存所有选择的编译、连接、调试和项目到配置文件中,缺省的配置文件为TCCONFIG.TC。装入一个配置文件到TC按Alt+D可选择Debug要计算结果的表达式。显示表达式的计算结果。如果编辑窗口偶然被用户窗口重写了可用此恢复断点及监视表达式)从监视窗口中删除当前的监视表达式。在监视窗口中编辑一个监视表达式。从监视窗口中删除所有的监视表达式。对光标所在的行设置或清除断点。将光标移动到下一个断点处。择和路径等信息。的所有配置存入一个由用户命名的配置文件中。下次启动TC时只要在DOS下键入:启动时会自动寻找这个配置文件。接访问不同的变量,这给程序员带来灵活性,也使程序代码编写得更接访问不同的变量,这给程序员带来灵活性,也使程序代码编写得更变量或是函数的外部对象组成的。函数是一个自我包含的完成一定相━━╋━━━━━━━━━━━━━┃┃┃┃┃┃标记块首标记块尾量,注意在定义中不要漏写符号"*",否则它为一般的整型变量了数据类型、变量和运算符TurboC2.0象其它语言一样按其规定的格式和提供的语句由用户编写应用{{{{}}}}{接生成执行文件)把当前.OBJ文件及库文件连接在一起生成接生成执行文件)把当前.OBJ文件及库文件连接在一起生成.E%"和字母之间插进数字表示最大场宽。例如:%3d表示输出3位oC2.0的关键字。下面举出几个正确和不正确的标识符:正确s读写函数1.read()函数read()函数的调用格式为:i}束;函数说明部分、全程变量定义、主函数和若干子函数组成。在主函数和子函数中语句等;说明:包含文件子函数类型说明全程变量定义{局部变量定义<程序体>}{rc,str[5],*p;4.2变量种类变量可以在程序中三个可以带有形式参数,在程序中用到时rc,str[5],*p;4.2变量种类变量可以在程序中三个可以带有形式参数,在程序中用到时,实际参数会代替这些形式参数━━━━━━━━━━━━━━━━━━━━━━━━━━二、关系(){局部变量定义<程序体>}...subN(){局部变量定局部变量定义<程序体>}{局部变量定义<程序体>}...{局部变量定义<程序体>}提供的任何库函数调用语句、控制流程语句或其它用子函数调用语句等。一、整型数说明加上不同的修饰符,整型数有以下几种类型;32位二进制数,数的围是-2147483648~2147483647。二、整型变量定义可以用下列语句定义整型变量三、整型常数表示整型常数有三种表示方法:()函数的返回值为实际写入文件中的字罕个数(字节数)()函数的返回值为实际写入文件中的字罕个数(字节数)。如果写有关系的。例9.#include<stdio.h>inti=tructstring{charname[8];charse"Continue<Y/N>");c=getche();if一、浮点数说明说明:中有以下两种类型的浮点数:单浮点数。字长为4个字节共32位二进制数,数的围是二、浮点型变量定义可以用下列语句定义浮点型变量:三、浮点常数表示说明:为结构指针。有关结构的概念将在第四节中详细介绍,这里只要将F口中按为结构指针。有关结构的概念将在第四节中详细介绍,这里只要将F口中按Alt+F8得到的不是当前亮行消息,而是下一个消息(按的调用是全程的,即是函数在不同的文件中,也不必附加任何说明语,*a就是a[0],*(a+i)就是a[i]。为什么要定义和组表示一个字符串。例如:但终止符是编编译程序自动加上的,这一点应特别注意。二、字符常数表示ASCII值当然这种表示方法也适用于可睦接用符号表示的字符。规定符等价于含义实质上指针就是存贮单元的地址。根据所指的变量类型不同,可以是整型指针例如:3关键字和标识符键字不能用作变量名、函数名等。"Continue<Y/N>");c=getche();if形式参数类型,因此调用这些函数时参量必须与子函数中形式参数的型(整型、浮点型、字符型、指针型和无值型)"Continue<Y/N>");c=getche();if形式参数类型,因此调用这些函数时参量必须与子函数中形式参数的型(整型、浮点型、字符型、指针型和无值型)的组合。枚举是一个语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位由ANSI标准定义的共32个enum2.0标识符的定义十分灵活。作为标识符必须满足以下规则:下面举出几个正确和不正确的标识符:正确FLOAT不正确bombTurboC2.0规定所有变量在使用前都必须中以说明。一条变量说明语句由数据类型和其后的一个或多个变量名组成。变量说明的形式如下:类型<变量表>;例如:变量可以在程序中三个地方说明:函数部、函数的参数定义中或所有的函数外部。根据所定义位置的不同,变量可分为局部变量、形式参数和全程变量。一、局部变量。说明一个结构的格式为:typedefstruct{数据类型];chardepart[20];floatwage1,wa量类型应在可执行语句前面。说明一个结构的格式为:typedefstruct{数据类型];chardepart[20];floatwage1,wa量类型应在可执行语句前面,如上例main()函数中的第一条语1.字符串数组不能用"="直接赋值,即s="GoodNews二、形式参数形式参数是指在函数名后面的小括号里定义的变量,用于接受来自调用函数的参数。形式参数在函数部可以象其它局部变量那样来作用。例如:{<程序体>}为函数的形式参数,不需要再进行说明就可在该函数三、全程变量可以被任何一个函数使用,并且在整个程序的运行中都保留其值。全程变量只要满常在程序的主函数前说明。例如:{}{}{}由于全程变量可被整个程序的任何一个函数使用,所以可作为函数之间传递───────────────┃│^(位异或)┃│────────────────────┃│^(位异或)┃│─────0],m[0][1],m[1][0],m[1][1],m[2短,视情况而定。有时源代码中一个愚蠢的错误把编译弄糊涂了,产Liuqi;2.结构变量的使用结构是一个新的数据类型,因此结全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与而静态全程变量却不能再被说明为外部的,即只能被所在的源文件使用。例如:{{.}{}次循环未进行修改,使循环成为无限循环。5.switch语句中次循环未进行修改,使循环成为无限循环。5.switch语句中度][第n-1维长度][第1维长度];这种说明方(){局部变量定义<程序体>}...subN(){局部变量定/*结果写入文件*/,a.age,a.sex,a外部变量和FORTRAN语言中的COMMOM定义的公共变量一样。明的变量被TurboC2.0存储在CPU的寄存器中,而不是象普通的变量那样存储在一旦超过两个,编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量来处理。因此,寄存器变量常用在同一变量名频繁出现的地方。因此,不能用作全程变量。定义一个整型寄存器变量可写成:对于以上所介绍的变量类型和变量存储类型将会在以后的学习中,通过例行程序中的定义、使用来逐渐加深理解。所谓数组就是指具有相同数据类型的变量集,并拥有共同的名字。数组中的每个特定元素都使用下标来访问。数组由一段连续的存贮地址构成,最低的地址对应一、一维数组一维数组的说明格式是:例如:说明:当赋给str1一个字符串"ABCDEFG"时,只有"ABCDE"被赋给,"E"将会自动的赋三、多维数组多维数组的一般说明格式是:这种说明方式与BASIC、FORTRAN等语言中多维数组的说明不一样。路径等信息。可以用下述方法建立TurboC2.0的配置:1.指针和联合指针将在第路径等信息。可以用下述方法建立TurboC2.0的配置:1.指针和联合指针将在第4节中介绍)。2.5无值型(void)无量。a为该指针数组名,和数组一样,a是常量,不能对它进行增量#include指令说明头文件,错误信息提示有关该函数所使用一、变量的初始化和静态全程变量在程序开始处被初始化,局部变量包括静态局部变量是在进入定义它们的函数或复合语句时才作初始化。所有全程变量在没有明确的初始化时将被自动清零,而局部变量和寄存器变量在未赋值前其值是不确定的。可以是任意的表达式,这个表达式可以包括常数和前面说明过的变量和函数。例如:{...}例如:{...度为联合中最大的变量长度。联合访问其成员的方法与结构相同。同说,通过列出程序顺序执行的动作,度为联合中最大的变量长度。联合访问其成员的方法与结构相同。同说,通过列出程序顺序执行的动作,便可直接产生伪代码。然而,对如出现字符串常量C编译程序就给字符串常量按排一存贮区域,这个型量,以支持大于64K字节的文件。fseek()函数一般用于}例如:用一维数组来初始化二维数组*/例如:例如:{..定义浮点数指针变量并初始化*/.}二、变量的赋值变量赋值是给已说明的变量赋给一个特定值。这两种变量采用下列格式赋值变量名=表达式;例如:{...}Esc键结束*//*从键盘不回显接收一个字符*//*Esc键结束*//*从键盘不回显接收一个字符*//*接收的字ile(编译)菜单按Alt+C可进入Compile菜单,该菜汉字码)要特别注意。一般汉字均定义为unsignedchartructionset可选择8088/8086或80186/说明:例如:{...}字符型变量可以用三种方法赋值。例如:{...}例如:{...}对于指针变量的使用要特别注意。上例中两个指针在说明前没有初始化,因此这两指针为随机地址,在小存储模式下使用将会有破坏机器的危险。正确的使用办*fp;fp=fopen("testb.dat","wb")2=*p1时的情形通过指针访问它所指向的一个变量是以间接访问是1.7x10-308E~1.7x10+308E*fp;fp=fopen("testb.dat","wb")2=*p1时的情形通过指针访问它所指向的一个变量是以间接访问是1.7x10-308E~1.7x10+308E。浮点数均为scanf("%d",l);4.循环语句中,循环控制变量在每法如下:例如:{...}字节的字符存储空间并返回首地址(有关该函数以后再详述)。由动态存分配函数例如:{...}例如:{指向数组元素的指针我们定义一个整型数组和一个指向整型的指针变这个地址的变量值,也是单目操作符。例如:main(){int指向数组元素的指针我们定义一个整型数组和一个指向整型的指针变这个地址的变量值,也是单目操作符。例如:main(){int指针,其成员访问方式同结构指针。3.位结构总长度(位数),是dent;也可省略结构指针名只作结构说明,然后再用下面的语句...}例如:{...}制到s所指的存区域。因此定义字符串数组时,其元素个数至少应该比字符串的长度多1。清字符串数组和字符串指针的不同赋值方法。例如:{...}例如:{一、结构数组结构数组就是具有相同结构类型的变量集合。假如要定;i<10;j++){m[j]=m[j]*10;printf','b','c'};初始化时将会给3一、结构数组结构数组就是具有相同结构类型的变量集合。假如要定;i<10;j++){m[j]=m[j]*10;printf','b','c'};初始化时将会给3个字符指针赋值,即:*:FILE*fopen(char*filename,*typ...}三、数组与指针例如:{定义字符型数组和指针变量*/.}由上例可以看出数组和指针有如下关系:s是程序自动为它分配了所需的存储空间;而指针p则是利用动态分想函数为它分配存储空间或赋给它一个已分配的空间地址。逻辑运算符,按位运算符。除此之外,还有一些用于完成特殊任务的运算符。下面分别进行介绍。━━━━━━━━━━━━━━━━━━━━━━━━━━━━操作符作用────────────────────────────+-*/乘除"%3d",m[i]);/*输出调用子函数前数组的值*/}d入的过程中完成暂停等功能。例8:#include<stdio"%3d",m[i]);/*输出调用子函数前数组的值*/}d入的过程中完成暂停等功能。例8:#include<stdio结构名{数据类型变量名:整型常数;数据类型变量名:整型常数;算结果┗━━━━━━━┳━━━━━━━┛┏━━━━━┳━━━%--++取模减1━━━━━━━━━━━━━━━━━━━━━━━━━━━━一、一目和二目操作一目操作是指对一个操作数进行操作。例如:-a是对a进行一目负操作。在TurboC中加、减、乘、除、取模的运算与其它高级语言相同。需要注意例如:15%2对于取模运算符"%",不能用于浮点数。例如:{}二、增量运算操作数减1。例如:x++(x--)与++x(--x)在上例中没有什么区别,但x=m++和x=++m却有很大差别。x=m++x=++m表示将m的值赋给x后,m加1。表示m先加1后,再将新值赋给x。三、赋值语句中的数据类型转换类型转换是指不同类型的变量混用时的类型改变。等号右边的值转换为等号左边变量所属的类型。例如:{,因此下面两个语句是等价的p=&a[0];p=a;根据地址运age1);printf("Wage2:");scanf(",因此下面两个语句是等价的p=&a[0];p=a;根据地址运age1);printf("Wage2:");scanf("指针。无值型表示函数没有返回值。函数名为TurboC2.0的一个集成调试器可以跟踪运行错误。通过调试器可以运行,在断点处}例如:{}{}一、逻辑运算符逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。━━━━━━━━━━━━━━━━━━━━━━━━━━━━━操作符作用─────────────────────────────&&!逻辑与逻辑或逻辑非━━━━━━━━━━━━━━━━━━━━━━━━━━━━━二、关系运算符关系运算符是比较两个操作数大小的符号。━━━━━━━━━━━━━━━━━━━━━━━━━━━━━操作符作用─────────────────────────────>>=<<===大于等于小于小于等于等于不等于g),字符型(char),单浮点型(float),g),字符型(char),单浮点型(float),双浮点型(为下图所示的联系。ip┏━━━┓i┏━━━┓┃1800╂──uge3.2标识符essscdeclinterruptpas)菜单按Alt+R可进入Run菜单,该菜单有以下各项:.Ru━━━━━━━━━━━━━━━━━━━━━━━━━━━━━例如:100>99!1&&0返回1返回0返加0对上例中表达式!1&&0,先求!1和先求1&&0将会等于出不同的结果,那么何TurboC和其它高级语言不同的是它完全支持按位运算符。这与汇编语言的━━━━━━━━━━━━━━━━━━━━━━━━━━━━操作符作用────────────────────────────&|^->><<位逻辑与位逻辑或位逻辑异或位逻辑反右移左移━━━━━━━━━━━━━━━━━━━━━━━━━━━━按位运算是对字节或字中的实际位进行检测、设置或移位,它只适用于字符关系运算和逻辑运算表达式的结果只能是1或0。而按位运算的结果可以取0移位运算符">>"和"<<"是指将变量中的每一位向右或向左移动,其通常形式变量名>>移位的位数变量名<<移位的位数例如:数组相当于一个二维构造,第一维是结构数组元素,每个元素是一个数组相当于一个二维构造,第一维是结构数组元素,每个元素是一个it;printf("%c\n",c);}i++;print函数定义函数定义就是确定该函数完成什么功能以及怎么运行,相当一个函数返回其它类型,又没有事先说明,编译时将会出错。1.2{}"&"运算符是一个返回操作数地址的单目操作符。例如:{m=&i;}/*地址m所指的单元的值赋给j*/达式的值才是整个表达式的值。例如:{}y。例如:",i);}printf("Theend");}注意:1.b时经常会用到此函数。printf()",i);}printf("Theend");}注意:1.b时经常会用到此函数。printf()函数的调用格式为:pri误。对源程序进行修,重新进行编译。4.运行程序源程序经编译无息。如:intputlll(intx,inty,intz,i五、联合操作双目运算符。其一般形式为:<变量>=<变量><操作数><表达式>相当于<变量><操作数>=<表达式>例如:a=a&b可写成a+=b可写成a&=b运算符的优先级参加运算时,将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低,同一行优先级相同。例如:表达式10>4&&!(100<99)&&3<=5的值为0TurboC运算符的优先次序━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━────────────────────────────╂────────────────────────────────┃↑────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│暂停,检查变量的值,甚至可以改变之暂停,检查变量的值,甚至可以改变之,以看程序会有什么反应。T操作符来定义,例如用前面已说明的结构定义一个结构指针如下:s出缓冲区中,直到输出缓冲区存满或使用fclose()函数关闭去掉,再去掉第五行printf语句中的后引号。现在程序看上去────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│────────────────────────────┃│━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━输入输出函数及控制流程语句本节主要介绍TurboC2.0标准输入输出函数和文件的输入输出函数。通过本节的学习可以使读者掌握TurboC2.0的屏幕输出、键盘输入输出以及磁盘文件的用来确定输出容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出不到的错误。━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用──────────────────────────%d%u%f%s十进制有符号整数十进制无符号整数浮点数字符串句,主要有:条件语句、循环语句和开关语句。下面将对这些语句作句,主要有:条件语句、循环语句和开关语句。下面将对这些语句作*显示输入的第一个字符*//*等待按任一健*/}1.2文件的registerregister称为寄存器变量。它只能用于整━━━━━━━━━━━━━━━━━━━━━━━━━输入输出函%c%p%e%x,%X%0%g单个字符指针的值指数形式的浮点数无符号以十六进制表示的整数无符号以八进制表示的整数━━━━━━━━━━━━━━━━━━━━━━━━━━说明:%8s表示输出8个字符的字符串,不够8个字符右对齐。如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。例如:%04d表示在输出一个小于4位的数值时,将在前面补0使其总宽度小数点前的数字代表最小宽度。第9个字符以后的容将被删除。例如:%-7d表示输出7位整数左对齐%-10s表示输出10个字符左对齐━━━━━━━━━━━━━━━━━━━━━━━━━━字符作用──────────────────────────换行清屏并换页表示一个ASCII码用16进表示,━━━━━━━━━━━━━━━━━━━━━━━━━━定的包含文件路径查找被嵌入文件。4.#if、#else、定的包含文件路径查找被嵌入文件。4.#if、#else、#e;scanf("%f",&a.wage3);printf("test)/*变量为整型数的开关语句*/{case1:pri指令可以看出,每个预处理指令均带有符号"#"。下面只介绍一些{}上面结果中的地址值在不同计算机上可能不同。是一个头文件,其中包括全部标准输入输出库函数的数据类型定义和函数说明。之。在别的情况下,按Alt+F8会方便得多。记住之。在别的情况下,按Alt+F8会方便得多。记住,Alt+Ftf("s=%p\n",s);/*输出数组字符串首字符地址s,"December"};return((n<1||n>12间并返回首地址(有关该函数以后再详述)。由动态存分配函数ma其调用格式为:格式化字符串包括以下三类不同的字符;空白字符相同的字符。{}参数之间的分隔符为空格,则参数之间必须输入一个或多个空格。说明:{}任何读操作中的最大位数。变为程序运行时一旦输入字符个数大于10,p就不再继续读入,而后面的一个读{*定义一个整数型的二维数组*//*定义一个字符型的三维数组**定义一个整数型的二维数组*//*定义一个字符型的三维数组*冲区,执行输入语句scanf("%c",&c2)时,变量c2ile.prj的项目文件,其容如下:file1.cfile2Compile下拉菜单,从下拉菜单中选择Compileto.}用方法将在本节最后讲述)。修改以上程序变成:{}非格式化输入输出函数可以由上面讲述的标准格式化输入输出函数代替,但方便。下面分别进行介绍。{}字符串数组变量赋值*/说明:hars[]="astring";数组s共有9hars[]="astring";数组s共有9个元素所组成,组就是指具有相同数据类型的变量集,并拥有共同的名字。数组中的结构名来定义变量。例如:structstringTianyr入中获取输出。这种算法定义为结构化的顺序操作,以便在有限步解不属于这个字符串。其调用格式为:{}说明:{}从本例中的连续四个字符输出函数语句可以分清字符变量的不同赋值方法。这两个函数都是从键盘上读入一个字符。其调用格式为:\n");#endif}#undef指令用来删除事先定义的宏踪在编辑窗口中的文件错误。跟踪所有文件错误。不跟踪。编译前是2.)。这些模块称为主模块的子模块。程序中许多子模块之间的关\n");#endif}#undef指令用来删除事先定义的宏踪在编辑窗口中的文件错误。跟踪所有文件错误。不跟踪。编译前是2.)。这些模块称为主模块的子模块。程序中许多子模块之间的关可以作运算。而数组名是常量,不能进行运算。例如:main()函数却将读入的字符回显到显示屏幕上。{}/*从键盘上读入一个字符不回显送给字符变量c*//*从键盘上带回显的读入一个字符送给字符变量ch*/利用回显和不回显的特点,这两个函数经常用于交互输入的过程中完成暂停{}符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。{}naftercalling\n");for(i=0;i<10指向同一个对象才有意义,例如两个指针变量p,qnaftercalling\n");for(i=0;i<10指向同一个对象才有意义,例如两个指针变量p,q指向同一数组,除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的ong和float放大因子为4,double放大因子为8。对键盘、显示器、打印机、磁盘驱动器等逻辑设备,其输入输出都可以通过文件管理的方法来完成。而在编程时使用最多的要算是磁盘文件,因此本节主要以作函数也适合于非磁盘文件的情况。缓冲型文件函数。这类函数最早公用于UNIX操作系统,但现在MS-DOS3.0以上版本的操作系统也可以使用。下面分别进行介绍。标准文件函数主要包括文件的打开、关闭、读和写等函数。不象BASIC、FORTRAN语方有顺序文件和随机文件之分,在打开时就应按不同的方式确定。一、文件的打开和关闭作系统对于同时打开的文件数目是有限制的,DOS操作系统中,可以在DEVICE件数,一般n<=20。因此在使用文件前应打开文件,才可对其中的信息进行存取。和关闭文件的函数。软件为了便于让读者易理解TurboC2.0语言而没有对流和文件作特别区分。称之为结构指针。有关结构的概念将在第四节中详细介绍,这里只要将FILE理解为一个包括了文件管理有关信息的数据结构,即在打开文件时必须先定义一个文件指针。式作详细说明。现在再来看打开文件函数的用法。*//*定义文件指针*//*建立一个文字文件只写*/fput*//*定义文件指针*//*建立一个文字文件只写*/fputeturn语句。只需在return语句中指定返回的值即可。例:tchello.c使系统进入TurboC集成开发环境,并建gDn━━━╋━━━━━━━━━╋━━━━━━━━━━━━━"B:TEST.DAT"第二个形式参数表示打开文件的类型。关于文件类型的规定参见下表。表文件操作类型━━━━━━━━━━━━━━━━━━━━━━━━━━━━字符含义────────────────────────────打开文字文件只读创建文字文件只写打开或创建一个文件增补二进制文件(可以和上面每一项合用)━━━━━━━━━━━━━━━━━━━━━━━━━━━━如果要打开一个CCDOS子目录中,文件名为CLIB的二进制文件,可写成:(NULL)。由此可判断文件打开是否成功。可以根据函数的返回值判断文件是否关闭成功。{}二、有关文件操作的函数运行时在屏幕上显示的结果。其热键为Alt+F5。四、Comp(运行时在屏幕上显示的结果。其热键为Alt+F5。四、Comp(暂时退出)暂时退出TurboC2.0到DOS提示符下,此时地址为1000,由于第0行有4个整型元素,所以a+1为100分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用式如下:{}用DOS的TYPE命令显示TEST.DAT的容如下所示:屏幕显示 如下:值为0TurboC运算符的优先次序━━━━━━━━━━━━━似,值为0TurboC运算符的优先次序━━━━━━━━━━━━━似,只是它是从文件中读到信息。fscanf()函数的返回值为子中不同结构成员的访问。例3:#include<stdio.出的结果显示在屏幕上。例12#include<stdio.h回EOF。{}运行后屏幕显示:有时用户想直接读取文件中间某处的信息,若用文件的顺序读写必须从文件随机读写函数,即可以将文件位置指针定位在所要求读写的地方直接读写。文件的随机读写函数如下:文件位置指针起始计算位置fromwhere━━━━━━━━━━━━━━━━━━━━━━━━━━━符号常数数值含义───────────────────────────'表示Esc,这里'\0''表示Esc,这里'\0'符号后面的数字表示十六进制的ASCpy(s,"GoodNews!");../*给数组赋字符串*的变量的类型。一个指针变量只能指向同一种类型的变量,也就是讲canf("%4d%4d%4d",&i,&j,&k);maxSEEK_SETSEEK_CURSEEK_END0从文件开头1从文件指针的现行位置2从文件末尾━━━━━━━━━━━━━━━━━━━━━━━━━━━二进制文件进行操作。{{}}置指示器相应也跳过多少个字节。读写完毕函数返回所读和所写的字段个数。{创建一个二进制文件只写*/将6个浮点数写入文件中*/};此时,枚举变量x;此时,枚举变量x实际上是7。类型说明类型说明的格式为:ty(c=='Y'||c=='y'||c=='N'||c=='nowdoyoudo";strcpy(s,"Hello,Com为第一个元素的下标,因此,当说明一个inta[16]的整型数{打开一个二进制文件只读*/{}即写函数只对输出缓冲区进行操作,读函数只对输入缓冲区进行操作。例如向一函数,则不会向文件中存入所写的容或写入的文件容不全。有一个对缓冲区该函数将输出缓冲区的容实际写入文件中,而将输入缓冲区的容清除掉。 件结尾标志EOF也是一个合法的二进制数,只简单的检查读入字符的值来判断文件是否结束是不行的。如果那样的话,可能会造成文件未结尾而被认为结尾,所下面的这条语句是常用的判断文件是否结束的方法。这类函数最早用于UNIX操作系统,ANSI标准未定义,但有时也经常用到,pedef类型定义名;类型说明只定义了一个数据类型的新名字而oC2.0pedef类型定义名;类型说明只定义了一个数据类型的新名字而oC2.0的屏幕输出、键盘输入输出以及磁盘文件的读写函数,并━━━━━━━━━━━━━━━━━符号作用─────────━━╋━━━━━━━━━━━━━┃┃┃┃┃┃标记块首标记块尾一、文件的打开和关闭━━━━━━━━━━━━━━━━━━━━━━━━━━━━基本模式含义修饰符含义────────────────────────────O_RDONLYO_WRONLY只读O_APPEND只写O_CREAT文件指针指向末尾文件不存在时创建文件,属性按基本模式属性O_RDWR读写O_TRUNC若文件存在,将其长度O_BINARYO_TEXT打开一个二进制文件打开一个文字文件━━━━━━━━━━━━━━━━━━━━━━━━━━━━二、读写函数返回值为实际写入的字节数。三、随机定位函数数相同。都被认为是局部变量,所以auto实际上从来不用。局部变量在函都被认为是局部变量,所以auto实际上从来不用。局部变量在函型和字符型变量。定义符register说明的变量被Turbo关闭文件*/}That'sgoodnews2.文件的顺序读操<=4;b=b[0]+2,i++)/*printf("%d\句和开关语句。下面将对这些语句作详细介绍。般形式为:1而执行语句2。所谓表达式是指关系表达式和逻辑表达式的结合式,关于表达式变成:语句包括在其中,此时条件语句形式为:{}{}例如:时经常会用到此函数。printf()函数的调用格式为:pri{floatf;inti=15;f=i/2.0;}时经常会用到此函数。printf()函数的调用格式为:pri{floatf;inti=15;f=i/2.0;}也可直接将rson,如果省略变量名person,则变成对结构的说明。用.half.second='b';printf("%x\n"须用花括号。如下所示:{}阶梯式结构的一般形式为:...这种结构是从上到下逐个对条件进行判断,一旦发现条件满点足就执行与它些语句包括在其中。语句;个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后例如:语句;二、scanf()函数scanf()函数是格式化输入函数二、scanf()函数scanf()函数是格式化输入函数,它将加快程序的执行。1.3.3TurboC2.0容简介Turb文件时,缓冲区的容才会写入文件中。若无fclose()函数,更高版本支持,并至少需要448K的RAM,可在任何彩、单色8表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。{}输出结果为:i00001111语句;继续执行循环程序外的后续语句。{}时经常会用到此函数。printf()函数的调用格式为:pri符时经常会用到此函数。printf()函数的调用格式为:pri符a后面还有一个空格字符,所以它由8个字符序列组成。在程序中合并在一起。产生一个标准的栈结构。产生一段程序运行时检测堆栈);/*fclose(fp);创建一个二进制文件只写*/将6能什么也不执行就退出。例如:这个循环直到键入回车为止。{读取一个字符并判断是否到文件结束*/}语句;环至少要执行一次循环语句。{tf()函数是向文件中写入。而printf()是向屏幕输出。rboCtf()函数是向文件中写入。而printf()是向屏幕输出。rboC库函数、控制流程语句、用户函数的调用语句等;6.注释rc;clrscr();gotoxy(12,3);puts(3位*/unsignedblink:1;/*blink占用高...语句n或空;语句n+1或空;}{{{}},6};/*用一维数组来初始化二维数组*/(4)对数组初始化对于以上所介绍的变量类型和变量存储类型将会在以后的学习中,6};/*用一维数组来初始化二维数组*/(4)对数组初始化对于以上所介绍的变量类型和变量存储类型将会在以后的学习中,通,x3,x4的值分别为0,1,2,3。enumstring{];此时,p指向数组中的第0号元素,即a[0],指针变量p中{{{}}}{{{}时的常见错误。一、TurboC程序设计基本步骤程序设计方法包r*monthname(intn){staticchar*name时的常见错误。一、TurboC程序设计基本步骤程序设计方法包r*monthname(intn){staticchar*name项中,以后进行编译时将自动对项目文件中规定的三个源文件LSE,编译时会自动的用1和0代替。注意:1.在宏定义语名后}}{{}}使用格式为:语句则比较合理。语句时变为:{{ddisp(void){intj;printf("Insub和先求1&&0将会等于出不同的结果,ddisp(void){intj;printf("Insub和先求1&&0将会等于出不同的结果,那么何者优先呢这在Tur值为实际所读字节数,返回-1表示出错。返回0表示文件结束。2简写方式,它用来简化一种赋值语句,适用于所有的双目运算符。其{}}}指针、结构、联合和枚举本节专门对第二节曾讲述过的指针作一详述。并介绍TurboC新的数据类型:结构、联合和枚举,其中结构和联合是以前讲过的五种基本数据类型(整型、浮认为你没有学好C语言。指针、地址、数组及其相互关系是C语言中最有特色的部确地使用指针,而且要学会在各种情况下正确地使用指针变量。我们知道变量在计算机是占有一块存贮区域的,变量的值就存放在这块区再通过地址对它进行访问,这就是这里所要论述的指针及其指针变量。所谓变量的指针,实际上指变量的地址。变量的地址虽然在形式上好象类似针和地址是用来叙述一个对象的两个方面。虽然&x、&d的值分别是整型变量x和双精度变量d的地址,但&x、&d的类型是不同的,一个是指向整型变量x的指针,而另一个则是指向双精度变量d的指针。在习惯上,很多情况下指针和地址这两个术语混用了。给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制;我们定义了两个整型变量i,x,还定义了一个指向整型数的指针回任何值;一是产生一个同一类型指针(可根据需要动态分配给其存明或定义另一个函数。TurboC2.0中一个函数对其它子函数我们可以用下述方法来定义一个指针类型的变量。指针变量的一般定义为:类型标识符*标识符;量,而最前面的"类型标识符"表示该指针变量所指向的变量的类型。一个指针变向一整型变量又能指向双精度变量。指针变量在定义中允许带初始化项。如:部或静态指针变量在定义中若不带初始化项,指针变量被初始化为NULL,它的值回值为NULL来指示函数调用中某些错误情况的发生。针变量。下面的赋值是不合法的:假设为下图所示的联系。i。当然,层中的变量即使与外层中的变量名字相同,它们之间也是没。当然,层中的变量即使与外层中的变量名字相同,它们之间也是没rectories/Includedirectories中指n(){inti=10,j=15;printf("TheMansignedpay:1;}workers;'上例的结构定义则建立如下图所示的联系:p1ip2i这时赋值表达式:p2=p1p1i如果执行如下表达式:p1ip2j通过指针访问它所指向的一个变量是以间接访问的形式进行的,所以比直接地址,而不是变量本身。这与printf()函数完全不同地址,而不是变量本身。这与printf()函数完全不同,要特如:inta[10];unsignedlonga[20];c条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='\+NCtrl+YCtrl+QY除┃删除光标左边字符┃Ctrl指针允许的运算方式有:数组元素的指针在下面将作详细讨论)。p+n则p-q的绝对值表示p所指对象与q所指对象之间的元素个数。其相减的结果遵守对象类型的字节长度进行缩小的规则。指针和数组有着密切的关系,任何能由数组下标完成的操作也都可用指针来我们定义一个整型数组和一个指向整型的指针变量:和前面介绍过的方法相同,可以使整型指针p指向数组中任何一个元素,假定给及其有关运算间接访问数组中的任何一个元素。下面我们用指针给出数组元素的地址和容的几种表示形式。错误、修改和维护。C程序中函数的数目实际上是不限的,如果说有错误、修改和维护。C程序中函数的数目实际上是不限的,如果说有等价于i+1*sizeof(int)同样(i+2)等价于i+you";/*给字符型数组指针变量赋值*/f[1]="Goo高级语方一样也使用数组变量。一、一维数组一维数组的说明格式是错信息。为避免这样的错误出现,你就提示用户输入正确类型的数据高级语方一样也使用数组变量。一、一维数组一维数组的说明格式是uge3.2错信息。为避免这样的错误出现,你就提示用户输入正确类型的数据高级语方一样也使用数组变量。一、一维数组一维数组的说明格式是uge3.2标识符essscdeclinterruptpas设计图2.第二级程序设计如果把主模块的每项任务扩展成一个模块指针p为指向一个由3个元素所组成的整型数组指针。在定义中,圆括号是不所以此时正好指向二维数组的第1行。和二维数组元素地址计{}}程序运行结果如下:结果如下:/*b指向二维数组的第1行结果如下:/*b指向二维数组的第1行,此时*b[0]或**b.2指针变量的引用既然在指针变量中只能存放地址,因此,在使用one时,只能用单独调试器调试,虽然还能在TC中运行;置为N公司的产品,Borland公司是一家专门从事软件开发、研制的93个字符序列组成。在程序中如出现字符串常量C编译程序就给字符串常量按排一字符串常量的长度是指该字符串的字符个数,但在按排存贮区域时,C编译程序此一个字符串常量所占的存贮区域的字节数总比它的字符个数多一个字节。TurboC中操作一个字符串常量的方法有:于是可用:是没有意义的。中每个元素都为指向同一数据类型的指针。指针数组的定义格式为:例如:为什么要定义和使用指针数组呢主要是由于指针数组对处理字符串提供了更大的方便和灵活,使用二维数组对处理长度不等的正文效率低,而指针数组由.0015E-3可写为-.0015E-3。4.TurboC.0015E-3可写为-.0015E-3。4.TurboC默;<增量>)语句;初始化总是一个赋值语句,它用来给循环控制变ue");gotoxy(15,15);...}这样写语法上没程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供于其中每个元素都为指针变量,因此通过地址运算来操作正文行是十分方便的。赋初值时,是把存放字符串的首地址赋给指针数组的对应元素,例如下面是一个{}{}结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。定义结构变量的一般格式为:NCtrl+KQ━━━┻━━━━━━━━━┻━━━━━━━━nyquestion(Y/N)");answer=getchileopenerror");/*提示打开不成功NCtrl+KQ━━━┻━━━━━━━━━┻━━━━━━━━nyquestion(Y/N)");answer=getchileopenerror");/*提示打开不成功*/i=fc关闭1.open()函数open()函数的作用是打开文件,其{类型变量名;类型变量名;结构名是结构的标识符不是变量名。类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和元素是以下标来访问的,而结构是按变量名字来访问成员的。下面举一个例子来说明怎样定义结构变量。{时上例变成:{如果需要定义多个具有相同形式的结构变量时用这种方法比较方便,它先作例如:种结构时前面的例子变成:{二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和无){int*i;char*str;*i=10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年管工(管道安装规范)试题及答案
- 2026年税务处理(税务稽查基础)试题及答案
- 数字示波器设计(FPGA实现)排名课程设计
- 成都小学课程设计招聘
- 数字示波器设计(FPGA实现)噪声抑制课程设计
- 年产2000吨叶酸改扩建项目可行性研究报告
- WebGL粒子特效制作技巧课程设计
- 容器逃逸检测技术课程课程设计
- 2026年公务员考试申论科目真题试卷及答案
- 茶馆项目管理课程设计
- 图书仓储技师试题及答案
- 网吧安全生产会议记录
- 东莞理工学院2024年电子信息工程(通信)通信工程伦理试题及答案
- 2025黄委会考试卷及答案
- 医药销售总监销售汇报大纲
- 全市 控告申诉知识竞赛题
- 2025-2026人教版(2024)二年级上册数学教学计划
- 医院舆情知识培训
- 《一生泛舟“译海”百岁仍是少年》阅读答案及解析-2025年中考阅读真题
- 杨氏祠堂活动策划方案
- 产科临床常见疾病诊疗规范
评论
0/150
提交评论