C语言上机实验指导.docx

上传人:b****8 文档编号:10563393 上传时间:2023-02-21 格式:DOCX 页数:84 大小:2.08MB
下载 相关 举报
C语言上机实验指导.docx_第1页
第1页 / 共84页
C语言上机实验指导.docx_第2页
第2页 / 共84页
C语言上机实验指导.docx_第3页
第3页 / 共84页
C语言上机实验指导.docx_第4页
第4页 / 共84页
C语言上机实验指导.docx_第5页
第5页 / 共84页
点击查看更多>>
下载资源
资源描述

C语言上机实验指导.docx

《C语言上机实验指导.docx》由会员分享,可在线阅读,更多相关《C语言上机实验指导.docx(84页珍藏版)》请在冰豆网上搜索。

C语言上机实验指导.docx

C语言上机实验指导

实验一VC的使用

一、实验目的

●了解并掌握程序设计所必须的计算机基本操作技能

●了解并熟悉VC开发环境

●了解并掌握VC开发环境下的C程序的编译、连接与运行方法

●了解并掌握查找与排除程序编译错误的方法

●了解不同类型的程序错误

二、实验环境

●个人计算机一台,PIII500(或同等性能)以上CPU,128MB以上内存,500MB以上硬盘剩余空间,SVGA彩色显卡。

●WindowsXP操作系统

●MicrosoftVisualC++6.0(中文/英文)版

三、实验内容

1VisualC++开发环境介绍

VisualC++是一个功能强大的可视化软件开发工具。

自从1993年,微软公司(Microsoft)推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。

虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000、WindowsXP和WindowsNT4.0。

所以实际中,更多的是以VisualC++6.0为平台。

VisualC++6.0不仅是一个C\C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。

VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。

这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。

VisualC++为用户开发C程序提供了一个集成环境,这个集成环境包括:

源程序的输入和编辑,源程序的编译和连接,程序运行时的调试和跟踪,项目的自动管理,为程序的开发提供各种工具,并具有窗口管理和联机帮助等功能。

VisualC++6.0开发环境的界面如图1所示。

图1VC开发环境

2VC环境下的C程序开发

尽管VC的功能很强大,但二级考试只是将其作为一个可视化的C编译器来使用,因此要求考生掌握的操作很简单。

2.1启动VC

在计算机安装VC开发环境后,桌面都会出现一个VC的图标,如图2所示,双击该图标就可以启动VC。

有的计算机上显示的名称是“VisualC++6.0”或“MicrosoftVisualC++”等,但图标都是一样的。

也可以在“开始”菜单的“所有程序”子菜单中,找到相应的启动启动项。

图2VC图标

2.2创建一个C源程序文件

启动VC后,单击“菜单栏”上的“文件菜单”,弹出一个下拉菜单,单击其中的“新建”选项,如图3所示。

图3创建C源程序

单击“新建”选项后,会弹出“新建”对话框,如图4所示。

选择上方的“文件”选项卡,选中“C++SourceFile”选项。

然后再右方的“文件名(N)”一栏中为程序起个名字,可以是任意字母和数字的组合,但其中不能有空格,并且最后一定要以“.c”结尾。

然后在“位置(C)”一栏中为程序选择一个合适的位置存放,也可以单击图4中划圈的按钮,会弹出一个对话框,让用户选择存放的位置。

我们现在把这个程序命名为“example-1.c”,放在D盘下的program文件夹中。

图4“新建”对话框

2.3编写程序

在单击图4中的“确定”按钮后,VC就会在D盘program文件夹下创建一个名为“example-1.c”的C源程序,并在“程序编辑区”中打开它,用户可以在其中输入程序,如图5所示。

图5中是一个很简单的小程序,只有一条printf()函数调用语句,其功能是向屏幕上输出一行信息“Helloworld!

”。

图5编写程序

2.3C源程序的编译、连接与运行

C源程序文件是不能直接被计算机所执行的,它需要通过编译(Compile)和连接(Link)两个步骤,才能生成能被计算机直接执行的“可执行文件”。

整个过程如图6所示,请牢记这张图。

图6C程序的编译连接过程

C源程序文件是文本文件,它的后缀名为“.c”,它不能被计算机直接执行;经过编译后,生成目标文件,它是二进制文件,后缀名为“.obj”,它也不能被计算机直接执行;再经过连接(有的书籍称为链接),生成可执行文件,它是二进制文件,后缀名为“.exe”,它可以被计算机直接执行。

注意:

C程序的编译连接过程一定要熟记,包括每种文件的类型、后缀名、能否被计算机直接执行,笔试常会考查该知识点。

因此,在编写完C源程序后,首先要做的就是编译。

编译实际上就是进行语法检查,以保证C源程序完全符合C语言的语法,没有语法错误。

在VC开发环境下,编译C源程序的方法是单击“菜单栏”的“组建”选项,弹出一个下拉菜单,单击其中的“编译”选项,如图7所示。

或者也可以单击图7中划圈的按钮,那是“编译”的快捷键。

图7C程序的编译

随后,VC会弹出一个小对话框,如图8所示,不用去理会它的具体含义,直接单击“是”。

图8C程序的编译

注意:

如果在VC的使用过程中遇到类似的弹出小对话框,都不用去理会它的具体含义,直接单击“是”即可。

VC随即开始对C源程序进行语法检查,其结果在VC底部的“编译结果输出区”中显示,如图9所示。

图9编译结果

其中,“error(s)”代表语法错误,“warning(s)”代表警告。

图9中的结果显示,语法错误(error(s))与警告(warning(s))的数量都为0,也就意味着程序编译成功。

在实际编程当中,语法错误(error(s))是绝对不允许存在,哪怕存在一个语法错误(error(s)),程序都无法进入下一步的连接和运行,也就是编译失败。

因此“error(s)”前面的错误必须是“0”,才能进入下一步的连接和运行,否则就要改成程序中的错误,并重新进行编译,直到编译成功。

而对于警告(warning(s)),则可以不必理会,因为造成警告(warning(s))的原因比较复杂,并不一定是因为语法错误。

需要特别指出的是,编译成功只能保证程序在语法上是正确的,并不能保证程序是无错的。

例如,“奥巴马是德国总理”,这句话在语法上是正确的,但在逻辑上却是错误。

编译器无法检查出程序在逻辑上的错误。

由图6可知,编译结束后需要进行连接,然后才能运行。

但在VC当中,这两部可以合并一步。

在编译成功后,“组建”菜单中的“执行”选项就会出现,直接单击,VC就会连续进行连接和执行两步操作,如图10所示。

或者也可以单击图10中划圈的按钮(红色惊叹号),那是“执行”的快捷键。

图10C程序的执行

程序在运行后,VC会弹出一个黑色的DOS界面,来显示程序的运行结果,如图11所示。

图11程序的运行结果

我们看到,运行界面上出现了两行信息,其中第一行是“Helloworld!

”,这是由程序中的printf()语句输出的,正是“example-1.c”这个程序的运行结果。

而第二行“Pressanykeytocontinue”,它是由VC自动输出的提示信息,不属于程序的运行结果。

事实上,任何程序在运行结束后,VC都会在最后加上这样一行提示信息。

我们可以把它作为程序运行结束的标志,只有当最后一行出现了“Pressanykeytocontinue”,才能证明程序正常运行结束了。

否则,程序可能在等待用户输入数据,或者陷入了死循环。

2.4关闭工作空间

在完成一个程序的编写、编译、连接和运行后,如果要编写和运行另一个程序,那么要把前一个程序的编辑区及其工作空间关闭。

最简单的方法就是直接将整个VC关闭,然后重新启动。

也可以单击“菜单栏”上的“文件菜单”,弹出一个下拉菜单,单击其中的“关闭工作空间”选项,如图12所示。

这样程序的编辑区和工作空间就一起关闭了。

图12关闭工作空间

注意:

在编写和运行另一个程序前,一定要关闭工作空间,而不能只是简单的把程序的编辑区关闭,这样会造成下一个程序无法运行。

2.5打开开已存在的C源程序文件

要打开一个已存在的C源程序文件,首先要知道该文件的位置。

例如,前面的那个“example-1.c”文件,我们知道它是放在D盘的program文件夹下的。

下面,我们来用VC打开它。

单击“菜单栏”上的“文件菜单”,弹出一个下拉菜单,单击其中的“打开”选项,如图13所示。

图13打开C源程序文件

随后,会弹出一个“打开”对话框,如图14所示。

单击图14中划圈的按钮,就可以在弹出的下拉界面中选择要到达的位置。

现在选中D盘,然后双击D盘中的program文件夹,就可以进入该文件夹了,如图15所示。

图14“打开”对话框

默认情况下,“打开”对话框只会显示C\C++程序或工程文件。

但用VC也可以打开其它类型的文件(在程序设计题的解题技巧中会用到该操作),只要单击图15中划圈的按钮,然后再弹出的下拉菜单中选中“所有文件(*.*)”即可显示所有类型的文件。

用鼠标单击选中要打开的文件“example-1.c”然后单击右方的“打开”按钮,即可打开该文件。

图15打开文件

3C程序编译错误的查找与排除

在实际的程序编写过程中,语法错误时难免的,尤其是对初学者而言。

编写的程序中出现语法错误是很正常的事情,没有必要感到急躁或灰心。

平时的练习中犯些错误,是有助于提高程序设计水平的。

VC为我们提供了一个辅助功能,帮助我们查找和排除程序中的编译错误。

以前面的那个简单程序为例,故意将“printf("Helloworld!

\n");”语句最后的那个分号(;)去掉,这样很明显就出现了一个语法错误。

事实上,初学者也常犯这样的错误。

现在,再次编译这个源程序,编译结果显示,出现了一个语法错误,编译失败,如图16所示。

图16程序的编译结果

在编译失败的情况下,“执行”按钮是灰色,不可点击。

下面要做的就是要找出这个语法错误。

将图16中划圈的滚动条向上拖动,会看到一行信息“D:

\program\example-1.c(6):

errorC2143:

syntaxerror:

missing';'before'}'”,如图17所示。

这是一行错误提示信息,辨认的标志在“errorC2143”上,“error”意味着该行是语法错误的提示信息(如果是“warning”则意味着该行警告错误的提示信息,不用去管它),“C2143”是错误代码。

把鼠标移到该行的任意位置上,并双击,该行错误提示信息变为兰色,如图17所示。

图17错误提示信息

此时,在回到“程序编辑区”,观察它的变化,如图18所示。

图18程序编辑区

注意到程序编辑区的做左端多了一个兰色的小箭头(图中划圈部分),该箭头所指向的行就是该语法错出现的大概位置,可能在箭头所指行,也可能在前一行或后一行。

实际上,尽管错误提示信息时英文的,但其中多数的单词都很简单常见,大致上是可以读懂的。

例如图17中的语法错误提示“D:

\program\example-1.c(6):

errorC2143:

syntaxerror:

missing';'before'}'”,后半句的意思就是:

在“}”前丢了“;”。

而兰色箭头又指出了该错误的大概位置,所以应该是能够比较容易的排除该错误的。

附录1中列出了常见的编译错误,可供需要时查阅。

需要提醒的是,如果出了多个“error(s)”,那么一定要从第一个错误信息提示行开始查错。

并且每排除一个错误,就要重新编译一次,因为后面的错误可能是由于前面的错误产生的。

4C程序的错误类型

4.1语法错误

语法错误是指不符合C语言的语法规定,例如左右括号数量不匹配、语句最后漏了分号等等,这些错误会在编译时被发现并指出。

这些错误都属于“致命错误”,不改正是无法通过编译的。

对一些在语法上有轻微毛病但不影响程序运行的问题(如定义了某个变量但始终未使用),编译时会发出“警告”。

但“警告”不属于“致命错误”,程序可以通过编译。

但是在程序的运行过程中,这些“警告”可能造成一些运行时错误。

4.2逻辑错误

程序没有语法错误,可以正常运行,但结果不对。

例如,要求a和b的和,可是却写成了“a-b;”。

语法上没有错,但求出的却是a和b的差。

这类错误可能是由于设计算法时的错误,也可能是由于在编写程序时出现的疏忽所致。

这类错误计算机是无法检查出来的。

4.3运行错误

有时程序既无语法错误,又无逻辑错误,但程序不能正常运行或结果不对。

多数情况下,是由于数据不正确,或数据类型不合适造成的。

例如:

要求a/b,如果b的值为非0程序不会有问题,而如果b的值为0就为造成溢出(over-flow)错误。

四、总结与思考

VC的使用是整个上机考试的基石,如果不能熟练地使用VC,那么编程能力根本无从提高,也会严重影响考试的发挥。

因此,应该要反复练习“实验内容”中所讲到的操作,并且用一些课本上的其它程序来进行实验。

尤其是“C编译错误的查找与排除”以及附录1中常见的编译错误,如果能够熟悉并掌握,能够对程序设计水平的提升起到很大的促进作用。

 

实验二数据处理

一、实验目的

●熟悉并掌握数据输入函数的格式与应用

●熟悉并熟悉数据输出函数的格式与应用

●进一步熟悉VC的使用

●学习独立排除程序中的编译错误

二、实验环境

●个人计算机一台,PIII500(或同等性能)以上CPU,128MB以上内存,500MB以上硬盘剩余空间,SVGA彩色显卡。

●WindowsXP操作系统

●MicrosoftVisualC++6.0(中文/英文)版

三、实验内容

1程序阅读与分析

注意:

以下在书写时,用“”代表空格,用“↙”代表回车换行。

1.1printf()函数

阅读以下程序,并分析预测程序的运行结果,然后上机验证。

/*example-1.c*/

#include

main()

{

inta=5,b=7;

floatx=67.8564,y=-789.124;

charc='A';

longn=1234567;

printf("%d%d\n",a,b);

printf("%3d%3d\n",a,b);

printf("%f,%f\n",x,y);

printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);

printf("%e,%10.2e\n",x,y);

printf("%c,%d,%o,%x\n",c,c,c,c);

printf("%ld,%lo,%x\n",n,n,n);

}

分析预测的运行结果:

 

上机验证的运行结果:

 

1.2scanf()函数

以下程序中的scanf语句用于输入数据,目标是使得a的值为3,b的值为7,m的值为5,n的值为9,x的值为8.5,y的值为71.82,c1的值为′A′,c2的值为′a′,即屏幕上应出现以下的输出结果:

a=3b=7

m=5n=9

x=8.500000y=71.820000

c1=Ac2=a

那么应该从键盘上怎样输入数据?

请上机验证,并把正确的结果写下来。

程序中的printf语句会把各个变量的值输出。

/*example-2.c*/

#include

main()

{

inta,b,m,n;

floatx,y;

charc1,c2;

/*以下scanf语句用于输入数据*/

scanf("a=%db=%d",&a,&b);

scanf("%d,%d",&m,&n);

scanf("%f%e",&x,&y);

scanf("%c%c",&c1,&c2);

/*以下printf语句用于输出各变量数据,验证结果*/

printf("\n以下是输出结果:

\n");

printf("a=%db=%d\n",a,b);

printf("m=%dn=%d\n",m,n);

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

printf("c1=%cc2=%c\n",c1,c2);

}

正确的输入格式是:

 

1.3putchar()与getchar()函数

观察分析以下程序,选出对应的输入与输出,并上机验证。

/*example-3.c*/

#include

intmain()

{

charc1,c2,c3;

c1=getchar();

c2=getchar();

c3=getchar();

printf("\n以下是输出:

\n");

putchar(c1);

putchar(c2);

putchar(c3);

printf("\n");

}

输入:

A)abc↙B)abc↙C)a↙b↙

输出:

A)a↙B)abc↙C)ab↙

b↙

在三组输入与输出中:

输入()与输出()对应

输入()与输出()对应

输入()与输出()对应

2程序编写

按要求编写程序或将程序填充完整。

2.1显示图形

在花括号({})之间填入适当的语句,并运行,使其能够显示图1所示的图形。

/*example-4.c*/

#include

main

{

}

【解题提示】

可以使用printf()语句按行直接输出。

图1example-4.c程序的输出结果

2.2温度转换

在花括号({})之间划线的部分填空,将程序补充完整实现下述功能,并上机运行验证。

该程序的功能是从键盘上输入一个实数F,代表华氏温度。

将华氏温度转换为摄氏温度C(实数)并输出,摄氏温度保留两位小数。

华氏温度与摄氏温度的关系式:

例如,

输入:

17.2

输出:

Thetempratureis-8.22

/*example-5.c*/

#include

main()

{

scanf("%lf",&f);

printf("Thetempratureis\n",c);

}

【解题提示】

(1)变量要先定义后使用。

(2)控制输出的实数的小数位的方法是“%n1.n2f”,n1和n2是两个整数,n1表示输出的实数占的总位数,n2表示输出实数的小数位的位数。

2.3数据交换

在花括号({})之间划线的部分填空,将程序补充完整实现下述功能,并上机运行验证。

该程序的功能是从键盘上输入两个整数,分别存放在变量a和b中,然后将a与b中的数据交换。

例如,

输入:

1020

输出:

beforeswap:

a=10,b=20

afterswap:

a=20,a=10

/*example-6.c*/

#include

main()

{

/*定义变量*/

/*输入两个整数*/

printf("Inputaandb:

");

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

/*输出数据交换前,a与b的值*/

printf("beforeswap:

");

printf("a=%d,b=%d\n",a,b);

/*数据交换*/

/*输出数据交换后,a与b的值*/

printf("Afterswap:

");

printf("a=%d,b=%d\n",a,b);

}

【解题提示】

两个整数的交换是十分重要的,一定要掌握

四、总结与思考

数据的输入和输出,以及数据的基本数学运算时整个程序设计的根基,因为程序设计的本质就是数据的获取以及数学运算。

因此,一定要熟练掌握几个数据输入输出函数的格式与应用方法,以及基本数学运算符的运算法则。

在完成以上实验的基础上,有兴趣的同学可以在课后思考以下问题:

思考题:

数字加密

在花括号({})之间划线的部分填空,将程序补充完整实现下述功能,并上机运行验证

输入1个四位数,将其加密后输出。

方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。

例如,

输入:

1257

输出:

Theencryptednumberis4601

/*think-1.c*/

#include

main()

{

/*n用来存放输入的4位数,n1存放4位数的第1位数字*/

/*n2存放4位数的第2位数字,n3存放4位数的第3位数字*/

/*n4存放4位数的第4位数字*/

intn,n1,n2,n3,n4;

scanf("%d",&n);

/*获取第1位数*/

/*获取第2位数*/

/*获取第3位数*/

/*获取第4位数*/

/*第1位数加9对10取余*/

/*第2位数加9对10取余*/

/*第3位数加9对10取余*/

/*第4位数加9对10取余*/

/*第1位和第3位上的数字互换,第2位和第4位上的数字互换*/

printf("Theencryptednumberis%d\n",n);

}

【解题提示】

对于一个整数n而言,如果要获取个位数,那么直接对10取余就可以了:

n%10。

如果要获得十位数,那么首先要把个位数抹去:

n/10,然后原来的十位数就变成了个位数。

如果要获得百位数,那么首先要把十位数和个位数抹去:

n/100,然后原来的百位数就变成了个位数。

根据以上的分析,我们可以发现,要获得一个整数的个位数,就将n对10取余(n%10);要抹去一个整数的最末x位,就将n除以10x(n/10x)。

 

实验三选择结构程序设计

一、实验目的

●了解并掌握C语言表示逻辑值的方法(以0代表“假”,以非0代表“真”)

●了解并掌握逻辑运算符的运算法则

●熟悉并掌握逻辑表达式的使用

●熟练掌握if语句及其嵌套形式的使用

●熟练掌握if-ese语句及其嵌套形式的使用

●熟练掌握switch语句的使用

二、实验环境

●个人计算机一台,PIII500(或同等性能)以上CPU,128MB以上内存,500MB以上硬盘剩余空间,SVGA彩色显卡。

●WindowsXP操作系统

●MicrosoftVisualC++6.0(中文/英文)版

三、实验内容

注意:

以下在书写时,用“”代表空格,用“↙”代表回车换行。

1程序阅读与分析

阅读以下程序,并分析预测程序的运行结果,然后上机验证。

(在书写时,用“”代表空格,用“↙”代表回车换行)

1.1switch语句

阅读以下程序,并分析预测程序的运行结果,然后上机验证。

/*example-7.c*/

#include

main()

{

intn;

printf("Inputn:

");

scanf("%d",&n);

switch(n)

{

case1:

printf("Iamcase1.\n");

default:

printf("Iamdefault.\n");

case2:

printf("Iamc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1