第 1章 C语言与计算机_第1页
第 1章 C语言与计算机_第2页
第 1章 C语言与计算机_第3页
第 1章 C语言与计算机_第4页
第 1章 C语言与计算机_第5页
已阅读5页,还剩171页未读 继续免费阅读

下载本文档

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

文档简介

第1章C语言与计算机

实验1-1VC6.0的使用

实验内容:

1、熟悉VC6.0集成开发环境

2、编写及编译运行一个简单的C程序

3、运行一个自己仿写C程序

实验目的及要求:

1、学会使用VC6.0

2、识别源文件中常见的错误

实验重点:

1、熟悉C语言的编译环境,了解在VC6.0上如何编辑、编译、连接和运行一个C程序。

实验难点:

1、体会VC6.0如何利用工程(project)组织程序

2、出现错误时的处理

3、区分在VC6.0中运行程序与通过双击可执行文件运行程序的不同

实验步骤:

1、使用VC6.0编写和编译程序

1)运行VC6.0后的界面如图1所示

图1VC6.0集成开发环境界面

2)选择【文件(File)]I[新建(New)]菜单命令或按下快捷键(Ctrl+N),则弹出

新建(New)对话框中的工程(Project)选项卡(Project有时也称为项目),如图2

所示。

图2新建(New)对话框中的工程(Project)选项卡

3)在接下来弹出的如图3和图4对话框中,分别单击完成和确定按钮,VC6.0会呈现

如图5的界面。

Win32ConsoleApplicationIX

然班便触台酬

。二相@

r-惆摩崛

r-个佻MWM!■理F电

r-t蓊第螂M

34]二》」豆酷

图3控制台程序的类型图4新建工程信息汇总

图5新建一个名为11的工程后VC6.0的界面

4)再次选择【文件(File)]I[新建(New)】命令或按下快捷键(Ctrl+N),则再次

弹出新建(New)对话框,此时显示的是文件(Files)选项卡,如图6所示。

新建_?JX

图6新建(New)对话框中的文件(Files)选项卡

5)单击确定按钮后,VC6.0的编辑器就自动打开了新建的C语言源文件,等待输入。

如图7所示。

图7VC6.0中编辑器等待输入时的界面

6)输入图8中的程序1-1后,选择【组建(Build)】I【执行(Execute)】命令或按下

快捷键(Ctrl+F5),编译执行程序。运行情况如图9所示。

图8编译执行程序IT

图9程序1-1正在运行

7)在图9的程序运行窗口中输入2332/(注本书中用/表示按下回车键),程序运

行情况如图10所示。

图10程序1T的运行情况

2、识别源文件中常见的错误

1)C语句没有以分号结束,如图11所示。

图11C语句没有以分号结束

2)全角的符号(用中文输入法输入的符号通常为全角的,只有需要输入汉字时才切换

到中文输入法,汉字输入完毕应立刻切换到键盘输入),如图12所示。

图12程序中有全角的符号

3)输入语句中少个&号,如图13所示。

图13输入语句中少个&号

4)输入语句中有\n,如图14所示。

,include<stdio.h>

voidMin()

<

inta,bvc;

啰望厘*^噂输入语句中多个\n也不领|起焉法错误

G-9,U,

fiprintf,”和加\n”,c);次同伴世程•序都不会执行卜.而的讲旬!

山!

«ll■ConFigurati

Jconpiling...

1_1.c

Linking...

I1-1.exe-0error(s),Owarning

图14输入语句中有\n

5)printf函数书写不对,如少个f等,如图15所示。

J2d^include<stdio.h>

2uoidmain()

+厚11classes

3

inta,b,c;

printF「请输入两个整数:\n");

,,,

6scanf('%dtd,&a,&b);

c=a.b;

8叵亚里”和为%d\n-,c);

凶Configuration:1_1-Win32Debug

JjCompiling__•print,:没有定义的标识符

11.c

|F:\C语言程序示例\1_1\1_1.c(8):errorC2G65:'print':undeclaredidentifier

执行cl.exe时出错.

1_1.obj-1error(s),0warning(s)

图15printf函数书写不对

6)没有层次关系(可读性不好),如图16所示。

1ttinclude<stdio.h>

2uoidmain()

3

inta,bvc;

5printf(“请输入两个整数:\n");没行层次关系,

6scanf("%d%d",&a,&b);

1c=a+b;何读性太差!

8printf("和为裘l\n”,c);

9)1

■2ClassV…]司FileView

XConfiguration:11-Win32Debug

JlCompiling__

11.obj-0error(s),0warning(s)

图16源代码没有层次关系

3、找到第I步中工程所在的文件夹,找出源文件l_l.c,用“记事本”程序打开查看内容。

把源文件l」.c复制到新建的一个文件夹中。如图17、18、19所示。

□回区]

文件(玲编辑(E)查看⑦收藏⑧工具⑴帮助但)

Q后退,❾.方,搜索,文件夹国^

地址(D)1^^:式语言程序示例\1_1转到

文件和文件夹任务公

到重命名这个文件B

出移动这个文件1_11_1

NCB文件PLG文件

Q复制这个文件33KB1KB

通将这个文件发布到S

Web11.dsw

分以电子邮件形式发送DSW文件

Q此文件1KB

X删除这个文件M

图17找到源文件L1.C

图18用记事本打开源文件l」.c

新建文件夹口回国

文件(F)编辑(E)登看(V)收藏(A)工具(T)号助(H)

&力/D授索乩_文件夹[TFT]▼

地址(D)「jF:\C语言程后:示例\1_1\新建文件夹▼0转到

女件和女件夹住终会

J创建一个新文件夹

心格这个文件夹发布到

jWeb

=共享止匕文件夹

图19把源文件l」.c拷贝到新建文件夹中

4、在debug文件夹中找出可执行文件,双击运行程序,观察运行结果。如图20所示。

»Debug口叵|区

文件(E)编辑(E)查看⑦收藏⑶工具⑴帮助®群

Q后退,。力7P搜索文件夹因,

地址①)OF:\C语言程序示例\1_1\DebugB转到

111

文件和文件夹任务公1ILK文件

172KB

可重命名这个文件

④移动这个文件111_1

OBJ文件PCH文件

’臼复制这个文件3KB199KB

通将这个文件发布到

11

PDB件vc60

为以电子邮件形式发送4O9IDB文件

》此文件KB33KB

X删除这个文件

vc60

PDB文件

44KB

其它位置公

图20编译后的可执行文件l_l.exe

通过双击运行l_l.exe时会出现输入数据结束后程序运行窗口自动关闭的现象,并不会

象在VC6.0中执行程序那样:程序运行窗口呈现输出结果,当按下任意键后才关闭。

怎样才能查看程序通过双击运行时的最终输出结果?换言之,如何让呈现出输出结果的

运行窗口不消失?

输入函数scanf可以帮忙吗?

VC6.0中运行程序有两种方式,如图21所示。以“调试方式”运行程序的详细情况参

见实验1-3。

♦・1_1-MicrosoftVisualC++-♦]-lolx|

El文件⑥缰辑⑥查看&)插入①工程e组建(B)工具①窗口他)帮助的)

q0*墉译[l_l.c]Ctrl+F7三

____殂建[l_l.exe)F7II

|[Globals)二11[AHglobalmember,▼|已全部直建t

批组建...

清除击

开始调试9)将

远程连接调试程序…

执行[]Ctr“5

用相同『

4调

移除工程配置®..

配置…试

配置文件…方

llinclude<stdio.h>

uoidnain()式

开始调试①)

赳行

远程连接调试程序.・・R}StepIntoFl1

■*{}RuntoCursorCtrl+FlO

J执行[l_l.exe]Ctrl+F5序

附加到当前进程

移除工程配置(R)・・

J21J

标卷.列1~~|REC|COL障至陵取力

图21VC6.0中运行程序有两种方式

5、关闭工程,找到并打开新建的文件夹中的源文件l」.c,编译运行程序.如图22、23、

24所示。

2uoidmain()'V-.lr

3

inta,b,c;

5printf「请输入两个整数:\n");

6scanF("%d^d",&ay&b);

7c»a♦b;

8printf「和为td\n”,c);

9

图22只有源文件时的编译第一步(会提示创建一个工程)

图23只有源文件时的编译第二步

。、"F:\C语言程序示例\1_1\新建文件夹\Debug\l_Lexe”

2332

和为55

Pressanykeytocontinue.

图24程序的执行情况并无不同

6、打开新建的文件夹,观察为生成可执行文件VC6.0生成的文件,不必关心每个文件的作

用。用VC6.0编译程序有两种方式:从新建工程开始;从直接新建源文件开始。

7、再次选择新建工程,开始个新的程序。第2个程序的功能:求两个整数的积。(注意:

C语言中用“*”来代表“X”。)如图25、26所示。

I11-MicrosoftVisualC++-[11.

置文件任)婚转⑻插入<D工程(已蛆津(B)工具(D甯口但)帑助出)

曲片Q。勉i02⑻守小用▼]Mb%J4国常跑{)歌?%"

(Globals)▼jl|AIIglobalmember:

♦@31_1classes

JlLinking...

11.exe-0en

图25再次新建工程,开始一个新的程序

图26求两个整数的积

思考:输入两个小数时(比如输入2.33.2时),程序的运行结果如图27所示。

C'F:\C语言程序示例\222\Debug\222.exe

Q.33.2

快为一1717986920

图27输入小数时•,程序的运行结果错误

程序会为什么会出错?怎样改正错误呢(即如何求两个小数的积)?

实验1-2printf函数的使用

实验内容:

熟悉printf函数的用法

实验目的及要求:

能熟练利用printf函数输出信息。

实验重点:

I、一般字符串的输出

2、含有转义序列的字符串的输出

3、含有占位序列的字符串的输出(查看“变量”的值)

实验难点:

1、体会语句与输出之间的对应关系

2、由不同的数据类型需要不同的占位序列,体会数据类型在C语言中的重要性

实验步骤:

//printf函数在输出时有何特点?

1、用一条输出语句输出"Ilovec!"。

2、用多条输出语句输出uIlovec!"。

注意:

1)使用printf函数输出一串字符时只需把欲显示的字符串用一对双撇号("")括起来

作为输入值调用printf函数即可。

2)程序运行窗口中光标闪烁的位置是下一条printf函数语句输出时的起始位置。

〃转义序列

3、用一条输出语句输出如下信息:

Thefirstline

Thesecondline.

4、输出字符串“Hove"。'!”和“我会输出转义序列、n”'。

注意:

1)反斜杠'和下一个字符的组合称为“转义序列”,有着特殊的含义。printf函数在输

出时如遇到“转义序列”就会按照它的含义输出某些特殊字符。所谓特殊字符主要是指C

语言中标识键盘上的某些键如回车键所用的字符。当反斜杠'作为“转义序列”开始的标识

后,反斜杠\也成了“特殊”的字符。

2)如遇到转义序列\n,printf函数就会把输出定位到下一行的开始位置(相当于按下

了键盘上的回车键);遇到转义序列\",printf函数就会输出一个双撇号”;遇到转义序列

\\>printf函数就会输出一个反斜杠\。

〃占位序列

5、根据提示补全程序。

#include<stdio.h>

voidmain()

{

〃定义一个整型变量n

〃接收用户输入的整数并存储到整型变量n中

〃输出用户输入的整数

)

6、编写一个程序,功能为输出用户输入的小数。

7、编写一个程序,功能为接收用户输入的两个小数,输出它们的和。程序的运行情况可能

如下所示:

1.12.2

1.100000*2.200000=3.300000

r

□Pressanykeytocontinue

注意:

1)printf函数中另一个特殊的符号组合是百分号%及与之相邻的字符,称为“占位序

列”。遇到占位序列时,printf函数会用后面相应位置上的数据替代占位序列。

2)语句printf("和为%d!",z);输出时,双撇号中”和为%d!”的%d会被后面变量z的

值替代。当变量z的值为10时输出结果为:和为10!。“占位序列”也称为“格式字符串”,

因为对于不同类型的数据需用不同的格式字符串:整数用%d,小数用%f,字符用枇。

探究:

1、printf("%d”,3*2):和printf("%d\n”,3*2);有何区别?当它们是程序中最后一条语句时两

者有何区别?

2、转义序列'\b,和V有何输出效果?

1ttinclude<stdio.h>

2uoidmain()

3<

4printF(-123456\n");

5printf(“12345\b6\n");

6

c;"F:\C语言程序示例\test\Debug\test・exe”

123456

12346

Pressanykeytocontinue

◎test,cF:\C语言程序示例\•testVtest・c

•include<stdio.h>

2uoidnain()

3(

4printF(,,123456\n");

5printF(,,12345\r6\n");

6

|s"F:\C语言程序示例\test\Debug\test・exe”

123456

62345

Pressanykeytocontinue

实验1-3C程序的执行顺序

实验内容:

1、用VC6.0调试执行一个C程序

2、观察一个C函数被调用时的执行情况

实验目的及要求:

1、掌握用VC6.0调试执行一个C程序的方法

2、初步理解一个C函数的执行过程

实验重点:

1、掌握“断点”、“调试执行”、“单步执行”等概念

2、分析函数的执行过程

3、在程序调试执行时输入数据,观察输出

实验难点:

1、区分调试执行时快捷键F10和F11的异同

2、理解被调用函数的执行过程

实验步骤:

1、打开VC6.0,创建一个名为1_4的工程,在编辑器窗口输入如下程序。

程序14:有两个函数的C程序

程序1-4有两个函数,sum函数的定义从第2行至第7行,main函数的定义从第8行至

第15行。C程序的执行过程就是执行main函数的过程,下面利用VC6.0的调试功能查看一

下程序1-4的执行过程.

2、把光标定位在第11行,单击编译工具栏上的手型图标(或按下快捷键F9),插入断

点,如图1所示。

图1程序1-4中插入断点

3、选择【组建(Build)】|【开始调试(Debug)】|【Go】命令(或按下快捷键F5),

进入调试模式,如图2所示。在调试模式,程序执行到断点位置的语句时会自动停下,此时

可以观察程序当前的状态如变量的值。

图2用调试模式执行程序『4

在调试模式下可以利用调试命令控制程序的执行,如此时可单步执行程序,即每次只执

行一条语句,执行完一条语句后程序自动暂停执行。单步执行程序可以方便地查看程序执行

的细节。

4、单击调试工具栏上的是单步执行命令(或按下快捷键Fl1),执行完第11行语句后

程序再次暂停,如图3所示。

图3单步执行

5、再次按下快捷键F11,并观察程序状态的变化。当执行到第13条语句时,sum函数

被调用,程序开始进入并执行sum函数,如图4所示。

'•1_4二MicrosoftVisualC++[break]-[F:\l_4,c*]

息)文件⑹编辑⑥查看⑨插入①工程⑻调试⑼工具①窗口明帮助(H)』助的

菅|以口。「晶比|二,,:的国一|喷|—

名称悔:

a*32CXX6017:Error:synbo

mutch:\Hatch4/

图4开始执行sum函数

6、继续按下快捷键F11,执行完被调用的sum函数并返回到main函数后,如图5所示。

\1_4二MicrosoftVisualC++[break]-[F:\l_4,c*]

图文件®编辑@查看仅)插入①工程(E)调试⑼工具①窗口皿帮助世)」四凶

懂,。命屈国甘|鲁「F&]

就绪行14列39趾C〔COL恒盖他取/

图5执行完被调用函数后返回到调用函数

接下来要执行的第14条语句是printf函数调用,如果按下快捷键F11,那么程序将

用调试模式执行printf函数。没有必要调试执行库函数,因此,此时按下快捷键

F101stop°ver-啦!0F10与F11的作用稍

有不同。如果当前的执行语句中有函数调用,则用F10时不会单步执行(即调试执行)被调

用函数,而是正常执行被调用函数(即连续执行被调用函数中的全部语句)。如果当前的执

行语句中没有函数调用,则F10与F11作用相同。

通过调试执行可知,程序14的执行顺序是:11、12、13、3、5、6、7、13、14、15,

其中在第3、7、15行处暂停执行程序的目的是方便查看当时的程序状态。

注意:

如果此时不小心按下快捷键F11,那么程序将用调试模式执行printf函数,弹出如

图6所示的对话框。

FindSource②区

Pleaseenterthepathfor

PRINTF.C.

[1AK1

&f:\

fe1_4

亡]Debug

单击取消

驱动器凹:_____________________________

,国和乐乐HI

图6调试库函数printf时弹出的对话框

单击取消后对VC6.0将呈现如图7所示的状态。

图7调试库函数printf时VC6.0所呈现的状态。

此时可以通过调试菜单中StopDebugging命令结束调试,如图8所示。可以在任何

情况下通过此命令回到正常的编辑状态。

图8结束调试状态

思考:

1)使用函数(调用函数)究竟意味着什么?

〃执行了函数体中的代码

2)如何与被调用函数传递数据?(怎样向函数中传入数据,函数怎样传出数据,怎样

接收从函数传出的数据?)

〃可以把函数的返回值看作是被调用函数的最终结果。printf('%d",sum(3,2)*6);

的输出是?

3)使用函数时应注意什么?

〃区分函数有无返回值。有返回值时……无返回值时……

//printf函数有返回值吗?

〃实验厂2探究2中的例子里它的返回值是多少?(最终的输出是“叠加”的效果)

7、分析实验17中思考:输入两个小数时(比如输入2.33.2时),程序的运行结果如图

所示。

c:<F:\C语言程序示例\222\Debug\222.exe

2.33.2

积为T717986920

1)在程序中的第5行设置断点。如图9所示。

图9在程序设置断点

2)调试执行程序。如图10所示。

图10调试执行程序

3)无需单步执行库函数printf,因此使用F10调试执行程序。如图11所示。

■:\C语后I•.222MicrosoftVisualC++[break]-[222.c]EB®

I3文件(E)修较《DM(S)标入(!)工程(R)谒试(B)工具(I)«□(!)常助出)

|图eQfii的q-mJB®展行二H

|(Globals)▼J(Allglobalmember:二(.main三]为▼手詹!

)qe

r3-◊main▼][voidnain()(

1Itinclude<stdio.h>

-2uoidmain()

••

仃inta,b,c;

printf("请瑜入两个整数:\n”);

窗scanfCtd^d",&.)v&b);

1c-a•b;Ll经指向了卜•条语旬

8print““积为XdMT.c);

I9&HJJpiintf函数执彳j・完毕

"

I11U2J

上下文:|maln[|3斗名称I值

J.Jr—..-.....J

-.Tr

H-,

l~l\Watchl卜Watch2\Watch3}WatctiT7

行6.列1_____________________

图11无需单步执行库函数printf

注意观察VC6.0的变化和程序运行窗口的变化。

4)无需单步执行库函数scanf,因此使用F10调试执行程序。如图12所示。

1222MicrosoftVisualC++[run][222.c]£1口汉

⑹文件(E)编辑(E)查看(,播入(D工程(已调求①)工具(D窗口(勤帮助出),削x

图以。0%町⑻君铁叵二一3M

|(Globals)-globalmemben.main-三]双▼夕凹!色

◊.,in▼11~void.ain()[

1"""Itinclude<stdio.h>

2uoidnain()

hintavb,c;

「,•printf(“请输入两个整数:\n");

产4削;磁盘有反应,但实际上3f函数

:>"1田(,•积桐\吟如已台执行,不过官在等待用户

___________________的输入,此时应切换到程J尸运

F:\C语言程序示例\222\Debug\222”??

图12无需单步执行库函数scanf

5)在程序运行窗口输入2.33.2/,然后转回调试窗口。如图13所示。

—[j"

e—I,7

】b过

生_的而c

!_通t小面为特言

_量来)a

_1仃W入后认个语

_数变原俏\输户该一C

的_向没3h

_函为新c户用应赋则

8_,ta,

_f2并仍W用理其用

«▼_n了入时

_人当处为以

_ai了俏到2量

又I_hc,再动可

1▼_c川为借t1变

_s其得aW列入不自?

)/变,.个。

H("的然k7输将会吗

助以l0题

].。式俏h行的数一.

c用仍c6e问N

.可新at数函义

2,'的格aCx到用

2(也M.W整该定Ve

2口叩得N\

温馨提示

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

评论

0/150

提交评论