《C程序设计》实验指导 《C程序设计》教研组
1 《C 程序设计》实验指导 《C 程序设计》教研组
上机操作简介 用 Turbo c上机过程 Turbo C是一个集程序编辑、编译、连接、调试为一体的C语言程序开发软件,具有速度快、 效率高、功能强等优点,使用非常方便。C语言程序员可在 Turbo C环境下进行全屏幕编辑,利 用窗口功能进行编译、连接、调试、运行、环境设置等工作, 在D0S提示符下键入T并回车:或在 WINDOWS环境下,点击“我的电脑”或“资源管理器 图标,找到TC.EXE文件,直接双击该文件,进入TC屏和含本产品版本的框,当击任一键后,版 本信息即消失,全主屏仍然保持(按ALT+ ENTER,转入全屏显示)。 TC主屏,由四部分组成:主菜单、编辑窗口、消息窗口和功能键提示行 1.TC编辑器简介 编辑窗口中插入( Insert)模式下输入代码时,可用回车键来结束一行(TC编辑器不自动 换行)。最大行宽为248个字符,编辑器窗口宽77列,如打过77列,窗口随着字符的键入滚动 TC屏状态行告诉光标在文件中行、列。 编辑窗口里如何操作源文件 如果在调用编辑窗口之前未装入文件,即么TC编辑器将自动命名为 NONAME.C,这时编辑器 具有一切特征,可以 ·建立名为 NONAME. C或别的名字的新源文件 装入编辑器一已存在的文件 从源文件列表中选择一个装入窗口进行编辑 保存编辑窗口中的文件 把编辑器里的文件写入一个新文件。 ·消息窗口和编辑窗口之间进行切换。 创建和编辑源文件,但还未编译时,勿需消息窗口,所以可用F5把编辑窗口扩大到整个屏 幕,再按F5还原(回到分屏模式)。 1)创建源文件 可用下面两种方法建立文件 ·主菜单中,选File/New,再按回车键,可打开编辑窗口,文件名为 NONAME.C ·主菜单中,选File/Load,装入文件名提示框打开,键入新源文件名。(任何时候按热键 F3也可达到相同目的)。 File/Load或File/Pick可装入编辑一已存在的文件。 主菜单中选File/Load后,可以: ·键入想编辑文件的名字:例如,路径可以接受,C:\ TURBOC\ TESTFILE.C ·在装入文件名字提示框中打入过通匹符(用Ds中*和?匹配符),然后按回车键。*.* 显示当前目录中的所有文件和其它子目录。目录名后跟反斜杠(\)。选择目录将显示其中 的文件。例如,键入C:\*.,只显示根目录中具有该扩展名的文件。 按Up/①own及Left/ Right光标键把高亮长条移到所需文件的名字上,回车;即可装入选择 的文件,当前的状态是编辑状态
2 上机操作简介 一.用 Turbo C 上机过程 Turbo C 是一个集程序编辑、编译、连接、调试为一体的 C 语言程序开发软件,具有速度快、 效率高、功能强等优点,使用非常方便。C 语言程序员可在 Turbo C 环境下进行全屏幕编辑,利 用窗口功能进行编译、连接、调试、运行、环境设置等工作。 在 DOS 提示符下键入 TC 并回车;或在 WINDOWS 环境下,点击“我的电脑”或“资源管理器” 图标,找到 TC.EXE 文件,直接双击该文件,进入 TC 屏和含本产品版本的框,当击任一键后,版 本信息即消失,全主屏仍然保持(按 ALT+ENTER,转入全屏显示)。 TC 主屏,由四部分组成:主菜单、编辑窗口、消息窗口和功能键提示行。 1. TC 编辑器简介 编辑窗口中插入(Insert)模式下输入代码时,可用回车键来结束一行(TC 编辑器不自动 换行)。最大行宽为 248 个字符,编辑器窗口宽 77 列,如打过 77 列,窗口随着字符的键入滚动。 TC 屏状态行告诉光标在文件中行、列。 编辑窗口里如何操作源文件 如果在调用编辑窗口之前未装入文件,即么 TC 编辑器将自动命名为 NONAME.C,这时编辑器 具有一切特征,可以: · 建立名为 NONAME.C 或别的名字的新源文件。 ·装入编辑器一已存在的文件。 ·从源文件列表中选择一个装入窗口进行编辑。 ·保存编辑窗口中的文件。 ·把编辑器里的文件写入一个新文件。 ·消息窗口和编辑窗口之间进行切换。 创建和编辑源文件,但还未编译时,勿需消息窗口,所以可用 F5 把编辑窗口扩大到整个屏 幕,再按 F5 还原(回到分屏模式)。 1) 创建源文件 可用下面两种方法建立文件: ·主菜单中,选 File/New,再按回车键,可打开编辑窗口,文件名为 NONAME.C · 主菜单中,选 File/Load,装入文件名提示框打开,键入新源文件名。(任何时候按热键 F3 也可达到相同目的)。 File/Load 或 File/Pick 可装入编辑一已存在的文件。 主菜单中选 File/Load 后,可以: · 键入想编辑文件的名字;例如,路径可以接受,C:\TURBOC\TESTFILE.C ·在装入文件名字提示框中打入过通匹符(用 DOS 中* 和?匹配符),然后按回车键。*.* 显示当前目录中的所有文件和其它子目录。目录名后跟反斜杠(\)。选择目录将显示其中 的文件。例如,键入 C:\*.,只显示根目录中具有该扩展名的文件。 按 Up/Down 及 Left/Right 光标键把高亮长条移到所需文件的名字上,回车;即可装入选择 的文件,当前的状态是编辑状态
还有一个热键可重装入(加载)先前装入的文件,按ALTF6(改变窗口内容,切换当前编 辑器里的文件与前次加载的文件)。 2)源文件存盘 系统中任何时候,按F2 主菜单中,选择File/Save 3)写输出文件 可以把编辑器里的文件写到一个新文件,也可重写一个已存在文件。即可以写到当前(缺省 目录,也可以写到另外一个驱动器和目录里 2.菜单命令简介 主菜单中,选File/ Write to,然后在新名字提示窗口中,键入新文件全名;例如: C: \dir\subdir\filename. ext 主菜单中包含一些用户主要使用的条目:装入、编辑、编译、连接、调试及运行 Turob C程 序。这八个菜单选择包括:File、Edit、Run、 Compile、 Project、 Options、 Debug和 Break/ Watch 这里给出它们的详细描述。主菜单中的一些下拉菜单中的任选项是为高级编程服务的,第三章再 作详述。 1)文件菜单 文件下拉菜单提供了装入已存在文件;建立编辑器:然后,可将其存入任何一个目录任何 个文件名。另外,通过文件菜单中可以改变目录;暂时退到命令解释程序,或者说退出 Turbo C Load(加载) 装入一个文件,可用类似DOS的匹配符(如*.C)来进行列表选择,也可装入某一个文件 只要给出其文件名即可。 注:若驱动器或路径给错了,屏幕上将出现一错误框。确认框是在未存一个修改过的文件前 又加载另一文件的情况下出现的。不论哪种情况,只有敲了所需键之后热键才起作用 Pick(选择) 最近装入进编辑窗口的8个文件列成一个表,让用户选择其一,选择后又装入编辑器,光标 置在上次修改过的地方。若选了“— -Load file-”条目,屏幕上将出现 Load file相应热键是 ALt X 2)编辑命令 编辑命令调用内部编辑器。编辑器中按F10可返回主菜单(或用ALT加所需主菜单命令的首 字母),这时仍然保持在屏幕上,主菜单中按ESC或E,即可回到编辑器(按ALTE也可,且任何 时候都起作用)。 编辑命令简要说明 下面是最常用的编辑命令的一个提要: Up/Down、Left/ Right和Pgup/PgDn键翻滚正文 CTRL Y删除一行。 · CTRL T删除一个单词。 · CTRL KB设置(开始)
3 还有一个热键可重装入(加载)先前装入的文件,按 ALT_F6(改变窗口内容,切换当前编 辑器里的文件与前次加载的文件)。 2) 源文件存盘 ·系统中任何时候,按 F2 ·主菜单中,选择 File/Save 3) 写输出文件 可以把编辑器里的文件写到一个新文件,也可重写一个已存在文件。即可以写到当前(缺省) 目录,也可以写到另外一个驱动器和目录里。 2. 菜单命令简介 主菜单中,选 File/Write To, 然后在新名字提示窗口中,键入新文件全名;例如: C:\dir\subdir\filename.ext 主菜单中包含一些用户主要使用的条目:装入、编辑、编译、连接、调试及运行 Turob C 程 序。这八个菜单选择包括:File、Edit、Run、Compile、Project、Options、Debug 和 Break/Watch。 这里给出它们的详细描述。主菜单中的一些下拉菜单中的任选项是为高级编程服务的,第三章再 作详述。 1) 文件菜单 文件下拉菜单提供了装入已存在文件;建立编辑器;然后,可将其存入任何一个目录任何一 个文件名。另外,通过文件菜单中可以改变目录;暂时退到命令解释程序,或者说退出 Turbo C。 Load (加载) 装入一个文件,可用类似 DOS 的匹配符(如*.C)来进行列表选择,也可装入某一个文件, 只要给出其文件名即可。 注:若驱动器或路径给错了,屏幕上将出现一错误框。确认框是在未存一个修改过的文件前 又加载另一文件的情况下出现的。不论哪种情况,只有敲了所需键之后热键才起作用。 Pick(选择) 最近装入进编辑窗口的 8 个文件列成一个表,让用户选择其一,选择后又装入编辑器,光标 置在上次修改过的地方。若选了“—Load file—”条目,屏幕上将出现 Load File 相应热键是 ALT_X. 2) 编辑命令 编辑命令调用内部编辑器。编辑器中按 F10 可返回主菜单(或用 ALT 加所需主菜单命令的首 字母),这时仍然保持在屏幕上,主菜单中按 ESC 或 E,即可回到编辑器(按 ALT_E 也可,且任何 时候都起作用)。 编辑命令简要说明 下面是最常用的编辑命令的一个提要: · Up/Down、Left/Right 和 Pgup/PgDn 键翻滚正文。 · CTRL_Y 删除一行。 · CTRL_T 删除一个单词。 · CTRL_KB 设置(开始)
· CTRL KK设置(结尾)置块标块。 · CTRL KV块移动。 CTRL KC块拷贝。 CTRL KY块删除 3)Run运行 Run/Run运行程序可用 Options/ Argument传递参数。若自上次编译后源代码有变动,则启 用“make”来重编译、连接程序。(“make”是集成开发环境里的一程序开发工具。) 若不想调试程序,编译连接时 Debug/ Source debugging开关应置为None或 Standalone 否则,产生的可执行代码中将包含调试信息,在下面几个方面对程序的执行效果有所影响: 若上次编译后未修改过源代码: *若设有断点则Run/Run使程序运行到下一断点。否则运行到底。 若上次编译后修改过源代码: *若已通过Run/Step0ver(F8)或Run/ Trace into(F7)单步执行程序,Run/Rum将在屏幕 上询问是否要重make程序。 *按Y,将重新编译连接程序,再从头开始运行 *按N,则运行至下一断点。或运行到底(若无断点) 若不是在单步执行,则在重新编译连接程序之后,从头开始运行 调试命令及热键 菜单命令 Run/ Toto cursor运行程序到光标所在行。将初始化一调试节, CTRL F2|Rum/ /Program Reset结束当前调试节,释放分配的内存,关闭所有文件。仅在 调节有效 Rm/ Trace into|运行当前函数中的下一条语句。若遇到更低一级的函数调 用,而该函数编译时0/C/C/ OB Debug Information开关 为On,则跟踪进函数内部。将初始化一调试节。 m/ /Step Over运行当前函数中的下一条语句。不跟踪宗函数。将初始化 调试节 CTRL F9 Run/Run 运行程序,有或没有调试器,必要时将编译、连接源文件, 如经编译了,而连接时 Debug/Source Debugging FW 0/C/BJ Debug Information 又置为On,则程序运行至断点或运行完 放大缩小活动窗口 ALT F5 显示转入用户屏,击任意键返回集成环境屏 循环激活编辑、监视和消息窗口 ALt F6 若编辑窗口是活动的,则转到上次装入编辑器的文件,若 下面的那个窗口是活动的,则进行监视窗口与消息窗口间 的切换 CTRL F9Run/Run 运行程序,有或没有调试器,必要时将编译、连接源文件 如经编译了,而连接时 Debug/Source Debugging FH O/C/0B JDebug Information 又置为On,则程序运行至断点或运行完 Project,/ Remove Messages删除消息窗口中的内容
4 · CTRL_KK 设置(结尾)置块标块。 · CTRL_KV 块移动。 · CTRL_KC 块拷贝。 · CTRL_KY 块删除。 3) Run 运行 Run/Run 运行程序可用 Options/Argument 传递参数。若自上次编译后源代码有变动,则启 用“make”来重编译、连接程序。(“make”是集成开发环境里的一程序开发工具。) 若不想调试程序,编译连接时 Debug/Source Debugging 开关应置为 None 或 Standalone。 否则,产生的可执行代码中将包含调试信息,在下面几个方面对程序的执行效果有所影响: 若上次编译后未修改过源代码: * 若设有断点则 Run/Run 使程序运行到下一断点。否则运行到底。 若上次编译后修改过源代码: * 若已通过 Run/Step Over(F8) 或 Run/Trace Into (F7)单步执行程序,Run/Run 将在屏幕 上询问是否要重 make 程序。 * 按 Y,将重新编译连接程序,再从头开始运行。 * 按 N,则运行至下一断点。或运行到底(若无断点)。 若不是在单步执行,则在重新编译连接程序之后,从头开始运行。 调试命令及热键 热 键 菜单命令 说 明 F4 Run/To to Cursor 运行程序到光标所在行。将初始化一调试节。 CTRL_F2 Run/Program Reset 结束当前调试节,释放分配的内存,关闭所有文件。仅在 调节有效。 F7 Run/Trace Into 运行当前函数中的下一条语句。若遇到更低一级的函数调 用,而该函数编译时 O/C/C/OB Debug Information 开关 为 On,则跟踪进函数内部。将初始化一调试节。 F8 Run/Step Over 运行当前函数中的下一条语句。不跟踪宗函数。将初始化 一调试节。 CTRL_F9 Run/Run 运行程序,有或没有调试器,必要时将编译、连接源文件, 如经编译了,而连接时 Debug/Source Debugging 和 O/C/OBJ Debug Information 又置为 On,则程序运行至断点或运行完。 F5 放大缩小活动窗口 ALT_F5 显示转入用户屏,击任意键返回集成环境屏 F6 循环激活编辑、监视和消息窗口 ALT_F6 若编辑窗口是活动的,则转到上次装入编辑器的文件,若 下面的那个窗口是活动的,则进行监视窗口与消息窗口间 的切换 CTRL_F9 Run/Run 运行程序,有或没有调试器,必要时将编译、连接源文件, 如经编译了,而连接时 Debug/Source Debugging 和 O/C/OBJDebug Information 又置为 On,则程序运行至断点或运行完。 Project/Remove Messages 删除消息窗口中的内容
4)编译菜单 可用编译菜单里的条目来将源文件编译成OBJ文件( Compile to OBJ):生成.EXE文件(Link EXE File);重建( Build all):设置 Prinmary C File;运行或显示上次编译的信息( Get Info)。 Compile to OBJ编译生成目标码 此命令将一.C源文件编译成.0BJ文件,同时显示生成的文件的名字;例如C: EXAMPLE.OBJ。,0BJ文件名由以下两种方法依序产生: 源C文件名:或者, ·如没说明时,上次装入编辑窗口的文件名。 Turbo C编译时,弹出一窗口,显示编译结果。编译/组装(make)完之后,击任一键去掉 编译窗口。若发现错,则转到消息窗口的第一条错误上(高亮度标志 此命令热键为ALTF9。 Make eXe file生成执行文件 此命令调用 Project Make来生成一.EXE文件,显示生成的.EXE文件名,例如 C: EXAMPLE. EXE 5)消息窗口 编译和调试源程序时都需要通过消息窗口( Message Window)来察看诊断消息。TC唯一的错 误跟踪机制把所有编译文件的警告和错误都更在消息窗口若悬河了,同时在编辑窗口中指岀错误 在源文件中的相应位置(依 Option/ Envionment菜单中的 Message tracking命令设置而定)。 上机实验总的目的和要求 学习程序设计,上机实验总的目的 (1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,很难记住,通过多次上机, 就能自然地、熟练地掌握 2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。 3)学会上机调试程序,要善于发现程序中的错误,并能很快地排除这些错误,使程序能正确 运行。计算机技术是实践性很强的技术,要求从事这一领域的人不仅能了解和熟悉有关理 论和方法,还要自已动手实现。对程序设计者来说,要求会编程序并上机调试通过。因此 调试程序本身是程序设计课程的一个重要的内容和基本要求,应充分重视。在实验时千万 不要在程序通过后就认为万事大吉、完成任务,而应当在已通过的程序基础上作一些改动 再进行编译、连接和运行,注意观察和分析所出现的情况,这样的学习才会有真正的收获, 才是灵活主动地学习而不是呆板被动地学习 上机实验一般应包括以下几个步骤 (1)准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机,以提高 上机效率。以程序中自己有疑问的地方,应作出记号,以便在上机时给予注意 2)上机输入和调试自已所编的程序。上机过程中出现的问题,除了系统题以外,一般应自 已独立处理,不要轻易问教师。尤其对“出错信息”,应善于自已分析判断。这是学习调试 程序的良好机会 使用键盘时,最好采用正确的指法击键,为今后提高输入速度打下基础。 3)上机结束后,应对运行情况作出分析,总结本次调试程序所取得的经验,并由指导老师 登记成绩,此成绩将作为总评成绩的一部分 下面给出八个实验内容,供学生上机用
5 4) 编译菜单 可用编译菜单里的条目来将源文件编译成 OBJ 文件(Compile to OBJ);生成.EXE 文件(Link EXE File);重建(Build All);设置 Prinmary C File;运行或显示上次编译的信息(Get Info)。 Compile to OBJ 编译生成目标码 此命令将一.C 源文件编译成.OBJ 文件,同时显示 生成的文件的名字;例如 C: EXAMPLE.OBJ。.OBJ 文件名由以下两种方法依序产生: · 源.C 文件名;或者, · 如没说明时,上次装入编辑窗口的文件名。 Turbo C 编译时,弹出一窗口,显示编译结果。编译/组装(make)完之后,击任一键去掉 编译窗口。若发现错,则转到消息窗口的第一条错误上(高亮度标志)。 此命令热键为 ALT_F9。 Make EXE File 生成执行文件 此命令调用 Project_Make 来生成一.EXE 文件,显示生成的.EXE 文件名,例如: C:EXAMPLE.EXE 5) 消息窗口 编译和调试源程序时都需要通过消息窗口(Message Window)来察看诊断消息。TC 唯一的错 误跟踪机制把所有编译文件的警告和错误都更在消息窗口若悬河了,同时在编辑窗口中指出错误 在源文件中的相应位置(依 Option/Envionment 菜单中的 Message Tracking 命令设置而定)。 二.上机实验总的目的和要求 学习程序设计,上机实验总的目的: (1)加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,很难记住,通过多次上机, 就能自然地、熟练地掌握。 (2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C语言程序开发的环境。 (3)学会上机调试程序,要善于发现程序中的错误,并能很快地排除这些错误,使程序能正确 运行。计算机技术是实践性很强的技术,要求从事这一领域的人不仅能了解和熟悉有关理 论和方法,还要自已动手实现。对程序设计者来说,要求会编程序并上机调试通过。因此 调试程序本身是程序设计课程的一个重要的内容和基本要求,应充分重视。在实验时千万 不要在程序通过后就认为万事大吉、完成任务,而应当在已通过的程序基础上作一些改动, 再进行编译、连接和运行,注意观察和分析所出现的情况,这样的学习才会有真正的收获, 才是灵活主动地学习而不是呆板被动地学习。 上机实验一般应包括以下几个步骤: (1) 准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机,以提高 上机效率。以程序中自已有疑问的地方,应作出记号,以便在上机时给予注意。 (2) 上机输入和调试自已所编的程序。上机过程中出现的问题,除了系统题以外,一般应自 已独立处理,不要轻易问教师。尤其对“出错信息”,应善于自已分析判断。这是学习调试 程序的良好机会。 使用键盘时,最好采用正确的指法击键,为今后提高输入速度打下基础。 (3) 上机结束后,应对运行情况作出分析,总结本次调试程序所取得的经验,并由指导老师 登记成绩,此成绩将作为总评成绩的一部分。 下面给出八个实验内容,供学生上机用
实验 目的要求 1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。 2.熟悉并掌握在该系统上如何编辑、编辑、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 4.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值 的方法,了解以上类型数据输出时所用的格式转换符。 5.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和 自减(-)运算符的使用。 实验内容 学习从开机开始的操作,包括如何建立子目录、使用操作命令列目录、删除文件、复 制文件等。 2.调试编辑程序。 输入程序,以test1.c为文件名保存,并进行编译和运行 printf(“ This is a book..”); printf(“ This is a pen.”); 应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标 程序的后缀是什么形式的?若将两个语句分行输出,应怎样修改程序? 3.输入并运行程序: mainO char cl, c2 cl=97 printf(“%c%cn printf(“%c%cⅦn”,c1-32,c2-32) printf (%c, %d, cl, c2) 在此基础上 1)加一个 printf语句,并运行之。 printf(“%d,%d”,c1,c2); 2)再将第三行改为: int cl, c2
6 实 验 一 一.目的要求 1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。 2.熟悉并掌握在该系统上如何编辑、编辑、连接和运行一个 C 程序。 3.通过运行简单的 C 程序,初步了解 C 源程序的特点。 4.掌握 C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值 的方法,了解以上类型数据输出时所用的格式转换符。 5.学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和 自减(--)运算符的使用。 二.实验内容 1.学习从开机开始的操作,包括如何建立子目录、使用操作命令列目录、删除文件、复 制文件等。 2.调试编辑程序。 输入程序,以 test1.c 为文件名保存,并进行编译和运行。 main( ) { printf(“This is a book..”); printf(“This is a pen.”); } 应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标 程序的后缀是什么形式的?若将两个语句分行输出,应怎样修改程序? 3.输入并运行程序: main() { char c1,c2; c1=97; c2=98; printf(“%c %c\n”,c1,c2); printf(“%c%c\n”,c1-32,c2-32); printf(%c,%d,c1,c2); } 在此基础上: 1)加一个 printf 语句,并运行之。 printf(“%d,%d”,c1,c2); 2)再将第三行改为: int c1,c2;
再使之运行 3)再将第四行改为: cl=300: 再使之运行,分析其运行结果。 4.输入并运行程序 main() Int 1, 1, m, n: n=++ printf("%d, %d, %d, %d, %d, %d",1,j, ++i, ++j, m, n) 分别作以下改运并运行: 1)将第5行改为: mF1++ 2)程序改为 I int i i=8; printf(“%d,%”,i+,j+) 3)将2)程序第4行,改为 printf(“%d,%d”,++i,+j); 4)自己作任意修改。 验评分 指导老师签名 实验二 目的与要求 消化教科书上第5、6章的内容,并将之灵活地运用到实际问题中去 1.掌握C语言逻辑量的表示方法(以0代表“假”,1代表“真”) 2.学会正确地使用关系表达式和逻辑表达式 掌握各种形式的条件语句(注意()和{}的使用) 4.掌握 switch语句 实验内容 编制程序,解决以下问题,然后上机调试运行程序
7 再使之运行。 3)再将第四行改为: c1=300; c2=400; 再使之运行,分析其运行结果。 4.输入并运行程序: main( ) { int i,j,m,n; i=8; j=10; m=++i; n=++j; printf(“%d,%d,%d,%d,%d,%d”,i,j,++i,++j,m,n); } 分别作以下改运并运行: 1)将第 5 行改为: m=i++; n=++j; 2)程序改为 main( ) { int i,j; i=8; j=10; printf(“%d,%d”,i++,j++); } 3)将 2)程序第 4 行,改为: printf (“%d,%d”,++i,++j); 4)自已作任意修改。 实验评分____________ 指导老师签名______________ 实 验 二 一.目的与要求 消化教科书上第 5、6 章的内容,并将之灵活地运用到实际问题中去。 1. 掌握 C 语言逻辑量的表示方法(以 0 代表“假”,1 代表“真”) 2. 学会正确地使用关系表达式和逻辑表达式 3. 掌握各种形式的条件语句(注意( )和{ }的使用) 4. 掌握 switch 语句 二.实验内容 编制程序,解决以下问题,然后上机调试运行程序
≥0,y>0 x+2y+ 2x2+3x+1 ≥0,y≤0 x+y x<0,y<0 2x2+3x+1 要求对任意一组x,y的确定值,均能输出相关的信息 2.每吨货物每公里运费p与运输距离s有关。路途愈远,每吨公里运价愈低。公式 如下: 8<1O0 10O 15O 150≤S<20O 200≤S<5OO 500≤s 若所付的总运费超过5000元时,再给予九五折优待。从键盘输入货物吨数、运输公 里数,用开关语句( switch)计算运费 实验评分 指导老师签名 实验三 目的与要求: 循环是构造C语言程序的一种十分重要的控制结构,稍微复杂一点的程序就可能必须 包含循环结构,所以,必须通过听课、复习及上机熟练地掌握第七章的有关内容。 1.熟练地掌握 while、do- while及for语句实现循环的方法,了解它们各自的长处, 及相互转换的方法 2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等算法)。 实验内容 1.编程并上机调试运行以下程序 已知:F(N)=F(N-1)-2F(N-2)+F(N-3) F(0)=F(1)=F(2)=1 求 (1)F(50) (2)F(0)+………+F(50)
8 要求对任意一组 x,y 的确定值,均能输出相关的信息。 2. 每吨货物每公里运费 p 与运输距离 s 有关。路途愈远,每吨公里运价愈低。公式 如下: 若所付的总运费超过 5000 元时,再给予九五折优待。从键盘输入货物吨数、运输公 里数,用开关语句(switch)计算运费。 实验评分____________ 指导老师签名______________ 实 验 三 一.目的与要求: 循环是构造 C 语言程序的一种十分重要的控制结构,稍微复杂一点的程序就可能必须 包含循环结构,所以,必须通过听课、复习及上机熟练地掌握第七章的有关内容。 1. 熟练地掌握 while、do-while 及 for 语句实现循环的方法,了解它们各自的长处, 及相互转换的方法。 2. 掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等算法)。 二.实验内容 1.编程并上机调试运行以下程序 已知: F(N)=F(N—1)—2F(N—2)+F(N—3) F(0)=F(1)=F(2)=1 求 (1) F(50) (2) F(0)+……+F(50) = s s s s p 5 500 6 200 500 7 150 200 8 100 150 10 8 100 + + + + + + + − + + + + = 0, 0 2 3 1 0, 0 1 2 3 1. 0, 0 1 1 4 4 2 2 3 1 2 2 2 2 2 3 2 x y x x x y x y y x x x y y y x x x x f
2.编程求100以内的勾股数组 说明:我国古代称直角三角形的两条直角边为勾和股,斜边为弦。早在“周髀算经” 的第一篇内就谈到“勾广三,股修四,弦隅五”。在公元263年,我国数学家刘徽写的“九 章算术”中有: 32+42=5252+122=13272+242=25282+152=172 的记载,凡是满足x+y2=z的正整数数组(x,y,z)就叫做一个勾股数 如:(3,4,5)、(5,12,13)、(7,24,25)、(8,15,17)均为合法的勾股数组。 实验评分 指导老师签名 实验四 目的与要求: ①掌握编译预处的文件包含(# include)命令,了解# include使用的环境、格式(两 种)与作用 ②掌握函数的有关知识,学会灵活地使用函数 ③掌握函数的定义方法 ④掌握函数形参与实参的对应关系及“值传递”方法 ⑤掌握函数的嵌套调用和递归调用方法 ⑥掌握全局变量和局部变量、静态存储变量和动态存储变量的概念与存储方 二.实验内容: 编程解决下列问题,并上机调试运行 1.用牛顿迭代法求方程ax+bx+cx+d0的根,系数a,b,c,d在主函数中输入,求x 在1附近的一个实根。求出实根后,在主函数中输出。 说明:牛顿迭代法的公式为 x=x2-/(∞),设迭代到x-x≤10°时结束 2.编程求任意两个整数a,b的最大公约数和最小公倍数。用一个函数求最大公约数, 另一函数求最小公倍数。 (1)用全局变量方法:将两个整数的最大公约数、最小公倍数都设为全局变量 (2)不用全局变量,两个整数在主函数中输入,并传送给一个函数,求出最大公约 数后返回主函数,然后再与两个整数一起作为实参传给另一个函数,以求出最小公倍数 返回到主函数输出最大公约数和最小公倍数 3.下面的C程序实现以下函数的计算,请将其中的错误更正。 sIn x sin y smn二 sin(x-y)sin(x-a) sin(y-3)+sin(y-x) sin(=-x)(=-y) # include“math.h # include“ stadio.h
9 2.编程求 100 以内的勾股数组 说明:我国古代称直角三角形的两条直角边为勾和股,斜边为弦。早在“周髀算经” 的第一篇内就谈到“勾广三,股修四,弦隅五”。在公元 263 年,我国数学家刘徽写的“九 章算术”中有: 的记载,凡是满足 x 2 +y 2 =z 2 的正整数数组(x,y,z)就叫做一个勾股数组。 如:(3,4,5)、(5,12,13)、(7,24,25)、(8,15,17)均为合法的勾股数组。 实验评分____________ 指导老师签名______________ 实 验 四 一.目的与要求: ①掌握编译预处的文件包含(#include)命令,了解#include 使用的环境、格式(两 种)与作用 ②掌握函数的有关知识,学会灵活地使用函数 ③掌握函数的定义方法 ④掌握函数形参与实参的对应关系及“值传递”方法 ⑤掌握函数的嵌套调用和递归调用方法 ⑥掌握全局变量和局部变量、静态存储变量和动态存储变量的概念与存储方法。 二.实验内容: 编程解决下列问题,并上机调试运行 1.用牛顿迭代法求方程 ax 3 +bx 2 +cx+d=0 的根,系数 a,b,c,d 在主函数中输入,求 x 在 1 附近的一个实根。求出实根后,在主函数中输出。 说明:牛顿迭代法的公式为 2.编程求任意两个整数 a,b 的最大公约数和最小公倍数。用一个函数求最大公约数, 另一函数求最小公倍数。 (1)用全局变量方法:将两个整数的最大公约数、最小公倍数都设为全局变量。 (2)不用全局变量,两个整数在主函数中输入,并传送给一个函数,求出最大公约 数后返回主函数,然后再与两个整数一起作为实参传给另一个函数,以求出最小公倍数。 返回到主函数输出最大公约数和最小公倍数。 3. 下面的 C 程序实现以下函数的计算,请将其中的错误更正。 # include “math.h” # include “stadio.h” 2 2 2 2 2 2 2 2 2 2 2 2 3 + 4 = 5 5 +12 = 13 7 + 24 = 25 8 +15 = 17 , 10 . ( ) ( ) 5 0 设迭代到 − 0 − 时结束 = − x x f x f x x x sin( )sin( ) sin sin( ) sin( ) sin sin( )sin( ) sin z x z y z y z y x y x y x z x sum − − + − + − + − − =
I floa sun =f(x, y, z)+f(y, z, x)+f(z, x, y) printf(“sum=%f”,sun) float(a, b, c) 实验评分 指导老师签名 实验五 目的与要求 1.掌握一维数组和二维数组的定义、赋值和输入输出的方法。 2.掌握字符数组和字符串函数的使用。 3.掌握与数组有关的算法(例如排序)。 二.实验内容 1.用选择法对10个字母排序,10个字母用 scanf函数输入 2.输入下列程序,并编译、连接并运行。 aino int 1, j, k, score j=0 pr enter score#%d:”j) canf(“%d”, score) scores[il[++j]=score
10 main ( ) { float x,y,z,sum; scanf (“%d%d%d”, x,y,z) sun = f(x,y,z)+f(y,z,x)+f(z,x,y); printf(“sum=%f”, sun); } floatf(a,b,c) { value= sin (a)sin(b) * sin (c) }; return (value); } 实验评分____________ 指导老师签名______________ 实 验 五 一.目的与要求 1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 2. 掌握字符数组和字符串函数的使用。 3. 掌握与数组有关的算法(例如排序)。 二.实验内容 1. 用选择法对 10 个字母排序,10 个字母用 scanf 函数输入。 2. 输入下列程序,并编译、连接并运行。 main() { int i,j,k,score; int scores [10] [5]; for (i=0; i<10; i++) { j=0; while (j<5) { printf(“Please enter score #%d: ” j); scanf(“%d”,score); if (score<0) break; scores[i][++j]=score; } scores[i][0]=j; } }