C语言程序设计实验指导及习题解答(最新)(1)

更新时间:2024-07-10 20:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

内 容 简 介

本书是与《C语言程序设计教程》(中国科学出版社)配套使用的教学参考书,内容包括:VC++6.0和Turbo C 2.0两种集成编程环境的使用及两种环境下C语言程序的开发过程和调试方法的介绍;C语言程序设计相关章节实验项目;《C语言程序设计教程》一书中各章节习题的参考解答;配合全国计算机等级考试二级C的拓展训练试题。

本书内容详实,实验项目设计合理,具有较强的条理性和针对性,是学习C语言并更好地掌握C语言程序上机实践的必备参考书。

本书可作为高等院校计算机专业或其他非计算机专业的计算机程序设计教学用书,也可作为从事计算机应用及开发人员的参考书。

前 言

《计算机程序设计基础(C语言)》课程是我国高校理工科专业普遍开设的一门计算机公共基础课程,该课程实践性较强,要求学生具有较好的上机实践能力。为配合该课程的理论内容的学习,使得学生既能够较好地掌握课程的理论知识内容又能具备较强的上机实践能力,我们特组织了C语言实践教学经验丰富的教师编写了此书。

本书内容丰富,首先系统地介绍了两种常用的C语言集成开发环境VC++ 6.0和Turbo C 2.0的使用方法及程序的调试过程和方法。在本书的第二部分――实验项目设计中,我们有针对性地根据许多编程人员易犯的错误精心设计了各实验的内容,并且丰富了实验项目的种类以使得读者能够更好更快地掌握C语言程序设计的方法和技巧。本书的第三部分给出了《C语言程序设计教程》中部分习题的参考答案,其中程序设计习题我们都给出了相应的参考程序代码,以帮助读者掌握C语言程序设计的知识内容并培养和锻炼程序阅读的水平和能力。另外,为配合广大读者更好地参加全国计算机等级考试二级C的考试,我们不仅在本书的第三部分中给出了模拟试题,而且在第二部分的实验项目设计时也与等级考试的机试题型尽可能地保持一致。

本书由湖北襄樊学院李勇负责组织编写并统稿,袁磊教授主审。全书内容由李勇、王毅、项东升编写。

本书中的内容不可避免会有疏漏和不足,敬请广大读者批评指正。

编者 2009年7月

目 录

第一篇 C语言程序开发环境 .......................................................................................................... 1

1.1 VC++6.0集成开发环境 .................................................................................................. 1

1.1.1 VC++6.0环境中开发程序的过程 .......................................................................... 1 1.1.2 程序调试 ................................................................................................................. 6 1.2 Turbo C 2.0开发环境 .................................................................................................. 10

1.2.1 Turbo C 2.0 主菜单功能 ....................................................................................... 10 1.2.2 Turbo C 2.0 的配置文件 ....................................................................................... 22 1.2.3 Turbo C 2.0 环境下程序的编制实例 ................................................................... 22 1.2.4 Turbo C 2.0 环境下程序的调试实例 ................................................................... 25

第二篇 C语言程序设计实验指导 ............................................................................................... 28

实验1 C语言程序开发环境及上机过程 ........................................................................... 28 实验2 顺序结构程序设计 .................................................................................................. 30 实验3 选择结构程序设计 .................................................................................................. 36 实验4 循环结构程序设计 .................................................................................................. 43 实验5 模块化程序设计与函数 .......................................................................................... 51 实验6 数组程序设计 .......................................................................................................... 59 实验7 结构体程序设计 ...................................................................................................... 67 实验8 文件操作 .................................................................................................................. 76 第三篇 习题解答与拓展训练 ....................................................................................................... 79

3.1习题参考解答 .................................................................................................................. 79

习题3 参考解答 ............................................................................................................ 79 习题4 参考解答 ............................................................................................................ 91 习题5 参考解答 ............................................................................................................ 96 习题6 参考解答 .......................................................................................................... 119 习题7 参考解答 .......................................................................................................... 134 3.2 拓展训练 ........................................................................................................................ 141

计算机等级考试笔试模拟题1 .................................................................................... 141 计算机等级考试笔试模拟题1答案 ........................................................................... 157 计算机等级考试笔试模拟题2 .................................................................................... 159 计算机等级考试笔试模拟题2答案 ........................................................................... 175 计算机等级考试笔试模拟题3 .................................................................................... 177 计算机等级考试笔试模拟题3答案 ........................................................................... 196 计算机等级考试上机模拟题1 .................................................................................... 198 计算机等级考试上机模拟题2 .................................................................................... 203 计算机等级考试上机模拟题3 .................................................................................... 208 计算机等级考试上机模拟题4 .................................................................................... 212

附录一 实验报告模板 ............................................................................................................... 216 附录二 编译错误信息表 ........................................................................................................... 217 附录三 常用库函数 ................................................................................................................... 233

第一篇 C语言程序开发环境

1.1 VC++6.0集成开发环境

C语言程序的集成开发环境较多,较常用的为VC++6.0集成开发环境和Turbo C 2.0集成开发环境。以下简介在VC++6.0集成开发环境中设计实现及调试C语言程序的方法。

1.1.1 VC++6.0环境中开发程序的过程

Visual C++是Microsoft公司的Visual Studio开发工具箱中的一个C++程序开发包,是基于Windows平台的可视化开发环境。从最早期的1.0版本,发展到最新的6.0版本,Visual C++已经有了很大的变化,在界面、功能、库支持方等面都有了许多的增强。最新的6.0版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前的版本有了较大的改进。

Visual C++安装完成后,在开始菜单的程序选单中选择Microsoft Visual Studio 6.0图标,点击其中的Microsoft Visual C++ 6.0即可运行(也可在Window桌面上建立一个快捷方式,以后可双击运行)。第一次运行时,将提示如图1.1所示对话框。单击“下一提示”按钮,将看到各种操作提示;如果下次运行不需要此对话框,则取消选中“再启动时显示提示”复选框。单击“结束”按钮,关闭提示对话框,进入Visual C++ 6.0开发环境见图1.2。

图1.1 Visual C++ 6.0启动提示对话框

Visual C++ 6.0开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、

1

输出窗口和状态栏等组成。

图1.2 Visual C++ 6.0开发环境主界面

进入Visual C++ 6.0环境后,我们就可以按照下列步骤进行C语言程序的编辑、编译、调试及运行了。

1、建立新的工程

(1)进入Visual C++ 6.0环境后,选择菜单“文件| 新建”,在弹出的对话框中单击上方的选项卡“工程”,选择“Win32 Console Application”工程类型,在“工程”一栏中填写工程名,在“位置”一栏中填写工程路径(目录),见图1.3,然后按“确定”继续。

图1.3 “新建”工程对话框

2

去除断点的命令与设置断点的命令相同:在已设置断点的地方,单击鼠标右键,在弹出的快捷菜单中选自“Insert/Remove Breakpoints”命令,左端的红色圆点就消失,断点被去除了。

下面分别用单步调试和断点调试两种方法调试以下程序: #include \void main() {int f=1,i; for(i=1;i<=20;i++)

f=f*i;

printf(\}

单步调试方法的特点是程序执行时一次只执行一行,每执行一行,程序就会停止运行,这时,可以通过变量窗口和观察窗口检查有关变量和表达式的值,以此来判断是否正确,从而找到错误的位置。

断点调试方法的特点是可以在程序中的某行语句位置设置断点,当程序执行到此语句的前一条语句时停止运行,此时在观察窗口中插入必要的表达式,以此来检查错误。

1、使用单步调试方法调试

(1)对上面的程序进行编辑、编译、连接并运行。运行结果为“f=-288522240”,显然结果错误。

(2)选择“Step Into”命令,界面中增加了两个窗口如图1.12所示:

8

图1.12 单步调试窗口

增加的左边窗口是变量窗口,右边是观察窗口。在程序的左边有一个黄色箭头。此时在观察窗口中提示错误信息:“CXX0069:Error:variable needs stack frame”表示变量定义类型有错误,改为“long int f=1;”。

(3)连续按F10键,在变量窗口中发现当i为17时,f的输出值为负数,把“printf(\”改为“printf(\”,仍然存在这个问题,说明我们计算的数值太大,已经超过了长整型的取值范围,若把17改为16,则结果正确。

2、使用断点调试方法调试

(1)对上面的程序进行编辑、编译、连接并运行。运行结果为“f=-288522240”,显然结果错误。

(2)由于输出结果错误,我们在“printf(\”处设置断点。 (3)选择“go”命令,进入调试器状态,界面如图1.13所示:

9

图1.13 断点调试窗口

程序在断点处停止运行,从变量窗口中显示,可以看出变量f的值为负数,超出了表示范围。把“17”改为“16”,重新调试,调试成功。

1.2 Turbo C 2.0开发环境

Turbo C 2.0同前述VC++ 6.0一样,它也是一个集C语言程序编辑、编译、链接、调试及运行为一体的集成开发软件,具有界面简单直观、开发效率高、功能强、使用灵活等优点,是人们进行C语言程序开发的常用工具。

1.2.1 Turbo C 2.0 主菜单功能

Turbo C 2.0软件无须安装,只要将对应的压缩包解压到硬盘某个分区即可(一般为C盘),解压后即在对应分区上出现一个名称为turboc2的文件夹,Turbo C 2.0软件所有的文件都包含在这个文件夹内。

运行Turbo C 2.0软件时可以选择进入turboc2 文件夹,用鼠标点击名称为TC的图标,也可以在命令行方式下进入turboc2目录,然后键盘输入tc并回车即可。

运行Turbo C 2.0软件后,就进入了该软件的主菜单界面,如图1.14所示。

10

图1.14 Turbo C 2.0主菜单

由图1.14可见,Turbo C 2.0提供了8个功能菜单供编程使用,而这8个功能菜单又有各自的子菜单,各子菜单功能如下:

1、【File】菜单

打开【File】菜单可按Alt+F组合键,其子菜单内容如图1.15所示。用户要想选择某个子菜单的功能可使用↑或↓方向键移动选中并回车或直接按各子菜单名称的首字母,也可使用其对应的快捷键来选择相应的功能,快捷键显示在子菜单名称的右侧。

如果用户要返回上级菜单或取消某个操作,可以按ESC键操作。

图1.15 File子菜单

●【Load】:打开已有的某个文件,默认的文件后缀名为.C,当选中此项或直接按其对应的快捷键F3,系统将弹出一个对话框,用户可在对话框内输入需打开的文件名称(须包

11

含文件的存取路径)即可打开指定的文件。例如:需打开C盘user目录下的文件1.c,则需键入c:\%user\\1.c。

●【Pick】:选择此选项后,屏幕上会显示出用户最近编辑过的8个文件列表,用户可根据需要选择其中某个文件打开。

●【New】:选择此选项后,系统将打开一个新的空白文件进行编辑,其文件名为NONAME.C,用户可键入自己编写的源程序代码后存盘时再给该文件命名。

●【Save】:选择此选项后,系统将为用户保存其正在编辑的文件。注意:如果用户未在弹出的对话框中为需存盘的文件重新命名,则该文件就以原有的名字进行保存。

●【Write to】:该选项的功能相当于Word软件中的“另存为”功能,即将正在编辑的文件以另外的名字进行保存。

●【Directory】:选择此选项后,系统将弹出一个对话框要求用户输入一个路径名,完成后回车,系统将显示该路径下所有文件供用户选择。

●【Change dir】:其功能是更改系统默认的文件存取路径。

●【Os shell】:选择此选项后,用户可暂时离开Turbo C 2.0开发环境回到DOS命令状态下,此时用户可运行DOS命令。如需回到Turbo C 2.0环境中可在DOS提示符下键入EXIT命令并回车。

●【Quit】:选择此选项后,用户将彻底退出Turbo C 2.0,如用户在退出前未进行过保存操作,系统将会提示用户保存编辑的文件并允许用户修改要保存文件的文件名。

2、【Edit】菜单

该菜单下无其它子菜单,其功能是对用户打开的文件进行编辑,用户打开一个文件后就自动进入该功能。

在编辑中,用户可使用以下快捷键以方便文件的编辑。 ●Page Up:向上翻页 ●Page Down:向下翻页

●Home:将光标移动到当前行的头部 ●End:将光标移动到当前行的末尾 ●Ctrl+Y:删除光标所在行的内容 ●Ctrl+T:删除光标所在处的一个单词 ●Ctrl+KB:设置块的开始位置 ●Ctrl+KK:设置块的结束位置

12

③【Code generation】:该选项又包含多个选项,用以规划编译器产生的目标代码的形式。如图1.23所示。

图1.23 【Code generation】子菜单

⒈【Calling convention】:调用格式,用户可选择按照C语言或Pascal语言的方式进行函数调用时的参数传递。

⒉【Instruction set】:设置指令系统,可选择8088/8086或80186/80286指令系统。 ⒊【Floating point】:浮点指针设置,可选择仿真浮点、数学协处理器浮点或无浮点运算。

⒋【Default char type】:缺省字符类型设置,用以规定char类型。 ⒌【Alignment】:数据对齐方式设置,规定字对齐及字节对齐的规则。 ⒍【Generete underbars】:产生下滑棒。

⒎【Merge duplicate strings】:合并重复字符串,起优化作用。 ⒏【Standard stack frame】:设置标准堆栈的结构。 ⒐【Test stack overflow】:进行堆栈溢出的检测。 ⒑【Line numbers】:在目标文件中插入行号。

⒒【OBJ debug information】:在目标文件中生成调试信息。 ④【Optimization】:控制代码生成策略,有多个子选项供选择。 ⒈【Optimize for】:选择是对程序规模还是执行速度进行优化。 ⒉【Use register variables】:规定程序中是否可以使用寄存器变量。 ⒊【Register optimization】:尽可能多的使用寄存器变量。

18

⒋【Jump optimization】:去除多余的跳转语句和调整循环及switch语句以压缩程序代码的规模。

⑤【Source】:控制编译器处理源代码的方式,有多个子选项如下:

⒈【Indentifier length】:指定标识符中有效字符的个数,默认长度为32。 ⒉【Nested comments】:嵌套注释使用开关。

⒊【ANSI keywords only】:ANSI C关键字或Turbo C关键字使用开关。选项为On时用户只能使用ANSI C关键字,把Turbo C关键字看做是用户定义的标识符;选项为No时允许用户使用Turbo C关键字。

⑥【Error】:控制编译器编译时的诊断信息,多个子选项如下: ⒈【Error stop after】:规定停止编译时的错误个数,默认为25个。 ⒉【Warning stop after】:规定停止编译时的警告错误个数,默认为100个。 ⒊【Display warnings】:警告错误显示开关。 ⒋【Portability warnings】:移植性警告错误。 ⒌【ANSI Violations】:侵犯了ANSI关键字的警告错误。 ⒍【Common errors】:常见的警告错误。 ⒎【Less common errors】:少见的警告错误。

⑦【Names】:用于改变段 (segment)、组(group)和类(class)的名字,默认值为CODE、

DATA、BSS。

●【Linker】:本菜单设置有关链接的选择项,它有以下内容: ①【Map file】:选择是否产生.MAP文件。

②【Initialize segments】:是否在链接时初始化没有初始化的段。

③【Devault libraries】 :是否在链接其它编译程序产生的目标文件时去寻找其缺省库。

④【Graphics library】:是否链接graphics库中的函数。 ⑤【Warn duplicate symbols】:当有重复符号时产生警告信息。 ⑥【Stack warinig】:是否让链接程序产生No stack的警告信息。 ⑦【Case-sensitive link】:是否区分大、小写字符。

●【Environment】:本菜单用于设置某些文件自动存盘及制表键和屏幕大小。 ①【Message tracking】:此项功能有3个选项,分别为Current file: 跟踪在编辑窗口中的文件错误;All files: 跟踪所有文件错误;Off: 不跟踪。

19

②【Keep message】:编译前是否清除Message窗口中的信息。

③【Config auto save】:选On时,在运行程序或退出集成开发环境之前,如果Turbo C 2.0的配置被改过,则所做的改动将存入配置文件中,选off时不保存。

④【Edit auto save】:是否在Run或Shell之前自动存储编辑的源文件。 ⑤【Backup file】:是否在源文件存盘时产生后备文件 (.BAK文件) 。 ⑥【Tab size】:设置Tab键大小,默认为8。

⑦【Zoomed windows】:将现行活动窗口放大到整个屏幕,其热键为F5。 ⑧【Screen size】:设置屏幕文本大小。

●【Directories】:规定编译、链接时所需文件的路径, 有下列各项:

①【Include directories】:头文件的路径,默认路径为C:\\TC\\INCLUDE。多个子目录用\分开。

②【Library directories】: 库文件路径, 默认路径为C:\\TC\\LIB。多个子目录用\分开。

③【Output directories】:输出文件(.OBJ,.EXE,.MAP文件)的存储目录。 ④【Turbo C directories】:Turbo C 文件夹所在的路径。

⑤【Pick file name】:定义加载的pick文件名,如不定义则从current pick file中取。

注意:①②④选项用户须根据自己计算机中Turbo C 2.0的安装路径进行修改,否则会在编译时出现相关文件无法打开的错误。

●【Arguments】:允许用户使用命令行参数。

●【Save options】:保存用户对Turbo C 2.0环境所作的修改和配置到配置文件TCCONFIG.TC中。

注:如果用户对Turbo C 2.0环境进行了修改和配置,必须执行此选项。

●【Retrieve options】:装入一个配置文件到Turbo C中,系统将根据该配置文件调整相关配置。

7、【Debug】菜单

按Alt+D可进入该菜单,其功能主要用于程序错误的调试,如图1.24所示。

20

图1.24 【Debug】子菜单

●【Evaluate】:打开该选项后,用户可以输入要计算结果的表达式、显示表达式的结果和赋新值。

●【Call stack】:在运行Turbo C debuger 时用于检查堆栈情况。 ●【Find function】: 在运行Turbo C debugger时用于显示规定的函数。

●【Refresh display】: 若编辑窗口被用户窗口重写了,可用来恢复编辑窗口的内容。 ●【Display swapping】:设置程序调试时屏幕显示的转换方式。 ●【Source debugging】:设置程序链接时可使用的调试程序。 8、【Break/watch】菜单

按Alt+B可打开系统的断点设置及监视菜单,如图1.25所示。

图1.25 【Break/watch】子菜单

21

●【Add watch】:向监视窗口插入一监视表达式。

●【Delete watch】:从监视窗口中删除当前的监视表达式。 ●【Edit watch】: 在监视窗口中编辑一个监视表达式。 ●【Remove all watches】:从监视窗口中删除所有的监视表达式。 ●【Toggle breakpoint】:对光标所在的行设置或清除断点。 ●【Clear all breakpoints】:清除所有断点。

●【View next breakpoint】:将光标移动到下一个断点处。

1.2.2 Turbo C 2.0 的配置文件

配置文件是包含Turbo C 2.0有关信息的文件,系统默认的配置文件是TCCONFIG.TC,其中存有编译、链接的选择和路径等信息。可以用下述方法建立或修改Turbo C 2.0的环境配置:

1. 建立用户自命名的配置文件可以从Options菜单中选择Options/Save options命令,将当前集成开发环境的所有配置存入一个由用户命名的配置文件中。下次启动TC时只要在DOS下键入:tc/c<用户命名的配置文件名>就会按这个配置文件中的内容作为Turbo C 2.0的选择。

2. 若设置Options/Environment/Config auto save 为on,则退出集成开发环境时,当前的设置会自动存放到Turbo C 2.0配置文件TCCONFIG.TC中。Turbo C 在启动时会自动寻找这个配置文件。

3. 用TCINST设置Turbo C的有关配置,并将结果存入TC.EXE中。Turbo C 在启动时,若没有找到配置文件,则取TC.EXE中的缺省值。

1.2.3 Turbo C 2.0 环境下程序的编制实例

一个C语言的源程序要想最终得到结果,就要在Turbo C 2.0集成环境中完成程序的编辑、编译、错误调试、运行等各个步骤,下面用一个实例来描述C语言程序的开发过程。

现有一程序功能是完成两个变量值的交换,其代码如下: #include void swap(int *p1,int *p2) {

22

int temp; temp=*p1; *p1=*p2; *p2=temp; }

void main() {

int a,b; a=3,b=6; swap(a,b);

printf(“a=%d,b=%d\\n”,a,b) }

启动Turbo C 2.0后,按Alt+E进入编辑器,输入上面的程序代码并选择【File】\\【Save】选项进行源程序的保存,程序名称为exp1.c。

按Alt+C开始编译exp1.c文件,此时编译器的结果显示如图1.26所示。

图1.26 exp1.c编译后的结果显示

由结果信息可以看到,该程序有2个警告错误和一个一般错误,按任意键后系统会在Message区域显示错误的具体信息,如图1.27所示。

23

图1.27 exp1.c编译后错误信息

由图可以看出,exp1.c程序的两个警告错误都是出现在程序的第13行代码,系统提示此代码中参数传递时出现不可移植的指针转换;一般错误发生在程序的第15行,系统提示该行语句丢失了一个分号。

按回车键回到编辑状态,修改程序中语句swap(a,b);为swap(&a,&b);,另外一条语句 printf(“a=%d,b=%d\\n”,a,b)改为printf(“a=%d,b=%d\\n”,a,b);。

重新编译后,系统显示如图1.28所示。

图1.28 exp1.c重新编译后的结果

由图可以看出,此时程序已无任何错误,然后就可以按Alt+R开始程序的运行,运行后按Alt+F5屏幕上随即显示出程序的运行结果如图1.29所示。

24

图1.29 exp1.c运行结果

由结果显示可以看出,该程序运行正确。至此,exp1.c程序的编制结束,用户按任意键返回Turbo C 2.0环境对源程序进行存盘并退出即可。

1.2.4 Turbo C 2.0 环境下程序的调试实例

由于C语言的编辑器只能为用户检查程序中存在的语法和词法错误,而逻辑错误无法检查。因此,经常出现程序通过编译后运行结果不正确的情况,这时就需要对程序进行逻辑错误的跟踪和调试。在Turbo C 2.0环境中,逻辑错误的调试可以使用系统提供的调试器来完成,具体方法有以下两种:

1、单步调试

这种方法是一次仅运行一条程序代码,执行后就暂停,用户此时可以检查相关变量和表达式的值是否正确,最终发现程序中的逻辑错误。

例exp2.c:编程计算8!。 #include void main() {

int i,r=1; for(i=1;1<=8;i++) r*=i;

printf(“\\n%d\\n”,r);

25

}

程序经编译器处理显示无任何错误,但是运行程序后得到的结果为:-25216,显然这个结果是错误的。

接下来,我们按F7键开始程序的单步执行,此时系统窗口变化如图1.30所示,其中watch区域是供用户观察数据所用的。

图1.30 单步执行窗口

继续按F7键,使得屏幕亮条移到for(i=1;1<=8;i++)上,此时要想查看变量r的值就可按Ctrl+F7,系统弹出一个对话框,在其中输入要查看的变量名r,则在watch区域可看见此时变量r的值为1,这是正确的,如图1.31所示。

图1.31 变量r的初值

26

继续按F7单步执行程序,发现循环至到第7次时,变量r中的值依然正确,第8次循环后其值变成负数。经过分析,可以看出程序算法并没有错误,而是变量r的定义出现了问题,由于int类型变量的取值范围为:-32768~32767,而8!的值已经超出了这个范围,因此最终结果出错。修改程序后结果即正确,修改后程序代码如下:

#include void main() { int i; long r=1; for(i=1;1<=8;i++) r*=i;

printf(“\\n%ld\\n”,r);

}

由此可见,采用单步调试可以很方便地跟踪程序的执行过程,便于用户及时准确地发现程序中存在的逻辑错误。

2、断点调试

单步调试尽管能很方便地对程序的执行进行跟踪,但如果程序的代码较多,则使用单步调试就会影响程序的调试速度。这时,我们可以使用断点调试的方法。

断点调试的思想是在程序中设置若干个断点,程序执行到断点时就会暂停,用户此时可检查相关变量或表达式的值。如果正确,则继续运行程序到下一个断点,这样通过断点将一个程序分割成若干个小段,便于用户缩小错误的查找范围,从而能较快地发现错误。

设置断点的方法为:将光标移动到程序的某一行上,按Ctrl+F8,此行就变成一个颜色条表示断点所在。如需取消,则在断点位置再次按Ctrl+F8即可。程序运行到断点处,与单步调试一样,按Ctrl+F7可显示用户需查看的数据,继续运行按Ctrl+F9即可。

27

第二篇 C语言程序设计实验指导

实验1 C语言程序开发环境及上机过程

一、实验目的

1. 熟悉并掌握C语言开发环境——VC++6.0及Turbo C 2.0的使用方法。 2. 掌握C语言程序的编辑、编译、调试及运行的相关步骤及方法。 3. 了解C语言程序的结构特点。

二、预习内容及要求

1. 掌握VC++6.0及Turbo C 2.0的安装方法。

2. 熟悉VC++6.0及Turbo C 2.0的启动及退出方法,掌握VC++6.0及Turbo C 2.0各 工具栏的功能及使用方法。

3. 了解标准输入输出库函数的正确使用方法。

4.了解C语言程序的结构及输入输出函数的简单调用方法。

三、实验内容及要求

1.输入下列程序,练习VC++6.0及Turbo C 2.0下程序的编辑、编译及运行。 #include void main() {

printf(“Welcome to VC++ 6.0.”); }

1) 正确输入上例程序并完成程序的编译及运行;

2)不输入第一行语句#include ,重新编译程序; 3)不输入void,重新编译程序;

4)不输入程序中语句后的分号,重新编译程序。

2.给出程序运行结果并上机验证(要求上机前预先人工分析各程序并写出运行结果,

28

然后上机进行结果验证)。

#include void main() {

printf(“I am”); printf(“a student!\\n”); }

3.完成下例程序的编辑、编译、运行并观察结果,说明该程序的功能。 #include void main() {

int a.b,c;

printf(“Please input a,b:”); scanf(“%d,%d”,&a,&b); c=a+b;

printf(“%d+%d=%d\\n”,a,b,c); }

4.参考上例程序,试编程完成三个整数的加法。

29

实验2 顺序结构程序设计

一、实验目的

1.熟悉并掌握C语言程序的基本结构。 2.掌握C语言各种语句正确的使用方法。 3.熟悉利用指针变量进行间接访问的方法。 4. 重点掌握标准输入输出函数的使用方法。 5. 了解C语言程序各语句的执行顺序及过程。 6. 掌握简单顺序结构程序的设计方法。

二、预习内容及要求

1.熟悉表达式语句、复合语句的构造。

2.熟悉putchar、getchar、printf、scanf函数的使用方法。 3.掌握C语言程序的正确构造方法。

4.完成实验任务要求的各C语言程序代码的输入。

三、实验内容及要求

1. 给出程序运行结果并上机验证(要求上机前预先人工分析各程序并写出运行结果, 然后上机进行结果验证)。

程序1

#include void main() { char c1; int a; c1=’a’; a=2; c1+=a;

printf(“%c\\n”,c1);

30

}

1)将语句c1=’a’改写成c1=97并重新分析程序结果; 2)将语句c1=’a’改写成c1=”a” 并重新分析程序结果;

3)将语句printf(“%c\\n”,c1)改写成printf(“%d\\n”,c1) 并重新分析程序结果; 4)使用间接访问的方式改写该程序。 程序2

#include void main() {

int a,b,c;

printf(“enter a,b:”); scanf(“%d,%d”,&a,&b); c=++a*++b;

printf(“%d%d%d\\n”,a,b,c); }

1)将语句scanf(“%d,%d”,&a,&b)改写成scanf(“%d%d”,&a,&b) 并重新分析程序结果;

2)将语句c=++a*++b改写成c=a++*b++并重新分析程序结果;

3)将语句printf(“%d%d%d\\n”,a,b,c)改写成printf(“M]m\\n”,a,b,c) 并重新分析程序结果。 程序3

#include void main() {

float a,b,c=0; a=2.5; b=3.0; {float a;

31

a=4.0; c=a*b; } c+=a*b;

printf(“%f%f%f\\n”,a,b,c); }

1)如果没有语句c=a*b程序结果将会如何变化; 2)将程序中第二、三个花括号去掉并重新分析程序结果;

3)将语句printf(“%f%f%f\\n”,a,b,c)改写成printf(“%6.3f%6.2f%6.1f\\n”,a,b,c) 并重新分析程序结果。

2. 程序填空(根据给出程序的设计要求在划线部分填入正确的程序代码然后上机进行 程序的验证)。

程序1:请从键盘输入任意一个大写英文字母,然后将其转换成对应的小写字母输出。注意:部分源程序给出如下。请勿改动程序的任何内容,仅在程序中横线上填入所编写 的若干表达式或语句。

#include void main() {

char c1,*p; p=&c1;

______________; ______________;

printf(“%c%c\\n”,c1,*p); }

程序2:完成2个变量值的交换。

注意:部分源程序给出如下。请勿改动程序的任何内容,仅在程序中横线上填入所编写的若干表达式或语句。

#include

32

void main() {

int a,b,c;

printf(“Input a,b:”); scanf(“%d%d”,&a,&b); c=______; a=_______; b=______;

printf(“a=%d b=%d\\n”,a,b); }

程序3:键盘输入任意一个3位整数,分别输出该数的百、十及个位数字。

注意:部分源程序给出如下。请勿改动程序的任何内容,仅在程序中横线上填入所编写的若干表达式或语句。

#include void main() {

int a,b,c,d; scanf(“%d”,a); b=___________; c=___________; d=___________;

printf(“%d,%d,%d\\n”,b,c,d); }

3. 程序改错(改正下列程序中的错误然后上机进行程序的验证)。

程序1:利用指针变量实现2个变量值的交换。请改正程序中的错误,使它能得到正确结果。注意:不得增行或删行,也不得更改程序的结构。

#include void main()

33

{

int a,b,*pa,*pb;

/**********************found***********************/

pa=a; pb=&b;

scanf(“%d,%d”,&pa,&pb); pa=&b; pb=&a;

printf(“a=%d,b=%d\\n”,*pa,*pb); }

程序2:使用间接访问实现变量值的自增。请改正程序中的错误,使它能得到正确结果。注意:不得增行或删行,也不得更改程序的结构。

#include void main() {

int a,*p; p=&a;

/**********************found***********************/

scanf(“%d”,p); p++;

printf(“a=%d\\n”,*p); }

4.编程(根据给出的编程要求完成程序的编制及录入,然后上机进行程序的运行及调试)。

(1)输入三个数,计算其平均值。

(2)输入任意一个3位整数,将其各位数字反向输出(例如输入201,输出102)。 (3)从键盘输入3个字母,将每个字母转换成其后续第3个字母并输出其对应的字 符串。

34

(4)不使用多余变量完成2个变量值的交换。 (5)输入三角形的三边长,求出三角形面积并输出。

35

实验3 选择结构程序设计

一、实验目的

1.理解C语言表示逻辑量的方法。

2.掌握使用关系运算符和逻辑运算符构造关系表达式和逻辑表达式的方法。 3.熟练掌握if语句和switch语句的使用。 4.熟悉选择结构程序中语句的执行流程。 5.掌握选择结构程序的设计方法。

二、预习内容及要求

1.熟悉关系运算符和关系表达式、逻辑运算符和逻辑表达式。 2.熟悉if,if-else,switch语句的构造。 3.完成实验任务要求的各C语言程序代码的输入。 三、实验内容及要求

1.给出程序运行结果并上机验证(要求上机前预先人工分析各程序并写出运行结果, 然后上机进行结果验证)。

程序1

#include void main( ) {

int a=1,b=2,c=3;

if(c==a) printf(\else printf(\ }

1) 将c==a改写成c=a后重新分析程序结果; 2) 将a=1改写成a=0 后重新分析程序结果;

3) 将语句printf(\改写成printf(\重新分析 程序结果;

4)使用间接访问改写该程序。

36

程序2

#include void main( ) {

int a=2,b=7,c=5; switch(a>0)

{ case 1:switch(b<0)

{case 1:printf( \case 2:printf( \}

case 0: switch(c= =5)

{case 0: printf(\case 1: printf(\case 2: printf(\}

default: printf(\}

printf(\}

1)去掉程序中的break;语句,重新分析程序结果;

2)在第8行和第13行分别加上break;语句,重新分析程序结果。 程序3

#include void main() { int i;

scanf(“%d”,&i); switch(i)

{case 1:printf(“welcome!”)

37

本文来源:https://www.bwwdw.com/article/7l5.html

Top