1、 程序设计(C)课程的实验环境实验的基本任务(1)Visual C+6.0 集成编译环境;(2)C 程序的结构,掌握 C 程序由文件构成、文件由函数构成、函数由语句构成;(3)C 程序设计中的保留字与标识符;(4)程序设计中的一般语法规则。实验目的学会顺序程序设计的思想;熟悉 Visual C+6.0 集成编译环境的使用,达到熟练使用一种编译器;初步掌握 C 程序的结构,掌握 C 程序由一个或多个文件构成,文件由一个或多个函数构成,函数由语句构成,语句由标识符、运算符构成,掌握 C 程序设计中的保留字与标识符;掌握程序设计中的一般语法规则。熟练掌握各种数据类型的常用输入输出格式,并学会使用输入
2、输出函数;学会使用表达式。实验的基本仪器设备和耗材计算机、Visual C+6.0任务要求的描述1 Visual C+6.0 编程环境VC+6.0 是 Microsoft 公司出品的基于 Windows 环境的 C/C+开发工具,它是Microsoft Visual Stdio 套装软件的一个组成部分。C 源程序可以在 VC+6.0 集成环境中进行编译、连接和运行。1 VC+6.0 主窗口从 Visual Stdio 的光盘中运行 VC+6.0 安装程序(Setup.exe) ,完成安装后,就可以从桌面上顺序选择“开始/程序 /Microsoft Visual Stdio/Microsoft
3、Visual C+6.0”或双击桌面上的 VC+6.0 快捷图标来启动。启动后的 VC+6.0 主窗口如图 0-1 所示。图 0-1 VC+6.0 主窗口2 输入和编辑 C 源程序在 Visual C+主窗口的主菜单中选择“文件/新建” ,屏幕上出现“新建对话框” ,如图0-2 所示。单击此对话框的“ 文件”选项卡,选择“C+ Source File”选项建立新的 C+源程序文件,然后在对话框右边的目录文本框中输入准备编辑的源程序文件的存储路径(如:D:C 源程序) ,在对话框右侧的文件文本框中输入准备编辑的 C 源程序文件名(如:sy0_1.c) 。后缀.c 表示建立的是 C 源程序,若不加
4、后缀,则默认的文件后缀为.cpp,表示建立的是 C+源程序。图 0-2 【新建】对话框单击“确定”按钮,返回 Visual C+主窗口,此时窗口的标题栏中显示当前编辑的源程序文件名 sy0_1.c 如图 0-3 所示。可以看到光标在程序编辑窗口闪烁,表示程序编辑窗口已激活,可以输入和编辑源程序了。VC 编辑器的编辑功能和 Windows 的记事本很相似,并提供了许多用于编写代码的功能,如关键字加亮、自动调整格式等。鼠标和键盘配合使用,可大大加快编写速度。程序输入完毕选择“文件/保存 ”,或单击工具栏上的“保存”按钮,也可以用快捷键来保存文件。图 0-3 编辑窗口3 编译、连接和运行程序编写完毕
5、后,选择菜单“编译/编译”命令,或单击工具栏上的“编译”图标,也可以按 键,开始编译。但在正式编译之前,VC 会先弹出如图 0-4 所示的对话框,询问是否建立一个默认的项目工作区。VC 必须有项目才能编译,所以这里必须回答【是】 。图 0-4在进行编译时,编译系统检查源程序中的语法,并在主窗口下部的调试信息窗口输出编译的信息,如果有语法错,就会指出错误的位置和性质,并统计错误和警告的个数,如图 0-5 所示。图 0-5如果编译没有错误,在得到目标程序(如 sy0_1.obj)后,就可以对程序连接了,单击键或工具栏图标 ,生成应用程序的.EXE 文件(如 sy0_1.exe) 。以上介绍的是分别
6、进行程序的编译与连接,实际应用中也可以直接按键一次完成编译与连接。在得到可执行文件后(如 sy0_1) ,就可以运行程序了。选择菜单“编译/执行” ,或单编译 运行击工具栏上的执行图标 ,也可以使用快捷键,程序将在一个新的 DOS 窗口中运行。程序运行完毕后,系统会自动加上一行提示信息“Press any key to continue”,如图0-6 所示,按照提示按任意键即关闭 DOS 运行窗口返回 VC+6.0 开发环境。图 0-6 sy0_1 程序运行结果图 0-7 是“编译连接”工具栏,它提供了常用的编译、连接以及运行操作命令。表 0-1则是编译、连接以及运行命令的功能列表。图 0-7
7、 “编译连接”工具栏表 0-1 编译连接工具栏按钮命令及功能描述按钮命令 功能描述Compile 编译 C 或 C+源代码文件Build 生成应用程序的.EXE 文件Stop Build 停止编译和连接Execute 执行应用程序Go 单步执行Inserrt/Remove Breakpoint 插入或消除断点4关闭程序工作区当一个程序编译连接后,VC+系统自动产生相应的工作区,以完成程序的运行和调试。若需要执行第二个程序时,必须关闭前一个程序的工作区,然后通过新的编译连接,产生第二个程序的工作区。“文件”菜单提供关闭程序工作区功能,如图 0-8(a),执行“关闭工作区”菜单功能,然后在如图 0
8、-8(b)对话框中选择 【否】按钮。如果选择【 是】按钮将同时关闭源程序窗口。(a) (b)图 0-8 关闭程序工作区5程序的调试程序调试的任务是发现和改正程序中的错误,使程序能正常运行。编译系统能检查程序的语法错误。语法错误分为两类:一类是致命错误,以 error 表示,如果程序中有这类错误,就通不过编译,无法形成目标程序,更谈不上运行了;另一类是轻微错误,以 warning表示,这类错误不影响生成目标程序和程序的执行,但可能影响运行的结果,因此也应当改正,使程序既无 error,也无 warning。图 0-9在图 0-9 下方的调试窗口中可以看到编译的信息,指出源程序有 1 个 erro
9、r 和 0 个warning。用鼠标移动调试窗口右侧的滚动条,可以看到程序出错的位置和性质。用鼠标双击调试信息窗口的报错行,则在程序窗口中出现一个粗箭头指向被报错的程序行,提示出错的位置。根据出错内容提示信息(missing ; before ),经检查程序,发现在程序第 4行的末端漏写了分号。注意,在分析编译系统错误信息报告时,要检查出错点的上下行。当所有出错点均改正后,再进行编译调试,直至编译信息为:0 error(s),0 warning(s)表示编译成功。(1)程序执行到中途暂停以便观察阶段性结果方法一:使程序执行到光标所在的那一行暂停。 在需暂停的行上单击鼠标,定位光标; 如图 0-
10、10 所示,选择菜单“编译/开始调试/Run to Cursor”,或按,程序将执行到光标所在行会暂停。如果把光标移动到后面的某个位置,再按,程序将从当前的暂停点继续执行到新的光标位置,第二次暂停。图 0-10 执行到光标所在行暂停方法二:在需暂停的行上设置断点; 在需设置断点的行上单击鼠标,定位光标; 按“编译微型条 ”中最右面的按钮 ,或按设置断点。被设置了断点的行前面会有一个红色圆点标志。(2)设置需观察的结果变量按照上面的操作,使程序执行到指定位置时暂停,目的是为了查看有关的中间结果。在如图 0-11 中,左下角窗口中系统自动显示了有关变量的值,其中 a 和 b 的值分别是5、6,而变
11、量 c、d 的值是不正确的,因为它们还未被赋值。图中左侧的箭头表示当前程序暂停的位置。如果还想增加观察变量,可在图中右下角的“Name ”框中填入相应变量名。图 0-11 观察结果变量(3)单步执行当程序执行到某个位置时发现结果已经不正确了,说明在此之前肯定有错误存在。如果能确定一小段程序可能有错,先按上面步骤暂停在该小段程序的头一行,再输入若干个查看变量,然后单步执行,即一次执行一行语句,逐行检查下来,观察错误发生在哪一行。当程序运行于 Debug 状态下时,程序会由于断点而停顿下来。原来的 “编译”菜单也变成了“Debug ”菜单,如图 0-12 所示。运行当前箭头指向的代码即单步执行按【
12、 Step Over】按钮或 ;如果当前箭头所指的代码是一个函数的调用,想进入函数进行单步执行,可按【 Step Into】按钮或;如果当前箭头所指向的代码是在某一函数内,想结束函数的单步执行,使程序运行到函数返回处,可按【 Step Out】按钮或。对不是函数调用的语句来说,与 作用相同。但一般对系统函数不要使用 。图 0-12 “Debug”菜单(4)断点的使用使用断点可以使程序暂停。但一旦设置了断点,每次执行程序都会在断点上暂停。因此调试结束后应取消所定义的断点。方法是:先把光标定位在断点所在行,再按“编译微型条”中最右面的按钮 或,该操作是一个开关,按一次是设置,按二次是取消设置。如果
13、有多个断点想全部取消,可执行“编辑”菜单中的“断点”菜单项,屏幕上会显示“Breakpoints ”窗口,如图 0-13 所示,窗口下方列出了所有断点,按“Remove All”按钮,将取消所有断点。断点通常用于调试较长的程序,可以避免使用“Run to Cursor”(运行程序到光标处暂停)或 功能时,经常要把光标定位到不同的地方。而对于长度为上百行的程序,要寻找某位置并不太方便。如果一个程序设置了多个断点,按一次执行键会暂停在第一个断点,再按一次会继续执行到第二个断点暂停,依次执行下去。图 0-13 取消所有断点(5)停止调试使用“Debug”菜单的“Stop Debugging”菜单项,
14、或键可以结束调试,从而回到正常的运行状态。实验 1 初识 C 程序【实验 1-1】程序调试1)编辑下列程序 #include int main( )printf(“ 欢迎学习 C 语言程序设计!n “);return 0;2)仔细观察屏幕的输入程序,检查程序有无错误。此处贴运行结果图,给图加上标号图 1.x(从 1.1 开始一次编号,1.2,1.3)3)对该程序进行编译,查看编译输出窗口,检查是否有错误,有错误需要改正错误,无错误就可以运行程序。4)如把程序改为:#include int Main( )printf(“ 欢迎学习 C 语言程序设计!n “);return 0;编译后有什么错误提
15、示?在 C 程序设计中你能得出什么结论?把编译错误提示图剪切下来。5)如把程序改为:#include int main( )printf(“ 欢迎学习 C 语言程序设计!n “) return 0;编译后有什么错误提示?在 C 程序设计中你能得出什么结论?把编译错误提示图剪切下来。6)把程序改为:#include int main( )int for=1;printf(“ 欢迎学习C语言程序设计!n “) return 0;编译后有什么错误提示?在 C 程序设计中你能得出什么结论?把编译错误提示图剪切下来。【实验 1-2】程序调试编辑、调试以下程序。在 Visual C+环境下新建文件,单击菜
16、单“开始程序Microsoft Visual C+6.0Microsoft Visual C+6.0文件新建文件C+ Sourse File”,输入文件名 ex1-2.c,程序代码如下:#include main()printf(“ 用户登录 n“);printf(“-n“);printf(“请输入用户名: n“);printf(“-n“);printf(“请输入您的密码:n“);观 察 程 序 运 行 的 结 果 , 将 运 行 结 果 贴 到 下 面 ?【实验 1-3】程序调试1)编辑、调试以下程序。步骤 1:在 Visual C+环境下新建文件,可单击菜单“开始 程序Microsoft
17、Visual C+6.0Microsoft Visual C+6.0”,关闭“每日提示” 。 步骤 2:单击菜单“文件新建文件C+ Sourse File”,输入文件名 ex1-3.c,单击确定按扭。步骤 3:在编辑框内输入 C 源程序 ex1-3.c,如图 1-1 所示。图 1-1 源程序编辑区步骤 4:在 Visual C+环境下单击工具图标 ,编译源程序 ex1-3.c,产生可执行文件ex1-3.exe。步骤 5:单击执行图标 ,执行程序 ex1-3.exe。(1)在程序 ex1-3.c 中,如果没有语句 int x,y;编译程序后出现的错误提示是什么?在 C 程序设计中要注意什么问题?(2)在程序 ex1-3.c 中,如把语句 scanf(“%d %d“,printf(“%d,%dn“,num1,num2);printf(“num1=%d, num2 = %dn“,num1,num2);(1) 删除“,num2=4”,再编译程序,阅读错误提示,说明其意思,并根据错误提示进行修改。(2) 删除“=4” ,再编译并运行程序,观察程序的运行结果,并写下其原因,