关闭

关闭

封号提示

内容

首页 C语言.doc

C语言.doc

C语言.doc

上传者: 强强 2011-05-03 评分 4.5 0 85 12 387 暂无简介 简介 举报

简介:本文档为《C语言doc》,可适用于考试题库领域,主题内容包含C语言概述C语言的发展过程当代最优秀的程序设计语言C语言版本C语言的特点面向对象的程序设计语言C和C++简单的C程序介绍输入和输出函数C源程序的结构符等。

C语言概述C语言的发展过程当代最优秀的程序设计语言C语言版本C语言的特点面向对象的程序设计语言C和C++简单的C程序介绍输入和输出函数C源程序的结构特点书写程序时应遵循的规则C语言的字符集C语言词汇TurboC集成开发环境的使用TurboC简介和启动TurboC集成开发环境File菜单Edit菜单Run菜单Compile菜单Project菜单Options菜单Debug菜单Breakwatch菜单TurboC的配置文件C语言教程C语言概述C语言的发展过程C语言是在年代初问世的。一九七八年由美国电话电报公司(ATT)贝尔实验室正式发表了C语言。同时由BWKernighan和DMRitchit合著了著名的“THECPROGRAMMINGLANGUAGE”一书。通常简称为《KR》也有人称之为《KR》标准。但是在《KR》中并没有定义一个完整的标准C语言后来由美国国家标准协会(AmericanNationalStandardsInstitute)在此基础上制定了一个C语言标准于一九八三年发表。通常称之为ANSIC。当代最优秀的程序设计语言早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识到了八十年代C开始进入其它操作系统并很快在各类大、中、小和微型计算机上得到了广泛的使用成为当代最优秀的程序设计语言之一。C语言版本目前最流行的C语言有以下几种:MicrosoftC或称MSCBorlandTurboC或称TurboCATTC这些C语言版本不仅实现了ANSIC标准而且在此基础上各自作了一些扩充使之更加方便、完美。C语言的特点C语言简洁、紧凑使用方便、灵活。ANSIC一共只有个关键字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedstaticsizofstructswitchtypedefunionunsignedvoidvolatilewhile种控制语句程序书写自由主要用小写字母表示压缩了一切不必要的成分。TurboC扩充了个关键字:asmcsdsessscdeclfarhugeinterruptnearpascal注意:在C语言中关键字都是小写的。运算符丰富。共有种。C把括号、赋值、逗号等都作为运算符处理。从而使C的运算类型极为丰富可以实现其他高级语言难以实现的运算。数据结构类型丰富。具有结构化的控制语句。语法限制不太严格程序设计自由度大。C语言允许直接访问物理地址能进行位(bit)操作能实现汇编语言的大部分功能可以直接对硬件进行操作。因此有人把它称为中级语言。生成目标代码质量高程序执行效率高。与汇编语言相比用C语言写的程序可移植性好。但是C语言对程序员要求也高程序员用C写程序会感到限制少、灵活性大功能强但较其他高级语言在学习上要困难一些。面向对象的程序设计语言在C的基础上一九八三年又由贝尔实验室的BjarneStroustrup推出了C。C进一步扩充和完善了C语言成为一种面向对象的程序设计语言。C目前流行的最新版本是BorlandC,SymantecC和MicrosoftVisualC。C提出了一些更为深入的概念它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性掌握起来有一定难度。C和C++但是C是C的基础C语言和C语言在很多方面是兼容的。因此掌握了C语言再进一步学习C就能以一种熟悉的语法来学习面向对象的语言从而达到事半功倍的目的。简单的C程序介绍为了说明C语言源程序结构的特点先看以下几个程序。这几个程序由简到难表现了C语言源程序在组成结构上的特点。虽然有关内容还未介绍但可从这些例子中了解到组成一个C源程序的基本部分和书写格式。【例】main(){printf("世界您好!n")}main是主函数的函数名表示这是一个主函数。每一个C源程序都必须有且只能有一个主函数(main函数)。函数调用语句printf函数的功能是把要输出的内容送到显示器去显示。printf函数是一个由系统定义的标准函数可在程序中直接调用。【例】#include<mathh>#include<stdioh>main(){doublex,sprintf("inputnumber:n")scanf("lf",x)s=sin(x)printf("sineoflfislfn",x,s)}include称为文件包含命令扩展名为h的文件称为头文件定义两个实数变量以被后面程序使用显示提示信息从键盘获得一个实数x求x的正弦,并把它赋给变量s显示程序运算结果main函数结束程序的功能是从键盘输入一个数x求x的正弦值然后输出结果。在main()之前的两行称为预处理命令(详见后面)。预处理命令还有其它几种这里的include称为文件包含命令其意义是把尖括号<>或引号""内指定的文件包含到本程序来成为本程序的一部分。被包含的文件通常是由系统提供的其扩展名为h。因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型。因此凡是在程序中调用一个库函数时都必须包含该函数原型所在的头文件。在本例中使用了三个库函数:输入函数scanf正弦函数sin,输出函数printf。sin函数是数学函数其头文件为mathh文件因此在程序的主函数前用include命令包含了mathh。scanf和printf是标准输入输出函数其头文件为stdioh在主函数前也用include命令包含了stdioh文件。需要说明的是C语言规定对scanf和printf这两个函数可以省去对其头文件的包含命令。所以在本例中也可以删去第二行的包含命令#include<stdioh>。同样在例中使用了printf函数也省略了包含命令。在例题中的主函数体中又分为两部分一部分为说明部分另一部为分执行部分。说明是指变量的类型说明。例题中未使用任何变量因此无说明部分。C语言规定源程序中所有用到的变量都必须先说明后使用否则将会出错。这一点是编译型高级程序设计语言的一个特点与解释型的BASIC语言是不同的。说明部分是C源程序结构中很重要的组成部分。本例中使用了两个变量xs用来表示输入的自变量和sin函数值。由于sin函数要求这两个量必须是双精度浮点型故用类型说明符double来说明这两个变量。说明部分后的四行为执行部分或称为执行语句部分用以完成程序的功能。执行部分的第一行是输出语句调用printf函数在显示器上输出提示字符串请操作人员输入自变量x的值。第二行为输入语句调用scanf函数接受键盘上输入的数并存入变量x中。第三行是调用sin函数并把函数值送到变量s中。第四行是用printf函数输出变量s的值即x的正弦值。程序结束。运行本程序时首先在显示器屏幕上给出提示串inputnumber这是由执行部分的第一行完成的。用户在提示下从键盘上键入某一数如按下回车键接着在屏幕上给出计算结果。输入和输出函数在前两个例子中用到了输入和输出函数scanf和printf在以后要详细介绍。这里我们先简单介绍一下它们的格式以便下面使用。scanf和printf这两个函数分别称为格式输入函数和格式输出函数。其意义是按指定的格式输入输出值。因此这两个函数在括号中的参数表都由以下两部分组成:“格式控制串”参数表格式控制串是一个字符串必须用双引号括起来它表示了输入输出量的数据类型。各种类型的格式表示法可参阅第三章。在printf函数中还可以在格式控制串内出现非格式控制字符这时在显示屏幕上将原文照印。参数表中给出了输入或输出的量。当有多个量时用逗号间隔。例如:printf("sineoflfislfn",x,s)其中lf为格式字符表示按双精度浮点数处理。它在格式串中两次现对应了x和s两个变量。其余字符为非格式字符则照原样输出在屏幕上。【例】intmax(inta,intb)*函数说明*main()*主函数*{intx,y,z*变量说明*intmax(inta,intb)*函数说明*printf("inputtwonumbers:n")scanf("dd",x,y)*输入x,y值*z=max(x,y)*调用max函数*printf("maxmum=d",z)*输出*}intmax(inta,intb)*定义max函数*{if(a>b)returnaelsereturnb*把结果返回主调函数*}上面例中程序的功能是由用户输入两个整数程序执行后输出其中较大的数。本程序由两个函数组成主函数和max函数。函数之间是并列关系。可从主函数中调用其它函数。max函数的功能是比较两个数然后把较大的数返回给主函数。max函数是一个用户自定义函数。因此在主函数中要给出说明(程序第三行)。可见在程序的说明部分中不仅可以有变量说明还可以有函数说明。关于函数的详细内容将在以后第五章介绍。在程序的每行后用*和*括起来的内容为注释部分程序不执行注释部分。上例中程序的执行过程是首先在屏幕上显示提示串请用户输入两个数回车后由scanf函数语句接收这两个数送入变量x,y中然后调用max函数并把x,y的值传送给max函数的参数a,b。在max函数中比较a,b的大小把大者返回给主函数的变量z最后在屏幕上输出z的值。C源程序的结构特点一个C语言源程序可以由一个或多个源文件组成。每个源文件可由一个或多个函数组成。一个源程序不论由多少个文件组成都有一个且只能有一个main函数即主函数。源程序中可以有预处理命令(include命令仅为其中的一种)预处理命令通常应放在源文件或源程序的最前面。每一个说明每一个语句都必须以分号结尾。但预处理命令函数头和花括号“}”之后不能加分号。标识符关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符也可不再加空格来间隔。书写程序时应遵循的规则从书写清晰便于阅读理解维护的角度出发在书写程序时应遵循以下规则:一个说明或一个语句占一行。用{}括起来的部分通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐并单独占一行。低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰增加程序的可读性。在编程时应力求遵循这些规则以养成良好的编程风格。C语言的字符集字符是组成语言的最基本的元素。C语言字符集由字母数字空格标点和特殊字符组成。在字符常量字符串常量和注释中还可以使用汉字或其它可表示的图形符号。字母小写字母a~z共个大写字母A~Z共个数字~共个空白符空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时只起间隔作用编译程序对它们忽略不计。因此在程序中使用空白符与否对程序的编译不发生影响但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。标点和特殊字符C语言词汇在C语言中使用的词汇分为六类:标识符关键字运算符分隔符常量注释符等。标识符在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外其余都由用户自定义。C规定标识符只能是字母(A~Za~z)、数字(~)、下划线()组成的字符串并且其第一个字符必须是字母或下划线。以下标识符是合法的:a,x,x,BOOK,sum以下标识符是非法的:s以数字开头s*T出现非法字符*x以减号开头bowy出现非法字符(减号)在使用标识符时还必须注意以下几点:()标准C不限制标识符的长度但它受各种版本的C语言编译系统限制同时也受到具体机器的限制。例如在某版本C中规定标识符前八位有效当两个标识符前八位相同时则被认为是同一个标识符。()在标识符中大小写是有区别的。例如BOOK和book是两个不同的标识符。()标识符虽然可由程序员随意定义但标识符是用于标识某个量的符号。因此命名应尽量有相应的意义以便于阅读理解作到“顾名思义”。关键字关键字是由C语言规定的具有特定意义的字符串通常也称为保留字。用户定义的标识符不应与关键字相同。C语言的关键字分为以下几类:()类型说明符用于定义、说明变量、函数或其它数据结构的类型。如前面例题中用到的int,double等()语句定义符用于表示一个语句的功能。如例中用到的ifelse就是条件语句的语句定义符。()预处理命令字用于表示一个预处理命令。如前面各例中用到的include。运算符C语言中含有相当丰富的运算符。运算符与变量函数一起组成表达式表示各种运算功能。运算符由一个或多个字符组成。分隔符在C语言中采用的分隔符有逗号和空格两种。逗号主要用在类型说明和函数参数表中分隔各个变量。空格多用于语句各单词之间作间隔符。在关键字标识符之间必须要有一个以上的空格符作间隔否则将会出现语法错误例如把inta写成intaC编译器会把inta当成一个标识符处理其结果必然出错。常量C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。在后面章节中将专门给予介绍。注释符C语言的注释符是以“*”开头并以“*”结尾的串。在“*”和“*”之间的即为注释。程序编译时不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来使翻译跳过不作处理待调试结束后再去掉注释符。TurboC集成开发环境的使用TurboC简介和启动我们上机实习和将来考试都是使用BorlandTurboC这个版本。该系统是DOS操作系统支持下的软件在windows环境下可以在DOS窗口下运行。我们机房是在D盘根目录下建立一个TC子目录下安装TurboC系统的。TC下还建立了两个了目录LIB和INCLUDE,LIB子目录中存放库文件,INCLUDE子目录中存放所有头文件。在DOS环境下或在windows的DOS窗口下运行运行TurboC时,只要在TC子目录下键入TC并回车即可进入TurboC集成开发环境。在windows环境下也可以选运行菜单然后键入d:tctc即可也可以在tc文件夹找到tcexe文件然后用鼠标双击该文件名也可进入TurboC集成开发环境。TurboC是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC,TurboPascal,TurboProlog,这些软件很受用户欢迎。该公司在年首次推出TurboC产品,其中使用了全然一新的集成开发环境,即使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化,大大方便了程序的开发。年,Borland公司又推出TurboC版本,增加了图形库和文本窗口函数库等,而TurboC则是该公司年出版的。TurboC在原来集成开发环境的基础上增加了查错功能,并可以在Tiny模式下直接生成COM(数据、代码、堆栈处在同一K内存中)文件。还可对数学协处理器(支持等)进行仿真。Borland公司后来又推出了面向对象的程序软件包TurboC,它继承发展TurboC的集成开发环境,并包含了面向对象的基本思想和设计方法。年为了适用Microsoft公司的Windows版本,Borland公司又将TurboC作了更新,即TurboC的新一代产品BorlandcC也已经问世了。TurboC集成开发环境进入TurboC集成开发环境中后,屏幕上显示:其中顶上一行为TurboC主菜单,中间窗口为编辑区,接下来是信息窗口,最底下一行为参考行。这四个窗口构成了TurboC的主屏幕,以后的编程、编译、调试以及运行都将在这个主屏幕中进行。主菜单在TurboC主屏幕顶上一行,显示下列内容:FileEditRunCompileProjectOptionsDebugBreakwatch除Edit外,其它各项均有子菜单,只要用Alt加上某项中第一个字母,就可进入该项的子菜单中。File菜单按AltF可进入File菜单,如图:File菜单的子菜单共有项分别叙述如下:Load:装入一个文件,可用类似DOS的通配符(如*C)来进行列表选择。也可装入其它扩展名的文件,只要给出文件名(或只给路径)即可。该项的热键为F,即只要按F即可进入该项,而不需要先进入File菜单再选此项。Pick:将最近装入编辑窗口的个文件列成一个表让用户选择,选择后将该程序装入编辑区,并将光标置在上次修改过的地方。其热健为AltF。New:新建文件,缺省文件名为NONAMEC,存盘时可改名。Save:将编辑区中的文件存盘,若文件名是NONAMEC时,将询问是否更改文件名,其热键为F。Writeto:可由用户给出文件名将编辑区中的文件存盘,若该文件已存在,则询问要不要覆盖。Directory:显示目录及目录中的文件,并可由用户选择。Changedir:显示当前默认目录,用户可以改变默认目录。Osshell:暂时退出TurboC到DOS提示符下,此时可以运行DOS命令,若想回到TurboC中,只要在DOS状态下键入EXIT即可。Quit:退出TurboC,返回到DOS操作系统中,其热键为AltX。说明:以上各项可用光标键移动色棒进行选择,回车则执行。也可用每一项的第一个大写字母直接选择。若要退到主菜单或从它的下一级菜单列表框退回均可用Esc键,TurboC所有菜单均采用这种方法进行操作,以下不再说明。Edit菜单按AltE可进入编辑菜单,若再回车,则光标出现在编辑窗口,此时用户可以进行文本编辑。编辑方法基本与wordstar相同,可用F键获得有关编辑方法的帮助信息。与编辑有关的功能键如下:F获得TurboC编辑命令的帮助信息F扩大编辑窗口到整个屏幕F在编辑窗口与信息窗口之间进行切换F从编辑窗口转到主菜单。编辑命令简介:PageUp向前翻页PageDn向后翻页Home将光标移到所在行的开始End将光标移到所在行的结尾CtrlY删除光标所在的一行CtrlT删除光标所在处的一个词CtrlKB设置块开始CtrlKK设置块结尾CtrlKV块移动CtrlKC块拷贝CtrlKY块删除CtrlKR读文件CtrlKW存文件CtrlKP块文件打印CtrlF如果光标所在处为TurboC库函数,则获得有关该函数的帮助信息CtrlQ查找TurboC双界符的后匹配符CtrlQ查找TurboC双界符的前匹配符说明:)TurboC的双界符包括以下几种符号:a)花括符{和}b)尖括符<和>c)圆括符(和)d)方括符和e)注释符*和*f)双引号"g)单引号')TurboC在编辑文件时还有一种功能,就是能够自动缩进,即光标定位和上一个非空字符对齐。在编辑窗口中,CtrlOL为自动缩进开关的控制键。Run菜单按AltR可进入Run菜单,该菜单有以下各项如图所示:Run:运行由ProjectProjectname项指定的文件名或当前编辑区的文件。如果对上次编译后的源代码未做过修改,则直接运行到下一个断点(没有断点则运行到结束)。否则先进行编译、连接后才运行,其热键为CtrlF。Programreset:中止当前的调试,释放分给程序的空间,其热键为CtrlF。Gotocursor::调试程序时使用,选择该项可使程序运行到光标所在行。光标所在行必须为一条可执行语句,否则提示错误。其热键为F。Traceinto:在执行一条调用其它用户定义的子函数时,若用Traceinto项,则执行长条将跟踪到该子函数内部去执行,其热键为F。Stepover:执行当前函数的下一条语句,即使用户函数调用,执行长条也不会跟踪进函数内部,其热键为F。Userscreen:显示程序运行时在屏幕上显示的结果。其热键为AltF。Compile菜单按AltC可进入Compile菜单,该菜单有以下几个内容如图所示:CompiletoOBJ:将一个C源文件编译生成OBJ目标文件,同时显示生成的文件名。其热键为AltF。MakeEXEfile:此命令生成一个EXE的文件,并显示生成的EXE文件名。其中EXE文件名是下面几项之一:)由ProjectProjectname说明的项目文件名。)若没有项目文件名,则由PrimaryCfile说明的源文件。)若以上两项都没有文件名,则为当前窗口的文件名。LinkEXEfile:把当前OBJ文件及库文件连接在一起生成EXE文件。Buildall:重新编译项目里的所有文件,并进行装配生成EXE文件。该命令不作过时检查(上面的几条命令要作过时检查,即如果目前项目里源文件的日期和时间与目标文件相同或更早,则拒绝对源文件进行编译)。PrimaryCfile:当在该项中指定了主文件后,在以后的编译中,如没有项目文件名则编译此项中规定的主C文件,如果编译中有错误,则将此文件调入编辑窗口,不管目前窗口中是不是主C文件。Getinfo:获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息如图:Project菜单按AltP可进入Project菜单,该菜单包括以下内容如图所示:Projectname:项目名具有PRJ的扩展名,其中包括将要编译、连接的文件名。例如有一个程序由filec,filec,filec组成,要将这个文件编译装配成一个fileexe的执行文件,可以先建立一个fileprj的项目文件,其内容如下:filecfilecfilec此时将fileprj放入Projectname项中,以后进行编译时将自动对项目文件中规定的三个源文件分别进行编译。然后连接成fileexe文件。如果其中有些文件已经编译成OBJ文件,而又没有修改过,可直接写上OBJ扩展名。此时将不再编译而只进行连接。例如:fileobjfilecfilec将不对filec进行编译,而直接连接。说明:当项目文件中的每个文件无扩展名时,均按源文件对待,另外,其中的文件也可以是库文件,但必须写上扩展名LIB。Breakmakeon:由用户选择是否在有Warining、Errors、FatalErrors时或Link之前退出Make编译。Autodependencies:当开关置为on,编译时将检查源文件与对应的OBJ文件日期和时间,否则不进行检查。Clearproject:清除ProjectProjectname中的项目文件名。Removemessages:把错误信息从信息窗口中清除掉。Options菜单按AltO可进入Options菜单,该菜单对初学者来说要谨慎使用该菜单有以下几个内容如图所示:Compiler:本项选择又有许多子菜单,可以让用户选择硬件配置、存储模型、调试技术、代码优化、对话信息控制和宏定义。这些子菜单如图所示:)Model:共有Tiny,small,medium,compact,large,huge六种不同模式可由同户选择。)Define:打开一个宏定义框,同户可输入宏定义。多重定义可同分号,赋值可用等号。)Codegeneration:它又有许多任选项,这些任选项告诉编译器产生什么样的目标代码。Callingconvention可选择C或Pascal方式传递参数。Instructionset可选择或指令系列。Floatingpoint可选择仿真浮点、数学协处理器浮点或无浮点运算。Defaultchartype规定char的类型。Alignonent规定地址对准原则。Mergeduplicatestrings作优化用,将重复的字符串合并在一起。Standardstackframe产生一个标准的栈结构。Teststackoverflow产生一段程序运行时检测堆栈溢出的代码。Linenumber在OBJ文件中放进行号以供调试时用。OBJdebuginformation在OBJ文件中产生调试信息。)Optimization:它又有许多任选项。Optimizefor选择是对程序小型化还是对程序速度进行优化处理。Useregistervariable用来选择是否允许使用寄存器变量。Registeroptimization尽可能使用寄存器变量以减少过多的取数操作。Jumpoptimization通过去除多余的跳转和调整循环与开关语句的办法,压缩代码。)Source:它又有许多任选项。Indentifierlength说明标识符有效字符的个数,默认为个。Nestedcomments是否允许嵌套注释。ANSIkeywordsonly是只允许ANSI关键字还是也允许TurboC关键字。)ErrorErrorstopafter多少个错误时停止编译,默认为个。Warningstopafter多少个警告错误时停止编译,默认为个。DisplaywarningPortabilitywarning移植性警告错误。ANSIViolations侵犯了ANSI关键字的警告错误。Commonerror常见的警告错误。Lesscommonerror少见的警告错误。)Names:用于改变段(segment)、组(group)和类(class)的名字,默认值为CODE,DATA,BSS。Linker:本菜单设置有关连接的选择项,它有以下内容如图所示:)Mapfilemenu选择是否产生MAP文件。)Initializesegments是否在连接时初始化没有初始化的段。)Devaultlibraries是否在连接其它编译程序产生的目标文件时去寻找其缺省库。)Graphicslibrary是否连接graphics库中的函数。)Warnduplicatesymbols当有重复符号时产生警告信息。)Stackwarinig是否让连接程序产生Nostack的警告信息。)Casesensitivelink是否区分大、小写字。Environment:菜单规定是否对某些文件自动存盘及制表键和屏幕大小的设置它有以下内容如图所示:)Messagetracking:Currentfile跟踪在编辑窗口中的文件错误。Allfiles跟踪所有文件错误。Off不跟踪。)Keepmessage:编译前是否清除Message窗口中的信息。)Configautosave:选on时,在Run,Shell或退出集成开发环境之前,如果TurboC的配置被改过,则所做的改动将存入配置文件中。选off时不存。)Editautosave:是否在Run或Shell之前,自动存储编辑的源文件。)Backupfile:是否在源文件存盘时产生后备文件(BAK文件)。)Tabsize:设置制表键大小,默认为。)Zoomedwindows:将现行活动窗口放大到整个屏幕,其热键为F。)Screensize设置屏幕文本大小。Directories:规定编译、连接所需文件的路径,有下列各项如图所示:()Includedirectories:包含文件的路径,多个子目录用""分开。()Librarydirectories:库文件路径,多个子目录用""分开。()Outputdirectoried:输出文件(OBJ,EXE,MAP文件)的目录。()TurboCdirectoried:TurboC所在的目录。()Pickfilename:定义加载的pick文件名,如不定义则从currentpickfile中取。Arguments:允许用户使用命令行参数。Saveoptions:保存所有选择的编译、连接、调试和项目到配置文件中,缺省的配置文件为TCCONFIGTC。Retriveoptions装入一个配置文件到TC中,TC将使用该文件的选择项。Debug菜单按AltD可选择Debug菜单,该菜单主要用于查错,它包括以下内容如图所示:Evaluate)Expression要计算结果的表达式。)Result显示表达式的计算结果。)Newvalue赋给新值。Callstack:该项不可接触。而在TurboCdebuger时用于检查堆栈情况。Findfunction在运行TurboCdebugger时用于显示规定的函数。Refreshdisplay如果编辑窗口偶然被用户窗口重写了可用此恢复编辑窗口的内容。Breakwatch菜单按AltB可进入Breakwatch菜单,该菜单有以下内容如图所示:Addwatch:向监视窗口插入一监视表达式。Deletewatch:从监视窗口中删除当前的监视表达式。Editwatch:在监视窗口中编辑一个监视表达式。Removeall:watches从监视窗口中删除所有的监视表达式。Togglebreakpoint:对光标所在的行设置或清除断点。Clearallbreakpoints:清除所有断点。Viewnextbreakpoint:将光标移动到下一个断点处。TurboC的配置文件所谓配置文件是包含TurboC有关信息的文件,其中存有编译、连接的选择和路径等信息。可以用下述方法建立TurboC的配置:建立用户自命名的配置文件:可以从Options菜单中选择OptionsSaveoptions命令,将当前集成开发环境的所有配置存入一个由用户命名的配置文件中。下次启动TC时只要在DOS下键入:tcc<用户命名的配置文件名>就会按这个配置文件中的内容作为TurboC的选择。若设置OptionsEnvironmentConfigautosave为on,则退出集成开发环境时,当前的设置会自动存放到TurboC配置文件TCCONFIGTC中。TurboC在启动时会自动寻找这个配置文件。用TCINST设置TurboC的有关配置,并将结果存入TCEXE中。TurboC在启动时,若没有找到配置文件,则取TCEXE中的缺省值。程序的灵魂算法算法的概念简单算法举例算法的特性怎样表示一个算法用自然语言表示算法用流程图表示算法三种基本结构和改进的流程图用NS流程图表示算法用伪代码表示算法用计算机语言表示算法结构化程序设计方法程序的灵魂算法一个程序应包括:对数据的描述。在程序中要指定数据的类型和数据的组织形式即数据结构(datastructure)。对操作的描述。即操作步骤也就是算法(algorithm)。NikiklausWirth提出的公式:数据结构算法=程序教材认为:程序=算法数据结构程序设计方法语言工具和环境这个方面是一个程序涉及人员所应具备的知识。本课程的目的是使同学知道怎样编写一个C程序进行编写程序的初步训练因此只介绍算法的初步知识。算法的概念做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤就称为算法。计算机算法:计算机能够执行的算法。计算机算法可分为两大类:数值运算算法:求解数值非数值运算算法:事务管理领域。简单算法举例【例】求。最原始方法:步骤:先求得到结果。步骤:将步骤得到的乘积乘以得到结果。步骤:将再乘以得。步骤:将再乘以得。这样的算法虽然正确但太繁。改进的算法:S:使t=S:使i=S:使ti,乘积仍然放在在变量t中可表示为titS:使i的值即iiS:如果i,返回重新执行步骤S以及其后的S和S否则算法结束。如果计算!只需将S:若i改成i即可。如果该求算法也只需做很少的改动:S:tS:iS:titS:itS:若i,返回S否则结束。该算法不仅正确而且是计算机较好的算法因为计算机是高速运算的自动机器实现循环轻而易举。思考:若将S写成:S:若i<,返回S否则结束。【例】有个学生要求将他们之中成绩在分以上者打印出来。如果n表示学生学号ni表示第个学生学号g表示学生成绩gi表示第个学生成绩则算法可表示如下:S:iS:如果gi则打印ni和gi否则不打印S:iiS:若i,返回S否则结束。【例】判定年中的每一年是否闰年将结果输出。润年的条件:)能被整除但不能被整除的年份)能被整除又能被整除的年份设y为被检测的年份则算法可表示如下:S:yS:若y不能被整除则输出y“不是闰年”然后转到SS:若y能被整除不能被整除则输出y“是闰年”然后转到SS:若y能被整除又能被整除输出y“是闰年”否则输出y“不是闰年”然后转到SS:输出y“不是闰年”。S:yyS:当y时,返回S继续执行否则结束。【例】求。算法可表示如下:S:sigh=S:sum=S:deno=S:sigh=()sighS:term=sigh(deno)S:term=sumtermS:deno=denoS:若deno返回S否则结束。【例】对一个大于或等于的正整数判断它是不是一个素数。算法可表示如下:S:输入n的值S:i=S:n被i除得余数rS:如果r=表示n能被i整除则打印n“不是素数”算法结束否则执行SS:iiS:如果in返回S否则打印n“是素数”然后算法结束。改进:S:如果i返回S否则打印n“是素数”然后算法结束。算法的特性有穷性:一个算法应包含有限的操作步骤而不能是无限的。确定性:算法中每一个步骤应当是确定的而不能应当是含糊的、模棱两可的。有零个或多个输入。有一个或多个输出。有效性:算法中每一个步骤应当能有效地执行并得到确定的结果。对于程序设计人员必须会设计算法并根据算法写出程序。怎样表示一个算法用自然语言表示算法除了很简单的问题一般不用自然语言表示算法。用流程图表示算法流程图表示算法直观形象易于理解。【例】将例求!的算用流程图表示。【例】将例的算用流程图表示。【例】将例判定闰年的算用流程图表示。【例】将例求的算用流程图表示。一个流程图包括:表示相应操作的框带箭头的流程线框内外必要的文字说明。三种基本结构和改进的流程图顺序结构:选择结构:循环结构三种基本结构的共同特点:只有一个入口只有一个出口结构内的每一部分都有机会被执行到结构内不存在“死循环”。用NS流程图表示算法年美国学者提出了一种新型流程图:NS流程图。顺序结构:选择结构:循环结构:用伪代码表示算法伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。用计算机语言表示算法我们的任务是用计算机解题就是用计算机实现算法用计算机语言表示算法必须严格遵循所用语言的语法规则。【例】求用C语言表示。main(){inti,tt=i=while(i<=){t=t*ii=i}printf(“d”,t)}【例】求级数的值。main(){intsigh=floatdeno=,sum=,termwhile(deno<=){sigh=sighterm=sighdenosum=sumtermdeno=deno}printf(“f”,sum)}结构化程序设计方法自顶向下逐步细化模块化设计结构化编码。数据类型、运算符与表达式C语言的数据类型常量与变量常量和符号常量变量整型数据整型常量的表示方法整型变量实型数据实型常量的表示方法实型变量实型常数的类型字符型数据字符常量转义字符字符变量字符数据在内存中的存储形式及使用方法字符串常量符号常量变量赋初值各类数值型数据之间的混合运算算术运算符和算术表达式C运算符简介算术运算符和算术表达式赋值运算符和赋值表达式逗号运算符和逗号表达式小结C的数据类型基本类型的分类及特点常量后缀常量类型数据类型转换运算符优先级和结合性表达式数据类型、运算符与表达式C语言的数据类型在第一章中我们已经看到程序中使用的各种变量都应预先加以定义即先定义后使用。对变量的定义可以包括三个方面:数据类型存储类型作用域在本章中我们只介绍数据类型的说明。其它说明在以后各章中陆续介绍。所谓数据类型是按被定义变量的性质表示形式占据存储空间的多少构造特点来划分的。在C语言中数据类型可分为:基本数据类型构造数据类型指针类型空类型四大类。基本数据类型:基本数据类型最主要的特点是其值不可以再分解为其它类型。也就是说基本数据类型是自我说明的。构造数据类型:构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中构造类型有以下几种:数组类型结构体类型共用体(联合)类型指针类型:指针是一种特殊的同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。虽然指针变量的取值类似于整型量但这是两个类型完全不同的量因此不能混为一谈。空类型:在调用函数值时通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的应在函数定义及函数说明中给以说明例如在例题中给出的max函数定义中函数头为:intmax(inta,intb)其中“int”类型说明符即表示该函数的返回值为整型量。又如在例题中使用了库函数sin由于系统规定其函数返回值为双精度浮点型因此在赋值语句s=sin(x)中s也必须是双精度浮点型以便与sin函数的返回值一致。所以在说明部分把s说明为双精度浮点型。但是也有一类函数调用后并不需要向调用者返回函数值这种函数可以定义为“空类型”。其类型说明符为void。在后面函数中还要详细介绍。在本章中我们先介绍基本数据类型中的整型、浮点型和字符型。其余类型在以后各章中陆续介绍。常量与变量对于基本数据类型量按其取值是否可改变又分为常量和变量两种。在程序执行过程中其值不发生改变的量称为常量其值可变的量称为变量。它们可与数据类型结合起来分类。例如可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中常量是可以不经说明而直接引用的而变量则必须先定义后使用。整型量包括整型常量、整型变量。常量和符号常量在程序执行过程中其值不发生改变的量称为常量。直接常量(字面常量):整型常量:、、实型常量:、字符常量:‘a’、‘b’。标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。符号常量:用标示符代表一个常量。在C语言中可以用一个标识符来表示一个常量称之为符号常量。符号常量在使用之前必须先定义其一般形式为:#define标识符常量其中#define也是一条预处理命令(预处理命令都以"#"开头)称为宏定义命令(在后面预处理程序中将进一步介绍)其功能是把该标识符定义为其后的常量值。一经定义以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母变量标识符用小写字母以示区别。【例】符号常量的使用。#definePRICEmain(){intnum,totalnum=total=num*PRICEprintf(“total=d”,total)}用标识符代表一个常量称为符号常量。符号常量与变量不同它的值在其作用域内不能改变也不能再被赋值。使用符号常量的好处是:含义清楚能做到“一改全改”。变量其值可以改变的量称为变量。一个变量应该有一个名字在内存中占据一定的存储单元。变量定义必须放在变量使用之前。一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念。整型数据整型常量的表示方法整型常量就是整常数。在C语言中使用的整常数有八进制、十六进制和十进制三种。)十进制整常数:十进制整常数没有前缀。其数码为~。以下各数是合法的十进制整常数:、、、以下各数不是合法的十进制整常数:(不能有前导)、D(含有非十进制数码)。在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。)八进制整常数:八进制整常数必须以开头即以作为八进制数的前缀。数码取值为~。八进制数通常是无符号数。以下各数是合法的八进制数:(十进制为)、(十进制为)、(十进制为)以下各数不是合法的八进制数:(无前缀)、A(包含了非八进制数码)、(出现了负号)。)十六进制整常数:十六进制整常数的前缀为X或x。其数码取值为~A~F或a~f。以下各数是合法的十六进制整常数:XA(十进制为)、XA(十进制为)、XFFFF(十进制

类似资料

编辑推荐

经济指标解读.pdf

先进刀具技术与航空零件切削加工.pdf

外国教育思想通史(第04卷文艺复兴时期的教育思想).pdf

真传些子吊星择日法.pdf

摄影构图圣经.pdf

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 对外投资合作国别(地区)指南 …

  • 对外投资合作国别(地区)指南 …

  • 对外投资合作国别(地区)指南 …

  • 对外投资合作国别(地区)指南 …

  • 大串联 红色年代激情泛滥的侵略…

  • 当今为什么还要研读马克思.pdf

  • 对外投资合作国别(地区)指南 …

  • 对外投资合作国别(地区)指南 …

  • 对外投资合作国别(地区)指南 …

  • 资料评价:

    / 169
    所需积分:0 立即下载

    意见
    反馈

    返回
    顶部