C语言上机软件VC++6.0中文版安装

C语言上机软件VC++6.0中文版安装
C语言上机软件VC++6.0中文版安装

Microsoft Visual C++6.0介绍及使用

从2008年4月开始,全国计算机等级考试将全面停止Turbo C2.0(简称TC)软件的使用,所有参加二级C语言、三级信息技术、网络技术和数据库技术上机考试的考生,都要在Visual C++6.0(简称VC)环境下调试运行C程序。众所周知,VC软件主要是用来开发C++程序的,如何在VC下调试运行C程序,对于众多程序设计者来说,确实是一个新的话题。

VC与TC的差异,主要是体现在程序设计语言C++与C的关系上。其实,了解计算机程序设计的人都知道,C++是C语言的升级板,VC是在Windows进行C++程序设计的主要软件,VC完全兼容了C的功能,也就是说,在VC下是完全能够进行C语言程序开发。

我以前下载安装过很多次_VC++6.0中文版,但是每次都无法正常安装使用,下面就让我告诉你下载地址吧,保证可以正常使用,我也是偶然碰到的

按住ctr点击“全国计算机等级考试C语言上机软件_VC++6.0中文版.rar”安装

安装后你可能会出现下面的对话框,在左下角“不再显示此信息”勾上,然后点击“运行程序就”可以了

Visual C++ 6.0编程环境的使用

目录

1 编制并运行一个简单程序 (4)

1.1编制并运行程序的“四步曲” (4)

1.2工程(P ROJECT)以及工程工作区(P ROJECT W ORKSPACE) (4)

1.3启动并进入VC6的集成开发环境 (6)

1.4创建工程并输入源程序代码 (7)

1.5不创建工程,直接输入源程序代码 (11)

1.6编译、链接而后运行程序 (11)

1.7及时备份自己的创作 (13)

1.8将自己设计的产品提供给他人使用 (13)

2 VC6集成开发环境使用参考 (14)

2.1VC6的常用菜单命令项 (14)

2.2VC6的主要工作窗口 (16)

3 严谨思维,调试程序 (18)

3.1什么时候需要对程序进行调试 (18)

3.2对程序进行调试的基本手段和方法 (19)

3.3对一个简单程序的调试过程 (22)

3.4设计合适的程序调试方案 (24)

3.5优秀程序员的基本素质——丰富的想象、严谨的思维 (26)

4 编译与链接过程中常见的出错提示 (30)

4.1常见编译错误 (30)

4.2常见链接错误 (34)

1 编制并运行一个简单程序

1.1 编制并运行程序的“四步曲”

让我们用VC6先来编制一个最简单的程序,并让它运行(执行)而得出结果,以此来作为了解VC6的开端。这个程序的功能仅仅是向屏幕上输出一个字符串“Hello World”。程序虽小,但与编制运行大程序的整个过程是相同的,都包含着如下所谓的“四步曲”:

(1)编辑(把程序代码输入,交给计算机)。

(2)编译(成目标程序文件.obj)。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

(3)链接(成可执行程序文件.exe)。链接是将编译产生的.obj文件和系统库连接装配成一个可以执行的程序。由于在实际操作中可以直接点击Build从源程序产生可执行程序,可能有人就会置疑:为何要将源程序翻译成可执行文件的过程分为编译和链接两个独立的步骤,不是多此一举吗?之所以这样做,主要是因为:在一个较大的复杂项目中,有很多人共同完成一个项目(每个人可能承担其中一部分模块),其中有的模块可能是用汇编语言写的,有的模块可能是用VC写的,有的模块可能是用VB写的,有的模块可能是购买(不是源程序模块而是目标代码)或已有的标准库模块,因此,各类源程序都需要先各自编译成目标程序文件(2进行机器指令代码),再通过链接程序将这些目标程序文件连接装配成可执行文件。

(4)运行(可执行程序文件)。

上述四个步骤中,其中第一步的编辑工作是最繁杂而又必须细致地由人工在计算机上来完成,其余几个步骤则相对简单,基本上由计算机来自动完成。

1.2 工程(Project)以及工程工作区(Project Workspace)

在开始编程之前,必须先了解工程Project(也称“项目”,或称“工程项目”)的概念。工程又称为项目,它具有两种含义,一种是指最终生成的应用程序,另一种则是为了创建这个应用程序所需的全部文件的集合,包括各种源程序、资源文件和文档等等。绝大多数较新的开发工具都利用工程来对软件开发过程进行管理。

用VC6编写并处理的任何程序都与工程有关(都要创建一个与其相关的工程),而每一个工

程又总与一个工程工作区相关联。工作区是对工程概念的扩展。一个工程的目标是生成一个应用程序,但很多大型软件往往需要同时开发数个应用程序,VC开发环境允许用户在一个工作区内添加数个工程,其中有一个是活动的(缺省的),每个工程都可以独立进行编译、连接和调试。

实际上,VC6是通过工程工作区来组织工程及其各相关元素的,就好像是一个工作间(对应于一个独立的文件夹,或称子目录),以后程序所牵扯到的所有的文件、资源等元素都将放入到这一工作间中,从而使得各个工程之间互不干扰,使编程工作更有条理,更具模块化。最简单情况下,一个工作区中用来存放一个工程,代表着某一个要进行处理的程序(我们先学习这种用法)。但如果需要,一个工作区中也可以用来存放多个工程,其中可以包含该工程的子工程或者与其有依赖关系的其他工程。

可看出,工程工作区就像是一个“容器”,由它来“盛放”相关工程的所有有关信息,当创建新工程时,同时要创建这样一个工程工作区,而后则通过该工作区窗口来观察与存取此工程的各种元素及其有关信息。创建工程工作区之后,系统将创建出一个相应的工作区文件(.dsw),用来存放与该工作区相关的信息;另外还将创建出的其他几个相关文件是:工程文件(.dsp)以及选择信息文件(.opt)等。

编制并处理C++程序时要创建工程,VC6已经预先为用户准备好了近20种不同的工程类型以供选择,选定不同的类型意味着让VC6系统帮着提前做某些不同的准备以及初始化工作(例如,事先为用户自动生成一个所谓的底层程序框架或称框架程序,并进行某些隐含设置,如隐含位置、预定义常量、输出结果类型等)。工程类型中,其中有一个为“Win32 Console Application”,它是我们首先要掌握的、用来编制运行C++程序方法中最简单的一种。此种类型的程序运行时,将出现并使用一个类似于DOS的窗口,并提供对字符模式的各种处理与支持。实际上,提供的只是具有严格的采用光标而不是鼠标移动的界面。此种类型的工程小巧而简单,但已足以解决并支持本课程中涉及到的所有编程内容与技术,使我们把重点放在程序的编制而并非界面处理等方面,至于VC6支持的其他工程类型(其中有许多还将涉及到Windows或其他的编程技术与知识),有待在今后的不断学习中来逐渐了解、掌握与使用。

1.3 启动并进入VC6的集成开发环境

图1-1 VC6的集成开发环境窗口

了解了工程及其上述一般概念后,现在就让我们开始Visual C++ 6.0之旅吧!首先按如下两种方法之一启动并运行VC6,进入到它的集成开发环境窗口(假设在Windows系统下已经安装了VC6),其具体窗口式样如图1-1所示。

方法一:若桌面上有VC6图标(“横躺着”即“倒下”的“8”字型图标,且标有“Microsoft Visual Studio 6.0”字样,如图1-2所示),则用鼠标双击该图标。

图1-2 VC6在桌面上的快捷方式

方法二(假设按照通常方式对VC6进行了安装的话):通过“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,单击一下该菜单项。

图1-1式样的窗口从大体上可分为四部分。上部:菜单和工具条;中左:工作区(workspace)视图显示窗口,这里将显示处理过程中与项目相关的各种文件种类等信息;中右:文档内容区,是显示和编辑程序文件的操作区;下部:输出(Output)窗口区,程序调试过程中,进行编译、链接、运行时输出的相关信息将在此处显示。

注意,由于系统的初始设置或者环境的某些不同,可能你所启动的VC6初始窗口式样与图1-1有所不同,也许会没出现Workspace窗口或Output窗口,这时可通过“View→Workspace”菜单选项的执行,总可使中左处的工作区窗口显现出来;而通过“View→Output”菜单选项的执行,又总可使下部的输出区窗口得以显现。当然,如果不想看到这两个窗口,可以点击相应窗口的“x”按键来关闭窗口。

1.4 创建工程并输入源程序代码

为了把程序代码输入而交给计算机,需要使用VC6的编辑器来完成。如前所述,首先要创建工程以及工程工作区,而后才能输入具体程序完成所谓的“编辑”工作(注意,该步工作在四步骤中最繁杂、而又必须细致地由人工来完成!)。

图1-3 新建一个名为Sample的工程(同时自动创建一工作区)

(1)新建一Win32 Console Application工程

选择菜单File下的New项,会出现一个选择界面,在属性页中选择Projects标签后,会看到近20种的工程类型,我们只需选择其中最简单的一种:“Win32Console Application”,而后往右上处的“Location”文本框和“Project name”文本框中填入工程相关信息所存放的磁盘位置(目录或文件夹位置)以及工程的名字,设置到此时的界面信息如图1-3所示。

在图1-3中,“Location”文本框中填入如“D:\myData\VC6”,这是假设你准备在D磁盘的\myData\VC6文件夹即子目录下存放与工程工作区相关的所有文件及其相关信息,当然也可通过点击其右部的“…”按钮去选择并指定这一文件夹即子目录位置。“Project name”文本

框中填入如“Sample”的工程名(注意,名字由你根据工程性质确定,此时VC6会自动在其下的Location文本框中用该工程名“Sample”为你建立一个同名子目录,随后的工程文件以及其他相关文件都将存放在这个目录下)。

选择OK按钮进入下一个选择界面。这个界面主要是询问用户想要构成一个什么类型的工程,其界面如图1-4所示。

图1-4 选择创建一个什么样的工程

若选择“An empty project”项将生成一个空的工程,工程内不包括任何东西。若选择“A simple application”项将生成包含一个空的main函数和一个空的头文件的工程。选“A"Hello World!"application”项与选“A simple application”项没有什么本质的区别,只是需要包含有显示出“Hello World!”字符串的输出语句。选择“An application that supports MFC”项的话,可以利用VC6所提供的类库来进行编程。

为了更清楚的看到编程的各个环节,我们选择“An empty project”项,从一个空的工程来开始我们的工作。单击Finish按钮,这时VC6会为你生成一个小型报告,报告的内容是刚才所有选择项的总结,并且询问你是否接受这些设置。如果接受选择OK按钮,否则选择Cancel 按钮。我们选OK从而可进入到真正的编程环境下了。界面情况如图1-5所示。

图1-5 刚完成创建工程Sample的VC6集成开发环境窗口

(2)在工作区窗口中查看工程的逻辑架构

注意屏幕中的Workspace窗口,该窗口中有两个标签,一个是ClassView,一个是FileView。ClassView中列出的是这个工程中所包含的所有类的有关信息,当然我们的程序将不涉及到类,这个标签中现在是空空如也。点击FileView标签后,将看到这个工程所包含的所有文件信息。点击“+”图标打开所有的层次会发现有三个逻辑文件夹:Source Files文件夹中包含了工程中所有的源文件;Header Files文件夹中包含了工程中所有的头文件;Resource Files 文件夹中包含了工程中所有的资源文件。所谓资源就是工程中所用到的位图,加速键等信息,在我们的编程中不会牵扯到这一部分内容。现在FileView中也不包含任何东西。

逻辑文件夹是逻辑上的,他们只是在工程的配置文件中定义的,在磁盘上并没有物理地存在这三个文件夹。我们也可以删除自己不使用的逻辑文件夹;或者根据我们项目的需要,创建新的逻辑文件夹,来组织工程文件。这三个逻辑文件夹是VC预先定义的,就编写简单的单一源文件的C程序而言,我们只需要使用Source Files一个文件夹就够了。

(3)在工程中新建C源程序文件并输入源程序代码

下面该轮到生成一个“Hello.cpp”的源程序文件,而后通过编辑界面来输入所需的源程序代码。选择菜单Project中子菜单Add To Project下的new项,在出现的对话框的Files标签(选

项卡)中,选择“C++ Source File”项,在右中处的File文本框中为将要生成的文件取一个名

字,我们取名为Hello(其他遵照系统隐含设置,此时系统将使用Hello.cpp的文件来保存所键入的源程序),此时的界面情况如图1-6所示。

而后选择OK按钮,进入输入源程序的编辑窗口(注意所出现的呈现“闪烁”状态的输入位置光标),此时只需通过键盘输入你所需要的源程序代码:

#include

void main()

{

printf("Hello World!\n");

}

图1-6 选择在工程Sample中新建一名为Hello.cpp的C源程序文件

可通过Workspace窗口中的FileView标签,看到Source Files文件夹下文件Hello.cpp已经被加了进去,此时的界面情况如图1-7所示。

图1-7 在Hello.cpp输入C源程序代码

实际上,这时在Workspace窗口的ClassView标签中的Globals文件夹下,也可以看到我们刚才所键入的main函数。

1.5 不创建工程,直接输入源程序代码

不需要象前面描述的那样显示地创新一个工程,对于新编写一个程序,只需要在图1-3所示的界面中,选“Files”标签,再选择“C++ Source File”,其界面与图1-6相似(仅Add to projec

是暗淡的、无法选择),后续操作则与前述相同。

最简单的做法是:直接使用工具栏上的新建文件按钮“”新建一空白文件,紧接着单击

工具栏上的保存按钮“”保存此空文件——注意,保存时一定要以“.c”或“.cpp”作为

扩展名,否则逻辑程序时自动格式化和特殊显示等很多特性将无法使用,程序无法被运行。

这种方式新建的C源程序文件在编译时,会提示用户,要求允许系统为其创新一个默认的

工程(含相应的工作区)。

1.6 编译、链接而后运行程序

程序编制完成(即所谓“四步曲”中第一步的编辑工作得以完成)之后,就可以进行后三步的

编译、链接与运行了。所有后三步的命令项都处在菜单Build之中。注意,在对程序进行编

译、链接和运行前,最好先保存自己的工程(使用“File→Save All”菜单项)以避免程序运行

时系统发生意外而使自己之前的工作付之东流,应让这种做法成为自己的习惯、素质。

首先选择执行菜单第一项Compile,此时将对程序进行编译。若编译中发现错误(error)或警告(warning),将在Output窗口中显示出它们所在的行以及具体的出错或警告信息,可以通过这些信息的提示来纠正程序中的错误或警告(注意,错误是必须纠正的,否则无法进行下一步的链接;而警告则不然,它并不影响进行下一步,当然最好还是能把所有的警告也“消灭”掉)。当没有错误与警告出现时,Output窗口所显示的最后一行应该是:“Hello.obj-0 error(s), 0warning(s)”。

图1-8 程序Hello.cpp的运行结果界面

编译通过后,可以选择菜单的第二项Build来进行链接生成可执行程序。在链接中出现的错误也将显示到Output窗口中。链接成功后,Output窗口所显示的最后一行应该是:“Sample.exe-0 error(s), 0 warning(s)”。最后就可以运行(执行)我们所编制的程序了,选择Execute项(该选项前有一个深色的感叹号标志“!”,实际上也可通过单击窗口上部工具栏中的深色感叹号标志“!”来启动执行该选项),VC6将运行已经编好的程序,执行后将出现一个结果界面(所谓的类似于DOS窗口的界面),如图1-8所示,其中的“press any key to continue”是由系统产生的,使得用户可以浏览输出结果,直到按下了任一个键盘按键时为止(那时又将返回到集成界面的编辑窗口处)。

至此我们已经生成并运行(执行)了一个完整的程序,完成了一个“回合”的编程任务。此时应执行“File→Close Workspace”菜单项,待系统询问是否关闭所有的相关窗口时,回答“是”,则结束了一个程序从输入到执行的全过程,回到了刚刚启动VC6的那一个初始画面。

1.7 及时备份自己的创作

(1)完全备份。对于刚才工作的工程Sample而言,只需将D:\myData\VC6下的文件夹Sample 复制到U盘或打包成一个文件后放到自己的邮箱。需要在其它计算机上继续完成该工程时,将该文件夹复制到该计算机的硬盘上,进入VC6,通过“File→Open Workspace”菜单项将该工程打开即可。

(2)只备份C源程序文件。对于刚才工作的工程Sample而言,工程非常简单,没有什么专门的设置,因此,仅备份其中的C源程序Hello.cpp就足矣。需要在其它计算机上继续完成该程序时,只需将备份的程序复制到该计算机的硬盘上,进入VC6,根据前面的讲述,新建一Win32 Console Application(做到图1-5所示的界面),然后通过“Project→Add to Project→Files”菜单项将Hello.cpp添加新建的工程中。

最简单的做法是:直接使用工具栏上的文件打开按钮“”打开Hello.cpp。

1.8 将自己设计的产品提供给他人使用

需要将自己设计的产品提供给他人使用时,针对前述的Sample工程,只需将链接产生的可执行文件Sample.exe复制/发送给他人即可,不能复制整个工程文件夹或复制.cpp文件,这是因为:

(1)复制可执行文件已足够。

(2)复制整个工程文件夹或复制.cpp文件,等于提供了自己的详细设计,在商业上一般是不这样做了,除非事先双方谈妥需要这样做或对方愿意出高价购买你的详细设计。

图1-9 选择生成什么类型的可执行程序

另外,应当说明的是:前面所说的编译、链接过程都是Debug类型的,也就是说,当VC6在进行这些工作时将加入一些调试信息,致使编译链接后生成的代码很庞大,效率也降低。如果确信你的程序已经完美无缺或者是要正式发布,就应该选择菜单Build中的Batch Build 项,产生如图1-9所示的对话框,其中的两个选项分别代表编译的代码形式。如果选择第一

项Release,那么生成的就是最终代码,其运行效率会增高。

选择Sample-Win32 Release项,再进行Build或Rebuild All就会在工程所在的目录下产生一个新的目录release,在release目录下生成的可执行程序代码规模小,执行效率高,是我们最后的产品。

2 VC6集成开发环境使用参考

2.1 VC6的常用菜单命令项

(1)File菜单

New:打开“new”对话框,以便创建新的文件、工程或工作区。

Close Workspace:关闭与工作区相关的所有窗口。

Exit:退出VC6环境,将提示保存窗口内容等。

(2)Edit菜单

Cut:快捷键Ctrl+X。将选定内容复制到剪贴板,然后再从当前活动窗口中删除所选内容。与“Paste”联合使用可以移动选定的内容。

Copy:快捷键Ctrl+C。将选定内容复制到剪贴板,但不从当前活动窗口中删除所选内容。与“Paste”联合使用可以复制选定的内容。

Paste:快捷键Ctrl+V。将剪贴板中的内容插入(粘贴)到当前鼠标指针所在的位置。注意,必须先使用Cut或Copy使剪贴板中具有准备粘贴的内容。

Find:快捷键Ctrl+F。在当前文件中查找指定的字符串。顺便指出,可按快捷键F3寻找下一个匹配的字符串。

Find in Files:在指定的多个文件中查找指定的字符串。

Replace:快捷键Ctrl+H。替换指定的字符串(用某一个串替换另一个串)。

Go To: 快捷键Ctrl+G。将光标移到指定行上。

Breakpoints:快捷键Alt+F9。弹出对话框,用于设置、删除或查看程序中的所有断点。断点将告诉调试器应该在何时何地暂停程序的执行,以便查看当时的变量取值等现场情况。

(3)View菜单

Workspace:如果工作区窗口没显示出来,选择执行该项后将显示出工作区窗口。Output:如果输出窗口没显示出来,选择执行该项后将显示出输出窗口。输出窗口中将随时

显示有关的提示信息或出错警告信息等。

(4)Project菜单

Add To Project:选择该项将弹出子菜单,用于添加文件或数据链接等到工程之中去。例如子菜单中的New选项可用于添加“C++ Source File”或“C/C++ Header File”;而子菜单中的Files选项则用于插入已有的文件到工程中。

Settings:为工程进行各种不同的设置。当选择其中的“Debug”标签(选项卡),并通过在“Program arguments:”文本框中填入以空格分割的各命令行参数后,则可以为带参数的main 函数提供相应参数(呼应于“void main(int argc, char* argv[ ]){…}”形式的main函数中所需各argv数组的各字符串参数值)。注意,在执行带参数的main函数之前,必须进行该设置,当“Program arguments:”文本框中为空时,意味着无命令行参数。

(5)Build菜单

Compile:快捷键Ctrl+F7。编译当前处于源代码窗口中的源程序文件,以便检查是否有语法错误或警告,如果有的话,将显示在Output输出窗口中。

Build:快捷键F7。对当前工程中的有关文件进行连接,若出现错误的话,也将显示在Output 输出窗口中。

Execute:快捷键Ctrl+F5。运行(执行)已经编译、连接成功的可执行程序(文件)。

Start Debug:选择该项将弹出子菜单,其中含有用于启动调试器运行的几个选项。例如其中的Go选项用于从当前语句开始执行程序,直到遇到断点或遇到程序结束;Step Into选项开始单步执行程序,并在遇到函数调用时进入函数内部再从头单步执行;Run to Cursor选项使程序运行到当前鼠标光标所在行时暂停其执行(注意,使用该选项前,要先将鼠标光标设置到某一个你希望暂停的程序行处)。执行该菜单的选择项后,就启动了调试器,此时菜单栏中将出现Debug菜单(而取代了Build菜单)。

(6)Debug菜单

启动调试器后才出现该Debug菜单(而不再出现Build菜单)。

Go:快捷键F5。从当前语句启动继续运行程序,直到遇到断点或遇到程序结束而停止(与Build→Start Debug→Go选项的功能相同)。

Restart:快捷键Ctrl+Shift+F5。重新从头开始对程序进行调试执行(当对程序做过某些修改后往往需要这样做!)。选择该项后,系统将重新装载程序到内存,并放弃所有变量的当前值(而重新开始)。

Stop Debugging:快捷键Shift+F5。中断当前的调试过程并返回正常的编辑状态(注意,系统将自动关闭调试器,并重新使用Build菜单来取代Debug菜单)。

Step Into:快捷键F11。单步执行程序,并在遇到函数调用语句时,进入那一函数内部,并从头单步执行(与Build→Start Debug→Step Into选项的功能相同)。

Step Over:快捷键F10。单步执行程序,但当执行到函数调用语句时,不进入那一函数内部,而是一步直接执行完该函数后,接着再执行函数调用语句后面的语句。

Step Out:快捷键Shift+F11。与“Step Into”配合使用,当执行进入到函数内部,单步执行若干步之后,若发现不再需要进行单步调试的话,通过该选项可以从函数内部返回(到函数调用语句的下一语句处停止)。

Run to Cursor:快捷键Ctrl+F10。使程序运行到当前鼠标光标所在行时暂停其执行(注意,使用该选项前,要先将鼠标光标设置到某一个你希望暂停的程序行处)。事实上,相当于设置了一个临时断点,与Build→Start Debug→Run to Cursor选项的功能相同。

Insert/Remove Breakpoint:快捷键F9。本菜单项并未出现在Debug菜单上(在工具栏和程序文档的上下文关联菜单上),列在此处是为了方便大家掌握程序调试的手段,其功能是设置或取消固定断点——程序行前有一个圆形的黑点标志,表示已经该行设置了固定断点。另外,与固定断点相关的还有Alt+F9(管理程序中的所有断点)、Ctrl+F9(禁用/使能当前断点)。

(7)Help菜单

通过该菜单来查看VC6的各种联机帮助信息。

(8)上下文关联菜单

除了主菜单和工具栏外,VC6开发环境还提供了大量的上下文关联菜单,用鼠标右键的单击窗口中很多地方都会弹出一个关联菜单,里面包含有与被单击项目相关的各种命令,建议大家在工作时可以试着多点点鼠标右键,说不定会发现很多有用的命令,从而大大加快一些常规操作的速度。

2.2 VC6的主要工作窗口

(1)Workspace窗口

Workspace窗口显示了当前工作区中各个工程的类、资源和文件信息,当新建或打开一个工作区后,Workspace窗口通常就会出现三个树视图:ClassView(类视图)、ResourceView(资源视图)和FileView(文件视图),如果在VC6企业版中打开了数据库工程,还会出现第四个视

图DataView(数据视图)。如同前面所述,在Workspace窗口的各个视图内单击鼠标右键可以得到很多有用的关联菜单。

ClassView显示当前工作区中所有工程定义的C++类、全局函数和全局变量,展开每一个类后,可以看到该类的所有成员函数和成员变量,如果双击类的名字,VC6会自动打开定义这个类的文件,并把文档窗口定位到该类的定义处,如果双击类的成员或者全局函数及变量,文档窗口则会定位到相应函数或变量的定义处。

ResourceView显示每个工程中定义的各种资源,包括快捷键、位图、对话框、图标、菜单、字符串资源、工具栏和版本信息,如果双击一个资源项目,VC6就会进入资源编辑状态,打开相应的资源,并根据资源的类型自动显示出Graphics、Color、Dialog、Controls等停靠式窗口。

FileView显示了隶属于每个工程的所有文件。除了C/C++源文件、头文件和资源文件外,我们还可以向工程中添加其它类型的文件,例如Readme.txt等,这些文件对工程的编译连接不是必需的,但将来制作安装程序时会被一起打包。同样,在FileView中双击源程序等文本文件时,VC6会自动为该文件打开一个文档窗口,双击资源文件时,VC6也会自动打开其中包含的资源。

在FileView中对着一个工程单击鼠标右键后,关联菜单中有一个“Clean”命令,在此特地要解释一下它的功能:VC6在建立(Build)一个工程时,会自动生成很多中间文件,例如预编译头文件、程序数据库文件等,这些中间文件加起来的大小往往有数兆,很多人在开发一个软件期间会使用办公室或家里的数台机器,如果不把这些中间文件删除,在多台机器之间使用软盘拷贝工程就很麻烦。“Clean”命令的功能就是把VC6生成的中间文件全部删除,避免了手工删除时可能会出现误删或漏删的问题。另外,在某些情况下,VC6编译器可能无法正确识别哪些文件已被编译过了,以致于在每次建立工程时都进行完全重建,很浪费时间,此时使用“Clean”命令删除掉中间文件就可以解决这一问题。

应当指出,承载一个工程的还是存储在工作文件夹下的多个文件(物理上),在Workspace窗口中的这些视图都是逻辑意义上的,它们只是从不同的角度去自动统计总结了工程的信息,以方便和帮助我们查看工程、更有效地开展工作。如果开始时你不习惯且工程很简单(学习期间很多时候都只有一个.cpp文件),则你完全没有必要去搭理这些视图,只需要在.cpp文件内容窗口中工作。

(2)Output窗口

与Workspace窗口一样,Output窗口也被分成了数栏,其中前面4栏最常用。在建立工程时,Build栏将显示工程在建立过程中经过的每一个步骤及相应信息,如果出现编译连接错误,那么发生错误的文件及行号、错误类型编号和描述都会显示在Build栏中,用鼠标双击一条编译错误,VC6就会打开相应的文件,并自动定位到发生错误的那一条语句。

工程通过编译连接后,运行其调试版本,Debug栏中会显示出各种调试信息,包括DLL装载情况、运行时警告及错误信息、MFC类库或程序输出的调试信息、进程中止代码等。

两个Find in Files栏用于显示从多个文件中查找字符串后的结果,当你想看看某个函数或变量出现在哪些文件中,可以从“Edit”菜单中选择“Find in Files…”命令,然后指定要查找的字符串、文件类型及路径,按“查找”后结果就会输出在Output的Find in Files栏中。

(3)窗口布局调整

VC6的智能化界面允许用户灵活配置窗口布局,例如菜单和工具栏的位置都可以重新定位。让我们在菜单或工具栏左方类似于把手的两个竖条纹处或其它空白处点击鼠标左键并按住,然后试试把它拖动到窗口的不同地方,就可以发现菜单和工具栏能够停靠在窗口的上方、左方和下方,双击竖条纹后,它们还能以独立子窗口的形式出现,独立子窗口能够始终浮动在文档窗口的上方,并且可以被拖到VC6主窗口之外,如果有双显示器,甚至可以把这些子窗口拖到另外一个显示器上,以便进一步加大编辑区域的面积。Workspace和Output等停靠式窗口(Docking View)也能以相同的方式进行拖动,或者切换成独立的子窗口,此外,这些停靠式窗口还可以切换成普通的文档窗口模式,不过文档窗口不能被拖出VC6的主窗口,切换的方法是选中某个停靠式窗口后,在“Windows”菜单中把“Docking View”置于非选中状态。

3 严谨思维,调试程序

3.1 什么时候需要对程序进行调试

当程序编译出错或者链接出错时,系统都将在Output输出窗口中随时显示出有关的提示信息或出错警告信息等(如果是编译出错,只要双击Output窗口中的出错信息就可以自动跳到出错的程序行,以便仔细查找)。但若编译和链接都正确,而执行结果又总是不正确时,这时就需要使用调试工具来帮着“侦察”出程序中隐藏着的出错位置(某种逻辑错误)。

强调:初学者常犯的错误是认为“编译和链接”都正确,程序就应该没有问题,怎么会结果

不对呢?“编译和链接”都正确,只能说明程序没有语法和拼写上的错误,但在算法(逻辑)上有没有错,还得看结果对不对。反过来讲,无论让你设计一个什么样的程序,你都只写以下几行,则“编译和链接”肯定都正确,但能实现设计的要求吗?

#include

void main()

{

printf("Hello World!\n");

}

事实上,程序设计的重点完全不是修正编译和链接过程中的错误——相对而言,这种工作基本没有技术含量,程序设计的主要工作是设计正确的算法。

3.2 对程序进行调试的基本手段和方法

(1)设置固定断点或临时断点

所谓断点,是指定程序中的某一行,让程序运行至该行后暂停运行,使得程序员可以观察分析程序的运行过程中的情况。这些情况一般包括:

①在变量窗口(Varibles)中观察程序中变量的当前值。程序员观察这些值的目的是与预期值对比,若与预期值不一致,则此断点前运行的程序肯定在某个地方有问题,以此可缩小故障范围。例如以下程序是计算cos(x)并显示,运行时发现无论x输入为多少,结果都是0.046414。

#include

#include

void main()

{

int x;

printf("Please input x:");

scanf("% d", &x);

printf("cos(x)=%f\n", cos(x));

}

在该程序中,若你没有看到问题——程序较长、较复杂时很难看出问题所在,则应该使用调试手段定位故障位置。

②在监控窗口(Watch)中观察指定变量或表达式的值。当变量较多时,使用Varibles窗口可能不太方便,使用Watch窗口则可以有目的、有计划地观察关键变量的变化。

③在输出窗口中观察程序当前的输出与预期是否一致。同样地,若不一致,则此断点前运行的程序肯定在某个地方有问题。

④在内存窗口(Memory)中观察内存中数据的变化。在该窗口中能直接查询和修改任意地址的数据。对初学者来说,通过它能更深刻地理解各种变量、数组和结构等是如何占用内存的,以及数组越界的过程。

⑤在调用堆栈窗口(Call Stack)中观察函数调用的嵌套情况。此窗口在函数调用关系比较复杂或递归调用的情况下,对分析故障很有帮助。

(2)单步执行程序

让程序被一步一步(行)地执行,观察分析执行过程是否符合预要求。例如,以下程序预期的功能是从键盘上读入两个数(x和y),判断x和y是否相等,相等则在屏幕上显示x=y,不相等则显示x<>y。这是要求实现的功能,但程序实际的运行状况却是:无论输入什么,都会在屏幕上显示x=y和x<>y,程序肯定有问题,但表面上看却可能找不到问题所在,使用单步执行,则能定位故障点,缩小看的范围。例如,在单步执行的过程中,若输入“2,3”,发现x和y的值的确变成了2和3,此时按道理不应执行“printf("x=y\n");”,但单步跟踪却发现被执行了,因此多半问题出在“if (x = y)”。

#include

void main()

{

int x, y;

printf("Please input x, y:");

scanf("%d,%d", &x, &y);

if (x = y)

{

C语言上机报告答案

2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a 赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句 改成:printf("%c %c %d\n",a,b,c);

《c语言》上机实验指导书

淮南师范学院 《C语言》 主编:井田

实验一、C 语言运行环境 (一)实验目的 1、了解C程序运行环境; 2、掌握运行环境的使用。 (二)实验设备 计算机;C编译环境 (三)实验要求 建立文件夹,采用你个人的学号+姓名来命名,例如:12111010101王明(四)实验内容 可以从以下题目中任意选做4——6题,也可自己命题,需注释说明功能 1、编程实现以下文字的输出。 I am a student. 2、编程实现交换两变量的值。(变量类型任意) 3、输入三个数,求三个数之和并输出。 4、输入三个数,求三个数中最大和最小的数并输出。 5、用sizeof测试并输出所用编译系统,int、long、short、char、float、double 等类型数据所占字节数。A=sizeof(int) 6、调用库函数,实现以下函数值的求取。 cos3.5678、log90、e2.567 #include #include void main() { printf("cos 3.5678 = %f\n", cos(3.5678)); printf("log 90 = %f\n", log(90)); printf("exp(2.567) = %f\n", exp(2.567)); }

实验报告包括:实验名称、实验目的、实验内容。其中实验内容包括程序和结果及结果分析。 实验二、常量的使用和变量与赋值 (一)实验目的 1、了解C 语言中常量的种类和作用; 2、了解基本类型常量在内存中的存储形式及变量的本质; 4、掌握赋值运算的意义和正确用法。 (二)实验设备 计算机;C编译环境 (三)实验要求 建立文件夹,采用你个人的学号+姓名来命名,例如:12111010101王明(四)实验内容 可以从以下题目中任意选做4——6题,也可自己命题,需注释说明功能 1、编程实现int、short、long、char、float、double等类型常量的输出。 2、编程实现int、short、long、char、float、double等类型变量的建立、赋值以及输出。 3、编程实现对int和float型数据进行格式化输入和输出。(要求使用格式修饰符) 4、编程实现对3个变量按照从大到小的排序。(变量类型任意) 5、编程实现不同类型数据进行赋值。 6、编程实现不同类型数据之间混合运算。(至少列举三种不同类型数据

C语言程序实例

#include void main (int argc,char *argv[] ) { int x[5] = { 2,3,1,4,6 }; int i; for (i = 0; i < 5; i++) { printf("%d\n", 2 * x[i]); } } 一维数组的遍历: #include void main(int argc, char *argv[]) { int x[5] = { 1,2,3,4,5 }; int i = 0; for (i = 0; i < 5; i++) { printf("x[%d]:%d\n", i, x[i]); } } 一维数组的最值: #include int main(int argc, char* argv[]) { int x[5] = { 1,2,3,4,5 }; int nMax = x[0]; int i = 0; for (i = 1; i < 5; i++) { if (x[i] > nMax) { nMax = x[i]; } } printf("max:%d\n", nMax); return 0; }

#include void main(int argc, char ** argv[]) { int arr[5] = { 9, 8, 3, 5, 2 }; int temp = 0; int i, j; printf("冒泡排序前: \n"); for (i = 0; i < 5; i++) { printf("%d ", arr[i]); } printf(" \n"); for (i = 0; i < 5-1; i++) { for (j = 0; j < 5 - 1 - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } printf("冒泡排序后: \n"); for (i = 0; i < 5; i++) { printf("%d ", arr[i]); } printf("\n"); } 二维数组的遍历 #include void main() { //声明并初始化数组 int array[3][4] = { {1,2,3,4,},{5,6,7,8,},{9,10,11,12} }; for (int i = 0; i < 3; i++)//循环遍历行 {

C语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

c语言上机实验实验七

实验七 (2018-12-03~2018-12-05) 一、实验名称: 指针。 二、实验目的 (1)通过实验进一步掌握指针的概念,会定义和使用指针变量; (2)能正确使用数组的指针和指向数组的指针变量; (3)能正确使用字符串的指针和指向字符串的指针变量; (4)了解指向指针的指针的概念及使用方法。 三、实验项目(必做题) 本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。 以下均用指针方法编程: (1)下面程序的功能是:用选择法排序,将输入的数按由小到大的次序排列。先仔细阅读程序及注释,然后根据题意填空。 main() { int i,j,k,t,*p; int a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); /*输入数据*/ p=a; /*指针p指向数组a*/ for(i=0;i<9;i++) { k=i; /*变量k中存放最终需要交换的元素的位置*/ for(j=i+1;j<10;j++) if( ________ ) k=j; /*有更小的元素值时更新k的指向*/ if(k!=i) /*当k被更新后就需要交换数据*/ { t=*(p+k); *(p+k)=*(p+i); ______________; } for(p=a;p

(2)以下程序的功能是:用函数实现a, b两个整数的交换。程序的部分语句如下,请先仔细读程序及注释,然后在此基础上写出完整的程序(缺少的语句可直接写在预留的空白处),并对新写的语句加上注释,最后上机调试通过。 main() { int a,b,*pa,*pb; scanf("%d%d",&a,&b); pa=&a; /*指针pa指向整数a*/ pb=&b; /*指针pb指向整数b*/ printf("a=%d,b=%d\n",a,b); swap(pa,pb); /*调用函数swap,实参为指针*/ printf("a=%d,b=%d\n",a,b); } swap(p1,p2) /*定义函数swap,完成交换功能*/ int *p1, *p2; /*形参说明*/ … (3)调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求: ⑴2个数的和, ⑵2个数交换值。 要求用函数指针调用这两个函数,结果在主函数中输出。 main() { int a,b,c,(*p)(); scanf("%d,%d",&a,&b); p=sum; *p(a,b,c); p=swap; *p(a,b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b); } sum(int a,int b,int c) { c=a+b; } swap(int a;int b) { int t; t=a; a=b; b=t; } 调试程序时注意参数传递的是数值还是地址。 (4) 在主函数中任意输入10个数存入一个数组,然后按照从小到大的顺序输出这10个数, 要求:数组中元素按照输入时的顺序不能改变位置。

C语言上机练习题

上机练习题 完成 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 完成 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 完成 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。完成 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 完成 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 完成 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 完成 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 完成 8.输入1~10之间的一个数字,输出它对应的英文单词。 完成 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 完成 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 完成 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境;

C语言上机实验

实验1目的1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 实验二 二、实验目的: 1、掌握C语言的数据类型。 2、学会使用C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。 1、输入r1、r2,求出圆形垫片面积。(实验指导书P84) 2、输入华氏温度h,输出摄氏温度c。(实验指导书P85) 3、从键盘输入一个3位整数,将输出该数的逆序数。(实验指导书P89) 4、输入并运行以下程序,分析运行结果。 #include void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i);

c语言上机实验实验八

实验八 (2018-12-12~2018-12-17) 一、实验名称: 结构体 二、实验目的: (1)掌握结构体类型的定义和使用; (2)掌握结构体类型变量的概念和使用; (3)掌握链表的概念,初步学会对链表进行操作; (4)进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。 三、实验项目(必做题) 本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。 (1)利用顺序表实现“先进后出”的堆栈 提示:定义结构体struct来定义堆栈;采用动态数组实现顺序表;定义函数实现堆栈中元素的压入和弹出,保证“先进后出”的实现 // 结构体Stack struct Stack{ int * List; // 用来存储元素的顺序表 int curNumber; // 用来存储当前元素的总个数 }; void iniStack(Stack * A); // 初始化堆栈 void clearStack(Stack * A); //清空堆栈 void push(Stack * A, ELEMENT obj); //将元素obj压入堆栈的栈顶 void pop(Stack * A); //将当前栈顶的元素弹出栈。要求:栈不为空 ELEMENT get_top(Stack * A); //返回当前栈顶的元素值。要求:栈不为空 int is_empty(Stack * A); //判断当前堆栈是否为空,空返回1,非空返回0 void display(Stack * A); //自顶向下显示堆栈中的元素 测试实例: 向堆栈中压入:1 2 3 4 弹出次序应为:4 3 2 1

C语言上机实验指导

实验要求: 上机实验一般经历上机前的准备(编程)、上机调试运行和实验后的总结三个步骤。 1.上机前的准备 根据问题,进行分析,选择适当算法并编写程序。上机前一定要仔细检查程序(称为静态检查)直到找不到错误(包括语法和逻辑错误)。分析可能遇到的问题及解决的对策。准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。 上机前没有充分的准备,到上机时临时拼凑一个错误百出的程序,宝贵的上机时间白白浪费了;如果抄写或复制一个别人编写的程序,到头来自己一无所获。 2.上机输入和编辑程序,并调试运行程序 首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后调用编译程序对源程序进行编译,查找语法错误,若存在语法错误,重新进入编辑环境,改正后再进行编译,直到通过编译,得到目标程序(扩展名为OBJ)。下一步是调用连接程序,产生可执行程序(扩展名为EXE)。使用预先准备的测试数据运行程序,观察是否得到预期的正确结果。若有问题,则仔细调试,排除各种错误,直到得到正确结果。在调试过程中,要充分利用C 语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。整个过程应自己独立完成。不要一点小问题就找老师,学会独立思考,勤于分析,通过自己实践得到的经验用起来更加得心应手。 3.整理上机实验结果,写出实验报告 实验结束后,要整理实验结果并认真分析和总结,根据教师要求写出实验报告。 实验报告一般包括如下内容: ⑴实验内容 实验题目与要求。 ⑵算法说明 用文字或流程图说明。 ⑶程序清单 ⑷运行结果 原始数据、相应的运行结果和必要的说明。 ⑸分析与思考 调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会;其他算法的存在与实践等。若最终未完成调试,要认真找出错误并分析原因等。 实验一C语言运行环境 一、实验目的 1.了解TC环境的组成。 2.学习TC环境的使用方法。 3.了解C语言程序从编辑、编译、连接到运行并得到运行结果的过程。 二、实验内容 1.了解TC环境的组成。 开机后进入WINDOWS系统的"资源管理器",找到TC环境所在的文件夹。查看在TC目录下的以字母TC开头的文件,是否包括了TC.EXE、TCC.EXE、TLINK.EXE、TCCONFIG.TC等文件;查看INCLUDE、LIB两个子目录下的文件。复习这些文件夹的作

C语言程序简单例子讲解学习

实验二参考答案 1.输入两个整型数字,输出他们的和。 #include main() { int a, b, sum; scanf(“%d%d ”, &a, &b); sum=a+b; printf(“a+b=%d ”, sum); } 2.输入两个实型数,输出他们的和与乘积。 #include main() { float a, b, sum, product; scanf(“%f%f ”, &a, &b); sum=a+b; product=a*b; printf(“a+b=%5.2f, a*b =%5.2f ”, sum, product); } 3.求方程02=++c bx ax 的根(设042≥-ac b )(其中a ,b ,c 的值由键盘输入)。 #include #include main() { float a, b, c, dt, x1, x2; scanf(“%f%f%f ”, &a, &b, &c); dt=sqrt(b*b-4*a*c); x1=(-b+dt)/(2*a); x2=(-b-dt)/(2*a); printf(“x1=%5.2f, x2 =%5.2f ”, x1, x2); }

4.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各多少只?(h和f的值由键盘输入,输出鸡和兔的头数) #include main() { int h, f, x,y; scanf(“%d%d”, &h, &f); x=2*h-f/2; y=f/2-h; printf(“x=%d, y =%d”, x, y); }

大一C语言上机实验试题和答案

实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include void main( ) { int a,b,c,d; printf(“Please enter a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d);

北理c语言上机答案(全)

1 Hello world 让我们用C语言向世界问好。 最早的程序基本是这个样子的: 程序一: #include <> void main() { printf("Hello world.\n"); } 程序二: #include <> int main() { printf("Hello world.\n"); return 0; } 上面的程序你任意模仿一个,看看是否可以通过如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。 输入:无 输出:Hello world. 程序实例1: #include<> void main() { printf("Hello world.\n");

} 结果: Hello world. 程序实例2: #include <> int main() { printf("Hello world.\n"); return 0; } 结果: Hello world. 1. Welcome to Beijing. 让我们来练习如何显示多行文字。 输入:无 输出:就是下面的那段文字。 程序实例1: #include"" int main() { printf("Welcome\n"); printf("to\n"); printf("Beijing.\n"); return 0; }

Welcome to Beijing. 程序实例2: #include<> void main() {printf("Welcome\nto\nBeijing.\n"); } 结果: Welcome to Beijing. 1练习最简单的printf和scanf printf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。输入:整型变量x的值。 输出:输出整型变量x对应的十进制、八进制和十六进制形式。 认真看看-1的八进制和十六进制输出,请想想是为什么。 程序实例1: #include"" main() {int x; scanf("%d",&x); printf("x=%d,x=%o,x=%x\n",x,x,x); }

c语言上机练习题及答案[1]汇总

1.从矩形的长,宽,输出面积(长为 6.5,宽为4.5 ) #in elude mai n() float len gth,width,area; sca nf("%f%f", & le ngth,&width); area=le ngth*width; prin tf("area=%f\n",area); 2.定义符号常量,从键盘输入圆的半径 3.5,求圆的周长和面积 #defi ne PI 3.14 #in clude mai n() float r,c,area; sca nf("%f",&r); c=2* Pl*r; area=P l*r*r; prin tf("c=%f,area=%f\n",c,area); 3.练习上机手册P10 3,4, 5题,看看输出结果,并思考为什么 4.从键盘输入一个整数,输出其绝对值(采用两个if语句实现)int i; sea nf("%d",&i); if(i>=0) prin tf("i=%d\n",i); if(i<0) prin tf("i=%d\n",-i); 5.从键盘输入一个整数,输出其绝对值(采用if ―― else语句实现)#in elude mai n() int i; #in clude mai n()

sca nf("%d",&i); if(i>=0) prin tf("i=%d\n",i); else prin tf("i=%d\n",-i); 6.从键盘输入年份,判断是不是闰年,如果是,输出是闰年(上机考试重点) #in elude mai n()

C语言程序设计实验指导书

C 语言程序设计 实 验 指 导 书 电子工程学院 2012-2

实验一 C程序的运行环境和编辑、调试、运行简单C程序 一、实验目的 1.了解 Turbo C 的基本操作方法,学会独立使用该系统。 2.掌握在该系统上如何编辑、编译、运行一个C程序。 二、实验内容及步骤 1.进入C的工作环境 1)在Windouws环境下:“开始”→“程序”→“MS-DOS” 屏幕上进入 MS-DOS窗口 2)在Dos环境下:键入命令c:\> cd c:\tc↙ c:\tc> tc↙ 屏幕上出现Turbo C的工作环境 2.熟悉Turbo C的工作环境 了解Edit窗口与Message窗口 了解主菜单的8个菜单项 File Edit Compile Project Option Debug break/watch 3.输入并运行一个简单的程序 File→New 输入源程序:

main() { printf("This is a C program.\n"); printf("OK\n"); } 按F9进行编译和连接,观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 按Run→Run(或按Ctrl+F9) 编译、连接、运行一起完成。 按Run→User screen(或按Alt+F5) 察看运行结果。 按任一键从用户屏切换回TC窗口。 4.输入并编辑第二个C程序 File→New 输入源程序: main ( ) { int a,b,sum; a=123; b=456; sum=a+b; printf("sum is %d\n", sum); }

编辑、运行、调试该程序。 5.编辑、运行、调试自己编写的程序(至少一个程序) 如:输入上底、下底和高,计算梯形面积。 观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 用File→Save (或F2)保存程序(程序名为a1.c) 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.编译过程中出现的错误信息。 5.总结讨论本次实验的结果和收获。

C语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一of GUET.*/ ===================== 实验一C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,c=6,求出s并换行 #include"stdio.h" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); } 2.------------------------------- 输入一个数字求他的平方 #include main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } 3.-------------------------------- (1) #include main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include

{ int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=3;b=3;c=5; v=a*b*c; printf("v=%d\n",v); } ================================= 实验二数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形%ld 长整型%hd 短整型%hu无符号整形%u %lu%s:输入输出为字符串%c字符%f:输入输出为浮点型%lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); }

C语言程序设计习题答案与上机指导实验要求

C语言程序设计习题答案与上机指导实验要求 课堂实验应与课堂讲授内容同步,按教材章节编制实验单元。学生按照“理解程序”→“模仿程序”→“改写程序”→“编写程序”四步曲,循序渐进地学习,逐步提高学生的编程能力。 课程实验包括程序跟踪调试、程序阅读、程序改错、程序填空、程序编写多种类型(在程序阅读题中引入程序的跟踪调试,因此程序阅读题难度不大,这类题一般在前章:3~7章),可从多角度培养学生的编程能力。每章实验有基本类实验(2~3个)和提高类实验(1~2个),基本类实验要求每个同学必须完成,提高类实验学生可根据自己的能力有选择性的完成,完成者该实验可加分。每一章实验可按以下要求编写(以第X章为例): 如 第X章数据组织——数组 1.1 知识要点 数组是基本的构造类型,是一组具有相同类型数据的有序集合,数组中的元素在内存中连续存放。用数组名和下标可以唯一地确定数组元素。 以下略 1.2 实验名称螺旋方阵(提高类) 1)实验目的 (1)熟练理解和掌握二维数组的使用

(2)熟练理解循环嵌套的含义与使用方法 2)实验任务 (1)实验内容 如图所示,已知一个N*N(3≤N≤25)的方阵,从左上角第1个格式子开始,按顺时针螺旋方向将1,2,3…的数据布满整个方阵。 N=4时的方阵 (2) 实验要求 输入N,产生N阶螺旋方阵中的所有数据,保存到二维数组,并输出该螺旋方阵。 测试用例:

(3)实验要点分析 ①问题分析 螺旋方阵数据的产生有一定规律。从外到内,可以以圈为单位生成数据。比如N=4时,刚好就是两圈数据: 第1圈: 1 2 3 4 12 5 11 6 10 9 8 7 第2圈 13 14 16 15

《C语言》实验指导书

《C语言程序设计》 实 验 指 导 书 华中师范大学信息技术系 二00九年三月

项目一:熟悉C语言的运行环境及简单程序设计 (11) 实验一熟悉C语言的运行环境 实验二c程序初步 (3) 实验三数据类型及输入输出 (5) 实验四运算符与表达式 (8) 项目二:流程控制、指针、数组、模块化程序设计 实验五分支程序设计 (9) 项目六循环程序设计 (11) 项目七函数 (12) 项目八数组 (13) 项目九指针 (15) 项目三:综合程序设计——竞赛编排及优胜排序 (注:每个项目应包含实验学习目标、实验内容、实验原理、实验设备、实验步骤、实验注意事项或实验思考等内容。 基本型实验应有明确的实验学习目标、详细的过程和具体的结果;综合设计型实验应有明确的实验学习目标、可参考的过程和实验结果评价标准)

实验基本要求 1、每次实验前,学生必须预习实验内容,实验程序必须自行编制、自行调试。 2、每次实验,学生都必须提交实验报告,内容包括实验目的、实验内容、实验程序、实验过程(软件的使用、程序的调试)等,见下面的实验报告模版。 3、学生第一次上机时,应在教师机指定文件夹下建立以自己学号+姓名的子文件夹,例如学号为2005683001的学生张三,应在教师机指定文件夹下建立“2005683001张三”的子文件夹,此文件夹就是学生张三存放本课程实验全部文档的文件夹,也是教师评价学生饰演成绩的主要依据。 4、学生每次实验完毕后,都应将实验报告、实验程序等文档上传到教师机自己建立的子文件夹中。 5、学生每次实验,都应该在考勤表上签到。 附 华中师范大学信息技术系c语言程序设计实验报告 实验目的: 实验设备(包括软件): 实验内容: 实验过程: 实验程序及实验结果: 实验体会:

C语言程序设计上机实验指导

C语言程序设计上机实验指导

目录 实验一 c语言程序的开发环境 (1) 实验二数据类型描述 (3) 实验三顺序结构 (6) 实验四选择结构 (9) 实验五循环结构 (12) 实验六函数与编译预处理 (16) 实验七数组 (19) 实验八指针 (23) 实验九结构体数据类型与链表 (25) 实验十共用体与枚举类型 (27) 实验十一文件 (29)

实验一 c语言程序的开发环境 一、目的、要求 1、使学生了解c语言不同于其他语言的特点。 2、掌握在c语言的开发环境中如何实现简单程序的编辑、运行,熟悉c程序的 开发环境及上机步骤。 3、通过简单的c程序,熟悉c语言程序的结构特点,掌握其基本结构框架。 4、通过实践,掌握c源程序的书写格式。 二、预习内容 1、熟悉Turbo c的集成开发环境,掌握启动、退出、编辑运行的操作。 2、了解基本命令及函数:include,include,main(), printf(),scanf()等。 三、上机内容 1、输入下列程序,记录在Turbo c 下的操作方法。 #include main() { printf(“I am a student!”); } 环境的启动操作: 程序的编译方法:快捷键是;菜单操作是 程序的保存方法:快捷键是;菜单操作是 程序的运行方法:快捷键是;菜单操作是 运行结构的查看:快捷键是;菜单操作是 环境的退出操作:快捷键是;菜单操作是 2、预测结果并上机验证 #include main() { printf(“************\n”); printf(“I am a student!\n”); printf(“************\n”); } 预测的结果是:上机验证的结果是:

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式: 26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a #include int main(void) { char c1,c2;

相关文档
最新文档