C语言上机指导.docx
《C语言上机指导.docx》由会员分享,可在线阅读,更多相关《C语言上机指导.docx(58页珍藏版)》请在冰豆网上搜索。
C语言上机指导
C语言上机指导书
前言
本指导书是针对计算机专业及非计算机专业的本科生、专科生及函授生的需要提供的C语言上机指导书。
前面十个实验涉及的是C语言的基础内容,要求学生必须熟练掌握。
后面三个综合性实验能提高学生对较复杂问题的分析及程序设计能力。
另外每个实验后面都有思考题,主要目的是进一步巩固所学的知识。
在本指导书的第三、四部分给出了turboC的常用函数表和错误信息表,目的是方便学生编程并查阅所需要函数并尽快找出错误的根源。
上机内容中有的给出了参考程序(主要是前面几个实验),更多的需要学生自己编写程序,所以要求学生必须在每次实验前认真预习本次实验内容,编写好程序方能参加实验。
编者
2006.1.
TurboC集成编译环境
TurboC集成编译环境是一个集程序编辑、编译、连接、调试为一体的C程序开发软件,它具有速度快、效率高、功能强、使用方便等优点。
用户在这个集成环境下,可以利用内部的编辑器进行全屏幕编辑,利用窗口功能进行编译、连接、调试、运行、环境设置等工作。
如果你的计算机系统已经安装了TurboC编译系统,则在DOS命令状态下键入命令:
TC或TCfilename
其中filename是用户需要进行编辑、编译、连接、运行的C程序的文件名。
在前者情况下,该文件名可以在进入集成环境后再指定。
如果是在windows环境下启动TC,只需要找到TC.exe文件双击即可。
进入TurboC集成环境后,首先在屏幕上显示TurboC主菜单窗口,如图1所示。
FileEditRunCompileProjectOptionsDebugBreak/Watch
图1
由图1可以看出,在该菜单下,有八个菜单条目,即提供了八种选择。
每一个条目的意义如下:
file处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列表、改变工作目录),退出系统及调用DOS。
Edit建立、编辑源文件
Run控制运行程序。
如果程序已经编辑连接好,且debug/sourcedebugging以及option/compiler/codegeneration/objdebuginformation开关置为ON,则可以用此菜初始化调试阶段。
Compile编译并生成目标程序与可执行文件。
Project允许说明程序中包含哪些文件的管理条目(project)。
Options可以选择集成环境任选项(如存储模式、编译时的任选项、诊断及连接任选项)及定义宏;也可以记录include、output及library文件目录,保存编译任选项和从配置文件加载任选。
Debug检查、改变变量的值,查找函数程序运行时查看调用栈。
选择程序编译时是否在执行行代码中插入插入调试试信息。
Break/watch增加、删除、编辑监视表达式,及设置、清除、执行至断点。
特别要指出的是,除了EDIT项外,每一个菜单项以对应一个子菜单。
而选择EDIT项目后,只是进入编辑器。
为了从主菜单中选择所需要的功能,可以用以下两种方式之一:
(1)按F10键后,可以年到屏幕上部主菜单中的某个条目处出现亮块,此时,利用左、右光标移动键(←与→)将此亮块移到所要选择的条目位置处,然后按回车(ENTER)键,即出现相应的子菜单。
(2)直接按ALT+主菜单条目中的首字母(分别为F,E,R,C,P,O,D,B)此时就会出现相应的子菜单。
例如,按ALT+F表示选择文件子菜单(FILE)。
当出现子菜单时,其中某个条目是高亮度的,此时可以利用上、下光标移动键(↑与↓)来移动该高亮度线,从而选择所需要的功能。
在主菜单或通过主菜单调用的任意一个子菜单中,按ESC键后将直接返回到活动窗口。
下面简要介绍各子菜单的功能。
1.文件子菜单(FILE)
当选中FILE子菜单后,在“FILE”下方将出现一个子窗口,如图3.2所示。
在边个子窗口中,有的条目右边还标出了实现该功能的热键。
所谓“热键”,是指为执行菜单中某一固定功能而设置的键。
通过热键来实现某种功能,一般要比通过菜单选择更简单直接,但要求用户熟记这些热键。
例如,为了选择“文件了菜单(FILE)”,除了通过主菜单选择以外,还可以直接用热键ALT+F来选择。
FileEditRunCompileProject
LoadF3
PickAlt+F3
New
SaveF2
Writeto
Directory
Changedir
OSShell
QuitAlt+X
图2
下面简要说明各项的功能:
(1)load(加载)
装入一个文件。
当给定的文件名中有文件名通配符(*或?
)时,将进行列表选择。
(2)pick(选择)
将最近装入进编辑窗口的8个文件列成表,供用户选择,选择后又装入编辑器,光标置在上次修改过的地方。
若选了“…LOADFILE…”,屏幕上将出现“LOADFILENAME”提示框。
(3)new(新文件)
说明文件是新的,装入编辑器的缺省文件名为NONAME。
C。
(4)save(存盘)
将编辑器中的内容存盘。
若文件名为NONAME。
C,而又要存盘,编辑器会询问是否要改名。
(5)writeto(存盘)
把编辑器中的内容写入指定的文件中。
若该文件已经存在,则导致重写。
(6)directory显示目录与所需文件列表(右按回车键则选择当前上当)。
热键F4改变匹配符,选择文件名后,将该文件装入编辑器。
(7)changedir(改变驱动器)
显示当前上当,改变构驱动器与目录。
(8)osshell(暂时退出)
暂时退出TurboC,转到DOS状态,在DOS状态下用EXIT命令又可返回TurboC。
此功能对于在想运行DOS命令但又不想退出TurboC时非常有用。
(9)quit(退出)
退出TurboC,返回到DOS状态。
2.编辑命令(EDIT)
调用内部编辑器。
在编辑器中按F10可返回主菜单(或用ALT加所需主菜单命令的首字母),但此时编辑器中的内容仍保持在屏幕上。
在主菜单中按ESC或E键即可回到编辑器(按ALT+E也可,且在任何时候都起作用)。
3.运行子菜单(RUN)
当选中RUN子菜单后,在“RUN”下方将出现一个子窗口,如图3所示,其中也列出了对应的热键。
EditRunCompileProjectOptions
RunCtrl+F9
ProgramresetCtrl+F2
GotocursorF4
TraceintoF7
StepoverF8
UserscreenAlt+F5
图3
下面简要说明各项的功能:
(1)run(运行)
运行当前程序。
(2)programreset(程序重启动)
中止当前调试,释放分配给程序的空间,关闭已打开的文件。
(3)gotocursor(执行到)
使程序从执行长条运行到编辑窗口中光标所在行。
若光标所在行不含可执行代码语句,则显示一个ESC框作警告。
(4)traceinto(跟踪进入)
运行当前函数中的下一个语句。
若此语句不含调试器可访问的函数调用,则停在下一条可执行语句上;但若此语句含有调试器可访问的函数调用,则停在函数定义的开始。
(5)stepover(单步执行)
执行当前函数的下一语句,即使遇到调试语句可访问的函数调用也不会跟踪进入下一级函数中。
(6)userscreen(用户屏幕)
切换到用户屏幕。
4、编译子菜单(compile)
当选中compile子菜单后,在“compile”下方将出现一个子窗口,如图4所示。
RunCompileProjectOptionDebug
CompiletoOBJC:
NONNAME.OBJ
MakeEXEfileC:
NONNAME.EXE
LinkEXEfile
Buildall
PrimaryCfile
Getinfo
图4
下面简要说明各项的功能:
(1)compiletoobj(编译生成目标码)
本命令将一个.c源文件编译成.obj文件,同时显示生成的文件名。
.obj文件由源.c文件名产生;或在没有指定文件名时,由上次装入编辑器的文件名产生。
TurboC在编译时弹出一个窗口,用于显示编译结果。
在编译/组装(MAKE)完后,按任一键将清除编译窗口。
此时若发现有错误,则转到消息窗口的的第一个错误处(有亮度标志)。
本命令的热键为ALT+F9。
(2)makeexefile(生成执行文件)
本命令调用来生成.EXE文件,并显示所生成的.EXE文件名。
.EXE文件名是依次由下列文件名产生的:
project/projectname说明的文件名;
或projectcfile说明的文件名;
或上次装入窗口的文件名。
本命令的热键为F9。
(3)linkEXEfile(连接执行文件)
把当前文件与库文件(既可以是缺省的,也可以是定义在当前项目文件中的)连接在一起,生成EXE文件
(4)BuiltAll(建立所有文件)
重建项目中的所有文件。
本命令类似Compile/makeEXEFile,只是它是无条件执行的,而Compile/makeEXEFile只重建那些非过时的文件。
本命令首先将所有的Project文件中的.obj的日期与时间置为0,然后再组装(make)。
这样,若用户因Ctrl+Break键中断了BuildAll命令,只要用Compile/makeEXEFile即可恢复。
(5)PrimaryCfile(主C文件)
当编译多个.H头文件单个.C文件时,PrimaryCFile命令是很有用的(但并非必要的)。
若在编译过程中发现错误,包含错误的文件(.C或.H)将被自动装入编辑器,可对其修改。
但必须注意,.H文件只有在已将Option/Environment/MessageTracking缺省设置改为AllFile时才能自动装入,而原缺省设置不会自动加载.H文件。
即使.C文件不在编辑器,但只要一按Alt+F9,.C主文件即被重新编译。
(6)GetInfo(获得信息)
Compile/GetInfo开辟一窗口,给出如下信息:
源文件;
与当前文件相联系的目标文件名;
当前源文件名;
当前源文件字节数;
程序退出码;
可用空间。
5.Project子菜单
当选中Project子菜单后,在“Project”下方将出现一个子窗口,如图5所示。
CompileProjectOptionsDebugBreak/Watch
Projectname
Breakmakeonerrors
Autodependenciesoff
Clearproject
Removemessages
Getinfo
图5
下面简要说明各项功能:
(1)Projectname
选择一个包含将要编译连接的文件名的Project文件,项目名也将是以后要建立的。
EXE或MAP文件名。
典型的项目文件具有.PRJ扩展名。
(2)Breakmakeon
提供用户说明中止make的缺省条件,如警告(Warnings)、错误(Errors)、致命错误(FatalError)。
(3)Autodependencies(自动依赖)
这是一个开关。
当置为On时,项目组装(Project-Make)自动检查每个项目表中在磁盘上有相应.C文件的那些.OBJ文件的源文件的日期/时间信息与.OBJ文件的依赖关系。
所谓自动依赖关系检查是指:
项目组装打开.OBJ文件,寻找包含在源代码的那些文件的有关信息。
此时,把每个组成.OBJ文件的日期/时间信息与.OBJ中的进行比较,若不同,则重新编译.C源文件。
若Autodependencies开关置为off,则不进行这种检查。
(4)Clearproject(清除project)
改命令清除项目文件名,重置消息窗口(MessageWindow)。
(5)Removemessage(删除信息)
该命令把错误信息从消息窗口中清除掉。
6.Option子菜单
当选中Option子菜单后,在“Option”下方将出现一个子窗口,如图6所示。
ProjectOptionDebugBreak/Watch
Compile
Link
Environment
Directories
Arguments
Saveoptions
Retrieveoption
图6
下面简要说明各项的功能:
(1)Compile(编译器)
本命令将产生一个子菜单,为用户提供说明硬件配置、存储模式、调试技术、代码优化、诊断消息控制以及宏定义等。
各菜单条目如下:
Model(选择存储模型)
Define(打开一个宏定义框)
Codegeneration(代码生成)
Optimization(优化用户代码)
Source(处理源代码)
Errors(处理和响应诊断信息)
Names(改变代码、数据等)
其中每一个条目又对应一个子菜单,供用户选择各种功能。
详细介绍请参看TurboC的用户手册。
(2)Linker(连接器)
本命令将产生有关连接器的设置。
它包括以下内容:
Mapfile(选择映射文件的类型On/Off,缺升值为Off)
Initializesegments(段初始化On/Off,缺升值为Off)
Defaultlibraries(缺省库On/Off,缺升值为On)
Graphicslibrary(图形库On/Off,缺升值为On)
Warnduplicatesymbals(警告重复字符On/Off,缺升值为On)
Stackwarning(堆栈警告On/Off,缺升值为On)
Case-sensitivelink(大小写区别连接On/Off,缺升值为On)
(3)Environment(环境设置)
本命令将产生编译环境的设置。
它包括以下内容:
Messagetracking(消息跟踪CurrentFile/AllFiles/Off,缺升值为CurrentFile)
Keepingmessage(保存消息Yes/No,缺升值为No)
Configautosave(配置自动保存On/Off,缺升值为On)
Editautosave(编辑自动保存On/Off,缺升值为Off)
Backupfiles(备份文件On/Off,缺升值为On)
Tabsize(制表健大小,缺升值为8)
Zoomedwindow(放大窗口On/Off,缺升值为Off)
Screensize(选择屏幕显示行数)
(4)Directories(目录)
本命令告诉TurboC到那里去寻找编译连接所需的文件,生成的可执行文件放到何处,在哪里查找配置文件。
具体内容如下:
Includedirectories(包含目录):
如C:
\TURBOC\INCLUDE;
Librarydirectories(库目录):
如C:
\TURBOC\LIB
Outputdirectory(输出目录):
TurboCdirectory(TurboC目录)
Pickfilename(pick文件名)
Currentpickfile(当前pick文件)
(5)Argument(参数)
本设置允许用户给出运行程序命令行。
(6)Saveoption(保存任意项)
将选择的编辑器、连接器环境、调试和project任选项保存到一个配置文件中(缺省文件名为TCCONFIG.TC)。
启动时,TurboC再到TURBOC目录中去寻找同样的文件。
(7)Retrieveoption(恢复任选项)
加载以前用Option/Saveoptions命令保存的配置文件。
7.Debug子菜单
当选中Debug子菜单后,在“Debug”下方将出现一个子窗口,如图7所示
OptionsDebugBreak/Watch
EvaluateCtrl+F1
CallstackCtrl+F3
Findfunction
Refreshdisplay
Displayswappingsmart
Sourcedebuggingon
图7
下面简要说明各项功能:
(1)Evaluate(计算)
计算变量或表达式值,并显示其结果。
(2)Callstack(调用栈)
本命令显示一个调用栈的弹出窗口。
调用栈显示程序运行到正在运行的函数时调用的函数序列。
其中主函数main在栈底,正在运行的函数在栈顶。
调用函数的每一项显示了函数名义击穿第给它的参数值。
(3)FindFunction(查找函数定义)
显示编辑窗口每一函数的定义。
只有在调试阶段才能使用本命令。
(4)Rfreshdisplay(刷新显示器)
万一编辑屏幕被重写,使用本命令可以恢复当前屏幕的内容。
(5)Displayswapping(显示转换)
本命令提供三种选择:
On(缺省)、Always和None。
(6)Soursedebugging(源代码调试)
本命令提供三种选择On(缺省)、Standalone和None。
8.Break/Watch子菜单
当选中Break/Watch子菜单后,在“Break/Watch”下方将出现一个子窗口,如图8所示。
使用本命令可以控制断点和监视表达式。
下面简要说明各项的功能:
(1)Addwatch(增加监视表达式)
向监视窗口插入一个监视表达式。
DebugBreak/Watch
AddwatchCtrl+F7
Deletewatch
Editwatch
Removeallwatchs
TogglebreakpointCtrl+F8
Clearallbreakpoint
Viewnextbreakpoint
图8
(2)Deletewatch(删除监视表达式)
从监视窗口中删除当前监视表达式。
(3)Editwatch(编辑监视表达式)
选择本命令后,调试器弹出一个含有当前监视表达式拷贝的窗口。
(4)Removeallwatch(删除所有监视表达式)
将所有监视表达式从监视窗口中删除。
(5)Togglebreakpoint(打开或关闭断点)
设置或除去去光标所在断点。
(6)Clearallbreakpoint(清除所有断点)
从程序中删除所有断点。
(7)Viewnextbreakpoint(显示下一个断点)
将光标移到程序中的下一个断点。
C语言上机实验
在学习C语言程序设计的过程中,上机实验是十分重要的环节,通过实验,可以加深对C语言功能特征、语法规则、程序编译与运行等基本概念和基本方法的理解和运用。
通过上机调试程序,使学生能及时发现程序编制中出现的错误并找到修改方法,提高学生的独立编程能力和编程技巧,为C语言在后续课程中的应用打下坚实的基础。
上机报告要求
1每次上机前,认真预习本次上机实验内容,按上机指导书的要求,需编写的程序,应书写整齐。
2上机输入和调试程序,调试通过后,打印出程序清单并把运行结果记录下来(在条件允许下)。
3上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。
4上机报告应包括以下内容:
(1)上机题目;
(2)算法说明(复杂的可用流程图表示);
(3)程序清单(有条件用打印机打印出来);
(4)运行结果;
(5)对运行情况作分析,以及本次实验所取得的经验。
如程序未能通过,应分析错误原因。
目录
上机一熟悉C语言运行环境16
上机二顺序结构程序设计17
上机三分支结构程序设计21
上机四循环结构程序设计26
上机五多重循环的实现29
上机六函数的使用30
上机七一维数组的使用37
上机八二维数组的使用40
上机九指针
(一)44
上机十指针
(二)50
上机十一结构体与共同体54
上机十二位运算和文件58
上机十三综合练习(统计学生成绩)61
上机一熟悉C语言运行环境
(验证型3学时)
一上机目的
1学会TurboC2.0的安装方法(参看本书第一部分),熟悉C语言程序的运行环境,了解所用计算机系统软、硬件配置。
2初步了解在该集成环境下如何编辑、编译、连接和运行一个C程序,即运行一个C程序的全过程。
3通过运行简单的C程序,初步了解C程序的基本结构及特性。
二上机内容
1建立自己的文件夹,以备存放文件。
2进入TurboC集成环境,熟悉TurboC主菜单下各选择项的功能及功能键的使用。
3输入一简单C程序(可用教科书上的例题),了解C程序运行的全过程。
4编写用printf语句将3个字符串:
goodmorning,floppydisk,harddisk在同一行显示的程序。
程序例
main()
{printf(“goodmorning”);/*显示不换行*/
printf(“floppydisk”);
printf(“harddisk\n”);
}
运行结果:
goodmorningfloppydiskharddisk
三上机要求
1上机前认真预习本次上机实验内容,按上机指导书的要求,需编写的程序,应书写整齐。
2上机输入和调试程序,调试通过后,打印(或手写)出程序清单并把运行结果记录下来。
3上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。
四思考题
1启动TurboC的可执行文件是什么?
2上机实现一个C语言程序的步骤是什么?
上机二顺序结构程序设计
(验证型3学时)
一上机目的
1进一步掌握运行一个C语言程序的方法和步骤。
2分清C语言的符号、标识符、保留字的区别。
3掌握C语言的数据类型,会定义整型、实型、字符型变量以及对它们的赋值方法。
4学会数据输入方式和数据输出格式及各种格式转意符。
5学会使用C的运算符以及用这些运算符组成的表达式,特别是自加(++)和自减(——)运算符的使用。
二上机内容
1输入并运行下面程序,分析其运行结果。
main()
{charc1,c2;
c1=46;c2=47;
printf(“%3c%3c”,c1,c2);
printf(“%3d%3d”,c1,c2);
}
将程序第二行改为:
intc1,c2;
再运行,分析其结果。
2输入并运行下面程序
main()
{inta,b;
floatc,d;
longe,f;
unsignedintu,v;
charc1,c2;
scanf(“%d,%d”,&a,&b);
scanf(“%f,%f”,&c,&d);
scanf(“%ld,%ld”,&e,&f