如何使用Visual C++60.docx
- 文档编号:30243231
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:60
- 大小:433.74KB
如何使用Visual C++60.docx
《如何使用Visual C++60.docx》由会员分享,可在线阅读,更多相关《如何使用Visual C++60.docx(60页珍藏版)》请在冰豆网上搜索。
如何使用VisualC++60
C程序设计基础
上机实验指导书
李文杰、李桂芝、鱼涛编写
杨根兴审定
北京机械工业学院计算中心
目次
说明
怎样学习C语言
实验一C程序集成开发环境熟悉
实验二数据的输入和输出
实验三表达式的计算
实验四选择结构语句
实验五循环结构语句
实验六数组应用
(一)
实验七数组应用
(二)
实验八函数及程序结构
(一)
实验九函数及程序结构
(二)
实验十指针的应用
说明
C程序设计同其他程序设计一样,使实践性很强的课程。
除了要听好课,多看课外书外,还需大量的上机实践才能更好地理解和掌握所学到的内容。
一般来说,上机和讲课时间之比应不少于1:
1。
但由于目前各校安排的教学时数限制,课内时间将更多的精力用于讲课上,课内安排的上机时间相对较少,学生不要因此对上机的重要性有所误解。
学生应在课外再花一定的时间进行C语言的上机实践,这样才能学好该门课。
上机实验的目的有以下几个方面:
⑴验证所编写的程序的正确性。
⑵进一步理解教材和课堂授课中介绍的内容
⑶熟练地掌握C程序开发环境的使用,为今后开发大型软件打好基础。
⑷学习和掌握一般程序的调试和测试方法。
上机前应充分做好以下准备工作:
⑴复习和掌握与本次实验有关的教学内容。
⑵根据本次实验的内容,在纸上编写好准备上机调试的程序,并初步检查无误。
⑶准备好对程序进行测试的数据。
⑷对每种测试数据,给出预期的程序运行结果。
⑸预习实验步骤,对实验步骤中提出的一些问题进行思考。
上机实验后,应及时写出实验报告,实验报告应包括以下内容:
⑴实验目的和内容。
⑵程序说明,包括程序结构、各模块的算法(N-S图表示)。
⑶打印出的调试正确的源程序。
⑷打印出的程序运行记录(包括对不同测试数据的运行结果)。
⑸针对实验步骤中提出的问题,写出解决办法及对运行结果的分析。
怎样学习C语言
很多同学对学习C语言感到很难,尤其是在各高校将C语言放在大学第一学年教学时经常会考试不及格。
究竟怎样才能学好C语言?
这里将我对C语言的理解给大家介绍一下,
计算机语言挺枯燥的,如何提起兴趣?
首先要明确学习的目标,没有明确的学习目标就没有学习动力。
给自己定一个目标,比如这次一定通过课程考试,或者这个月学习完做个东西出来等等。
其次,确定了目标之后,要认真去做,多上机操作实践,遇到不懂的要多跟教师和其他同学交流,千万不能放弃。
当自己编的一段小程序运行通过,或攻下一道难题,自己就会获得一种成就感,可能还会很兴奋,也就渐渐有了兴趣。
最后,要把所学的知识运用到实际问题当中,这样既可以巩固所学的知识,不至于完学了就忘,还可以根据实际需要拓展知识面。
这样良性循环,兴趣也会越来越浓。
学习计算机语言最好的方法是什么?
答曰:
读程序。
没错,读程序是学习C语言入门最快,也是最好的方法。
不要总是抱着书本逐行啃,而是学习它们的例程。
学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止。
这一过程,就和我们学习任何其他语言比如英语和汉语一样。
我们大家都有体会,我们学习一门语言,都是从最基本的语法开始,然后学习一些字和词,再来学习一些词组或句子,然后再用词组和句子组成一段话,表达一个简单的意思,最后才是写一篇文章或者是一本书,表达更复杂的思想。
我们知道,在我们完成这一过程时,并不是像说得这么简单。
在我们能写出一篇好的文章或者一本好书之前,我们可能需要阅读大量的其他人写的好文章或好书,有时我们还要把它们背下来;同样的,在我们写出一个好的程序或者软件前,我们也需要阅读大量的样本例程或者软件的源代码,甚至要背一些好的程序代码。
写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。
?
?
?
?
?
?
那么怎样才算精通程序设计呢?
怎样才能精通程序设计呢?
举个例子:
你面前有10个人,找出一个叫“张三”的人,你该怎么办?
第一种方法:
直接对这10个人问:
“谁叫张三”。
第2种方法:
你挨个去问“你是不是张三?
”,直到问到的这个人就是张三。
第三种方法:
你去挨个问一个人“你认不认识张三,指给我看”。
不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。
实验一C程序集成开发环境熟悉
一、实验目的
掌握在VisualC++6.0集成开发环境下怎样编辑、编译、连接、执行、修改和调试C语言程序。
二、实验内容
1.进入可视化的C++6.0集成开发环境
⑴启动计算机,进入窗口环境操作界面。
⑵鼠标依次点击“开始”→“程序”→“MicrosoftVisualStudio6.0”→“MicrosoftVisualC++6.0”启动VC6.0集成开发环境。
⑶选择“文件”(File)菜单中的“新建”(New)命令,在新建图1
对话框中,选择“文件”选项卡,再选择“C++SourceFile”类型,按图示操作后单击对话框中的“确定”按钮。
(见图1)
⑷接着就会出现如图2所示的VC界面。
⑸在编辑窗口中,输入如下内容:
#include"stdio.h"
//以上行对于本书中的例子没有给出。
望同学们对于所有的
//程序都保留这样一行。
main()
{
printf("Hello!
这是我的FirstC程序.\n");
}
⑹选择“编译”菜单中的“编译my_c1.cpp”命令,并在出现的对话框中选择“是(Y)”结果如图3。
图2
图3
⑺选择“编译”菜单中的“构件my_c1.exe”命令,构建可执行程序my_c1.exe,再选择“编译”菜单中的“!
执行my_c1.exe”命令。
在出现的对话框中选择“是(Y)”,结果屏幕如图4所示。
图4
图中的黑色窗口为运行结果窗口。
按任意键就可返回编辑界面。
⑻修改上述程序,将printf行括号中的双引号去掉左边的,重复⑹,可以看到图5。
其中的编译信息窗显示:
图5
my_c1.obj-16error(s),1warning(s)
可以看到由于一个双引号的漏写,导致出现16个语法错误,而实际上的错误只有一个,这是C编译器的特点,当它遇到错误时,会做出一些判断或推测,有时这种推测判断正确,有时也会错误。
了解这一特点后,希望同学们在上机时,先去修改第一个错误,一般可以在修改一个错误后立即重新编译,这样可以快速减少错误的数目。
下面请同学们用鼠标点击滚动条上的滑块,查
看第一条错误信息,并用鼠标双击第一个错误信息。
(图6),
图6
可以看到,C编译器将Hello理解为了标识符,而前面又没有对Hello的说明,所以认为它是未声明的标识符(undeclaredidentifier),这个错误在初学者的程序里非常多见,希望同学们记住它。
将双引号加上再重新编译,就可恢复为无错误了。
⑼修改上述程序,在#include“stdio.h”这一行的最左边加两个“/”,即使得这一行成为注释(显示为绿色),重复⑹,可以看到图7所示的错误。
相信同学们对其中的错误说明不难理解了,C编译器说printf是未声明的标识符。
原因是printf不是C语言的基本部分,它是定义在“stdio.h”中,这也就是我们为什么在前面说要在自己的程序前部加#include“stdio.h”的原因。
⑽请先选择“文件”菜单的“关闭工作区”命令,再按上面的步骤(3)~(5)操作将编辑窗口的程序更换为如下程序文本,依次引入下述错误,每引入一个错误,就对程序进行编译,记录编译器产生的错误信息,写在实验报告里。
/*变量使用相关的语法问题*/
#include"stdio.h"
voidmain()
{
inta=1,b=2,c=3;
printf("Someoutput:
%d%d%d\n",a,b,c,c);
}
①把第6行变量声明语句的第一个逗号改为分号
②把第7行printf()改为print()
③去掉第7行中的第2个双引号
④把第7行中a,b,c,c改为a,b,c
⑤去掉printf语句末尾的分号
⑥去掉用于结束的花括号
注意,在引入每一个错误并编译后,开始引入下一个错误前将上一错误再改正。
2.程序的调试手段
作为程序员编写程序,一个难以避免的工作就是对程序的调试。
调试包括语法方面的,这一般通过编译就可基本解决,比如在上述图3中,细心的同学可能注意到在底部的编译信息窗中,编译报告中说:
my_c1.obj-0error(s),1warning(s),意思是编译过程中没发现错误(0error(s)),但有一个不合规范的使用(1warning(s))。
编程序应最好是达到0error和0warning,但有时无法做到如此完美,只要达到0error就可以了。
若不能做到0error,将不能产生机器语言程序,因而也就无法执行程序。
所以同学们在调试自己的程序时,必须是做到经编译后0error。
好在编译器对发现的错误都有一个比较正确的修改意见,同学们按意见修改后一般就可消除错误,只是修改意见是英文的,同学们需有一定的专业词汇或者经过一定时间与VC++的接触,就可理解;另一类就是逻辑方面的,这类错误的消除相对麻烦。
好在VC提供了非常丰富的调试手段,帮助我们分析错误,前提是程序已经没有语法错误,也就是说编译已经通过(0error(s))。
下面我们了解一些常用的,为了便于说明,请先选择“文件”菜单的“关闭工作区”命令,再按上面的步骤(3)~(5)操作将编辑窗口的程序更换为如下程序文本:
#include"stdio.h"
voidmain()
{
floati;
floatsum;
sum=1.0;
i=2.0;
while(i<=100)
{
sum+=1/i;
i=i+2;
}
printf("sum=%f\n",sum);
}
⑴打开调试器
首先定位光标到main函数的函数首部所在行,选“编译”✍“开始调试”✍“Runtocursor”,出现如下图8所示界面。
在该界面中,“debug”菜单取代了“编译”菜单。
“debug”菜单的主要子菜单如下图9。
Go(去)………………连续执行程序
Restart……………不管程序运行到何处,重新从头开始执行程序
StopDebugging……停止调试器
StepInto…………单步进入语句内执行,如函数调用、复合语句内等
StepOver…………单步越过语句执行,即一步执行完函数调用或复合语句
StepOut……………单步从语句的执行中跳出。
如从函数内跳出或从复合语句中跳出。
RuntoCursor……程序一次执行到光标所在位置暂停
⑵在图10左下角的小窗口中,可以观察程序中用到的变量的取值情况。
如果
图7
程序中变量很多,可在右下角的窗口中设定一些特别关心的变量,并可设定几组。
例如,当选择了“stepinto”命令后,屏幕如下图10所示,在重点变量观察窗的Name列输入i,然后单步执行程序,观察i的值Value变化情况。
有关这方
面的更多内容,请参阅MicrosoftVisualC++6.0手册。
三、对上述实验进行总结,将自己在这次实验中所学到的C语言程序上机操作方法及步骤写在实验报告中。
图8
图9
图10
实验二顺序结构程序设计
一、实验目的
1.掌握scanf和printf的主要用法。
2.掌握常用转换控制符的用法。
3.掌握赋值语句的用法。
4.掌握算术运算符的运算规律。
二、实验内容
1.编辑如下程序并运行,记录程序的输出结果,体会格式输出的使用。
#include"stdio.h"
voidmain()
{
printf("%d\n",42);
printf("%5d\n",42);
printf("%f\n",123.45);
printf("%12f\n",123.45);
printf("%e\n",123.45);
printf("%13e\n",123.45);
printf("%g\n",123.45);
printf("%8g\n",123.45);
printf("%.5d\n",42);
printf("%.0d\n",42);
printf("%8.3f\n",123.45);
printf("%8.1f\n",123.55);
printf("%8.0f\n",123.55);
printf("%g\n",123.56789);
}
2.编辑如下的程序,并上机运行3次,在每次运行提供输入数据时分别采用数据之间插入空格、每输入一个数据就按回车键、数据之间用TAB键分割,看结果有什么不同?
#include"stdio.h"
voidmain()
{
intx,y,t;
printf("Enterx&y:
\n");
scanf("%d%d",&x,&y);
printf("x=%dy=%d\n",x,y);
t=x;
x=y;
y=t;
printf("x=%dy=%d\n",x,y);
}
3.改错题。
下列程序多处有错,请通过上机改正。
使之符合下面的要求。
#include"stdio.h"
voidmain()
{
doublea,b,c,s,v;
printf(Inputa,b,c:
\n);
scanf("%d%d%d",a,b,c);
s=a*b;
v=a*b*c;
printf("a=%db=%dc=%d\n",a,b,c);
printf("s=%f\n",s,"v=%d\n",v);
}
当本程序运行时,要求按如下方式显示和输入:
Inputa,b,c:
2.02.03.0(此处的2.02.03.0为用户输入的)
a=2.000000b=2.000000c=3.000000
s=4.000000v=12.000000
4.编辑如下程序:
/*字符类型定义及使用*/
#include"stdio.h"
voidmain()
{
charc1,c2;
c1='a';
c2=‘b’;
printf(“%c%c\n”,c1,c2);
}
(1运行此程序,记录运行结果。
(2在最后增加一个语句:
printf(“%d%d\n”,c1,c2);再运行,并记录分析结果。
(3再将第5行charc1,c2;改为:
intc1,c2;再使之运行,并观察记录结果。
(4再将第6、7行改为:
c1=a;/*不用单引号*/
c2=b;
再运行,记录分析其运行结果。
(5再将第6、7行改为:
c1=”a”;/*用双引号*/
c2=”b”;
再运行,记录分析其运行结果。
(6再将第6、7行改为:
c1=300;/*用大于255的整数*/
c2=400;
再运行,记录分析其运行结果。
5.编辑如下程序:
/*自增自减运算符*/
#include"stdio.h"
voidmain()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
(1)运行程序,记录i、j、m、n各变量的值,分别作以下改动并运行。
(2)将第7、8行改为下面所示,再运行。
m=i++;
n=++j;
记录i、j、m、n各变量的值
(3)在
(1)的基础上,将printf语句改为:
printf(“%d,%d”,++i,++j);
运行程序,记录i、j、m、n各变量的值。
(4)再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
运行程序,记录i、j、m、n各变量的值。
(5)再修改程序如下,运行程序记录i、j、m、n各变量的值。
#include"stdio.h"
voidmain()
{
inti,j,m=0,n=0;
i=8;
j=10;
m+=i++;n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
}
6.编程题。
编写程序,完成对于任意输入的两个整数,求出它们的商和余数并进行输出。
三、对上述实验内容进行总结,写出实验报告。
实验三表达式的计算
一、实验目的
1.掌握算术表达式、逗号表达式、赋值表达式的计算。
2.特别注意运算符%、/(整数的相除)、++和--运算的规律。
二、实验内容
1.已知三角形的三边a,b,c,求三角形面积的公式为:
area=sqrt(s(s-a)(s-b)(s-c))
其中:
s=(a+b+c)/2,sqrt(x)表示x的平方根。
要求编一程序,对任意输入的a,b,c值,计算并输出三角形的面积范围。
提示:
sqrt是C的标准库函数,使用该函数应将库文件“math.h”包含到源文件中。
另外注意三角形三边的基本关系。
2.对以下程序进行分析,看程序的输出结果应是什么,然后上机运行该程序看实际结果与你分析的有无不同,找出原因。
#include"stdio.h"
voidmain()
{
intx=1,y=2,t;floatm;
t=x/y;m=x/y;
printf("%d\t%8.3f\n",t,m);
t=x/(float)y;m=x/(float)y;
printf("%d\t%8.3f\n",t,m);
t=(float)x/y;m=(float)x/y;
printf("%d\t%8.3f\n",t,m);
}
3.编辑以下程序:
对程序进行分析,看程序的输出结果在下列各种情况下应是什么,然后上机运行该程序看实际结果(写在实验报告里)与你分析的有无不同,找出原因。
#include"stdio.h"
voidmain()
{
intx,y,t;
doublea;
floatb;
intc;
scanf(“%d%d”,&x,&y);
c=b=a=20/3;
t=(x%y,x/y);
printf("%d%d\n",x--,--y);
printf("%d\n",t);
printf("%d\n",(x=5*6,x*4,x+5));
printf("%d%f%f\n",c,b,a);
}
⑴程序运行时,在键盘上输入203
⑵程序运行时,在键盘上输入155
三、对上述实验进行总结,写出实验报告,把你通过本实验掌握的内容整理出来。
实验四选择结构程序设计
(一)
一、实验目的
1.掌握关系表达式和逻辑表达式的使用。
2.熟悉选择结构程序设计。
3.熟练使用if语句进行程序设计。
4.使用switch语句实现多分支选择结构。
二、实验内容
1.运行以下程序,说明表达式值1和表达式值2的不同。
#include"stdio.h"
voidmain()
{
inta=3,b=2,c=1,d=0;
printf("表达式1=%d\n",d==a>b+c);
printf("表达式2=%d\n",d=a>b+c);
}
2.以下程序的功能是:
从键盘输入一个字符型数据,若输入一个数字字符(‘0’-‘9’),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
#include"stdio.h"
voidmain()
{
charc;
scanf("%c",&c);
if('0'<=c<='9')/*条件表达式*/
{c=c-'0';
printf("c=%d\n",c);
}
elseprintf("dataerror!
\n");
}
实验步骤:
⑴上机调试以上程序;
⑵输入‘0’—‘9’之间的任何字符,验证输出结果是否和程序功能相符合;
⑶输入‘0’—‘9’之外的任何字符,例如,输入字母’a’,验证输出结果是否和程序功能相符合;
⑷将条件表达式if('0'<=c<='9')改为if('0'<=c&&c<='9'),重复2、3步骤。
分析、比较以上的输出结果,总结字符变量c的取值在‘0’-‘9’之间在C语言编程中的正确描述。
3.if语句的第一种形式为基本形式if(表达式)语句;其语义是:
如果表达式的值非零(为真),则执行其后的语句,否则不执行该语句。
编程:
输入两个整数,输出其中的大数。
提示:
输入两个数a,b。
把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。
因此max中总是大数,最后输出max的值。
4.if语句的第二种形式为if-else形式
if(表达式)语句1;
else语句2;
其语义是:
如果表达式的值非零(为真),则执行语句1,否则执行语句2。
程序填空题。
下列程序用于完成对输入的整数判断它是奇数还是偶数,并给出相应的提示。
试完成它缺少的部分,并上机验证。
#include"stdio.h"
voidmain()
{
intx;
scanf("%d",&x);
if()printf("x=%disEven\n",x);
elseprintf("x=%disOdd\n",x);
}
编程:
输入两个整数,输出其中的大数。
提示:
改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。
5.if语句的第三种形式为if-else-if形式(嵌套的if)
当有多个分支选择时,可采用if-else-if语句,其一般形式为:
if(表达式1)语句1;
elseif(表达式2)语句2;
elseif(表达式3)语句3;…elseif(表达式m)语句m;
else语句n;
其语义是:
依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。
然后跳到整个if语句之外继续执行程序。
如果所有的表达式均为假,则执行语句n。
然后继续执行后续程序。
编程:
要求判别键盘输入字符的类别。
可以根据输入字符的ASCII码来判别类型。
由ASCII码表可知ASCII值小于32的为控制字符。
在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。
这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。
例如输入为“g”,输出显示它为小写字符。
在嵌套中要特别注意if和else的配对问题。
为了避免二义性,C语言规定,else总是与它前面最近的if配对。
6.分析以下程序的运行结果并上机调试。
程序1:
#include"stdio.h"
voidmain()
{
inta=3,b=4,c=5,d=0;
if(a>b)d=a;
else
if(c>b)d=c;
elsed=b;
printf("d=%d\n",d);
}
程序2:
#include"stdio.h"
voidmain()
{
inta=3,b=4,c=5,d=0;
if(a>b)
if(c>b)d=c;
elsed=b;
elsed=a;
printf("d=%d\n",d);
}
程序3:
#include"stdio.h"
voidmain()
{
inta=3,b=4,c=5,d=0;
if(a>b)
if(c>b)d=c;
els
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何使用Visual C+60 如何 使用 Visual C+ 60