1、目 录第一部分 实验篇 .1第一章 Turbo C 的使用 .11.1 Turbo C 的工作窗口 .11.2 编辑一个新文件 .21.3 编辑一个已存在的文件 .31.4 改变用户工作目录 .41.5 确立 TC 工作环境 .51.6 编译和连接 .71.7 运行 .121.8 Turbo C 的菜单功能表和功能键表、编辑命令表 .12第二章 C 语言上机实验内容 .17实验 1 C 程序的运行环境和运行一个 C 程序的方法 .17实验 2 数据类型、运算符和表达式 .19实验 3 最简单的 C 程序设计 .21实验 4 逻辑结构程序设计 .27实验 5 循环控制 .34实验 6 数组 .4
2、3实验 7 函数 .53实验 8 编译预处理 .63实验 9 指针 .65实验 11 位运算 .83实验 12 文件 .84第三章 全国计算机等级考试上机考试系统 .873.1 上机考试系统使用说明 .873.2 上机考试内容 .93附:等级考试题目举例 .100第二部分 习题篇 .107第一章 C 语言基础知识 .10711 选择题 .10712 填空题 .11213 答案及部分解析 .114第二章 选择结构 .11621 选择题 .11622 填空题 .12223 答案及部分解析 .128第三章 循环结构 .13131 选择题 .13132 填空题: .13733 答案及部分解题分析 .1
3、42第四章 数组 .14541 选择题 .145II C 语言程序设计之上机指导及同步训练 42 填空题 .15243 答案及部分解析 .160第五章 函 数 .16251 选择题 .16252 填空题 .17353 答案及部分解析 .184第六章 预处理命令 .18661 选择题 .18662 填空题 .19063 答案及部分解析 .191第七章 指针 .19271 选择题 .19272 填空题 .202第八章 结构体与共用体 .21481 选择题 .21483 答案及部分解析 .221第九章 位运算 .22491 选择题 .22492 填空题 .2259.3 答案及部分解析 .226第十章
4、 文件 .227101 选择题 .227102 填空题 .230103 答案及部分解析 .234第三部分 全国计算机等级考试二级试卷 .2352001 年 4 月全国计算机等级考试二级笔试试卷 .2352001 年 4 月全国计算机等级考试二级 C 笔试参考答案 .2452001 年 9 月全国计算机等级考试二级笔试试卷 .2472001 年 9 月全国计算机等级考试二级 C 笔试参考答案 .2552002 年 4 月全国计算机等级考试二级笔试试卷 .2572002 年 4 月全国计算机等级考试二级 C 笔 试参考答案 .2682002 年 9 月全国计算机等级考试二级笔试试卷 .270200
5、2 年 9 月全国计算机等级考试二级 C 笔试参考答案 .2822003 年 4 月全国计算机等级考试二级笔试试卷 .2842003 年 4 月全国计算机等级考试二级 C 笔试参考答案 .2972003 年 9 月全国计算机等级考试二级笔试试卷 .2992003 年 9 月全国计算机等级考试二级 C 笔试参考答案 .308全国计算机等级考试大纲(2003 级) .310参考文献 .3130第一章 Turbo C 的使用 1第一部分 实验篇第一章 Turbo C 的使用Turbo C 是一个集程序编辑、编译、连接、调试为一体的 C 语言程序开发软件,具有速度快、效率高、功能强等优点,使用非常方便
6、。C 语言程序人员可在 Turbo C 环境下进行全屏幕编辑,利用窗口功能进行编译、连接、调试、运行、环境设置等工作。Turbo C 是目前国内用户广泛使用的一种 C 编译系统。本章主要介绍 Turbo C 的使用。1.1 Turbo C 的工作窗口Turbo C 的工作窗口如图 1.1 所示。图 1.1它包括以下几方面的内容:(1)窗口:在 TC 屏幕的顶部。它包括 8 个主菜单:File(文件)、Edit(编辑)、Run(运行)、Compile(编译)、Project(项目)、Options(选项)、Debug(调试)、Break/watch(断点/监视),每一个主菜单还有其子菜单,分别用
7、来实现各项操作。(2)编辑窗口:在主菜单窗口的下面,正上方有 Edit 字样作为标志。编辑窗口的作用是对 Turbo C 源程序进行输入和编辑。源程序都在这个窗口中显示,因而编辑窗口占据了屏幕的大部分面积。在编辑窗口的上部有一行英文:Line 1 Col 1 Insert Indent Tab Fill Unindent C:NONAME.C2 C 语言程序设计之上机指导及同步训练 其中 Line 1 和 Col 1 表示当前光标的位置在第 1 行第 1 列。当光标移动时,Line 和Col 后面的数字也随之改变,它用来告诉用户光标当前所在的位置。该行最右端显示的是当前正在编辑的文件名,对新文
8、件自动命名为 NONAME.C。如果从磁盘调入一个已存在的文件,则在该位置上显示的不再是 NONAME.C,而是该文件的名字。(3)信息窗口:在屏幕的下部,用来显示编译和连接时的有关信息。在信息窗口上方有“Message”字样作为标志。在编辑源程序时不用此窗口。(4)功能键提示行:在屏幕最下方(在信息窗口的下面)。它显示一些功能键的作用。例如:F1Help(帮助):任何时候按 F1 键都会显示帮助信息。F5Zoom(分区控制):如果当前在编辑窗口工作,也就是说编辑窗口是激活的,按F5 键就不显示信息窗口,它的作用是扩大编辑窗口,以便能容纳和显示较长的源程序。若再按一次 F5 键,就会恢复信息窗
9、口。如果当前信息窗口是激活的,按 F5 键就不显示编辑窗口,它的作用是扩大信息窗口,以便能显示较多的信息,便于用户观看。若再按一次 F5 键,就会恢复原状。F6Switch(转换):按 F6 键就激活信息窗口(可以看到信息窗口中的标题 Message 以高亮度显示),此时编辑窗口不能工作。若再按一次 F6 键,就又激活编辑窗口(可以看到信息窗口中的标题 Edit 以高亮度显示),此时可以在编辑窗口中编辑源程序。F7Trace(跟踪):用于跟踪程序的运行情况。F8Step(按步执行):按一次 F8 键执行一个语句。F9Make(生成目标文件):进行编译和连接,生成.obj 文件和.exe 文件,
10、但不进行运行。F10Menu(菜单):回到主菜单,激活第一个菜单 File(此时 File 以反相显示)。以上只是对 Turbo C 工作窗口的简单说明,至于如何具体应用,将在下面陆续介绍。1.2 编辑一个新文件如果要输入和编辑一个新的 C 程序,应该先选主菜单中的 File 菜单(如果是刚刚进入TC 环境,系统会自动激活主菜单中的 File 菜单;如果在编辑过其他程序后想编一个新程序,则要按 F10 键激活主菜单中的 File 菜单),按回车键后出现下拉菜单,用键盘上的和键找到子菜单项 New(见图 1.2),然后按回车键,编辑窗口就被清空,光标定位在左上角(第 1行、第 1 列)。图 1.
11、2用户可以开始输入和编辑源程序了。Turbo C 提供了一个全屏幕编辑环境。用户将已编好的源程序逐行输入,如发现错误可随时修改。在编辑过程中除用到各字符键外还可以用到Ins 和 Del 键。Ins 键是一个切换键,用来控制工作状态是否“插入状态” 。按下 Ins 键后,可以看到在屏幕编辑窗口的上方状态行上有一个英文单词 INSERT,这时从键盘输入的字符(包括控制字符,如“回车”)会插入到屏幕当前光标处,光标后的字符会自动顺序后移;如第一章 Turbo C 的使用 3果再按一下 Ins 键,则取消插入状态,状态行上的 INSERT 消失,此后键入的字符将覆盖(而不是插入)光标处的字符。Turb
12、o C 设置的初始状态是“插入状态” 。第一次按 Ins 键改成“覆盖状态” ,再按 Ins 则又改为“插入状态” ,如此反复切换。Del 键是删除光标所在的字符。Ctrl 键和 Y 键同时按下可删除光标所在的一行。Ctrl 键和 N 键同时按下可插入一行。输入程序后应对程序作认真检查,并改正已发现的错误。这时应及时将源程序保存起来,按 F10 键并按回车键,再用和键找到子菜单项 Save。按回车键后,TC 就会弹出一个对话框,要求用户指定文件名,见图 1.3。图 1.3从图 1.3 中可以看到:在对话框中有一个默认的文件名(即如果用户认可,就按回车键,系统即以此名作为被保存的文件名)。请注意
13、观察该文件名的特点:(1)文件在用户工作目录内。由于我们是从 TC 目录调用 tc.exe 从而进入 Turbo C 环境的,因此 TC 就是当前工作目录。也就是说,如不作特别指定,源程序都自动保存在用户工作目录内。(2)默认的文件名为 NONAME.C,意为“无名” 。一般说,用户是不希望以 NONAME.C 作为自己的文件名的,它不仅不便于辨别,而且每次都用 NONAME.C 作文件名,第一次保存的文件的内容就会被第二次保存的文件的内容取代。假如我们想用文件名 C1.C 存盘,可以修改对话框中的文件名,改为:C:TCC1.C 然后按回车键。这样,源程序就被保存在 TC 目录中,并以 C1.
14、C 命名。如果用户不想把文件保存在TC 目录内,也可以另外指定文件路径:如:C:TCZHANGC1.C。这样,源程序就保存在 TC目录下的 ZHANG 子目录内。请注意:如果在对话框中不指定路径而只输入文件名 C1.C,则文件 C1.C 就被保存在 C 盘的根目录下。读者可以自己试一下。在已用指定的文件名 C1.C 存盘后,编辑窗口中右上角的文件名就自动改为 C1.C,表示正在编辑的源文件名已不再是 NONAME.C 了,而是 C1.C。此后,在编辑过程中可以随时将修改过的源程序存盘,方法同上,但在选定 Save 并按回车键后不再弹出改名对话框,而是立即将源程序以上次指定的名字存盘。只有尚未指
15、定文件名的新程序存盘时,才会出现改名对话框,要求用户指定名字。上面我们是通过按 F10 键,再选择 FileSave 菜单进行保存文件操作的,其实还有较简单的方法:用功能键 F2 就可以直接实现保存文件的操作,它相当于上述三步(包括按回车键),显然用 F2 键方便多了。1.3 编辑一个已存在的文件假如上次编辑的源文件需要进行编辑,就需要把它从磁盘中调出来。按 F10 键,再选择菜单 FileLoad,这时,屏幕上会出现一个包含.C 的“装入文件对话框” ,要求用户输入准备调入的文件路径和文件名。假设想输入的文件是 TC 目录下面的 ZHANG 子目录中的 C1.C 文4 C 语言程序设计之上机
16、指导及同步训练 件,则输入文件名如图 1.4 所示。在按回车键后,该文件就被调入内存,并显示在编辑窗口中。上面的操作也可以用 F3 键代替,按 F3 键相当于按 F10 键、再选择 FileLoad 这三步,将直接得到“装入文件输入框” 。图 1.4如果用户输入的文件名不存在(即原来无此文件),则屏幕上是一片空白,表示文件无内容(是新文件),可以从键盘输入文件内容。这相当于建立了一个有名字的新文件,屏幕右上角将显示新文件名。如果记不清所要装入的源文件名,想看一下当前目录中有哪些源文件,则可以在子窗口出现上述.C 时直接按“回车”键,Turbo C 就会显示出当前目录下的所有后缀为.C 的文件名
17、。利用光标键将亮条移到需要装入的文件名处,按“回车”后,该文件的内容即显示在屏幕上,供用户编辑、修改。这时用户可以对该程序进行修改,然后用 F2 键存盘。如果想以另一个文件名存盘,可以通过上述方法得到 File 的子菜单(用 AltF 键也可以得到 File 的子菜单),从中找到Write to 项,按回车键后弹出一个“新名对话框” ,见图 1.5。框中事先给出了原来的文件名 C1.C,用户可以将它改为新文件名(例如 C2.C),然后按回车键,文件就会以新名存盘(原来的文件仍存在),编辑窗口中右上角所显示的文件名也自动改为 C2.C。但应注意:图 1.5对话框中的文件名未指定路径,因此 C2.
18、C 将保存在用户工作目录下面。如果想保存在ZHANG 子目录下,应在对话框中指定路径,即:C:TCZHANGC2.C。图 1.51.4 改变用户工作目录工作目录指用户文件所在的目录。为了管理上的方便和安全,一般不应将不同的人、不同性质和用途的程序混放在一起,而应分别建立子目录。例如几个学生先后共用一台微机,应该为每一学生设一个专用的子目录。如果同一个学生既学习 C 语言,又学习 QBASIC 语言,则应该分别设立两个子目录。这样不同的学生可以在不同的子目录下进行文件的编辑工作,编译生成的目标文件也存放在此子目录中。这个工作目录既可以按照前面介绍的那样,在进入 TC 以前用 cd 命令设置,然后
19、从该子目录调用 TC;也可以在进入 TC 以后改变工作目录。第一章 Turbo C 的使用 5具体方法如下:按 AltF 得到 File 的下拉菜单,用和键选择 Change dir 项(或者直接按下代表 Change dir 的第一个字母 C 键)并按回车键后,就会出现一个“新目录输入框” ,提示用户输入所选择的工作目录名,见图 1.6。图 1.6在图 1.6 中可以看到,系统显示出的目录是 C:WINDOWS,这是未修改前的用户当前工作目录(可能用户是从 C:WINDOWS 目录调用 Turbo C 的,所以系统把它作为当前工作目录)。我们想把它改为:C:TCZHANG,也就是在 Turb
20、o C 系统的主目录下设一个 ZHANG 子目录,作为姓张的学生用 Turbo C 时的专用子目录;此时只需在“新目录对话框”中把目录改为C:TCZHANG 即可。以后在保存源文件和输出文件(.obj 文件和.exe 文件)时,如不另外指定,将自动保存在该子目录中。但应注意:在“新目录对话框”中输入的子目录名必须是已存在的目录,如果不存在此目录,则系统会显示出错信息,用户可再次输入合法的目录名。1.5 确立 TC 工作环境用上面的方法指定的工作目录,可以用来保存源文件和输出文件,但是有时人们进一步希望把源文件和输出文件分别保存在两个子目录中,例如想把编译后的目标文件(后缀为.obj 的文件)和
21、连接后产生的可执行文件(后缀为.exe 的文件)保存在 C:TCZNANG_OUT 子目录中。这时就要设法通知 TC 把这些输出文件存于何处。此外,还要告诉 TC:Turbo C 的“包含文件”的库函数在哪个子目录中。在安装 Turbo C 时,如果用户不作另外的指定,系统会按照默认的方案建立一个 C:TC 目录用来存放Turbo C 的系统文件,同时在 TC 主目录下建立一个 INCLUDE 子目录用来存放“包含文件” ,另外建立一个 LIB 子目录用来存放库函数。如果在安装 Turbo C 时,用户不采用系统提供的子目录名,而自己另外指定了子目录名,则应当通知 Turbo C 系统,以免它
22、找不到。以上这些工作属于确立 Turbo C 系统的工作环境。为了确立 Turbo C 系统的工作环境,需要利用主菜单条上的 Options 菜单。首先在主菜单窗口上,用和键将亮块移到 Options 处(也可以用 AltO 键来实现),按回车键后得到下拉菜单,用和键选择 Directories 项,见图 1.7。按回车键后又弹出一个窗口,见图 1.8。图 1.76 C 语言程序设计之上机指导及同步训练 图 1.8图 1.8 所示窗口中各项的含义如下:(1)Include directories: C:TCINCLUDE;C:TCINCLUDESYS Install 建立的“包含文件”默认目录
23、(2)Library directories: C:TCLIB Install 建立的库文件默认目录(3)Output directory: 存放.exe 和.obj 文件的目录(4)Turbo C directory: C:TC Install 建立的默认目录第 1 行 Include directories 指“包含文件”所在的目录,系统显示出默认的子目录C:TCINCLUDE;C:TCINCLUDESYS。第 2 行 Library directories 指库文件所在的目录,系统显示出默认的子目录 C:TCLIB。第 3 行 Output directory:,指定输出文件(.obj文
24、件和.exe 文件)存放的目录,从图 1.8 可以看出并未指定某一具体的目录,需要用户指定。如果用户不指定,系统就会将它保存在当前工作目录中。现在我们想修改输出文件目录,在选中第 3 行 Output directory:后(此时该行以高亮度反相显示),按回车键,就会弹出一个“输出文件目录对话框” ,在此框内输入 C:TCZHANG_OUT,见图 1.9,它表示要将.obj文件和.exe 文件保存在 C:TCZHANG_OUT_子目录中。按回车键后,对话框消失,而C:TCZHANG_OUT 已加入到第 3 行中 Output directory:的右侧,表示已进行了该项设置。第 4 行 Tur
25、bo C directory 指 Turbo C 系统文件所在的目录,系统显示的是安装时的默认目录 C:TC,一般可不修改它。图 1.9在进行了以上设置后,还应当把这些信息保存起来。保存的办法是把环境信息记录在一个特定的文件中,这个文件称为配置(config)文件。Turbo C 给此文件指定一个默认名tcconfig.tc。在每次启动 TC 时,系统会从当前工作目录和 TC 系统文件所在的目录中寻找tcconfig.tc 文件,如果找到了就把它调入内存。配置文件建立的方法是:在上述设置完毕后按 Esc 键以返回 Options 菜单,然后选择 Save Options 菜单项,并按回车键,此
26、时会弹出一个“配置文件对话框” ,见图 1.10。在框中输入 TCCONFIG.TC,按回车键,系统就会在当前工作目录下面建立一个配置文件 TCCONFIG.TC。第一章 Turbo C 的使用 7图 1.10如果用户不用 TCCONFIG.TC 作为配置文件的名字,则在启动 TC 时,必须显式地将该配置文件调入内存,显然这是很不方便的。在建立了配置文件后,再次启动 TC 时,不再显示 TC 的版本信息。如果想修改配置(例如修改输出文件的目录),应当重新选择 Options 菜单中的 Directories 项,按前面介绍过的办法进行设置,然后再选择 Save Options 项重建配置文件。
27、对大多数学生来说,不必每次上机前都重新设置和建立配置文件,实际上机房人员已经根据需要安装和设置好了。一般是为每一个学生建立一个子目录,要求每个学生把自己的源程序和.obj 文件以及.exe 文件都存放在此子目录中。在学生上机实习时,先进入自己的子目录中,然后在这个子目录中用 DOS 命令“TCtc”调入 Turbo C,这时系统就会自动将源程序和.obj 文件以及.exe 文件都存放在此工作目录中,学生不必作任何设置。如果是从Windows 平台通过双击 TC 图标(快捷方式),或从 TC 文件夹中执行 tc.exe 而进入 Turbo C环境,则应通过 AltF 键得到 File 下拉菜单,
28、再选择 Change dir 项改变工作目录(改成自己的子目录)。如果是自己独享一台微机,则可灵活地运用 1.4 和 1.5 节介绍的方法设置工作目录和输出目录。1.6 编译和连接编辑好源程序并存盘后,应当对源程序进行编译、连接和运行。在 Turbo C 集成环境中,进行编译、连接和运行是十分方便的,既可以将编译、连接和运行分三个步骤分别进行;也可以将编译和连接合起来作为一步进行,然后再运行;还可以将编译、连接和运行三者合在一起一次完成。既可以对单个文件模块的程序进行编译、连接和运行,也可以一次对多个文件模块的程序进行编译、连接和运行。1.6.1 对单文件程序的编译、连接1 对单文件程序分别进
29、行编译、连接(1)编译按 F10 键,将亮条移至 Compile 处后回车(也可直接按 AltC),即可产生一个编译菜单,见图 1.11。图 1.118 C 语言程序设计之上机指导及同步训练 选择 Compile to OBJ,此时系统显示出默认的目标文件名。如果当前被编译的源程序文件名为 c1.c,系统就自动将目标文件名定为 cl.obj,按回车键就可进行编译。也可以在得到编译菜单后按字母键“C”进行编译。编译后将生成的目标文件 c1.obj 保存在当前工作目录或配置文件 TCCONFIG.TC 所指定的输出目录中。(2)连接有了目标文件后,还不能直接运行,还要将目标文件与系统提供的库函数和
30、包含文件等连接成一个可执行文件(后缀为.exe),才能运行这个.exe 文件。按 F10 键后选择 CompileLink EXE file,然后按回车键(或按 AltC 再按 L 键),就可执行连接,在当前工作目录或配置文件 TCCONFIG.TC 所指定的输出目录中生成一个可执行文件 c1.exe。应当注意:必须先进行编译,得到.obj 文件后才能进行连接,否则会出错。2.一次完成编译和连接用 AltC(或按 F10 键选择 Compile)得到编译菜单,从中选择 Make EXE file 项(见图1.13),按回车键后就可一次完成编译和连接,在当前工作目录或配置文件 TCCONFIG.
31、TC 所指定的输出目录中生成一个目标文件 Cl.OBJ 和一个可执行文件 Cl.EXE。前面已介绍过,在 Turbo C 的信息窗口下面有一个“功能键提示行” ,列出了键盘上各功能键的作用。其中的“F9Make”表示:按 F9 键相当于选择了编译菜单中的“Make EXE file”,即一次完成编译和连接。用户既可以按以上介绍的通过选择菜单来进行编译和连接,也可以直接按 F9 键通知系统进行编译和连接。图 1.121.6.2 对多文件程序进行编译和连接如果一个源程序包含多个文件模块,则应当对各个文件分别进行编译,得到多个.obj文件(每个源文件(后缀为.c)编译后生成一个.obj 文件),然后将这些目标文件以及库函数、包含文件等连接成一个可执行文件。Turbo C 提供了对多文件程序进行编译和连接的简便方法。要将这些文件组成一个“项目” ,为此要建立一个“项目文件” ,在该文件中包含各文件的名字,然后将该项目文件交付编译和连接,就可以得到可执行文件.exe。具体步骤如下:(1)在 Turbo C 编辑环境中,输入各源文件的名字。假设有一个程序,包含两个文件,分别为 C1_1.C 和 Cl_2.C,则在 TC 编辑窗口中输入这两个文件名,见图 1.13。图 1.13(2)选择 FileWrite to 将文件保存,文件名为 Cl.PRJ。Cl 是用户自己指定的名字(只