作用就是比较a和b的大小,并且把较大的值保存在变量c中。具体来说第7行中的a>b是if语句的判断条件,当条件满足时(也就是a大于b时,此时a为最大值),执行第8行的语句c=a(也就把最大值保存在变量c中了);如果条件不满足(也就是a不大于b时,此时b为最大值)就执行else后面的第10行的语句c=b。本书的4.2节对if语句有详细介绍。
同样,在大致了解【例1-2】的程序后,读者可以对其作些该动以实现其他功能,比如输入两个整数,输出其中的最小值;或者输入三个整数,输出其中的最大值。
举这两个例子,主要是为了使读者对C语言和计算机程序设计有一个大致的了解,具体细节不必完全弄懂,在学到以后有关章节时,问题自然迎刃而解。
1.3.2 C程序的基本结构
通过以上几个例子,可以看到: 1、C程序由函数构成 C程序是由函数构成的,C语言中用函数来实现特定的功能。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位,C的函数相当于其他语言中的子程序,可以说C是函数式的语言,程序中的全部工作都是由各个函数分别完成的,编写C程序就是编写一个个函数。此外,C的函数库十分丰富,ANSI C提供100多个库函数,Turbo C 2.0和MSC 4.0提供300多个库函数。
C的这种特点使得容易实现程序的模块化。 2、函数由两部分组成
C语言中的函数由两部分组成:
(1) 函数的首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。
【例1-1】中的main函数的首部为 main ( )
在此例中,只定义了函数名,没有给出函数的类型、参数等内容,这是允许的,但一个函数名后面必须跟一对圆括弧。
(2) 函数体,即函数首部下面的大括弧{……}内的部分。如果—个函数内有多个大括弧,则最外层的一对{}为函数体的范围。
函数体一般包括:
声明部分:在这部分中定义所用到的变量,如【例1-1】中的第3行“int a,b,c”。在第6章中还将会看到,在声明部分中要对所调用的函数进行声明。
执行部分:由若干个语句组成。
当然,在某些情况下也可以没有声明部分,甚至可以既无声明部分,也无执行部分。 3、C程序从main函数开始执行
一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。 4、程序书写格式自由,
C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。C程序没有行号,也不像FORTRAN或COBOL那样严格规定书写格式(语句必须从某—列开始书写)。 5、语句后必须有分号
C语言中,每个语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。例如:
c=a+b;
分号不可少,即使是程序中最后一个语句也应包含分号。
6、程序中可以使用注释
可以用/*……*/对C程序中的任何部分作注释。一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。
1.4 C程序的上机步骤
在1.3节中我们看到了两个用C语言编写的程序,这种用高级语言编写的程序称为“源程序”(Source Program)。从根本上说,计算机只能识别和执行由0和1组成的二进制的指令,而不能识别和执行用高级语言写的指令。为了使计算机能执行高级语言源程序,必须先用一种称为“C编译程序”的软件,把源程序翻译成二进制形式的“目标程序”,然后将该目标程序与系统的函数库和其他目标程序连接起来,形成可执行的目标程序。
在编好—个C源程序后,如何上机运行呢?在纸上写好一个程序后,要经过以下几个步骤:上机输入、编辑源程序一-对源程序进行编译一-与库函数连接一-运行目标程序,以上过程如图1-1所示,其中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件test.c,将test.c编译后得到目标程序文件test.obj,再将test.obj与系统提供的库函数等连接,得到可执行的目标程序文件test.exe,最后执行test.exe得到结果。
图1-1 执行C程序步骤
在了解了C语言的初步知识后,读者最好上机运行一个C程序,以建立对C程序的初步认识。
1.4.1 Turbo C 2.0 集成环境
C语言有多种不同的编译器,其中Turbo C(以下简称TC)是深受C语言初学者喜爱的编译器之一。事实上,Turbo C 2.0是美国Borland公司在1988年推出的针对PC机的一个快速、高效和优化的C语言集成环境,它将文本编辑、编译、连接、运行等一体化,并提供了上下文敏感的帮助功能,大大方便了程序的开发工作。TC实现了美国国家标准学会(ANSI)建议的C语言标准,完全支持K&R的C定义。此外还包括了一些混合模式程序设计的扩充,具有图形库和文本窗口函数库,以及查错和“协处理器”的仿真等功能。TC 2.0每分钟可编译12000行源代码,这是因为TC 2.0编译时利用了内存存放中间数据结构,一次性产生内部代码,只需一次读出盘上的源文件和写出目标代码。
TC最突出的特点,是它提供了一个完整的集成开发环境,包括:
(1) 一个功能强大的交互式全屏幕文本编辑程序,并具有源程序级的调试功能,极大地方便了排错和调试。当编译程序发生错误时,它会查出错误,对每一个错误信息自动把光标设置在源程序相应的位置,这给程序员调试带来了极大的方便。
(2) 易学易用,操作全自动。使用TC,不需另外使用单独的编辑程序、编译程序、连接程序等软件工具去建立文件、执行程序,所有这些特性都已完整地组建在TC内,加之全屏幕的显示方式使应用变得直观、简单、明白。
(3) 它能支持六种存储模式:tiny(极小),small(小),medium(中),compact(紧凑),large(大)和huge(巨)。可混合使用远和近指针。此外,还包括了一些混合语言和混合模式程序设计的选择,进一步挖掘了PC机的能力。
(4) TC除提供集成开发环境版本外,还提供了常规命令行版本。
要安装TC 2.0,可运行安装盘中的INSTALL.EXE,这时可以改变系统安装所需配置的一些参数,然后遵循INSTALL显示在屏幕上的指令即可。INSTALL运行完之后,就可以使用TC了。
若用户将TC2.0按系统默认的路径安装到硬盘上,则安装程序会创建如下目录: C:\\TC 主目录
C:\\TC\\INCLUDE 包含文件(头文件)目录 C:\\TC\\LIB 库文件目录
如果不按默认的路径安装,例如安装在D:\\TURBOC2目录下,则首先建立一个子目录D:\\TURBOC2,接着在D:\\TURBOC2下建立两个子目录LIB和INCLUDE,在子目录D:\\TURBOC2\\LIB中存放所有库文件,在子目录D:\\TURBOC2\\INCLUDE中存放所有头文件。
安装好TC后,就可以使用其完成程序设计任务了,TC的一个重要特点在于其拥有一个高效的集成环境(IDE),从而摆脱了以往通过命令行命令逐步编辑、编译、连接和运行处程序的方式,使用TC,首先就要熟悉他的集成环境。
下面,我们就逐步讲解TC集成环境的使用。 1、进入TC
若在DOS命令状态下,先进入TC子目录,然后键入TC回车,就进入了TC集成开发环境,屏幕显示主菜单和版本信息。若在Windows环境下,找到安装目录下的TC.EXE双击即可,这时,集成环境就是Windows的一个应用程序窗口(可以按Alt+Enter键切换到全屏幕)。当按下任意键后,版本信息消失而留下菜单屏幕,如图1-2。
图1-2 TC集成环境主屏幕
从图中可以看到,TC集成环境的上面一行为主菜单(Main Menu),中间窗口为编辑区(Edit Window),在该区域内完成程序的编辑、修改和调试工作。接下来是消息窗口(Message Window),用来显示出错信息,当用集成环境的调试器运行程序时,消息窗口即变成观察窗口(Watch Window),观察窗口让用户在跟踪程序运行时可以观察一些变量或表达式的值。最底下一行为快速参考行(Quick Reference Line),它提供了当前状态下的功能键提示,对不同的窗口提示行显示内容有所不同,而且按下Alt键保持几秒后,提示行将描述Alt键与哪些键连用时执行何种功能,如图1-3。这四个部分构成了TC的主屏幕。
图1-3
按住Alt键后的快速参考行
先来看主菜单的主要功能,如表1-1。
项 目 File Edit Run Compile Project Options Debug Break/watch 表1-1 主菜单的项目和功能表 功 能 调入和存储文件、管理目录、调用DOS和退出TC环境 进入编辑状态,用户可编辑和修改当前编辑窗口中的源程序 控制程序的运行方式,编译、连接和运行当前程序 编译当前环境内的程序,生成目标及可执行文件 处理由多个源程序文件组成的工程文件 设置有关编译和连接的选项 调试程序,显示变量的值,查找函数,查看调用栈的状态 调试程序,断点的设置和清除及观察变量值的变化 “主菜单”中的每一项,除Edit外都有“子菜单”,按下Alt键同时按下菜单项的第一个字母,光标就会落在该选项上,例如按下Alt+F键就选择了File项,屏幕上将显示该项的子菜单。也可以先按F10键,光标将出现在主菜单上,然后用光标键选择好项目后回车。如进入集成环境后,按下F10转到主菜单,再将光标转到Edit项后回车,即可进入编辑窗口,而按下Alt+E则立即进入编辑窗口。注意:一旦进入编辑窗口,其顶部为双线且名字是高亮度的——这表示它是活动的窗口。
编辑窗口中状态行给出了正在编辑的文件的信息:
Line Col Insert Indent Tab Fill Unindent * C:Filename 具体解释如下:
Line n 指光标处在文件的第n行 Col n 指光标处在文件的第n列
Insert 插入模式开关,用Insert键选择对文本的编辑是插入方式还是改写方式。刚进入编辑环境时,通常处于“插入”状态。按一下Insert键变为“改写”状态,再按一次恢复为“插入”状态。
Indent 自动缩进开关,用Ctrl+OI切换,即按住Ctrl不放,再依次按O、I键。 Tab 制表开关开启,用Ctrl+OT切换。 Fill 当Tab模式为ON时,编辑器将用制表及空格符优化每一行的开始,用Ctrl+OF切换。 Unindent 当光标在一行中的第一个非空字符上时,或在空行上时,退格键回退一级。用Ctrl+OU切换。
*是在文件新建或被修改后,而又未存盘才出现的。
C:Filename说明了正在编辑的文件的名称。C:是盘符。
编辑程序就是逐条键入程序和修改程序的过程。在集成环境下进行编辑的有关命令约有50条,功能强大,还可以在Edit环境下通过按F1取得在线帮助,了解这些命令的作用。但其中最重要的是有关插入、删除、块移动等操作,掌握了这几条命令就能顺利地进行编辑了。
2、TC集成环境的常用编辑命令 (1) 光标移动 ← 光标左移一格 ↑ 光标上移一行 Home 光标移至行头 PageUp 光标移至上一页 (2) 插入、删除 Insert 打开/关闭插入功能 Backspace(←)删除光标前一个字符 Ctrl+QY 删除至行尾
(3) 块命令(块就是一段连续的文本) Ctrl+KB 标记块头
→ ↓ End PageDown Del Ctrl+Y
光标右移一格 光标下移一行 光标移至行尾 光标移至上一页 删除光标所在处字符 删除一行
Ctrl+KK 标记块尾
Ctrl+KC CtrI+KV (4) 其他 Ctrl+QF Ctrl+U
复制块 移动块
Ctrl+KY Ctrl+KH Ctrl+QA
删除块
隐藏/显示块 查找并替换
查找 撤消正在进行的操作
3、快速参考行
快速参考行位于屏幕的底端,用于引出有关功能键的功能 F1-Help 打开一个帮助窗口,给出有关TC编辑命令的信息
F5-Zoom 扩大整个编辑窗口到整个屏幕,再按一次F5又回到分屏式环境 F6-Switc 从一个活动窗口切换到另一个活动窗(Edit<―>Message/Watch) F7-Trace 在调试模式下单步执行,遇到函数跟踪进入函数内部 F8-Step 在调试模式下单步执行,遇到函数直接完成调用,不进入函数内部 F9-Make 编译连接程序,生成可执行文件 F10-Menu 回到主菜单
1.4.2 编辑、编译、连接、运行一个C程序
我们现在对TC集成开发环境熟悉一些了,就可以试试自己编写程序了。 在TC集成环境下编程的操作步骤为: (1) 编辑源程序; (2) 编译程序; (3) 连接程序; (4) 运行程序。
在第一次使用TC时,还需要建立工作环境和工作目录。 下面我们通过学习过的【例1-1】,来学习使用TC建立并运行一个C语言程序。
【例1-1】的要求为:从键盘上读入两个整数,计算这两个数的和,最后将结果输出。 我们则需要编辑、编译、连接、运行以下程序。 #include
main() {
int a,b,c;
printf(\ scanf(\ c=a+b;
printf(\}
首先进入TC环境,然后通过以下的一系列操作完成。
1、建立正确的工作环境 在第一次使用TC时,需要建立正确的工作环境。首先确定要编辑的程序存放在哪个目录下,进入File子菜单,其中有一个名为Change dir的菜单项,其功能是显示和改变当前目录。用户进入TC目录后,可以在这个目录下再建立一个用户专用的子目录。然后把编辑的源程序放在此目录下,把系统文件和用户文件分开存放,便于管理。这个工作目录可由用户自己建立,再由Change dir命令告诉TC所选定的工作目录。如图1-4,假设在TC下已建立一个用户子目录为USER,通过设置目录,系统就把你编辑的文件存入C:\\TC\\USER目录下。
图1-