《如何使用Visual C++6.0.doc》由会员分享,可在线阅读,更多相关《如何使用Visual C++6.0.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流如何使用Visual C+6.0【精品文档】第 35 页C程序设计基础上机实验指导书李文杰、李桂芝、鱼涛 编写杨根兴 审定北京机械工业学院计算中心目 次说明怎样学习C语言实验一 C程序集成开发环境熟悉实验二 数据的输入和输出实验三 表达式的计算实验四 选择结构语句实验五 循环结构语句实验六 数组应用(一)实验七 数组应用(二)实验八 函数及程序结构(一)实验九 函数及程序结构(二)实验十 指针的应用说 明C程序设计同其他程序设计一样,使实践性很强的课程。除了要听好课,多看课外书外,还需大量的上机实践才能更好地理解和掌握所学到的内容。一般来说,上机和讲课时
2、间之比应不少于1:1。但由于目前各校安排的教学时数限制,课内时间将更多的精力用于讲课上,课内安排的上机时间相对较少,学生不要因此对上机的重要性有所误解。学生应在课外再花一定的时间进行C语言的上机实践,这样才能学好该门课。上机实验的目的有以下几个方面:验证所编写的程序的正确性。进一步理解教材和课堂授课中介绍的内容熟练地掌握C程序开发环境的使用,为今后开发大型软件打好基础。学习和掌握一般程序的调试和测试方法。上机前应充分做好以下准备工作:复习和掌握与本次实验有关的教学内容。根据本次实验的内容,在纸上编写好准备上机调试的程序,并初步检查无误。准备好对程序进行测试的数据。对每种测试数据,给出预期的程序
3、运行结果。预习实验步骤,对实验步骤中提出的一些问题进行思考。上机实验后,应及时写出实验报告,实验报告应包括以下内容:实验目的和内容。程序说明,包括程序结构、各模块的算法(N-S图表示)。打印出的调试正确的源程序。打印出的程序运行记录(包括对不同测试数据的运行结果)。 针对实验步骤中提出的问题,写出解决办法及对运行结果的分析。怎样学习C语言很多同学对学习C语言感到很难,尤其是在各高校将C语言放在大学第一学年教学时经常会考试不及格。究竟怎样才能学好C语言?这里将我对C语言的理解给大家介绍一下, 计算机语言挺枯燥的,如何提起兴趣? 首先要明确学习的目标,没有明确的学习目标就没有学习动力。给自己定一个
4、目标,比如这次一定通过课程考试,或者这个月学习完做个东西出来等等。其次,确定了目标之后,要认真去做,多上机操作实践,遇到不懂的要多跟教师和其他同学交流,千万不能放弃。当自己编的一段小程序运行通过,或攻下一道难题,自己就会获得一种成就感,可能还会很兴奋,也就渐渐有了兴趣。最后,要把所学的知识运用到实际问题当中,这样既可以巩固所学的知识,不至于完学了就忘,还可以根据实际需要拓展知识面。这样良性循环,兴趣也会越来越浓。学习计算机语言最好的方法是什么?答曰:读程序。没错,读程序是学习C语言入门最快,也是最好的方法。不要总是抱着书本逐行啃,而是学习它们的例程。 学习完每一章,都要认真体会这一章的所有概念
5、,然后不放过这一章中提到的所有例程,仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止。这一过程,就和我们学习任何其他语言比如英语和汉语一样。我们大家都有体会,我们学习一门语言,都是从最基本的语法开始,然后学习一些字和词,再来学习一些词组或句子,然后再用词组和句子组成一段话,表达一个简单的意思,最后才是写一篇文章或者是一本书,
6、表达更复杂的思想。我们知道,在我们完成这一过程时,并不是像说得这么简单。在我们能写出一篇好的文章或者一本好书之前,我们可能需要阅读大量的其他人写的好文章或好书,有时我们还要把它们背下来;同样的,在我们写出一个好的程序或者软件前,我们也需要阅读大量的样本例程或者软件的源代码,甚至要背一些好的程序代码。写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。?那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的
7、这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。实验一 C程序集成开发环境熟悉一、实验目的掌握在Visual C+ 6.0集成开发环境下怎样编辑、编译、连接、执行、修改和调试C语言程序。二、实验内容1进入可视化的C+ 6.0集成开发环境启动计算机,进入窗口环境操作界面。鼠标依次点击“开始”“程序”“Microsoft Visual Studio 6.0”“Microsof
8、t Visual C+ 6.0” 启动VC6.0集成开发环境。单击此处来修改文件保存位置此处输入源程序文件名选择“文件”(File)菜单中的“新建”(New)命令, 在新建 图1对话框中,选择“文件”选项卡,再选择“C+ Source File”类型,按图示操作后单击对话框中的“确定”按钮。(见图1) 接着就会出现如图2所示的VC界面。 在编辑窗口中,输入如下内容:#include stdio.h/以上行对于本书中的例子没有给出。望同学们对于所有的/程序都保留这样一行。main( ) printf(Hello!这是我的First C程序.n); 选择“编译”菜单中的“ 编译 my_c1.cpp
9、” 命令,并在出现的对话框中选择“是(Y)”结果如图3。图2编译信息窗 图3选择“编译”菜单中的“构件my_c1.exe”命令,构建可执行程序my_c1.exe,再选择“编译”菜单中的“!执行my_c1.exe” 命令。 在出现的对话框中选择“是(Y)”,结果屏幕如图4所示。图4图中的黑色窗口为运行结果窗口。按任意键就可返回编辑界面。修改上述程序,将printf行括号中的双引号去掉左边的,重复,可以看到图5。其中的编译信息窗显示:鼠标点击滚动条,查看错误信息图5my_c1.obj - 16 error(s), 1 warning(s)可以看到由于一个双引号的漏写,导致出现16个语法错误,而实际
10、上的错误只有一个,这是C编译器的特点,当它遇到错误时,会做出一些判断或推测,有时这种推测判断正确,有时也会错误。了解这一特点后,希望同学们在上机时,先去修改第一个错误,一般可以在修改一个错误后立即重新编译,这样可以快速减少错误的数目。下面请同学们用鼠标点击滚动条上的滑块,查当前错误所在的位置指示看第一条错误信息,并用鼠标双击第一个错误信息。(图6),错误的解释错误所在的文件及行号图6可以看到,C编译器将Hello理解为了标识符,而前面又没有对Hello的说明,所以认为它是未声明的标识符(undeclared identifier),这个错误在初学者的程序里非常多见,希望同学们记住它。 将双引号
11、加上再重新编译,就可恢复为无错误了。修改上述程序,在#include “stdio.h”这一行的最左边加两个“/”,即使得这一行成为注释(显示为绿色),重复,可以看到图7所示的错误。相信同学们对其中的错误说明不难理解了,C编译器说printf是未声明的标识符。原因是printf不是C语言的基本部分,它是定义在“stdio.h”中,这也就是我们为什么在前面说要在自己的程序前部加#include “stdio.h”的原因。请先选择“文件”菜单的“关闭工作区”命令,再按上面的步骤(3)(5)操作将编辑窗口的程序更换为如下程序文本,依次引入下述错误,每引入一个错误,就对程序进行编译,记录编译器产生的错
12、误信息,写在实验报告里。 /* 变量使用相关的语法问题 */ #include stdio.hvoid main() int a=1,b=2,c=3; printf(Some output: %d %d %dn,a,b,c,c); 把第6行变量声明语句的第一个逗号改为分号把第7行printf()改为print() 去掉第7行中的第2个双引号 把第7行中a,b,c,c改为a,b,c 去掉printf语句末尾的分号 去掉用于结束的花括号 注意,在引入每一个错误并编译后,开始引入下一个错误前将上一错误再改正。2.程序的调试手段作为程序员编写程序,一个难以避免的工作就是对程序的调试。调试包括语法方面的
13、,这一般通过编译就可基本解决,比如在上述图3中,细心的同学可能注意到在底部的编译信息窗中,编译报告中说:my_c1.obj - 0 error(s), 1 warning(s),意思是编译过程中没发现错误(0 error(s)),但有一个不合规范的使用(1 warning(s))。编程序应最好是达到 0 error和0 warning,但有时无法做到如此完美,只要达到 0 error就可以了。若不能做到0 error,将不能产生机器语言程序,因而也就无法执行程序。所以同学们在调试自己的程序时,必须是做到经编译后0 error。好在编译器对发现的错误都有一个比较正确的修改意见,同学们按意见修改后
14、一般就可消除错误,只是修改意见是英文的,同学们需有一定的专业词汇或者经过一定时间与VC+的接触,就可理解;另一类就是逻辑方面的,这类错误的消除相对麻烦。好在VC提供了非常丰富的调试手段,帮助我们分析错误,前提是程序已经没有语法错误,也就是说编译已经通过(0 error(s))。下面我们了解一些常用的,为了便于说明,请先选择“文件”菜单的“关闭工作区”命令,再按上面的步骤(3)(5)操作将编辑窗口的程序更换为如下程序文本:#include stdio.hvoid main() float i; float sum;sum=1.0; i=2.0; while (ib+c);printf(表达式2=
15、%dn,d=ab+c);2以下程序的功能是:从键盘输入一个字符型数据,若输入一个数字字符(0-9),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。#include stdio.hvoid main( )char c;scanf(%c,&c);if(0=c=9) /*条件表达式*/ c=c-0;printf(c=%dn,c);else printf(data error!n);实验步骤: 上机调试以上程序; 输入09之间的任何字符,验证输出结果是否和程序功能相符合; 输入09之外的任何字符,例如,输入字母a,验证输出结果是否和程序功能相符合; 将条件表达式if(0=c=9)改为
16、if(0=c&cb) d=a; else if(cb) d=c; else d=b;printf(d=%dn,d);程序2:#include stdio.hvoid main()int a=3,b=4,c=5,d=0; if(ab) if(cb) d=c; else d=b;else d=a;printf(d=%dn,d);程序3:#include stdio.hvoid main()int a=3,b=4,c=5,d=0; if(ab) if(cb) d=c; else d=b;printf(d=%dn,d);程序4:#include stdio.hvoid main()int a=3,b=
17、4,c=5,d=0; if(ab)if(cb) d=c; else d=b;printf(d=%dn,d);编程:比较键盘依次输入的两个数a和b的大小关系,并根据大小关系分别输出1(若ab)、0(若a=b)、-1(若ab)。 7条件运算符和条件表达式由条件运算符组成条件表达式的一般形式为:表达式1? 表达式2: 表达式3其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。用条件表达式对4中要求的输出两个数中的大数的程序重新编程。8switch语句语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:switch(表达
18、式)case 常量表达式1: 语句1;case 常量表达式2: 语句2;case 常量表达式n: 语句n;default : 语句n+1;在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句。 这是与前面介绍的if语句完全不同的,应特别注意。程序分析题。分析以下程序,对分析的结果上机检验。#include stdio.hvoid main( ) int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; c
19、ase 1: b+;break; /abc case 2: a+;b+;break; printf(a=%d, b=%dn,a,b);在程序中的/abc前面,后面添加一个break; 再次运行该程序,程序结果有何变化?在实验报告中对结果作出解释。三、对上述实验进行总结,写出实验报告,把你通过本实验掌握的内容整理出来。实验五 选择结构程序设计(二)一、实验目的进一步掌握选择结构程序设计,熟练运用选择语句编写程序,提高调试和修改程序的能力。二、实验内容输入三个整数,输出最大数和最小数。分析:首先比较输入的a,b的大小,并把大数装入max, 小数装入min中,然后再与c比较,若max小于c,则把c赋
20、予max;如果c小于min,则把c赋予min。因此max内总是最大数,而min内总是最小数。最后输出max和min的值即可。2有一函数:y=xx12x-11=x=10用scanf函数输入x的值(分别为x=10三种情况),求y值。分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用if语句。3编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。实验步骤与要求:(1) 输入一组数据3,4,8,观察程序运行结果,并与实验二中程序2做比较(2) 另外再输入几组数据进行测试:3,4,53,3,33,
21、3,5(3)如果程序有误,可采用“单步跟踪执行”的调试方法,确定错误的出处。4输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E方法一:(用if语句的嵌套)分析:由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先
22、判断输入的成绩是否在0100之间。方法二:用switch语句分析:switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。5编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op 操作数2计算表达式的值,指定的
23、运算符为加(+)、减(-)、乘(*)、除(/)用if及switch语句实现。程序运行举例:Please enter the expression:22.12+12.10键盘输入屏幕提示22.12+12.10=34.22 程序输出用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。实验步骤与要求:(1)有变量定义为整型。(2)输入前要加提示语句。(3)输出结果前要有必要的文字说明。说明:(1)闰年的条件是:year能被4整除但不能被100整除,或者year能被400整除。(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天
24、。问题讨论对于多分支选择结构何时使用if语句的嵌套,何时使用switch语句?三、对上述实验进行总结,写出实验报告,把你通过本实验掌握的内容整理出来。实验六 循环结构程序设计(一)一、实验目的1熟练掌握三种循环语句的应用。2. 熟练掌握循环结构的嵌套。3. 掌握break和continue语句的使用。4. 练习调试与修改程序。二、实验内容1语句while语句的一般形式为: while(表达式)语句;while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。编程:求1-10的奇数和。提示:参考教材107页,例6.2,循环变量的步长值为2。语句do-while语句的一般形式为:
25、do语句;while(表达式);do-while语句的语义是:先执行循环体语句一次, 再判别表达式的值,若为真(非0)则继续循环,否则终止循环。编程:求110的偶数和。3语句其一般形式为:for(表达式1;表达式2;表达3)语句; for语句的语义是:首先计算表达式1的值。再计算表达式2的值,若值为真(非0)则执行循环体一次, 否则结束循环。执行循环体后再计算表达式3的值,转回第2步重复执行。下列程序用于输出fibnocci数列的前20项,每行输出5个。请填空。说明:fibnocci数列的前两项均为,以后各项等于其前两项之和。#include stdio.hvoid main( ) int i
26、,f1,f2,f3,n; f1=1;f2=1;printf(n%d %d ,f1,f2); n=2; for(i=1; ;i+) if( ) printf(n); printf(%d ,f3); n+; f1=f2;f2=f3;编程: 用for语句计算s= 3+33+333 求5!4break/continue语句:while (表达式1) if(表达式2) break; while (表达式1) if (表达式2) conitue; 结束本次循环结束整个循环#include stdio.hvoid main()int i,sum=0;for (i=1;i=10;i+) if (i=5) co
27、ntinue; sum=sum+i; printf(sum=%5dn,sum);#include stdio.hvoid main()int i,sum=0;for (i=1;i5) break; sum=sum+i; printf(sum=%5dn,sum);说明以下各程序的功能及运行结果并总结Break和continue语句的不同用法。编程:输出100以内能被7整除的数。提示:对7100的每一个数进行测试,如该数不能被7整除,即模运算不为0,则由continue语句转去下一次循环。只有模运算为0时,才能执行后面的printf语句,输出能被7整除的数。(参考教材115页,例6.5)5循环嵌套三种循环控制语句可以互相嵌套,即在一个循环体内部又可以出现另一循环。输出100以内的素数。素数是只能被1 和它本身整除的数。判断素数的方法:用一个数分别去除2到这个数减1(或2到sqrt(这个数)),如果能被整除,则表明此数不是素数,反之是素数。#include math.h#include stdio.hvoid main()