C语言实例教程第2版普通高等教育“十一五”国级级规划教材习题答案作者赵克林《C程序案例教程》实验指导与习题解答_第1页
C语言实例教程第2版普通高等教育“十一五”国级级规划教材习题答案作者赵克林《C程序案例教程》实验指导与习题解答_第2页
C语言实例教程第2版普通高等教育“十一五”国级级规划教材习题答案作者赵克林《C程序案例教程》实验指导与习题解答_第3页
C语言实例教程第2版普通高等教育“十一五”国级级规划教材习题答案作者赵克林《C程序案例教程》实验指导与习题解答_第4页
已阅读5页,还剩206页未读 继续免费阅读

下载本文档

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

文档简介

«c程序案例教程》实验招导导灯敢解答主编:陈承欢参编:赵克林北京工业大学出版社内容简介本书是C语言程序设计课程的实验指导书和参考用书。本书主要包括四个部分:第一部分为实验指导部分,第二部分为习题解答部分,第三部分为补充习题部分,第四部分为附录部分。本书具有较强的针对性与实用性,内容丰富、条理清晰,是学习c语言程序设计的ー本好的参考用书,本书可以与《C程序案例教程》配套使用,也可以作为其他C语言教材的实验指导书和习题集,可以作为参加全国计算机等级考试二级c语言的参考用书。本书是《C程序案例教程》的配套教材,其内容紧扣C语言程序设计的教学内容与教学进度,可以作为其他C语言教材的实验指导书和习题集,也可以作为参加全国计算机等级考试二级C语言的参考用书。本书主要包括四个部分:第一部分为实验指导部分,为《C程序案例教程》一书中各章安排了具有针对性的实验内容。每个实验都给出了具体的实验目的和实验要求,并且根据学生每次上机操作的时间限制,精心安排了各次实验的实验内容,其目的是使学生通过上机实验理解所学的内容,训练学生编程、调试的动手能力。第二部分为习题解答部分,给出了《C程序案例教程》一书中所有习题的解题思路与参考答案,所有程序都上机调试并运行通过。第三部分为补充习题部分,给合教材内容与c语言二级等级考试的需要,补充了大量习题。第四部分为附录部分,主要包括TurboC2.0的主菜单,TurboC编译环境中常用的功能键与热键,书写实验报告的格式与要求,C语言多文件程序的编译与连接,C语言程序的调试方法,DOS的相关知识,UCDOS的正确使用方法,VisualC++编译环境下C语言程序上机操作的基本方法和步骤,C程序常见的出错信息浅析,C语言程序中常见错误浅析、编程规范化浅析等。本书共安排了10次上机实验,与主教材《C程序案例教程》各章相对应,任课老师可根据课时的多少,适当地调整实验次数。每一次实验的内容分为三个部分:第一部分为验证性实验,主要根据主教材中的例题中给出的程序,进行输入、修改、调试、输出结果,加深对所学知识的理解。第二部分为修改性实验,给出的程序中有意设定了几个错误,要求学生通过调试程序,修改程序中的错误,侧重于培养学生根据出错信息提示修改错误、调试程序的能力。第三部分为设计性实验,根据对应章节所学习的重点内容,给出几个编程题,题目相对比较容易,要求学生上机编写程序,并且调试成功,输出正确结果,主要提高学生的程序编写能力。每一部分给出了多个题目,读者可以根据具体情况完成2至3个实验题。本书第一部分、第三部分、第四部分由湖南铁道职业技术学院陈承欢老师编写,第二部分由四川信息职业技术学院赵克林老师编写,全书由陈承欢老师负责组织、统稿和审核。需要补充说明的是:本书所给出的程序参考答案并非是唯一的答案,对于同一题目,其算法不一定唯一,不同的设计思路编写的程序可能会有所区别,本书中给出只是ー种答案,可能不是最好的,只是提供一个参考答案供读者参考,启发读者思维。本书给出的所有程序都在TurboC或VC环境下调试通过。由于时间仓促,作者水平有限,书中难免存在ー些疏漏和不妥之处,恳请各位专家以及广大读者批评指正。编者2004年8月TOC\o"1-5"\h\z\o"CurrentDocument"内容简介 .i\o"CurrentDocument"第一部分C语言程序设计实验指导 1\o"CurrentDocument"实验ー 初识C语言集成编译环境 1\o"CurrentDocument"实验二 C程序的调试与运算符 14\o"CurrentDocument"实验三顺序结构程序设计 24\o"CurrentDocument"实验四选择结构程序设计 27\o"CurrentDocument"实验五循环结构程序设计 31\o"CurrentDocument"实验六数组与结构 36\o"CurrentDocument"实验七指针 40\o"CurrentDocument"实验ハ函数与变量存储类别 44\o"CurrentDocument"实验九文件 48\o"CurrentDocument"实验十部分典型算法 52\o"CurrentDocument"第二部分《C程序案例教程》习题解答 57\o"CurrentDocument"习题1 57\o"CurrentDocument"习题2 58\o"CurrentDocument"习题3 61\o"CurrentDocument"习题4 64\o"CurrentDocument"习题5 69\o"CurrentDocument"习题7 92\o"CurrentDocument"习题9 109\o"CurrentDocument"第三部分补充习题 120第1早 初识C程)十 120\o"CurrentDocument"第2章 C语言基础 120\o"CurrentDocument"第4章 选择结W程序设计 125\o"CurrentDocument"第5章 循环结构程序设计 127\o"CurrentDocument"第6章 数组与结构 133\o"CurrentDocument"第7章指针 142\o"CurrentDocument"第8章 函数与变量存储类别 143\o"CurrentDocument"第四部分附录 150\o"CurrentDocument"附求!TurboC2.0的主菜单 150\o"CurrentDocument"附录2TurboC编译环境中常用的功能键与编辑热键 156iiiTOC\o"1-5"\h\z\o"CurrentDocument"附录3书写实验报告的格式与要求 158\o"CurrentDocument"附录4C语言多文件程序的编译与连接 159\o"CurrentDocument"附录5C语言程序的调试方法 162\o"CurrentDocument"附求6DOS的相关知识 164\o"CurrentDocument"附录7UCDOS的正确使用方法 165\o"CurrentDocument"附录8VisualC++的使用方法 166\o"CurrentDocument"附录9C程序常见的出错信息浅析 170\o"CurrentDocument"附录10C语言程序中常见错误浅析 176\o"CurrentDocument"附录11编程规范化浅析 191\o"CurrentDocument"附录12第三部分补充习题的参考答案 194\o"CurrentDocument"参考文献 197第一部分 C语言程序设计实验指导实验ー初识c语言集成编译环境—.实验目的し了解所用的计算机系统的基本操作方法,学会独立使用该系统。.逐步熟悉C语言集成编译环境,学会设置合适的TurboC工作环境。.熟悉如何建立、打开、保存ー个C语言源程序。.通过编辑、编译、连接与运行简单的C程序,初步了解C程序的调试方法。二、实验内容和步骤1.熟悉TurboC的集成编译环境TurboC为C程序提供了编辑、编译、连接、运行的集成工作环境,具有运行速度快、编译效率高、易学易用、使用方便等特点。(1)启动TurboC,进入工作窗口开机后,按如下步骤进入C的工作环境:在DOS环境下启动TurboC,先键入:TurboC所在的盘符'TurboC所在路径、tc(例如C:\TurboC2\tc),并回车,则会出现如图1-1所示编辑窗口。图1-1也可以用cd命令使TurboC程序所在的目录成为当前目录(例如:cdc:\TurboC2),然后在含有TurboC程序子目录的命令行上键入:tc,并回车。注意如在C程序中要处理汉字,则在启动TurboC之前,应先启动UCDOS中文操作系统,具体方法参见附录7。

在Windows环境下启动TurboC.可以在如图1-2所示的资源管理器中双击文件名为“TC.EXE”的应用程序,或者进入Windows的MS-DOS方式(对于Windows98,可选择“开始”-“程序”-“MS-DOS方式”菜单,进入“DOS方式”窗口;对于Windows2000,可选择“开始”一“程序”一“附件”一“命令提示符”菜单,进入“DOS方式”窗口),通过DOS命令(例如:cd\c:\TurboC2)进入TurboC所在目录再键入tc,即出现如图!-1所示的TurboC编辑窗口。图1-2(2)熟悉TurboC操作界面TurboC集成环境的操作界面主要分成五个部分:主菜单、编辑窗口、状态栏、信息窗口和功能键提示行。主菜单位于窗口屏幕的顶部,它包括8个菜单:File(文件)、Edit(编辑)、Run(运行)、Compile(编译)、Project(项目)、Options(选项)、Debug(调试)、Break/watch(中断/监视),每一个主菜单还有其子菜单,分别用来实现各种操作。各个菜单项的名称及其功能详见附录1。编辑窗ロ:在主菜单的下面,正上方有Edit字样作为标志,主要用于TurboC源程序的输入和编辑。状态栏:在编辑窗u的上部有一行英文,这一行英文提供正在编辑操作的信息,其中Line!和Col1表示当前光标位置在第1行第1歹リ,标识光标当前所在的位置。当光标移动时,Line和Col后面的数字也随之改变。!nsert表示当前处于插入状态。右端显示当前正在编辑的文件名,对于新文件自动命名为:NONAME.C,对于调入ー个已存在的文件,该位置上将显示调入文件的文件名。试_试在编辑窗口中输入"#include<stdio.h>",然后按回车键,观察窗口顶部左端Line和Col后面数字的变化。按一下"Insert"键,观察窗口的变化。信息窗口:在屏幕的下部,用来显示编译和连接时的有关信息,在信息窗口上方有"Message”字样作为标志,但不能向信息窗口输入源程序。试ー试按功能键F5,观察它有什么作用,再按一次F5,再观察它有什么作用。然后按功能键F6,观察它有什么作用:再按一次F6,再观察它有什么作用。•功能键提示行:在信息窗口的下面,显示一些功能键的作用。常见的功能键的功能如下所示。Fl-Help:按Fl键系统将会根据光标当前位置为线索给出帮助信息。F5-Zoom:扩大当前活动窗口(编辑窗口或信息窗口)。F6-Switeh:编辑窗口和信息窗口之间的切换。F7-Trace:用于跟踪程序的运行情况。F8-Step:按一次F8键执行一个语句。F9-Make:进行编辑和连接,生成目标文件,但不运行程序。F10-Menu:激活第一个菜单File,进入主菜单选择状态。(3)熟悉TurboC主菜单的操作主菜单可以提供集成环境下的各种功能,主菜单的选择有两种方法:ー是按F10键进入主菜单的选择状态,此时主菜单中某ー项上呈高亮度显示,用左右光标移动键"一”或"一”将亮条移动到要选用的项目上,回车后出现对应的子菜单,再用上下光标移动键"或"t”选择菜単项,确认后回车。二是按AIt+各个菜单栏的第一个字母,例如选中"File”菜单,可按Alt+F.弹出该菜单栏的下拉子菜单,用上下光标移动键"I"或"t"将亮条移到所需的子菜単项,按回车键即可。试_试按功能键F10,并按回车键,观察"File”菜单,了解该菜单栏的下拉子菜单。用键盘上的"一”键,分别选中Edit、Run、Compile,Project,Option、Debug、Break/watch,观察它们的下拉子菜单,大致上了解它们的作用。了解TurboC的工作环境,学会改变其工作目录建立工作目录工作目录指用户文件所在的目录,用户进入TurboC的目录后,可以在这个目录下再建立一个用户专用的子目录,如图1-2所示,用户建立了两个子目录:exercise和ExOutput,其中exercise用于存储所编写的源程序,扩展名为.C;ExOutput用于存储目标文件和可执行文件,扩展名分别为,obj和.exe。在启动TC之前,先应建立用户所需的工作目录,因为TurboC系统中改变工作目录时,该工作目录必须事先存在,否则会出错。改变当前工作目录可以在进入TurboC系统以前,在DOS状态下用CD命令设置,也可以在进入TurboC系统以后改变工作目录。进入TurboC系统以后改变工作目录的方法如下:先按“Alt+F”选择File菜单,然后使用光标移动键“f”或“I”,将亮条移动到“Changedir”处并按回车键或直接按“C”键,出现ー个“NewDirectory”即“新目录输入框”,输入已存在的目录路径再按回车即可,例如:C:\TurboC2\exerciseo如图1-3所示。图1-3当前工作目录的作用:新建的源文件和输出文件(.obj文件.exe文件),如不另外指定存放位置,将自动保存在该子目录中。(5)学会设置合适的TurboC工作环境改变TurboC系统默认工作环境的方法:按Alt+O选择Options菜单,然后按D键(也可以用光标移动键将亮条移到“DirectoriesM处,再按回车键)后弹出ー个窗口,如图1-4所示。窗口中的各项的含义如下:第一行:Includedirectories指“头文件”所在的目录,系统显示出默认的子目录为:C:\TURB0C2\INCLUDEo如要改变该子目录,则将亮条移到“Includedirectories”处并按回车键,然后输入“包含文件”所在的盘符和路径。具体位置应与安装TurboC实际位置一致。第二行:Librarydirectories指库文件所在的H录,系统显示出默认的子目录为:C:\TURBOC2\LIBo如要改变该子目录,5!リ将亮条移到“Librarydirectories”处并按回车键,然后输入“库文件”所在的盘符和路径。具体位置应与安装TurboC实际位置一致。图1-4第三行:Outputdirectories指定编译、连接生成的目标文件和可执行文件(.obj文件和.exe文件)存放的目录,如果不改变则保存在当前工作目录中。系统允许输出文件保存在与源文件不同的子目录中,改变输岀文件的目录后,新建的源文件仍然存放在用户的当前工作目录中,而输出文件保存在另外的子目录中。如图1-4所示,将Outputdirectories设置为C:\TurboC2\ExOutput。这样设置完成后,源程序仍保存在C:\Turboc2\exereise了H录下,而目标文件和可执行文件将保存在C:\Turboc2\ExOutput子目录下。修改该子目录的方法:用上下移动光标键在目录窗口中选中所需更改的目录,按回车键,弹出ー个“输出文件目录对话框”,在此框内输入正确的子目录,按回车键确认后,对话框消失,则显示新的目录位置。第四行:TurboCdirectoワ指TurboC系统文件所在的目录,系统显示的是安装时的默认目录C:\TURBOC2,一一般可不修改它。特别提示:以上设置ー定要根据所用计算机的具体情况进行设置。根据TurboC安装的位置不同,目录名不一定是“TURBOC2”,可能为其他的目录名,总之要与实际情况ー致。试ー试以自己的姓名为子目录名,在适当的位置建立一个子目录,然后将源程序的存放目录和输出文件的存放目录改为所建立的新子目录。保存TurboC的工作环境信息按上述方法设置好工作环境后,按ESC键返回Options菜单,然后选择SaveOption菜单项,并按回车键,弹出ー个“ConfigFile”对话框,在框中默认的路径下输入TCCONFIGTC,并按回车键,系统在当前工作目录下建立一个配置文件TCCONFIG.TC,《C语言案例教程》实验指导与习题解答如图1-5所示。FileEditRunCompileProject TTTCTTiWDebugFileEditRunCompileProject TTTCTTiWDebugBreak/watchLine1EditCol1InsertIndentTaCompilei*LinkerEnvironmentDirectoriesArgumentsIONAME.C ConfigFileC:\TURBOC2\TCCONFIG.TCMessageFl-HeIpF5-ZoomFb-SwitchF7-TraceF8-StepF9Fl-HeIpF5-ZoomFb-SwitchF7-TraceF8-StepF9-MakeJ-nenuNUM图!-5启动TurboC时,系统会从当前工作目录和TurboC系统文件所在的目录中寻找文件TCCONFIGTC,如果找到了就把它调入内存,且不再显示TC的版本信息。(6)熟悉如何建立、打开、保存ー个C语言源程序源程序的输入输入源程序并建立源程序文件的过程,一般要调用编辑程序。能编辑源程序的软件较多,例如Windows自带的记事本、TurboC、VisualC++等,但记事本不具有编译、连接功能,使用较多的是TurboC,TurboC自带编译器和调试器,有了它就可以建立、修改、调试和运行C语言程序,此外可以利用集成环境各个菜单、热键进行程序调试。文件菜单File通过功能键F10选择File菜单或按住Alt+F键将弹出文件File的下拉子菜单。如图1-6所示。新建C源程序LoadF3PickAlt-F3NewSaueF2WritetoDirectoryChangedirOSshellQuitAlt-X图1-6新建一个源程序步骤如下:File-New一LoadF3PickAlt-F3NewSaueF2WritetoDirectoryChangedirOSshellQuitAlt-X图1-6先选择File菜单的New菜单项,然后按回车键,编辑窗口被清空,光标自动定位在左上角(第1行,第1列),此时可以开始输入和编辑源程序了。将源程序逐行输入,如发现错误可随时修改,在编辑过程中除用到键盘上的各个字符键外,还会用到各个编辑热键(详见附录2所示),其中Del键和Insert键又用得较多。源程序输入完成后应对程序认真检查,并改正所发现的错误。这时应及时将源程序存盘,选中File菜单下的Save菜单项,按回车键后,弹出ー个如图1-7所示对话框,要求指定新的文件名。由图1-7可知对话框中有一个默认的文件NONAME.C,此时可以指定新的文件存放路径和新的文件名。小技巧:如果路径不变,只改变文件名,可以先按一下左右光标移动键“一”或“一”,然后删除NONAME.C,输入新的文件名,这要可以避免重新输入路径。图1-7试ー试编写程序:求半径为2.0的圆面积。源程序如下:#include<stdio.h>main()(floats,r;r=2.0;s=3.14*r*r;printfTs=%f\iT,s);}源程序输入后,按上述方法进行存盘,文件名为“Exl」.c”。为了便于管理C文件,C文件的名称可按统ー的规范化方法命名,“Exl」.c”中的“Ex”表示“上机练习”,“1」”表示“第一次实验ー第一个程序”,后面各次实验テ文件名都是按此方法命名的。•编辑ー个已有的源程序重新编辑ー个已有的C源程序,选择菜单File中的菜单项Load,弹出“LoadFileName"对话框,选择默认的“*.C”,则列出所有当前目录下的扩展名是“.C”的文件。利用光标移动键将亮条移到需要编辑的文件名处,按回车后,对应文件的内容将显示在屏幕ヒ,供用户编辑、修改。如果要打开的文件不在当前目录下,则需要输入盘符、路径和文件名。编辑完成后保存文件,避免由于程序死循环或者其他意外情况而造成无法存盘。保存文件可选择菜单File中的菜单项Save(将亮条移到Save处回车),也可以直接按F2键,将文件存盘。对于修改的源程序,如果耍改用其他的文件名保存,则可选择菜单File中的菜单项"Writeto",按回车键后弹出ー个“NewName”对话框。在框中输入新的文件名或文件新的存放位置,然后按回车键,文件就会以新名存盘或在新的位置保存(原来的文件仍存在),编辑窗口中右上角便会显示新的文件名。(7)熟悉如何编译、连接和运行C程序•程序编译程序全部输入完毕或修改后,需要进行编译,生成目标文件(扩展名为.obj),然后将目标文件再连接生成可执行文件(扩展名为.exe)。说明:为什么源程序不能直接执行而还要进行编译呢?这是因为计算机不能识别高级语言程序,而只能识别用机器语言编写的程序,所以用高级语言编写的源程序,必须将它翻译成机器语言后,计算机才能执行。这种将高级语言源程序翻译成目标程序的过程称为编译过程,这种翻译程序称为编译程序。编译过程很复杂,编译程序一方面要对源程序中的各语句进行识别和分析,最后翻译成与之对应的机器语言指令;另一方面还要找出源程序中的错误。如果在编译过程中发现源程序中有语法错误,则要显示相应的错误信息,在这种情况下,必须重新调用编译程序对源程序进行编辑修改,而修改后的源程序也必须重新进行编译。这个过程可能要重复多次,直到编译过程中没有错误发生为止。编译通过后,即生成相应的目标程序,它是由计算机能识别的机器代码组成的。ー个完整的C程序可以由若干个函数模块组成,而这些模块可以存放在ー个文件中,也可以分别存放在不同的文件中,C编译程序允许各模块的文件分别编译,具体内容参见附录4,下面将介绍在TurboC集成编译环境中如何编译C程序。方法一:先编译(选择Compile/CompiletoOBJ)得到目标程序・.obj,后连接(选择Compile/LinkEXEfile)得到可执行文件・.exe。方法二:一次完成编译和连接(选择Compile/MakeEXEfile)或按F9图1-8中表示编译后生成Exl」.OBJ。图1-8如果没有错误,将会提示编译成功“Success”,生成目标程序,如图1-9所示。若程序有错,则在屏幕底部的“Message”窗口显示出错及警告信息,这时可进行修改,改完后,再重新进行编译。屏幕上的编译信息窗口包含以下信息:①最上方的Compiling表示是编译阶段的信息。

②第1行表示主文件名是EX1」.C。③第2行表示正在编辑的是文件EX1」.C。④以后几行分别表示编译的行数为7行,“警告"为〇个,“错误"为〇个。⑤倒数第二行表示占用的有效存储空间为249KB。@最后一行表示编译成功(Success),请用户按任ー键以便继续。图1-9F7001700图1-9F7001700•程序连接用户编写的程序一般都要调用ー些库函数,例如数学函数、字符串函数、输入输出函数等,有时还要调用用户自编的函数,但在源程序中调用这些函数时只给出函数名和有关参数,在编译过程中不可能自动生成实现这些被调用函数的代码。所以源程序文件经编译后生成的目标程序还不能真正执行,还需要将被调用函数的代码进行连接操作。所谓“连接”,是指将编译生成的目标文件与被调用函数的目标模块进行连接,最后生成计算机真正能执行的可执行文件。在连接的过程中,也要进行查错,主要是检查调用、各模块之间的联系,参数的传递以及存储空间分配等方面的错误。如果发现连接错误,则要对有关源程序进行编辑修改,然后重新进行编译和连接。在TurboC集成环境中进行连接的方法是:选择菜单“Compile”中的菜单项“LinkEXEfile”,如图1-10所示。如果没有错误,将会提示连接成功“Success”,生成可执行程序,如图1-11所示。屏幕上的连接信息窗口包含以下信息:①最上方的Linking表示是连接阶段的信息。②第1行表示连接后生成的可执行文件名为EX1_1.EXE,③第2行表示将H标文件与LIB子目录中的库文件CS.LIB进行连接。

其他几行与编译信息窗U相似。图1-10图1-11程序连接还可以采用菜単“Compile”中的菜单项“MakeEXEfile”或菜单项“Buildair'o前者先判断是否编译过,如果未编译,则先编译后连接。后者无论程序编译与否,都要先编译再连接。程序运行源程序经过编辑、编译和连接过程,并且无错误发生,最后生成可执行文件,且可以运行该可执行文件,得到所需要的结果。运行可执行程序有多种方法:ー是在DOS环境直接键入C程序的可执行文件名;二是在Windows的资源管理器内双击该可执行文件名;三是在C的集成环境下运行。这里只介绍第三种方法:在C的集成环境的操作界面下,选择菜单Run中的菜单项Run且按回车键,如图!-12所示,或者直接按Ctrl+F9组合键。如果源程序没有编译或连接,将先编译、连接再运行,否则程序直接执行,程序运行结束后,系统又自动回到原状态。

图1-12虽然在C的集成环境下,对于ー个未编译的程序,我们只要选择运行“Run”命令,就可以完成编译、连接、运行三个步骤,但是对于初学者,我们建议还是按照上述内容先选择编译,成功后再连接,最后选择运行。这样操作便于理解C程序的开发过程。此时如果发现运行结果不对,要进入编辑状态,可按Alt+E使亮块移到'‘Edit”处,也可以直接按F6,或者直接按回车键(对于连接错误不可行)。说明:在编译过程中,虽然可以发现源程序中的大部分语法错误、连接错误,但不能保证发现程序中的全部错误,特别是不能发现程序中的逻辑错误,有时虽然没有显示错误信息,但运行结果仍然不正确或运行过程中出现异常情况,此时还需要对源程序进行编辑修改,然后再进行编译、连接,直到运行结果正确为止。查看结果在TurboC2.0的集成环境下观看运行结果的方法是:选择菜单“Run”中的的菜单项"Userscreen"I如图1-13所示,或者直接Alt+F5组合键,转到用户屏幕,程序运行的结果将显示在用户屏幕上,如图1-14所示。按任一键返回TurboC集成环境的编辑窗口。图!-13图1-14•退出TurboC退出TurboC的集成环境,选择菜单File中的菜单项Quit,或者直接按Alt+X组合键,退出TurboC的集成环境,返回到DOS提示符状态。试ー试输入以下源程序,然后进行编译、连接、运行,最后查看运行结果。练习一:已知长方形的长为5,宽为3,求该长方形的周长1。(文件名为:exl_2.c)源程序如下:#include"stdio.h"main()(inta,b,1;a=5;b=3;l=2*(a+b);printfCl=%d",l);}注意:“ド即”じ,与“ビ的区别,不要输错。练习ニ:打印楼梯,同时在楼梯上方打印两个笑脸。(文件名为:exl_3.c)源程序如下:#include<stdio.h>main()(intij;printf("\l\l\n"); /・输岀两个笑脸・/forti=l;i<n;i++){fbr(j=lア=ij++)prin氓"%c%c”,219,219);printf("\n");2.根据本次实验所做的操作,编写C程序的步骤总结如下:(1)输入C语言源程序。(2)将输入的程序保存在自己的子目录中。(3)检查已输入的程序有无错误(包括语法错误和逻辑错误),如果有错,及时改正。(4)进行编译和连接(按F9),如果在编译和连接过程中发现错误,屏幕上会出现“出错信息”,仔细分析错误提示信息,根据出错提示找到出错位置和原因,加以改正,再进行编译……如此反复,直到顺利通过编译和连接为止。(5)编译和连接成功后,运行程序,并分析运行结果是否合理和正确。在运行时要注意输入不同的数据时所得到的结果是否正确。(6)查看程序运行结果。三.实验总结与书写实验报告(1)总结本次实验完成情况,相关知识的掌握情况。(2)总结本次实验编辑、编译、连接、运行所取得的经验。(3)分析本次实验事现的主要错误最直接的原因,提出改进措施。(4)按附录3的格式和要求书写实验报告。。实验二C程序的调试与运算符--实验目的.了解C程序的常见错误及其修改方法。.掌握C语言的基本数据类型,熟悉如何定义ー个变量,以及它们赋值的方法。.学会使用C语言的运算符以及包含运算符的表达式。.巩固第1次实验所学习的操作方法,进ー步熟悉C程序的编辑、编译、连接和运行的步骤和方法。--实验准备.检查所用计算机的完好情况,发现问题及时报告。.启动计算机,进入自己的工作子目录,查看工作子目录中的内容。.启动TurboC,进入TurboC集成工作环境。三.实验内容和步骤1.了解C程序的常见错误及其修改方法启动TurboC后,选择FilefLoad,找到第1次实验曾编写的程序exl」.c,加载该程序。exl」.c的程序代码如下:main()/*①*/(/*②*/floats,r;/*③*/r=2.0;/*④*/s=3.14*r*r;/*⑤*/printfi(,,s=%f\nH,s);/*⑥*/I/*⑦*/按F10键,将亮条移至Compile处后回车,在下拉菜单中选择CompiletoOBJ,此时系统显示出默认的冃标文件名:exl_l.obj,按回车犍进行编译,接着再进行连接。以上程序能顺利地通过编译和连接。下面有意地给程序设置・些常见的错误,观察其编译或连接出现的错误提示信息,以提高观察能力和调试能力。(1)去掉第4行结尾的“;”,再一次编译该程序,出现如图2-1所示的编译信息窗口。图2-1所示窗口中间小窗口的信息的含义说明如下:①窗口最上方的“Compiling”表示当前是编译阶段的信息。②第1行表示主文件名是:EX1_1.C。③第2行表示正在编译的文件是:EXl_l.Co由于只有一个主文件,所以与主文件名相同。④下面几行表示编译时行数为7行,“警告”为2个,“错误”为1个。所谓“Warnings(警告)”是指较轻微的错误,TurboC系统对此能够容忍,仍然把有警告的程序生成目标文件和可执行文件,即程序编译可通过,但不保证程序的运行结果正确。所谓“Errors(错误)”是指严重的错误,系统不能容忍,编译不能通过。编译系统对有错误的程序不生成目标文件和可执行文件,必须改正后重新编译和连接。⑤倒数第2行表示占用的有效存储空间为:249KB。⑥最后一行表示编译存在错误,请用户按任ー键继续。图2-1按任何一个键后,中间的编译信息窗口消失,在屏幕下部的Message窗口中,显示了具体的出错信息和错误的位置,如图2-2所示。图2-2中Message窗口中出错信息的含义说明如下:①第1行显示正编译的文件名:EX1_1.C»②第2行是出错信息,指出源程核的第5行出现了一个错误,错误的内容是:uStatementmissing;infunctionmain"(主函数中的语句漏了一•个分号),从图2-2中可以看到该行是以高亮度显示的,同时在上部Edit窗口中源程序的第5行也是以高亮度显示,这样便于用户对照检查。我们可以发现该源程序中第4行的末尾漏了一个“;”,而此时高亮度标识却在第5行,Message窗口中提示也是第5行,为什么两者不一致呢?这是由于编译系统在检査第4行时,发现语句末尾没有分号,但这时还不能判定该语句有错,因为C语言允许把ー个语句分写在两行上。于是,编译系统接着检查第5行,看第5行的开头有无分号,当发现第5行的开头没有分号时オ判定出错,但此时的位置已是第5行了,所以报错的行数为第5行。请注意,在看到出错信息时,不能只简单地从系统显示的岀错行数去找错,应该连同《C语言案例教程》实验指导与习题解答上下行ー起检查。图2-2③第3行是警告信息,错误的内容是:"Possibleuseof's'beforedefinition(在定义s之前可能已使用)”,出现这个警告信息的原因是:由于源程序中第4行漏了分号,造成变量r没有被赋值。由于变量r没有确定的值,第5行表达式“3.14*r*r"也就不能计算出确定的值,所以s也就没有被赋值。第6行输出语句中输出s的值,没有确定的值输出,也就出现了警告信息。④第4行也是警告信息,错误的内容是:"‘r'isassignedavaluewhichisneverused(r被赋的值从未使用过)”。原因是该变量r出现在ー个赋值语句中,但直到函数结束都未使用过,所以警告信息出现在第7行。此时,高亮度仍然停在Message区的第2行,按回车键,激活上面的编辑窗口,光标停在第5行上,以便用户修改。两个窗口中的高亮度显示行已恢复为正常显示。在编辑窗ロ顶部用红色显示刚オ观察的出错信息,以便用户对照修改,ー开始进行修改,顶部的红色显示即消失。修改错误:在源程序第4行末尾加一个”。再・次进行编译,发现编译成功,1个错误消失了,两个警告也同时被排除,如图2-3所示。按任何ー个键后,发现Message窗口中原有错误信息和警告信息消失了。(2)将源程序中第6行prin日语句内的双引号去掉右边的一半,再一次编译,出现如图2d所示的编译提示信息,有1个警告,2个错误。按任ー•键后出现如图2-5所示的出错提示信息。图2-5中Message窗口中出错提示信息的含义说明如下:出现在第6行的第1个错误:"Unterminatestringorcharacterconstant(未终结的串或字符常量)”,编译程序发现串或字符常量开始后没有终结。由于printf语句括号内的字符串双引号只有一半,也是没有终结。图2-3命令提示符ーtc图2-4出现在第6行的第2个错误:"Functioncallmissing)infunctionmain(在主函数中函数调用缺少‘)')”,造成该错误的原因仍然是由于printf语句括号内的字符串双引号缺少右半部分,所以调用输出函数printf时,参数形式与函数原形不符。③出现在第6行的的警告也是表示‘s‘被赋以ー个从未使用的值。其实后面的1个错误和1个警告都是伴随第1个错误而出现的。将printf语句括号内的字符串双引号加上右半部分,,,,”后,再次编译,系统没有发现编译错误,表示编译成功。(3)将源程序主函数的结束标志“}”去掉,再次进行编译,出现如图2-6所示的编译信息。按任一键后,出现如图2-7所示的错误提示信息。图2・5File EditLineRun_Compile ProjectOptions_File EditLineRun_Compile ProjectOptions_DebugColInsertIndentTabFillUnindent*”也星1以星EX1_1.Citch且旦至floats,r;r=2.0;s=3.14*r*rfloats,r;r=2.0;s=3.14*r*r;printf<Ms=zf\n0,sCompilingMainfile:EXERCISEヽEX1」.CCompiling:EDITOR->EX1_L.CTotalLinescompiled:7Warnings:0Errors:1e•1F701Availablememory:249KAvailablememory:249KErrors : Pressanyke图2-6图2-7中Message窗口中出错信息的含义说明如下:出现在源程序第7行的错误:"Compoundstatementmissing}infunctionmain",其义是在主函数复合语句中漏掉了“ド。编译程序扫描到源程序结束处,未发现结束标记“ド,很明显是由于花括号不配对造成的,加上结束标记“ド,再次编译,系统没有发现编译错误,表示编译成功。(4)将源程序中“r*r”改为“「2",再次编译,出现如图2-8所示的编译信息。按任ー键后,出现如图2-9所示的错误提示信息。图2-7命令提示符ーtct Run CompileProjectak/watchLine5mainO 二Edit Col13InsertIndentTabFillUnindent*C:EX1_1.Cfloats,r;r=2.0;s=3・14*r人2;printぐ’s=Nf",s〉CompilingMainfile:EXERCISE\EX1_1-CCompiling:EDITOR->EX1J.CTotalLinescompiled:7Warnings:2Errors:1.1F721Availablememory:249KErrors :Pressanuke图2-8出现在源程序中第5行的错误:"Illegaluseoffloatingpointinfunctionmain(在主函数出现非法的浮点运算)”,产生这个错误的原因是由于将“r*r”写成了“己2”,在C语言中“人”表示“按位异或”运算符,而不是表示求平方的运算符,只要将“「2”改为“r*r”,再次编译便不会出现错误了。另外两个警告与前面的相同,在此不再重述。(5)将源程序中printf改为print,再次编译,系统没有发现编译错误,表示编译成功。为什么将正确的函数名printf改为错误的函数名print,编译过程却没有出现错误呢?原因是编译时只检査源程序中各语句的语法错误,函数名print符合C语言的命名规则,所以没有出现错误。但由于输出函数是标准的库函数,其函数名是预定义的,必须与TurboC头文件中函数说明的函数名・致,否则在连接阶段仍然会出现错误,具体分析见下ー步的连接。图2-9下面进行连接操作,连接时仍然保留错误的输出函数名print,其他错误全部修改成正确的。程序编译后,进行连接。方法是选择菜单“Compile”中的菜单项“LinkEXEfile”,如果没有错误,将会提示连接成功“Success”,生成可执行程序。程序连接还可以采用“Compile”菜单项目中的“MakeEXEfile”命令或“Buildah”命令。前者先判断是否编译过,如果未编译,则先编译后连接。后者无论程序编译与否,都要先编译再连接。按F10键后选择Compile-LinkEXEfile,然后按回车键,进行连接,出现如图2-10所示的连接信息,按任一键后,出现如图2-11所示的错误提示信息。从图2-11可知出现了一个连接错误,错误的内容是:“Undefinedsymbol'jrint'inmoduleEX1JC”(在EX1J.C模块中符号'_print,没有定义)”,原因是标准输加函数名printf写成了printo对于这类错误,首先需要查找该符号,如果是变量,需要判定是否定义或者书写是否有误,如果是库函数,则要判定书写是否正确(注意大小写不同)或者是否在程序中包含了(即include)该库函数所在的头文件。把函数名print改成printf,再次连接便成功了。注意:连接之前一定要先进行编译,如果没有编译就连接会出现以下错误:“Unabletoopeninputfile:EXlJobj”。特别说明:如果连接时,出现如图2-12所示的错误信息,则说明需要修改TurboC的环境设置。修改方法参见第1次实验的操作说明,在此不再重述。

图2-10图2-11接下来运行程序,生成可执行文件后,就可以运行了。在C集成编译环境的操作界面下,选择菜单"Run”中的菜单项“Run”运行程序,或者直接按Ctrl+F9组合键运行程序。程序运行结束后,系统又自动回到原状态。程序运行过程中,如有键盘输入语句(scanf语句),屏幕显示会切换到用户屏幕,等待用户输入数据,输完数据后,按回车键,屏幕显示切换到TurboC编辑窗口。运行时如果不符合要求,可以采用单步执行(使用功能键F7或F8)的方法。如果需要在整个程序执行过程中观察变量值的变化情况,可以利用“Break/Watch”中的“Addwatch”键入需要的变量名。如果只是在程序运行的某ー个位置观察某个变量的值时,可以选择“Debug”中的“Evaluate”命令输入变量名。以上这些方法,有助于用户了解程序流程和变量的变化,从而找到算法或程序的错误或漏洞。图2-12特别提示:使用scanfO函数时,如果变量名前遗忘了取地址符“&”,编译将会通过,但是最后输出的结果将会不正确。所以如果结果与期望不符,首先要检查scanf()函数的地址表列是否正确、scan")和printf()中的格式符是否匹配、从键盘中输入数据是否与scan")输入格式一致。最后查看程序运行结果,选择菜単“Run”中的菜单项“Userscreen”,按回车键,屏幕显示切换到用户屏,显示程序运行结果。看完结果,按任ー键返回TurboC编辑窗口。试ー试(1)将程序exl」.c中的第3行的単精度数据类型名float改为int,进行编译观察提示信息,改正后再次编译,观察提示信息。(2)在主函数名main()后加上一个“;”,进行编译观察提示信息,改正后再次编译,观察提示信息。(3)去掉第3行末尾的分号“;”,进行编译观察提示信息,改正后再次编译,观察提不信息。(4)将第6行输出语句括号内的“%f”改成“%d”,进行编译观察提示信息,改正后再次编译,观察提示信息。(5)将第3行变量s的名称改为大写字母“S”,进行编译观察提示信息,改正后再次编译,观察提示信息。2.学会使用C语言的运算符以及包含运算符的表达式先输入以下源程序,然后进行编译、连接与运行。(文件名为ex2」.c)main()(inti,j,m,n;i=8;j=10;m=++i;n=j++;printR"i=%dj=%d,m=%d,n=%d\n”,i,j,m,n); /*i=9,j=l1,m=9,n=10*/(1)运行程序,观察输出的结果,注意i、j、m、n各变量的值。(2)将第6、7行改为:m=i++;n=++j;运行程序,观察输出的结果,注意i、j、m、n各变量的值,输出结果应为:“i=9,j=ll,m=8,n=ll(3)将程序改为:(文件名为ex2_2.c)main()(inti,j;i=8;j=10;printf(6ti=%d,j=%d\n”,i++,j++);/*i=8,j=10*/i=8;j=10;printfCi=%d,j=%d\n",++i,++j);/*i=9,j=ll*/运行程序,观察输出的结果,注意两次输出的值。四.实验总结与书写实验报告(1)总结本次实验完成情况,相关知识的掌握情况。(2)总结本次实验编辑、编译、连接、运行所取得的经验。(3)分析本次实验出现的主要错误最直接的原因,提出改进措施。(4)按附录3的格式和要求书写实验报告。

实验三顺序结构程序设计—.实验目的.掌握C语言中赋值语句的使用方法。.掌握键盘输入输出语句。.掌握各种类型数据的输入输出方法,能正确使用各种格式符。.注意不同数据类型所对应的格式符及其特点。实验前的准备.检查所用计算机的完好情况,发现问题及时报告。.启动计算机,进入自己的工作子目录,查看工作子目录中的内容。.启动TurboC,进入TurboC集成工作环境。三.实验内容和步骤.验证性实验输入已编好的源程序,然后进行编辑、编译、连接和运行,观察运行结果。(1)随机产生两个三位自然数,并求其平均值。(文件名为ex3」.c)源程序如下:#includeconio.h"ttinclude"math,h”main(){intx,y;源程序如下:#includeconio.h"ttinclude"math,h”main(){intx,y;floataver;clrscr0;x=rand()%900+100;y二rand()%900+100;aver=(x+y)/2.0;/・挂头文件・//・定义变量・//*连续3行:处理数据・/printf("\nx=%d,y二%d,aver二%f”,x,y,aver); /・输出结果・/(2)从键盘输入ー个字母,如果是大写字母,则输出它对应的小写字母;如果是小写字母,则输出它对应的大写字母。(文件名为ex3一2.c)源程序如下:#includeconio.h"main(){charchi,ch2;clrscr0;scanf("就",&chl);ch2=chl>=A'&&chl<=Z>?chl+32:chl-32;printf(*\n%c*,ch2);).改错性实验输入已编好的源程序,源程序中包含有错误,先对源程序进行编译和连接,然后根据提示信息,修改程序中的错误,经过多次反复修改ー编译ー连接,直到编译、连接成功。最后运行程序,输出正确结果。(1)输入两个整数给变量x和y,然后输出x和y,在交换x和y中的值后,再输出。程序如下:(文件名为ex3-3.C)include"stdio.h" /・提示:有3处错误・/main()(intx,y;printf("输入x和y:\n");scanf("%d%d",x,y);printfi["x=%dy=%d\n",x,y);t=x,x=y,y=t;print("x=%dy=%d\n",x,y);}(2)求两数平方根之和。例如:输入12和20,输出结果为:产7.936238。(文件名为ex3_4.c)#include<stdio.h> /・有6处错误・/main()|doublea,b,y;scanf,&a,&b);y=sqr(a)+sqr(b);printff'尸%f\n",y);}.设计性实验学习编写程序,根据要求编写正确的程序并调试成功。(1)设圆柱的半径X1.5,圆柱高h=3,求圆柱的体积。要求用scanf函数输入数据,用printf函数输出结果。输出时要有文字说明,取小数点后两位数字。(文件名为ex3一5.C)(2)编写程序,用getchar函数读入两个字符给cl、c2,然后分别用putchar函数和printf函数分别输出这两个字符。(文件名为ex3_6.c)四.实验总结与书写实验报告(1)总结本次实验完成情况,相关知识的掌握情况。(2)总结本次实验编辑、编译、连接、运行所取得的经验。(3)分析本次实验出现的主要错误最直接的原因,提出改进措施。(4)按附录3的格式和要求书写实验报告。实验四选择结构程序设计—.实验目的.了解C语言表示逻辑量的方法。.学会正确使用逻辑运算符和逻辑表达式。.熟练掌握if语句和switch语句。.结合程序掌握ー些简单的算法。实验前的准备.检查所用计算机的完好情况,发现问题及时报告。.启动计算机,进入自己的工作子目录,查看工作子目录中的内容。.启动TurboC,进入TurboC集成工作环境。三.实验内容和步骤1.验证性实验输入已编好的源程序,然后进行编辑、编译、连接和运行,观察运行结果。(1)输入x,按下列公式求分段函数g(x)的值。(文件名为ex4_l.c)"0.75*x (x<-40)g(x尸イ046*x+3.7 (lOWxく20)、1.5*x-6 (x>20)程序如下:voidmain()(floatx,y;scanf(K%f*,&x);if(x<-40)y=0.75*x;elseif(x<=20)y=0.46*x+3.7;elsey=1.5*x-6;printfC'g(%f)=%f\nM,x,y);}(2)有3个整数a、b、c,由键盘输入,输出其中最大的数。(文件名为ex4_2.c)main()inta,b,c,temp,max;printf(”请输入3个整数:M);scanfi(,,%d%d%d",&a,&b,&c);temp=(a>b)?a:b;max=(temp>c)?temp:c;printf("3个整数中最大数是:%d\nH,max);}(3)输入学生某科成绩,输出其等级。成绩[90,100]为A等,成绩[80,89]为B等,成绩[60,79]为C等,60分以下为D等。程序!:用if语句(文件名为ex4_3.c)^include“conio.h"main(){intscore,x;chargrade;clrscr();printf("\nPleaseinputscore[0,100]:");scanf("籾”,&score);if(score>=90)printf("A");elseif(score>=80)printf("B");elseif(score>=60)printf("C");elseprintf("D");}程序2:用switch语句(文件名为ex4_4.c)#include"conio.h"main()(intscore,x;chargrade;clrscr();printf("\nPleaseinputscore[0,100]:");scanf("%d",&score);x=score/10;switch(x){case10:case9:printf("A");break;case8:printf("B");break;case7:case6:printf("C");break;case5:case4:case3:case2:case1:case0:printf(MDn);break;default:printf(zzInputError!");.改错性实验输入已编好的源程序,源程序中包含有错误,先对源程序进行编译和连接,然后根据提示信息,修改程序中的错误,经过多次反复修改ー编译一连接,直到编译、连接成功。最后运行程序,输出正确结果。(1)编写程序,输入一位学生的生日(年:y0>月:m0、日:d0),并输入当前的日期(年:yK月:ml、日:dl),输出该生的实足年龄。请填空(文件名为ex4_5.c)#include<stdio.h>main()(intyO,mO,dO;intyl,ml,dl,age;scanf(M%d%d%dM,&y0,&m0,&d0);scan出"%d%d%d",&yl,&ml,&dl);age=yl-yO;if(ml<m0)age—;printf(”age=%d\n",age);}(2)下面这个程序要求用户输入两个整数和一个字符。字符必须是屮、ビ、阳、ア其中的ー个。然后程序输出两数作相应运算的结果。例如:输入123,34,+程序输出123+34=157。(文件名为ex4_6.c)#include<stdio.h>/・提示:有3处错误ッmain()(floatdl,d2,result;charop;scanfi(,,%f%f%c,,,&dl,&d2,&op);switchopcase屮:result=dl+d2;break;caseresult=dl-d2;break;case«♦».result=dl*d2;break;case7fresult=dl/d2;break;defaulterror=l;if(error)printf("运算操作符输入有错!ッ;elseprintfl["%.2f%c%.2f=%.2f\n",d1,op,d2,result);.设计性实验学习编写程序,根据要求编写正确的程序并调试成功。(1)火车站托运行李,从甲地到乙地,按规定,每张客票托运行李不超过50千克,按每千克1.35元计算运费。如果超过50千克,超过部分按每千克2.65元计算运费。编写程序计算托运费。(文件名为ex4_7.c)(2)个人所得税问题。规定:1000元以下不收所得税,1000到1500元之间部分收5%,1500到2000元之间部分收10%,2000到2500元之间的部分收!5%,2500元以上收20%〇月收入由键盘输入,输出个人收入所得税。(文件名为ex4一8.c)四.实验总结与书写实验报告(1)总结本次实验完成情况,相关知识的掌握情况。(2)总结本次实验编辑、编译、连接、运行所取得的经验。(3)分析本次实验出现的主要错误最直接的原因,提出改进措施。(4)按附录3的格式和要求书写实验报告。实验五循环结构程序设计--实验目的.熟练掌握用while语句,do-while语句和fbr语句实现循环的方法。.掌握在程序设计中用循环的方法实现ー些常用算法。.对循环语句的三种形式进行分析、比较,以掌握各种形式的共同之处及其特点。实验前的准备.检查所用计算机的完好情况,发现问题及时报告。.启动计算机,进入自已的工作子目录,查看工作子目录中的内容。.启动TurboC,进入TurboC集成工作环境。三.实验内容和步骤.验证性实验输入已编好的源程序,然后进行编辑、编译、连接和运行,观察运行结果。(1)求100〜200间的全部素数(文件名为ex5_l.c)include"stdio.h"include"math.h"voidmain()(intm,k,i,n=0;for(m=101;m<=200;m=m+2)(if(n%10=0)printf("\n");k=sqrt(m);fbr(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+l)(printf(H%d",m);n-H-;(2)程序功能是分别计算1至10之间奇数之和及偶数之和,分析程序执行结果。(文件名为ex5_2.c)includenstdio.hM

mainOintx,y,z,k;x=z=O;for(k=l;k<10;k+=2){x+=k;y=k+l;z+=y;/*k取奇数:1mainOintx,y,z,k;x=z=O;for(k=l;k<10;k+=2){x+=k;y=k+l;z+=y;/・奇数k之和放于x变量中・//*y比x大1,故取偶数:2、4、6、8、10*//・偶数y之和放于z变量中・/printf("\nx=%d,z=%d”,x,z);)(3)求自然对数的底e的值,直到某项值小于104为止。(文件名为ex5-3.c)计算公式是:e=ld 1 1 P 1!2!3!#includeconio.h*mainO{longt=l;intn=l,i;floate=l;clrscr();whiled.0/t>=le-6){t=l;for(i=l;iく=n;i++)t・二i;e+=l.0/t;n++;printf("e=%f",e);}(4)键盘输入的任意正整数,求其逆数。所谓“逆数”是指将原来的数颠倒顺序后形成的数。如输入1986时,输岀6891。(文件名为ex5_4.c)ttinclude'conio.h"mainO(intdigit,n=0;longx,y=0;clrscr0;scanf("%ld",&x);do{digit=x%10; /*取出低位数字・/y=y*10+digit; /・ 合并数字 ・/n++; /*统计位数*/x=x/10; /・移动数字・/}while(x);printfy);).改错性实验输入已编好的源程序,源程序中包含有错误,先对源程序进行编译和连接,然后根据提示信息,修改程序中的错误,经过多次反复修改ー编译ー连接,直到编译、连接成功。最后运行程序,输出正确结果。(1)函数ftinr功能是:统计不超过ー个整数m(包括m且m23)的素数个数。(文件名为ex5_5.c)#include<stdio.h> /・提示:有3处错误・/#include<conio.h>intfun(m){inti,k,num=0;for(i=3;i<=m;i+=2){k=2;while(k<=i&&(i%k)==0) k++;if(i=k)num++;}returnnum;}main(){intn;scanf("%d",&n);printf("\nResult=%d",fun(n));)(2)下述程序中,函数firn的功能是:判断ー个整数是否是素数,若是返回1,否则返回〇。(文件名为ex5_6.为#include<conio.h> /・提示:有3处错误・/#include<stdio.h>intfun(m)intk=2;while(k<=m&&(m/k)) k++;if(k=m)return1;else return0;}main()(intn;scanf('*%d",&n);if(ftin(n)) printffYES\n");else printfT'NO!\n");}(3)下列程序中,fun函数的功能是:读入ー个整数,计算如下公式:t=l・l/2・l/3・l/4・……-1/m的值。(文件名为ex5_7.c)例如,若输入5,则输出•0.28333。#include<conio.h>/・提示:有4处错误・/#include<stdio.h>doublefun(intm)(doublet;inti;for(i=2,i<=m,i卄)t=1.0-1.0/i;return(t);}main()(intm;scanf(H%dH,&m);printf(H\ntheresultis%If*,fun(m));}3.设计性实验学习编写程序,根据要求编写正确的程序并调试成功。(1)假设有36块砖,36人搬,男搬4,女搬3,小孩2人搬ー块。要求一次全部搬完,问男、女、小孩各多少人?(文件名为ex5_8.c)(2)斐波那数列的前几项是:1、1、2、3、5、8、13、21、34……。编程输出该数列的前13项。每行给出5个数。(文件名为ex5_9.c)(3)编写程序,ー张100元钞票换成面值分别为5元、1元、0.5元的三种钞票共100张,每种钞票至少1张,则每种面值的钞票各多少张?有哪几种可能的兑换方案?(文件名为ex5_10.c)四.实验总结与书写实验报告(1)总结本次实验完成情况,相关知识的掌握情况。(2)总结本次实验编辑、编译、连接、运行所取得的经验。(3)分析本次实验出现的主要错误最直接的原因,提出改进措施。(4)按附录3的格式和要求书写实验报告。《C语言案例教程》实验指导与习题解答实验六数组与结构--实验目的.掌握ー维数组和二维数组的定义、赋值和输入输出方法。.掌握字符数组的使用。.掌握与数组有关的算法。.掌握结构体类型变量的定义和使用。二.实验前的准备.检查所用计算机的完好情况,发现问题及时报告。.启动计算机,进入自己的工作子目录,査看工作子目录中的内容。.启动TurboC,进入TurboC集成工作环境。三.实验内容和步骤.验证性实验输入已编好的源程序,然后进行编辑、编译、连接和运行,观察运行结果。(1)某数列前两项为0、1,以后各项均为前相邻两项之和,输出该数列前20项。(文件名为ex6_l.c)^include"conio.h"main()(longi,x[20];clrscr();x[〇]=0;x[l]=l;for(i=2;i<20;i++) /・尚剩18项・/x[i]=x[i-l]+x[i-2]: /・产生各项・/for(i=0;i〈20;i++) /*输岀数列*/printf(*%ld\t*,x[i]);}(2)从键盘输入N个自然数,然后按升序进行排列。程序1:用“比较法”(文件名为ex6_2.c)^include"conio.h"#defineN10main()inta[N],t,i,j;clrscr();for(i=0;i<N;i++) /*本循环输入N个原始数据・/scanf&a[i]);for(i=0;i<N-l;i++) /*本循环完成排序*1for(j=i+l;j<N;j++)/*x[i]与它后边所有元素逐一比较,大则交换・/if(a[j]<a[i]){t=a[j];a[j]=a[i];a[i]=t;}for(i=0;i<N;i++) /・输出排序后的数组・/printf(*%d*,a[i]);)程序2:用“冒泡法”(文件名为ex6_3.c)#include'conio.h"#defineN10mainO(inta[N],t,i,j;clrscr();for(i=0;iくN;i++)scanf(线d”,a+i);for(j=0;j<N-l;j++)for(i=0;i<N-j;i++)if(a[i]>a[i+l]){t=a[i];a[i]=a[i+l];a[i+l]=t;}for(i=0;i<N;i++)printf(*%d”,a[i]);)(3)输入一个字符串,判断它是否是回文(对称)。如abcdcba是回文。(文件名为ex6_4.c)源程序如ド:ftinclude"conio.h"^include"string,h”mai

温馨提示

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

评论

0/150

提交评论