2014年C语言实验报告_第1页
2014年C语言实验报告_第2页
2014年C语言实验报告_第3页
2014年C语言实验报告_第4页
已阅读5页,还剩153页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

刖百/r/n本指导书是针对数学类专业和非数学类专业学生的需要提供的/r/nC/r/n语言上机指导教材。

前面十个实验涉及的是/r/nC/r/n语言的基础内容,要求学生必须熟练掌握。后面十个综合性实验能

提高学生对较复杂问题的分析及程序设计能力。另外每个实验后面都有习题,主要目的是进

/r/nー/r/n步巩固所学的知识。在本指导教材的第三、四部分给出了/r/nturboC/r/n的常用函数表和错误信

息表,目的是方便学生编程并查阅所需要函数并尽快找出错误的根源。/r/n实验内容中有的给出了参考程序(主要是前面几个实验)/r/n,/r/n更多的需要学生自己编写程序,所以要求学生必须在每次实验前认真预习本次实验内容,编写好程序方能参加实验。/r/n编者/r/n2011.2./r/n

/r/n第一/r/n部分/r/nTurboC/r/n集成编译环境/r/n4/r/n页/r/n第二部分/r/nC/r/n语言实验/r/n实验ー/r/n熟悉/r/nC/r/n语言运行环境(预备实验)/r/n17/r/n页/r/n实验ニ/r/n数据描述与基本操作/r/n2I/r/n页/r/n实验三/r/n程序分支/r/n26/r/n页/r/n实验四/r/n循环控制/r/n实验五/r/n数组的使用/r/n实验六/r/n函数的使用/r/n实验七/r/n指针(一)/r/n实验ハ/r/n指针(二)/r/n实验九/r/n指针(二)/r/n实验十/r/n结构体与共同体/r/n实验/r/nH/r/n一/r/n位运算/r/n实验十二/r/n文件/r/n实验综合/r/n十三/r/n综合实验十四/r/n统计学生成绩/r/n综合实验十五/r/n求矩阵鞍点/r/n综合实验十六/r/n文件应用/r/n综合实验十七/r/n分类与索引/r/n综合实验十八/r/n对分法求非线性方程的根/r/n综合实验十九/r/n求解雅瑟夫问题/r/n综合实验二十/r/n求皇后问题/r/n第三部分/r/n常用函数表/r/n第四部分/r/n错误信息/r/n第一部分/r/nTurboC/r/n集成编译环境/r/nTurboC/r/n集成编译环境是/r/nー/r/n个集程序编辑、编译、连接、调试为一体的/r/nC/r/n程序开发软件,它具有速度快、效率高、功能强、使用方便等优点。用户在这个集成环境下,可以利用内部的编辑器进行全屏幕编辑,利用窗口功能进行编译、连接、调试、运行、环境设置等エ作。/r/n如果你的计算机系统已经安装/r/n了/r/nTurboC/r/n编译系统,则在/r/nDOS/r/n命令状态下键入命令/r/nTC/r/nTCfilename/r/n其中/r/nfilename/r/n是用户需要进行编辑、编译、连接、运行的/r/nC/r/n程序的文件名。在前者情况下,该文件名可以在进入集成环境后再指定。/r/n如果/r/nTurboC/r/n编译系统不是安装在当前目录下,而是安装在别的目录下,并且该目录路径没有打通,则应在/r/nTC/r/n前面加上“路径”,以指出/r/nTurboC/r/n编译系统所在的位置。但军种情况一般是很少出现的。这是因为,/r/nDOS/r/n系统启动时要执行一个自动批处理文件/r/nAUTOEXEC/r/n〇/r/nBAT,/r/n在该文件/r/n中一/r/n般都包含有常用外部命令文件/r/n(/r/nTC/r/n也属于外部命令)所在的目录路径打通的命令,因此,/r/nDOS/r/n系统启动后,在任何目录下都/r/n可/r/n以很方便地使用外部命令,即在外部命令前不必再加上该外部命令文件所在的目录路径。/r/n进入/r/nTurboC/r/n集成环境后,首先在屏幕上显示/r/nTurboC/r/n主菜单窗口,如图/r/n3.1/r/n所示。/r/nFileEditRunCompileProjectOptionsDebugBreak/Watch/r/n图/r/n1/r/n由图/r/n1/r/n可以看出,在该菜单下,有八个菜单条目,即提供了ハ种选择。每ー个条目的意/r/n义/r/n如下:/r/nFile /r/n处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列/r/n表、改变工作目录)/r/n,/r/n退出系统及调用/r/nDOS/r/n。/r/nEdit/r/n建立、编辑源文件/r/nRun /r/n控制运行程序。如果程序已经编辑连接好,且/r/nDebug/SourceDebugging/r/n以及/r/nOption/Compiler/Codegeneration/OBJDebugInformation/r/n开关置为/r/nON,/r/n则可以用此菜初始/r/n化/r/n调试阶段。/r/nCompile /r/n编译并生成目标程序与可执行文件。/r/nProject /r/n允许说明程序中包含哪些文件的管理条目/r/n(/r/nProject)/r/n。/r/nOptions/r/n可以选择集成环境任选项(如存储模式、编译时的任选项、诊断及连接任选项)及定义宏:也可以记录/r/nInclude/r/n、/r/nOutput/r/n及/r/nLibrary/r/n文件目录,保存编译任选项和从配置文件加载任选。/r/nDebug/r/n检查、改变变量的值,查找函数程序运行时查看调用栈。选择程序编译时是否在执行行代码中插入插入调试试信息。/r/nBreak/Watch/r/n增加、删除、编辑监视表达式,及设置、清除、执行至断点。/r/n特别要指出的是,除/r/n了/r/nEDIT/r/n项/r/n外,/r/n每/r/nー/r/n个/r/n菜单项以对应…个子菜单。而选择/r/nEDIT/r/n项目后,只是进入编辑器。/r/n为了从主菜单中选择所需要的功能,可以用以下两种方式之一:/r/n(/r/n1/r/n)/r/n按/r/nF10/r/n键后,可以年到屏幕上部主菜单中的某个条目处出现亮块,此时,利用左、右光标移动键/r/n(一与一)/r/n将此亮块移到所要选择的条目位置/r/n处,/r/n然后按回车/r/n(ENTER)/r/n键,即出现相应的子菜单。/r/n(/r/n2)/r/n直接按/r/nALT+/r/n主菜单条目中的首字母(分别为/r/nF,E,/r/nR,/r/nC,P,/r/n〇,/r/nD,B)/r/n此时就会出现相应的子菜单。例如,按/r/nA/r/nじ/r/nT+F/r/n表示选择文件子菜单/r/n(FILE)/r/n〇/r/n当出现子菜单时,其中某个条目是高亮度的,此时可/r/n以/r/n利用上、下光标移动键(/r/nt/r/n与/r/nI/r/n)来移动该/r/n高/r/n亮度线,从而选择所需要的功能。/r/n在主菜单或通过主菜单调用的任意•个子菜单中,按/r/nESC/r/n键后将直接返回到活动窗口。/r/n下面简要介绍各子菜单的功能。/r/n./r/n文件子菜单/r/n(FILE)/r/n当选中/r/nFILE/r/n子菜单后,在“/r/nFILE”/r/n下方将出/r/n现ー个/r/n子窗口,如图/r/n3.2/r/n所示。在边个子窗口中,有的条目右边还标出了实现该功能的热键。所谓“热键”,是指为执行菜单中某/r/nー/r/n固定功能而设置的键。通过热键来实现某种功能,一般要比通过菜单选择更简单直接,但要求用户熟记这些热键。例如,/r/n为/r/n了选择“文件了菜单/r/n(/r/nFILE)/r/n”,/r/n除/r/n了/r/n通过主菜单选择以外,还可以直接用热键/r/nA/r/nじ/r/nT+F/r/n来选择。/r/nFile/r/nEdit RunCompileProject/r/nLoad/r/nF3/r/nPick/r/nAlt+F3/r/nNew/r/nSave/r/nF2/r/nWriteto/r/nDirectory/r/nChangedir/r/nOS/r/nShell/r/nQuit/r/nAlt+X/r/n下面简要说明各项的功能:/r/nLoad/r/n(加载)/r/n装入一个文件。当给定的文件名中有文件名通配符/r/n(/r/n・/r/n或?)时,将进行列表选择。/r/nPick/r/n(选择)/r/n将最近装入进编辑窗口的/r/n8/r/n个/r/n文件列成表,供用户选择,选择后又装入编辑器,光标置在上次修改过的地方。若选了/r/n“…/r/nLOADFILE/r/n…”,/r/n屏幕上将出现/r/n“LOADFILENAME"/r/n提示框。/r/nNew/r/n(新文件)/r/n说明文件是新的,装入编辑器的缺省文件名为/r/nNONAME/r/n。/r/nCo/r/nSave/r/n(存盘)/r/n将编辑器中的内容存盘。若文件名为/r/nNONAME/r/n。/r/nC,/r/n而又要存盘,编辑器会询问是否要改名。/r/nWriteto/r/n(存盘)/r/n把编辑器中的内容写入指定的文件中。若该文件已经存在,则导致重写。/r/nDirectory/r/n显示目录与所需文件列表(右按冋车键则选择当前上当)。热键/r/nF4/r/n改变匹配符,选择文件名后,将该文件装入编辑器。/r/nChangedir/r/n(改变驱动器)/r/n显示当前上当,改变构驱动器与目录。/r/nOSShell/r/n(暂时退出)/r/n暂时退出/r/nTurboC,/r/n转至リ/r/nDOS/r/n状态,在/r/nDOS/r/n状态下用/r/nEXIT/r/n命令又可返回/r/nTurboC/r/n。/r/n此功能对于在想运行/r/nDOS/r/n命令但又/r/n不/r/n想退出/r/nTurboC/r/n时非常有用。/r/nQuit/r/n(退出)/r/n退出/r/nTurboC,/r/n返回到/r/nDOS/r/n状态。/r/n./r/n编辑命令/r/n(EDIT)/r/n调用内部编辑器。在编辑器中按/r/nF10/r/n可返回主菜单(或用/r/nAUT/r/n加所需主菜单命令的

/r/n首字母),但此时编辑器中的内容仍保持在屏幕上。在主菜单中按/r/nESC/r/n或/r/nE/r/n键即可回到编辑器(按/r/nALT+E/r/n也可,且在任何/r/n时/r/n候都起作用)。/r/n./r/n运行子菜单/r/n(/r/nRUN)/r/n当选中/r/nRUN/r/n子菜单后,在“/r/nRUN”/r/n下方将出现ー个子窗口,如图/r/n3/r/n所示,其中也列出了对应的热键。/r/nEditRunCompileProjectOptions/r/nRun/r/nCtrl+F9/r/nProgramreset/r/nCtrl+F2/r/nGotocursor/r/nF4/r/nTraceinto/r/nF7/r/nStepover/r/nF8/r/nUserscreen/r/nAlt+F5/r/n图/r/n3/r/n下面简要说明各项的功能:/r/nRun/r/n(运行)/r/n运行当前程序。/r/nProgramreset/r/n(程序重启动)/r/n中止当前调试,释放分配给程序的空间,关闭已打开的文件。/r/nGotocursor/r/n(执行到)/r/n使程序从执行长/r/n条/r/n运行到编辑窗口中光标所在行。若光标所在行不含可执行代码语句,则显示/r/nー/r/n个/r/nESC/r/n框作警告。/r/n4)/r/nTraceinto/r/n(跟踪进入)/r/n运行当前函数中的下/r/nー个语/r/n句。若此语句不含调试器可访问的函数调用,则停在下一条可执行语句上;但若此语句含有调试器可访问的函数调用,则停在函数定/r/n义/r/n的开始。/r/n5)/r/nStepover/r/n(单步执行)/r/n执行当前函数的下ー/r/n・/r/n语句,即使遇到调试语句可访问的函数调用也不会跟踪进入下一级函数中。/r/n6)/r/nUserscreen/r/n(用户屏幕)/r/n切换到用户屏幕。/r/n4/r/n、/r/n编译子菜单/r/n(Compile)/r/n当选中/r/nCompile/r/n子菜单后,在“/r/nCompile”/r/n下方将出/r/n现ー个/r/n子窗口,如图/r/n4/r/n所示。/r/nRun/r/nCompile/r/nProject/r/nOption/r/nDebug/r/nCompileto/r/nOBJ/r/nC:NONNAME.OBJ/r/nMakeEXEfileC:NONNAME.EXE/r/nLinkEXEfile/r/nBuild/r/nall/r/nPrimaryCfile/r/nGetinfo/r/n图/r/n4/r/n下面简要说明各项的功能:/r/ncompiletoobj/r/n(编译生成目标码)/r/n本命/r/n令/r/n将一个/r/n.C/r/n源文件编译成./r/nOBJ/r/n文件,同时显示生成的文件名。./r/nOBJ/r/n文件由源/r/n.C/r/n文件名产生;或在没有指定文件名时,由上次装入编辑器的文件名产生。/r/nTurboC/r/n在编译时弹出ー个窗口,用于显示编译结果。在编译/组装/r/n(/r/nMAKE)/r/n完后,按任ー键将清除编译窗口。此时若发现有错误,则转到消息窗口的的第…个错误处(有亮度标志)。/r/n本命令的热键为/r/nALT+F9o/r/nMakeEXEfile/r/n(/r/n生成执行文件/r/n)/r/n本命令调用来生成./r/nEXE/r/n文件,并显示所生成的./r/nEXE/r/n文件名。./r/nEXE/r/n文件名是依次由下列文件名产生的:/r/nProject/ProjectName/r/n说明的文件名/r/n;/r/n或/r/nProjectCFile/r/n说明的文件名;/r/n或上次装/r/n入/r/n窗口的文件名。/r/n本命/r/n令/r/n的热键为/r/nF9o/r/nlinkEXE/r/nfile/r/n(连接执行文件)/r/n把当前文件与库文件(既可以是缺省的,也可以是定/r/n义/r/n在当前项目文件中的)连接在ー起,生成/r/nEXE/r/n文件/r/nBuilt/r/nAll/r/n(建立所有文件)/r/n重建项目中的所有文件。本命令类似/r/nCompile/makeEXEFile,/r/n只是它是无条件执行的,而/r/nCompile/makeEXEFile/r/n只重建那些非过时的文件。本命/r/n令/r/n首先将所有的/r/nProject/r/n文件中的./r/nobj/r/n的日期与时间置为/r/n〇,/r/n然后再组装/r/n(/r/nmake)/r/n。/r/n这样,若用户因/r/nCtrl+Break/r/n键中断了/r/nBuild/r/nAl!/r/n命令,只要用/r/nCompile/makeEXEFile/r/n即/r/n可/r/n恢复。/r/nPrimaryCfile/r/n(主/r/nC/r/n文件)/r/n当编译多个/r/n.H/r/n头文件单个/r/n.C/r/n文件/r/n时,/r/nPrimaryCFile/r/n命令是很有用的(但并非必要的)。若在编译过程中发现错误,包含错误的文件/r/n(/r/n.C/r/n或./r/nH)/r/n将被自动装入编辑器,/r/n可/r/n对其修改。但必须注意’/r/n.H/r/n文件只有在已将/r/nOption/Environment/MessageTracking/r/n缺省设置改为/r/nAllFile/r/n时/r/n才能自动装/r/n入,/r/n而原缺省设置不会自动加载/r/n.H/r/n文件。即使/r/n.C/r/n文件/r/n不/r/n在编辑器,但只要一按/r/nAlt+F9,.C/r/n主文件即被重新编译。/r/nGetInfo/r/n(获得信息)/r/nCompile/GetInfo/r/n开辟/r/nー/r/n窗口,给出如下信息:/r/n源文件;/r/n与当前文件相联系的目标文件名;/r/n当前源文件名;/r/n当前源文件字节数;/r/n程序退出码;/r/n可用空间。/r/nProject/r/n子菜单/r/n当选中/r/nProject/r/n子菜单后,在“/r/nProjec/r/nビ/r/n下方将出/r/n现ー个/r/n子窗口,如/r/n图/r/n5/r/n所示。/r/nCompileProjectOptionsDebug/r/nBreak/Watch/r/nProjectname/r/nBreakmakeon errors/r/nAutodependencies off/r/nClearproject/r/nRemovemessages/r/nGetinfo/r/n图/r/n5/r/n下面简要说明各项功能:/r/n(l)Projectname/r/n选择/r/n・/r/n个包含将要编译连接的文件名的/r/nProject/r/n文件,项目名也将是以后要建立的。/r/nEXE/r/n或/r/nMAP/r/n文件名。典型的项目文件具有./r/nPRJ/r/n扩展名。/r/n(2)Breakmakeon/r/n提供用户说明中止/r/nmake/r/n的缺省条件,如警告/r/n(Warnings)/r/n>/r/n错误/r/n(/r/nErrors)/r/n、/r/n致命错误/r/n(FatalError)/r/n〇/r/n(3)Autodependencies(/r/n自动依赖)/r/n这是ー个开关。当置/r/nOn/r/n为时,项目组装/r/n(Project.Make)/r/n自动检查每个项目表中在磁盘上有相应/r/n.C/r/n文件的那些/r/n.OBJ/r/n文件的源文件的日期/时间信息与/r/n.OBJ/r/n文件的依赖关系。所谓自动依赖关系检查,是指:项目组装打开/r/n.OBJ/r/n文件,寻找包含在源代码的那些文件的有关信息。这种信息总是在编译源模块时即被/r/nTC/r/n或/r/nTCC/r/n放进/r/n.OBJ/r/n文件了。此时,把每个组成/r/n.OBJ/r/n文件的日期ノ时间信息与/r/n.OBJ/r/n中的进行比较,若不同,则重新编译/r/n.C/r/n源文件。/r/n若/r/nAutodependencies/r/n开关置为/r/noff,/r/n则不进行这种检查。/r/nClearproject/r/n(清除/r/nproject)/r/n改命令清除项目文件名,重置消息窗口/r/n(/r/nMessageWindow)/r/n。/r/nRemovemessage/r/n(删除信息)/r/n该命令把错误信息从消息窗口中清除掉。/r/n6.Option/r/n子菜单/r/n当选中/r/nOption/r/n子菜单后,在“/r/nOption”/r/n下方将出现ー个子窗口,如图/r/n6/r/n所示。/r/nProjectOptionDebugBreak/Watch/r/nCompile/r/nLink/r/nEnvironment/r/nDirectories/r/nArguments/r/nSaveoptions/r/nRetrieveoption/r/n图/r/n6/r/n下面简要说明各项的功能:/r/n(/r/n1/r/n)/r/nCompile/r/n(编译器)/r/n本命令将产生一个子菜单,为用户提供说明硬件配置、存储模式、调试技术、代/r/n码优/r/n化、/r/n诊断消息控制以及宏定/r/n义/r/n等。各菜单条目如下:/r/nModel/r/n(选择存储模型)/r/nDefine/r/n(打开•个宏定/r/n义/r/n框)/r/nCodegeneration/r/n(代码生成)/r/nOptimization/r/n(优化用户代码)/r/nSource/r/n(处理源代码)/r/nErrors/r/n(处理和/r/n响/r/n应诊断信息)/r/nNames/r/n(改变代码、数据等)/r/n其中每/r/n一/r/n个条目又对应ー个子菜单,供用户选择各种功能。详细介绍请参看/r/nTurboC/r/n的用户手册。/r/n(/r/n2)/r/nLinker/r/n(连接器)/r/n本命令将产生有关连接器的设置。它包括以下内容:/r/nMapfile/r/n(选择映射文件的类型/r/nOn/Off,/r/n缺升值为/r/nOff)/r/nInitializesegments/r/n(段初始化/r/nOn/Off,/r/n缺升值为/r/nOff)/r/nDefaultlibraries/r/n(缺省库/r/nOn/Off,/r/n缺升值为/r/nOn)/r/nGraphicslibrary/r/n(图/r/n形库/r/nOn/Off,/r/n缺升值为/r/nOn)/r/nWarnduplicatesymbals/r/n(警告重复字符/r/nOn/Off,/r/n缺升值为/r/nOn)/r/nStackwarning/r/n(堆栈警告/r/nOn/Off,/r/n缺升值为/r/nOn)/r/nCase-sensitive/r/nlink/r/n(大小写区别连接/r/nOn/Off,/r/n缺升值为/r/nOn)/r/n(3)Environment/r/n(环境设置)/r/n本命令将产生编译环境的设置。它包括以下内容:/r/nMessagetracking/r/n(消息跟踪/r/nCurrentFile/AllFiles/Off,/r/n缺升值为/r/nCurrentFile)/r/nKeepingmessage/r/n(保存消息/r/nYes/No,/r/n缺升值为/r/nNo)/r/nConfigautosave/r/n(配置自动保存/r/nOn/Off,/r/n缺升一值为/r/nOn)/r/nEditautosave/r/n(编辑自动保存/r/nOn/Off,/r/n缺升值为/r/nOff)/r/nBackupfiles/r/n(备份文件/r/nOn/Off,/r/n缺升值为/r/nOn)/r/nTabsize/r/n(制/r/n表健大小,缺升值为/r/n8)/r/nZoomedwindow/r/n(放大窗口/r/nOn/Off,/r/n缺升值为/r/nOff)/r/nScreensize/r/n(选择屏幕显示行数)/r/n(4)Directories(/r/n目录)/r/n本命令告诉/r/nTurboC/r/n到那里去寻找编译连接所需的文件,生成的可执行文件放到何/r/n处,/r/n在哪里查找配置文件。具体内容如下:/r/nIncludedirectories/r/n(包含目录)/r/n:C:\TURBOC\INCLUDE;C:\TURBOC\IN/r/nLibrarydirectories/r/n(库目录):/r/nC:\TURBOC\LIB/r/nOutputdirectory/r/n(输出目录):/r/nTurboCdirectory(TurboC/r/n目录)/r/nPickfilename(pick/r/n文件名)/r/nCurrentpickfile/r/n(当前/r/npick/r/n文件)/r/nArgument(/r/n参数)/r/n本设置允许用户给出运行程序命令行。/r/nSaveoption/r/n(保存任意项)/r/n将选择的编辑器、连接器环境、调试和/r/nproject/r/n任选项保存到/r/nー/r/n个配置文件中/r/n(缺省文件名为/r/nTCCONFIG.TC)/r/n。/r/n启动/r/n时,/r/nTurboC/r/n再到/r/nTURBOC/r/n目录中去寻找同样的文件。/r/nRetrieveoption/r/n(恢复任选项)/r/n加载以前用/r/nOption/Saveoptions/r/n命令保存的配置文件。/r/nDebug/r/n子菜单/r/n当选中/r/nDebug/r/n子菜单后,在“/r/nDebug”/r/n下方将出现ー个子窗口,如图/r/n7/r/n所示/r/nOptionsDebugBreak/Watch/r/nEvaluate Ctrl+Fl/r/nCallstack Ctrl+F3/r/nFindfunction/r/nRefreshdisplay/r/nDisplayswappingsmart/r/nSourcedebuggingon/r/n图/r/n7/r/n下面简要说明各项功能:/r/nEvaluate/r/n(计算)/r/n计算变量或表达式值,并显示其结果。/r/nCallstack/r/n(调用栈)/r/n本命令/r/n显示ー/r/n个调用栈的弹出窗口。调用栈显示程序运行到正在运行的函数时调用的函数序列。其中主函数/r/nmain/r/n在栈底,正在运行的函数在栈顶。调用函数的每ー项显示了函数名/r/n义/r/n击穿第给它的参数值。/r/nFindFunction/r/n(查找函数定/r/n义)/r/n显示编辑窗口每/r/nー/r/n函数的定/r/n义。/r/n只有在调试阶段才能使用本命令。/r/nRfreshdisplay/r/n(刷新显示器)/r/n万一编辑屏幕被重写,使用本命令可以恢复当前屏幕的内容。/r/nDisplayswapping/r/n(显示转换)/r/n本命/r/n令/r/n提供三种选择:/r/nOn/r/n(缺省)、/r/nAlways/r/n和/r/nNone/r/n。/r/nSoursedebugging/r/n(源代码调试)/r/n本命令提供三种选择/r/n0n/r/n(缺省)、/r/nStandalone/r/n和/r/nNone/r/n〇/r/nBreak/Watch/r/n子菜单/r/n当选中/r/nBreak/Watch/r/n子菜单后,在/r/n"Break/Watch”/r/n下方将出现ー个子窗口,如图/r/n3.8/r/n所示。使用本命令可以控制断点和监视表达式。/r/n下面简要说明各项的功能:/r/nAddwatch/r/n(增加监视表达式)/r/n向监视窗口插入/r/n一/r/n个监视表达式。/r/nDebugBreak/Watch/r/nAddwatchCtrl+F7/r/nDeletewatch/r/nEditwatch/r/nRemoveallwatchs/r/nTogglebreakpoint/r/nCtrl+F8/r/nClear/r/nall/r/nbreakpoint/r/nViewnextbreakpoint/r/n图/r/n8/r/nDeletewatch/r/n(册リ除监视表达/r/n式)/r/n从/r/n监视窗口中删除当前监视表达式。/r/nEditwatch/r/n(编辑监视表达式)/r/n选择/r/n本命令/r/n后,调试器弹出ー/r/n个/r/n含有当前监视表达式/r/n拷/r/n贝的窗口。/r/nRemoveallwatch/r/n(删除所有监视表/r/n达/r/n式)/r/n将/r/n所有监视表达式/r/n从/r/n监视窗口中删除。/r/nTogglebreakpoint/r/n(打开或关闭断点)/r/n设置或除去去光标所在断点。/r/nClearallbreakpoint/r/n(清除所有断点)从程序中删除所有断点。/r/nViewnextbreakpoint/r/n(显示下ー个断点)将光标移到程序中的下/r/nー/r/n个断点。/r/n第二部分/r/nC/r/n语言实验/r/n在学习/r/nc/r/n语言程序设计的过程中,上机实验是十分重要的环节,通过实验,可以加深对/r/nc/r/n语言功能特征、语法规则、程序编译与运行等基本概念和基本方法的理解和运用。通过上机调试程序,使学生能及时发现程序编制中出现的错误并找到修改正方法,提高学生的独立编程能力和编程技巧,为/r/nc/r/n语言在后续课程中的应用打下坚实的基础。/r/n实验报告要求/r/n!每次实验前,认真预习本次实验内容,按实验指导书的要求,需编写的程序,应书写整齐,经检查无误后方能上机。/r/n2/r/n上机输入和调试程序,调试通过后,打印出程序清单并把运行结果记录下来(在条件允许下)。/r/n3/r/n上机结束后,按照实验指导书的具体要求,整理出实验报告(字迹エ整),下次上机交给指导教师。/r/n4/r/n实验报告应包括以下内容:/r/n(/r/n1/r/n)/r/n实验题目;/r/n(2)/r/n算法说明(复杂的可用流程图表示)/r/n;/r/n(3)/r/n程序清单(有条件用打印机打印出来)/r/n:/r/n(/r/n4)/r/n运行结果;/r/n(5)/r/n对运行情况作分析,以及本次实验所取得的经验。如程序未能通过,应分析错误原因。/r/n在实验内容里有/r/n“/r/n*/r/n”/r/n的部分为选做题,有/r/n时/r/n间或有能力的学生可做这部分。/r/n云南大学数学与统计学实验教学中心

实验报告/r/n课程名称:/r/n程序设计和算法语言/r/n学期:/r/n2013~2014/r/n学年下学期/r/n成绩:/r/n指导教师:/r/n赵越/r/n学生姓名:/r/n学生学号:/r/n实验名称:/r/n简单程序设计调试/r/n实验编号:/r/n一/r/n实验日期:/r/n3/r/n月/r/n19/r/n日/r/n实验学时:/r/n2/r/n学院:/r/n数学与统计学院/r/n专业:/r/n信息与计算科学/r/n年级:/r/n2013/r/n级/r/nー、/r/n实验目的/r/n./r/n熟悉/r/nTC/r/n或/r/nBorlandC++/r/n的运行环境。/r/n./r/n了解在/r/nTC/r/n或/r/nBorlandC++/r/n上如何编辑、编译、连接和运行一个/r/nC/r/n程序。/r/n./r/n熟练使用各种/r/nC/r/n语言的数据类型、运算符与表达式。/r/n./r/n熟练掌握格式输入与格式输出函数的使用。/r/n./r/n通过运行简单的/r/nC/r/n程序,初步了解/r/nC/r/n源程序的特点,初步掌握査错和排错的技能./r/n./r/n学会/r/nTurboC2.0/r/n的安装方法(参看本书第一部分),熟悉/r/nC/r/n语言程序的运行环境,了解所用计算机系统软、硬配置。/r/n./r/n初步了解在该集成环境下如何编辑、编译、连接和运行一个/r/nC/r/n程序,即运行ー个/r/nC/r/n程序的全过程。/r/n./r/n通过运行简单的/r/nC/r/n程序,初步了解/r/nC/r/n程序的基本结构及特性。/r/n二、/r/n实验内容/r/n实验/r/n内容/r/n和步骤/r/n1/r/n从开机开始进行操作,熟悉/r/nー/r/n些常用的/r/nDOS/r/n命令,包括如何建立子目录,文件拷贝,删除文件等。/r/n2/r/n建立自己的子目录,以备存放文件。/r/n3/r/n进入/r/nTurboC/r/n集成环境,熟悉/r/nTurboC/r/n主菜单下各选择项的功能及功能键的使用。/r/n4/r/n输入ー简单/r/nC/r/n程序(可用教科书上的例题),了解/r/nC/r/n程序运行的全过程。/r/n5/r/n编写用/r/nprintf/r/n语句将/r/n3/r/n个字符串:/r/ngoodmorning,floppydisk,harddisk/r/n在同一行显示的程序。/r/n程序例/r/nmainO/r/n{printf/r/n(、、/r/ngoodmorning")/r/n;/r/n//r/n・/r/n显示不换行/r/n・/r/n//r/nprintf(''floppydisk")/r/n;/r/nprintf(''harddisk\n");/r/n}_/r/n6/r/n贬行结果:/r/ngoodmorningfloppydiskharddisk/r/n7/r/n把上面的程序改为每行/r/n显示ー/r/n个字串,应如何修改程序,并运行之。/r/n8/r/n编写ー程序,用键盘输入语句输入/r/n三/r/n个数,然后分别求它们的和、积及求余。/r/n[/r/nヒ机实习/r/n指导】/r/n1./r/n通过以下程序来掌握上/r/n机/r/n操作的全过程。计算函数/r/ny=3x2+2x-4/r/n(/r/n假设/r/nx=2)/r/n〇/r/n程序如下:/r/n#/r/ninclude''stdio./r/nh"/r/nvoidmain()/r/nintx=2,y;/r/ny=3*x*x+2*x-4;/r/nprintf/r/n(、、/r/nny=%d〃,y);/r/n①启动/r/nTC/r/n集成环境/r/n②编辑/r/nー/r/n个新文件/r/n按/r/nF10/r/n将亮条移到/r/nFile/r/n处按回车键,再选/r/nNew/r/n后按回车键(为简化起见,以后用/r/nFile-New/r/n的形式表示上述操作),出现子窗ロ,在其中输入要创建的文件名,输入文件名后按回车键,出现编辑窗口,即可在此窗口中输入和修改源程序。/r/n③保存文件/r/n按/r/nF10,/r/n选择菜单/r/nFile-Save,/r/n即可以保存当前文件到外存。/r/n④编译文件/r/n按/r/nF10,/r/n选择菜单/r/nCompile-Compiletoobj,/r/n就可以对程序进行编译。在此过程中可能会出现错误信息,并进行修改,修改完后存盘再进行编译,直至成功。/r/n⑤运行文件/r/n按/r/nF10,/r/n选择/r/nRunfRun/r/n命令运行文件。/r/n⑥査看运行结果/r/n按/r/nF10,/r/n选择菜单/r/nRun-Userscreen/r/n即可以查看程序运行结果。注意:若编译没有成功,则程序不能运行:若编译成功,则可以运行程序,但若运行结果不正确,则表明程序有逻辑错误,需要对程序进行调试和修改,直至程序运行结果正确。/r/n你以后每次/r/n上/r/n机运行一个/r/nC/r/n程序都要经过上述操作步骤②"⑥因此,你需要深刻理解和熟练掌握这些步骤。/r/n./r/n学会调入ー个已存在的/r/nC/r/n源文件/r/n按/r/nF10,/r/n选择菜单/r/nFile-Load,/r/n出现子窗ロ,在其中输入已存在的文件名,按回车键后即可以调入ー个已存在的文件。/r/n./r/n学会退出/r/nTurboC/r/n暂时退出:按/r/nF10,/r/n选择菜单/r/nFile-OSshell/r/n。/r/n此时按/r/nExit/r/n即可以返回主菜单。/r/n永久退出:按/r/nF10,/r/n选择菜单/r/nFile—Quit/r/n。/r/n./r/n输入/r/np4-p5/r/n例/r/n1.2T./r/n3,/r/n并进行调试和运行。/r/n【自/r/n编程序上/r/n机】/r/n./r/n设ー个正圆台的上底半径/r/nrl=2.5cm,/r/n下底半径/r/nr2=3.7cm,/r/n高/r/nh=3.5cm/r/n。/r/n分别计算并输出该圆台的上底面积/r/nsi/r/n下底面积/r/ns2,/r/n侧面积/r/ns3,/r/n圆台的体积/r/nv/r/n。/r/n具体要求如下:/r/n①/r/nrl,r2,h/r/n用/r/nscanf/r/n函数输入,且在输入前要有提示;/r/n②在输出结果时要有文字说明,每个输出值占一行,且小数点后取/r/n4/r/n位数字。/r/n③所有变量均定义为单精度类型。/r/n./r/n编程实现:用/r/n1/r/n分、/r/n5/r/n分、/r/n10/r/n分、/r/n25/r/n分的硬币凑成任何给定的钱数/r/nx,/r/n要求硬币的数目最少。/r/n习题/r/n!以下各标识符中,哪些是合法的用户标识符?/r/n⑴/r/nmain/r/n⑵/r/nMAIN/r/n⑶/r/na205/r/n(4)/r/nexp/r/n⑸/r/na_b/r/n(6)/r/n3./r/n5(7)/r/nA[10]/r/n(8)/r/nA.name(9)%d/r/n⑩/r/nfloat/r/nGl)/r/n$100/r/n勧/r/n1am/r/n⑬/r/n/r/nmax(5)(14)begin(15)ttdefine/r/n⑯/r/n/r/nNONAMEOO(17)proc(18)and/r/n⑲/r/n/r/nnotCO)WHile/r/n注:字母或下划开始的后跟若于字母或下划线或数字组成的序列:不能和保留字相同:避免和系统函数名相同;大小写字母有别!/r/n2/r/n选择/r/n⑴/r/n18/4*sqrt(4./r/n0)/8/r/n的值的类型?/r/nAintBfloatCcharD/r/n不确定/r/n⑵在/r/nC/r/n中,/r/nー/r/n个/r/nunsinedint/r/n型数据的表示范围是/r/nA0-127B0-225C0-32767D0-65535/r/n⑶/r/n(-15)/r/n%/r/n(-8)/r/n的值是/r/nA-7B/r/n7/r/nC1.875D/r/n非法/r/n3/r/n下列常量哪ー组全是合法的?/r/n288,-079,/r/n3.4e",,A,,/r/n10111/r/n-0,lel4,/r/n./r/n5678,/r/n'/r/nABC"oxabc/r/n+1,3.e/r/n'4/r/nr/r/n,/r/n/r/nox5a,./r/n0/r/n15,16.8e",069,/r/n101,/r/noxabcd/r/n2L,345e8,,\n",\\,,,\101,/r/n4/r/n下列常量中哪ー组都是非法的?/r/n(1)/r/n0a,el.5,ox7,/r/n158/r/n⑵088,/r/nox9afg,/r/n65538,/r/n3E24,/r/n,/r/n\089,/r/n⑶32768,/r/n1.oe584,3.5e-476,/r/n"K",/r/n9FBA/r/n-32769,45678L,12e-2.1,0X9ab,/r/n,/r/n\063/r/n,/r/n9abH,177Q,07777,/r/n-9999./r/n999,/r/n,/r/n\t/r/n,/r/n5/r/n计算下列表达式/r/n⑴15+30%4 ⑵/r/n1./r/n5+15/2 ⑶10==9+1 (4)/r/nx=10,/r/n3+8,/r/ny=20/r/n⑸/r/nx=y=500 /r/n(6)/r/n设/r/nx=l,y=2,/r/n求/r/nx++,y++/r/n⑺/r/n5>3(8)10<500/r/n⑼/r/n5/r/n〉/r/n3&&5>8/r/n(10)10>5||5<10/r/n三、/r/n实验环境/r/nDOS/r/n或/r/nWindows/r/n操作系统;/r/nTC/r/n或/r/nBorlandC++/r/n编译系统。/r/n四、实验过程/r/n1/r/n实验步骤/r/n【上/r/n机实习/r/n指导】/r/n1/r/n题:/r/n【自/r/n编程序上/r/n机】/r/n1/r/n题:/r/n2/r/n题:/r/n2/r/n关键代码及其解释/r/n【上/r/n机实习/r/n指导】/r/n1/r/n题:/r/n【自/r/n编程序上/r/n机】/r/n1/r/n题:/r/n2/r/n题:/r/n3/r/n调试过程/r/n【上/r/n机实习/r/n指导】/r/n1/r/n题:/r/n【自/r/n编程序上/r/n机】/r/n1/r/n题:/r/n五、实验总结/r/n./r/n遇到的问题及解决过程/r/n./r/n产生的错误及原因分析/r/n./r/n体会和收获。/r/n六、参考文献/r/n[1]/r/n谭浩强,/r/nC/r/n程序设计/r/n[M]/r/n(第四版).北京:清华大学出版社,/r/n2010/r/n年/r/n6/r/n月(中国高等院校计算机基础教育课程体系规划教材)/r/n[2]/r/n谭浩强,/r/nC/r/n程序设计题解与上机指导(第三版)/r/n,/r/n北京:清华大学出版社,/r/n2005/r/n年/r/n7/r/n月(新世纪计算/r/n机/r/n教育丛书)/r/n七、教师评语/r/n云南大学数学与统计学实验教学中心

实验报告/r/n课程名称:/r/n程序设计和算法语言/r/n学期:/r/n2013/r/n〜/r/n2014/r/n学年下学期/r/n成绩:/r/n指导教师:/r/n赵越/r/n学生姓名:/r/n学生学号:/r/n实验名称:/r/n选择结构程序设计/r/n实验编号:/r/n二/r/n实验日期:/r/n3/r/n月/r/n19/r/n日/r/n实验学时:/r/n2/r/n学院:/r/n数学与统计学院/r/n专业:/r/n信息与计算科学/r/n年级:/r/n2013/r/n级/r/nー、/r/n实验目的/r/n1/r/n进ー步掌握运行一个/r/nC/r/n语言程序的方法和步骤。/r/n2/r/n分清/r/nC/r/n语言的符号、标识符、保留字的区别。/r/n3/r/n掌握/r/nC/r/n语言的数据类型,会定/r/n义/r/n整型、实型、字符型变量以及对它们的赋值方法。/r/n4/r/n学会数据输入方式和数据输出格式及各种格式转意符。/r/n5/r/n学会使用/r/nC/r/n的运算符以及/r/n用/r/n这些运算符组成的表达式,特别是自加(++)和自减(/r/n——/r/n)运算符的使/r/n用。/r/n二、/r/n实验内容/r/n【上/r/n机实习/r/n指导】/r/n1/r/n输入并运行下面程序,分析其运行结果。/r/nmainO/r/n{/r/ncharcl,c2;/r/ncl=46;c2=47;/r/nprintf(''%3c%3c/r/n/z/r/n,cl,c2);/r/nprintf(''%3d%3d/r/n/z/r/n,cl,c2);/r/n}/r/n将程序/r/n第二/r/n行改/r/n为:/r/nintcl,c2;/r/n再运行,分析其结果。/r/n注:实际本例体现出/r/nC/r/n语言的/r/nー/r/n种特性(灵活),整型变量与字符型变量可以相互转换。/r/n2/r/n输入并运行下面程序/r/nmainO/r/n{inta,/r/nb;/r/nfloatc,d;/r/nlonge,f;/r/nunsignedint/r/nu,/r/nv;/r/ncharcl,c2;/r/nscanf/r/n(、、%/r/nd,%d〃,&a,&b)/r/n;/r/nscanf(/r/nu/r/n%f,%f/r/n/z/r/n,&c,&d);/r/nscanf/r/n(、ヽ%/r/nId,%ld”,&e,&f)/r/n;/r/nscanf(%o,/r/n%/r/n〇”,/r/n&u,&v);/r/nscanf(''%c,%c",&cl,&c2);/r/nprintf(/r/nu/r/n\n")/r/n;/r/nprintf/r/n(、ヽ/r/na=%4d,b=%4d\n",a,b);/r/nprintf(/r/nM/r/nc=%8.2f,d=%8.2f\n",c,d)/r/n;/r/n

/r/nprintf(''e=%161d,f=%161d\n/r/n,,/r/n>/r/ne,f)/r/n;/r/nprintf/r/n(''u=%o,/r/nv=%o\n/r/n/,/r/n,/r/nu,v);/r/nprintf(''cl=%c,c2=%c\n/r/nw/r/n,cl,c2);/r/n)/r/n运行/r/n上面/r/n程序,分析/r/n结/r/n果,特别注意/r/n输出/r/nCLC2/r/n的值是什么?什么原因?/r/n⑴将输入/r/ne/r/n和/r/nf/r/n、/r/nu/r/n和/r/nv/r/n的语句分别改为:/r/nscanf(''%d,%d",&e,&f)/r/n;/r/nscanf(%d,/r/n%d",&u,&v)/r/n;/r/n运行/r/n并/r/n分析结果。/r/n⑵将程序的第一行/r/n加/r/n命令行:/r/nftinclude<math.h>/r/n运行/r/n并/r/n分析结果。/r/n3/r/n编写ー/r/n个/r/n程/r/n序,求表达式/r/nx-z%2*(x+y)%2/2/r/n的/r/n值。/r/n设/r/nx=8./r/n5,/r/ny=2./r/n5/r/n,/r/nz=4/r/n4/r/n先分析下面/r/n程/r/n序的结果,然后/r/n再/r/n上机运行,看结果上否一致。/r/nmain()/r/n{/r/nintx,y,z;/r/nx=y=z=3;/r/ny=x++/r/nT;printf(''%4d%4d/r/nM/r/n,x,y);/r/ny=++x/r/n-1;printf(%4d%4d/r/n,z/r/n,x,y);/r/ny=z/r/n /r/n+1;printf(',%4d%4d/r/nw/r/n,z,y);/r/ny=/r/n /r/nz+1/r/n;printf(''%4d%4d/r/nw/r/n,z,y);/r/n)/r/n注:本例学生注意,自/r/n增/r/n自减运算符,先/r/n赋值后/r/n自/r/n增/r/n(自减)和先自/r/n增/r/n(自减)后/r/n赋值的/r/n问题。/r/n*5/r/n编写ー/r/n个程序,将输入的小写字母改写成大写字母并输出。提示:可采用/r/ngetchar(/r/n)函数输入字符,/r/n并/r/n利用/r/nfor(/r/n)循环语句。当然/r/n也可用/r/n其它方法,只耍能实现其/r/n功能即可。/r/n下面给出ー个语句段,学生补充一个/r/n完/r/n整的程序后,」二机进行调试。/r/nfor(i=l;i<=10;i++)/r/n{/r/ncl=getchar/r/n();/r/nc2=cl/r/n-/r/n32;/r/nprintf(''string%c\n”,c2);/r/n}/r/n【自/r/n编程序/r/n上/r/n机】/r/n1/r/n(判/r/n错)下述论断哪/r/n些/r/n是不对的?/r/n①②③④⑤⑥⑦⑧⑨⑩/r/n2/r/n①/r/n每个/r/nC/r/n语言程/r/n①②③④⑤⑥⑦⑧⑨⑩/r/n2/r/n①/r/nC/r/n语言程/r/n序的每/r/n一行都/r/n用分号结/r/n尾。/r/nC/r/n程序的执行从/r/n第一/r/n行/r/n开/r/n始到最/r/n后/r/n一行/r/n结/r/n束。/r/nC/r/n程序的每/r/n一行/r/n只能写一条/r/n语/r/n句。/r/nC/r/n程序的一条语句可以占多行。/r/nー/r/n个/r/nC/r/n程/r/n序可/r/n有一/r/n个或多个函数/r/n组/r/n成。/r/n在/r/nC/r/n程序中,注释说明只能写在一条语句的末尾。/r/n在/r/nー/r/n个/r/nC/r/n程/r/n序中,/r/n主/r/n函数必须放在程序的首部。/r/n在/r/nー/r/n个/r/nC/r/n程/r/n序中,主函数/r/nmain/r/n。/r/n可以放在程序的任何位置/r/n上。/r/n在/r/nC/r/n程/r/n序/r/n中,注释/r/n部分/r/n是用花括号括/r/n起/r/n来的。/r/n下列程序错/r/n误在哪里?/r/nmain(/r/n) /r/n//r/n・/r/n给定半径/r/nr,/r/n求/r/n园/r/n的面积/r/ns*//r/n{/r/nfloatr,/r/ns;/r/ns=/r/nn*r*r;/r/nprintf/r/n(、、/r/ns=%f\n”,s)/r/n②/r/nmain()/r/n②/r/nmain()/r/n//r/n・/r/n给定长和宽!,/r/nw,/r/n求矩形面积/r/ns*//r/n{int1,w,s;/r/nscanf/r/n(、ヽ%/r/nd%d〃,1,w);/r/ns=l*w;/r/nprintf(1,w,s);/r/n)/r/n③/r/nmainO/r/n{inti,j,k;floatx,y,z;/r/nscanf/r/n(ヽ、%/r/n&i,&j,&k);/r/nscanf(''%d%f%f/r/nw/r/n,x,y,z);/r/ni=i+x;y=y+j;z=i+j;k=x%y;/r/nprintf(''%d%f%f\n/r/n/z/r/n,i,j,k);/r/nprintf(''%f%d%d\n/r/nz/r/n,x,y,z);/r/n)/r/n运行看看结果如何?为什么?/r/n④/r/nmainO/r/n{inti/r/n;/r/nfloatx;longy;/r/ni=100;x=200;y=300;/r/nprintf(''i=%d,x/r/n=%/r/nd,y=%d\n〃,i,x,y);/r/nprintf(''i=%f,x/r/n二%/r/nf,y/r/n二%/r/nf\n〃,i,x,y);/r/nprintf(''i=%ld,x=%ld,y/r/n二%/r/nld\n〃,i,x,y)/r/n;/r/n}/r/n运行试试看,结果如何?为什么?/r/n3/r/n参考下面程序,如何改写输入函数,并配合正确的键盘输入方法才能使/r/nx,y/r/n和/r/nch/r/n分别获得值/r/n10,/r/n100/r/n和/r/n人/r/n?/r/nmainO/r/n{intx,y/r/n;/r/ncharch;/r/nscanf(''x=%d,y=%d,ch/r/n=%/r/nc”,&x,&y,&ch)/r/n;/r/nprintf(''x=%d,y=%d,ch=c\n/r/nz/r/n\x,y,ch);/r/n}/r/n若将输入函数改为/r/nscanf(''%d,%d, &x,&y,&ch);/r/n或者/r/nscanf(''%d,%c,%d〃,&x,&ch,&y);/r/n或者/r/nscanf(''%c,%d,%d”,&ch,&x,&y);/r/n结果将会如何?/r/n4/r/n下面程序对输入有何要求?利用它可以作什么?/r/nmainO/r/n{intx,y,z;longm;/r/nscanf(''%d%o%x/r/n/r/r/n,&x,&y,&z)/r/n;/r/nscanf(''%x%ld/r/n,z/r/n,&m);/r/nprintf(''x=%d,%o;%x\n/r/nzz/r/n,x,x,x);/r/nprintf(''y=%d,%o;%x\n/r/nzz/r/n,y,y,y);/r/nprintf(''z=%d,%o;%x\n/r/nzz/r/n,z,z,z)/r/n;/r/nprintf(''m/r/n二%/r/nId,%lo;%lx\n/r/nzz/r/n,m,m,m);/r/n}/r/n2mainO/r/n{intx;longy/r/n;/r/nx=/r/n-500/r/n;y=-500;/r/nprintf(''x/r/n二%/r/nd,%u;y=%ld,%u\n/r/nzz/r/n,x,x,y,y);/r/n}/r/n你记得补码是何意义吗?上述程序说明了什么?如果将/r/nx,y/r/n各赋值为/r/nー/r/n1/r/n0/r/n或者各赋值为ー/r/n32768/r/n和一/r/n2147483648,/r/n输出结果如何?为什么?/r/n6/r/n输出宽度及控制/r/nmain()/r/n{/r/ninti,j;floatx,y;longintm;/r/ni=688;j/r/n二一/r/n32765/r/n;x/r/n=/r/n12345/r/n./r/n678;y/r/n二一/r/n48765/r/n.432;/r/nm=1234567890;/r/nprintf(%d,%8d,%08d,/r/n%/r/n-/r/n8d\n”,i,/r/ni,/r/nj,j);/r/nprintf(%f,%12.2f,%12.2f,%-12.2f\n〃,x,x,y,y); printf(%ld,%lu,%121d,%T2d\n〃,m,/r/nm,m,/r/nm);}/r/n三、/r/n实验环境/r/nDOS/r/n或/r/nWindows/r/n操作系统;/r/nTC/r/n或/r/nBorlandC++/r/n编译系统。/r/n四、实验过程/r/n1/r/n实验步骤/r/n(/r/n上机实习/r/n指导】/r/n1/r/n题:/r/n2/r/n题:/r/n3/r/n题:/r/n4/r/n题:/r/n【自/r/n编程序/r/n上/r/n机】/r/n1/r/n题:/r/n2/r/n题:/r/n3/r/n题:/r/n2/r/n关键代码及其解释/r/n【上/r/n机实习/r/n指导】/r/n1/r/n题:/r/n2/r/n题:/r/n3/r/n题:/r/n4/r/n题:/r/n【自/r/n编程序/r/n上机】/r/n!/r/n题:/r/n2/r/n题:/r/n3/r/n题:/r/n3/r/n调试过程/r/n【上/r/n机实习/r/n指导】/r/n!/r/n题:/r/n3/r/n题:/r/n4/r/n题:/r/n【自/r/n编程序/r/n上/r/n机】/r/n1/r/n题:/r/n2/r/n题:/r/n3/r/n题:/r/n五、实验总结/r/n./r/n遇到的问题及解决过程/r/n./r/n产生的错误及原因分析/r/n./r/n体会和收获。/r/n六、参考文献/r/n[1]/r/n谭浩强,/r/nC/r/n程序设计/r/n[M]/r/n(第四版).北京:清华大学出版社,/r/n2010/r/n年/r/n6/r/n月(中国高等院校计算机基础教育课程体系规划教材)/r/n[2]/r/n谭浩强,/r/nC/r/n程序设计(第四版)学习辅导/r/n,/r/n北京:清华大学出版社,/r/n2010/r/n年/r/n7/r/n月(中国高等院校计算机基础教育课程体系规划教材)/r/n七、教师评语/r/n云南大学数学与统计学实验教学中心

实验报告/r/n课程名称:/r/n程序设计和算法语言/r/n学期:/r/n2013/r/n〜/r/n2014/r/n学年下学期/r/n成绩:/r/n指导教师:/r/n赵越/r/n学生姓名:/r/n学生学号:/r/n实验名称:/r/n选择结构程序设计/r/n实验编号:/r/n三/r/n实验日期:/r/n3/r/n月/r/n19/r/n日/r/n实验学时:/r/n2/r/n学院:/r/n数学与统计学院/r/n专业:/r/n信息与计算科学/r/n年级:/r/n2013/r/n级/r/nー、/r/n实验目的/r/n./r/n熟练掌握上机运行ー个/r/nc/r/n程序的操作过程。/r/n./r/n学会正确使用逻辑运算符和逻辑表达式,进ー步掌握各种表达式的使用。/r/n./r/n利用/r/nif/r/n语句实现选择结构。/r/n./r/n利用/r/nswitch/r/n语句实现多分支选择结构。/r/n./r/n熟悉关系表达式和逻辑表达式的使用。/r/n./r/n掌握/r/nbreak/r/n和/r/ncontinue/r/n语句的使用,以及它们之间的区别。/r/n./r/n进一/r/n步练习调试与修改程序。/r/n二、实验内容/r/n实验内容和步骤/r/n1/r/n三/r/n个/r/n整数/r/na,b,/r/nc,/r/n由/r/n键盘输/r/n入/r/n这三个数,求/r/n三/r/n个/r/n数中最大的值。/r/nmain/r/n()/r/n{/r/ninta,/r/nb,/r/nc/r/n;/r/nprintf(''input/r/na,b,/r/nc:/r/nz//r/n);/r/nscanf(''%d;%d;%d/r/nz,/r/n,/r/n&a,/r/n&b,&c)/r/n;/r/nif(a<b)/r/nif(b<c)/r/nprintf(''max=%d\n/r/nzz/r/n,c);/r/nelse/r/nprintf(''max=%d\n/r/nzz/r/n,b)/r/n;/r/nelse/r/nif/r/n(a<c)/r/nprintf(''max=%d\n/r/nzz/r/n,c)/r/n;/r/nelse/r/nprintf(''max/r/n二%/r/nd\n〃,a);/r/n)/r/n运行下面程序,分析/r/nif/r/n和/r/nelse/r/n是哪两个相互“配/r/n对”,/r/n在书写程序时,分出层/r/n次,/r/n这样有利于程序的可读性,容易查找出错误。此程序还有更加简明的方法实现,就是利用条件表达式。/r/nmain()/r/n{inta,b,c,max,t/r/n;/r/nprintf(''inputa,/r/nb,/r/nc/r/n:/r/nzz/r/n);/r/nscanf(''%d,%d,%d/r/nzz/r/n,&a,&b,&c)/r/n;/r/nt=(a>b)?a:b;/r/nmax=(t>c)?t:c;/r/nprintf/r/n(、、/r/nmax=%d",max)/r/n;/r/n)/r/n学生可利用此程序,考虑怎样修改求出/r/n三/r/n个数中的最小值。/r/n2/r/n先读下面程序,分析出程序的执行结果,然后再上机运行,结果是否一致。/r/nmain()/r/n{intx,y=l,z;/r/nif(y!=0)x=5;/r/nprintf/r/n(、、/r/nx=%d\t”,x);/r/nif(y=/r/n=0)/r/nx=3;/r/nelsex=5;/r/nprintf/r/n(、、/r/nx=%d\t\n",x)/r/n;/r/nx=l;/r/nif(z<0)/r/nif(y>0)x=3;/r/nelse/r/nx=5;/r/nprintf/r/n(、、/r/nx=%d\t\n",x)/r/n;/r/nif(z=y/r/nく/r/n〇)/r/nx=3/r/nelseif(y==0)x=5;/r/nelsex=7;/r/nprintf/r/n(、、/r/nx=%d\t",x);/r/nprintf/r/n(、、/r/nz=%d\t\n",z);/r/nif(x=z=y)x=3;/r/nprintf/r/n(、、/r/nx=%d\t",x);/r/nprintf/r/n(、、/r/nz=%d\t\n",z)/r/n;/r/n)/r/n3/r/n有一/r/n函数:/r/n'/r/nx (x<0)/r/ny=/r/nI 3x-2 (10^x<50)/r/nI /r/n4x+l (50^x<100)/r/nゝ /r/n5x (x2100)/r/n输入/r/nx/r/n的值,求/r/ny/r/n的值。/r/n程序如/r/n下:/r/nmain/r/n()/r/n{/r/nintx,y,t;/r/nprintf(''inputx=:");/r/nscanf(%d/r/n,z/r/n,&x)/r/n;/r/nif(x<10)t=0;/r/nif(x>=100)t=10;/r/nelset=x/10;/r/nswitch(t)/r/n{/r/ncase0:y=x;break;/r/ny=3*x/r/n-/r/n2;break;/r/ny=4*x+l;break;/r/ny=5*x;/r/n)/r/nprintf/r/n(、、/r/ny=%d”,y);/r/n)/r/n运行程序,写/r/n出/r/n执行结果。本/r/n题还可/r/n以单独用/r/nif/r/n语句实现,方法简单,程序可读性好,学生自己/r/n编/r/n程,上机运行。/r/n4/r/n从数字/r/n1/r/n开/r/n始/r/n到/r/n200/r/n之间,求能被/r/n3/r/n整除的数,然后求这些数的/r/n累加/r/n和,/r/n直到/r/n和的值不大于/r/n100/r/n为/r/n止。/r/n输出这/r/n些/r/n数及累加和。/r/n参考程序如下:/r/nmain/r/n()/r/n{/r/ninti,sum=0;/r/nfor(i=l;i<=200;i++)/r/n{/r/nif/r/n(说/r/n3!=/r/n〇)/r/ncontinue;/r/nsum=sum+i;/r/nprintf(i=%6d/r/n,,/r/nI/r/ni);/r/n)/r/nprintf(''sum=%6d",sum);/r/n)/r/n此程序的目的在于/r/n理解/r/ncontinue/r/n语句的用法。学生/r/n可/r/n以自己选做/r/nー些题/r/n目/r/n理解/r/nbreak/r/n和/r/ncontinue/r/n语句之间的区别,以免混淆。/r/n注:/r/nbreak/r/n语句可/r/n以从循环体内/r/n跳/r/n出循环体外,提/r/n前结束/r/n循环,接着循环着下面的语句(从/r/n第三题可看/r/n出)。/r/nContinue/r/n语句是结束本次循环,即跳过循环体中下面尚未/r/n招待/r/n的语句,接着进行下一次执行循环的/r/n判定。/r/n*5/r/n学生自己/r/n编程,/r/n上机/r/n调试,并/r/n记录下运/r/n行的结/r/n果。/r/n由键盘输/r/n入/r/n三/r/n个数,计算以这三个数为边长的三角形面积。/r/n提示:编程时要考/r/n虑到能/r/n构成三角形的条件为:两边之和大于/r/n第三边。/r/n求/r/n三角形/r/n面积公式为/r/nS=/r/nJT*/r/n(5/r/n-/r/na)*/r/n(5/r/n-/r/nft)*/r/n(5/r/n-/r/nc)/r/n。/r/n参考/r/n程/r/n序/r/n如/r/n下:/r/n#include''math,h”/r/nmain()/r/n{/r/nfloata,b,c,s,si;/r/nprintf(''Pleaseenter3reals:\n/r/nzz/r/n);/r/nscanf(''%f%f%f〃,&a,&b,&c);/r/nif/r/n((a+b)>c&&(a+c)>b&&(b+c)>a)/r/n{s=(a+b+c)*0.5;/r/ns/r/nl=s*/r/n(s-a)*(s-b)*(s-c);/r/ns=sqrt(si);/r/nprintf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论