收藏 分享(赏)

最新VC6.0上机指导_C语言实验讲义.doc

上传人:dreamzhangning 文档编号:2283902 上传时间:2018-09-09 格式:DOC 页数:50 大小:434.50KB
下载 相关 举报
最新VC6.0上机指导_C语言实验讲义.doc_第1页
第1页 / 共50页
最新VC6.0上机指导_C语言实验讲义.doc_第2页
第2页 / 共50页
最新VC6.0上机指导_C语言实验讲义.doc_第3页
第3页 / 共50页
最新VC6.0上机指导_C语言实验讲义.doc_第4页
第4页 / 共50页
最新VC6.0上机指导_C语言实验讲义.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、1实验一 C 语言的运行环境和运行过程实验目的:1. 掌握 c 程序设计编程环境 visual c+,掌握运行一个 c 程序设计的基本步骤,包括编辑、编译、连接和运行。2. 掌握 c 语言程序设计的基本框架,能够编写简单的 c 程序。3. 了解程序调试的思想,能找出并改正 c 程序中的语法错误。实验内容:1. 在“我的电脑”上新建一个文件夹,用于存放 c 程序,文件夹名字可以是学号姓名。2. 调试示例,在屏幕上显示一个短句“Hello World!”。源程序#include void main()printf(“Hello World!n”);运行结果:Hello World!基本步骤:(要求

2、熟练掌握)1) 启动 VC+“开始”“程序”“Microsoft Visual Studio 6.0”“Microsoft Visual 2C+6.0”进入 VC+编程环境。2) 新建文件(*.cpp)“文件”“新建”,单击 “文件”选项卡,选择“C+Source Files”,修改文件保存“目录”和“文件”(文件名) ,单击“确定” 。3) 编辑和保存(注意:源程序一定要在英文状态下输入,即字符标点都要在半角状态下,同时注意大小写,一般都用小写)在编辑窗口输入源程序,然后执行“文件”“保存” 或“文件”“另存为”4) 编译(*.obj) 用来检查语法错误“编译”“编译”或 Ctrl+F7,在

3、产生的工作区队话框中,选择“是”。5) 连接(*.exe)“编译”“构件”或 F76) 运行“编译”“执行”或 Ctrl+F57) 关闭程序工作区“文件”“关闭工作区”8) 打开文件“文件”“打开”9) 查看 C 源文件、目标文件和可执行文件的存放位置。源文件在保存目录下,目标文件和可执行文件在“保存目录3Debug”中3. 编程,在屏幕上显示一个短句“this is my first c program.”。4. 调试示例,在屏幕上显示一个短句“welcome to you!”。源程序(有错误的程序)#include void mian()printf(Welcome to You!n”)运

4、行结果(改正后的运行结果)Welcome to You!操作步骤:)按照实验中介绍的步骤)输入上述源程序并保存。)编译, “编译”“编译”(Ctrl+F7 ) ,信息窗口中显示编译出错信息,如下图所示。)找出错误,在信息窗口中依次双击出错信息,编辑窗口就会出现一个箭头指向程序出错的位置,一般在箭头的当前行或上一行,可以找到出错语句。4第行,出错信息:Welcome 是一个未定义的变量,但 Welcome并不是变量,出错的原因是 Welcome 前少了一个双引号。)改正错误,重新编译,得下如下图所示出错信息。5出错信息:“ ”前少了分号。)再次改正错误,在“ ”前即 printf()后加上“;”

5、(英文状态) ,生新编译,显示正确)连接, “编译”“构件”(F7) ,出现如下出错信息。出错信息:缺少主函数。)改正错误,即把“mian”改为“main” 后,重新连接,信息窗口显示连接正确。)运行, “编译”“执行”(Ctrl+F5 ) ,观察结果是否与要求一致。5. 改错,改正下列程序中的错误,在屏幕上显示以下行信息。*Welcome*源程序(有错误的程序)#include 6void main()Printf(“*n”);Printf(“ Welcome”)Printf(“*n”);实验报告要求将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会

6、,写在实验报告上。7实验二 简单的 C 程序设计和基本数据处理实验目的:1. 掌握 C 语言的运算符和表达式的正确使用以及 C 语言的几种基本数据类型和基本输入输出函数的使用方法。2. 通过编程进一步理解和掌握运算符的确切含义和功能。3. 理解和掌握运算符与运算对象的关系,优先级和结合方向。4. 通过编程,掌握 C 语言的几种基本数据类型,int、char、flloat、double ,以及由这些基本数据类型构成的常量和变量的使用方法。5. 掌握基本输入/输出函数的使用方法,包括 printf()、scanf() 、getchar()、putchar()。6. 掌握简单的 C 程序的查错方法。

7、实验内容:一、 输入程序,观察输出结果,并对输出结果作出合理的解释。/* e1.cpp */#includevoid main() float x;double y;x=213.82631;y=213.82631;printf(“%-4.2f,-6.2en“,x,y);8 输出结果:解释:2/* e2.cpp */#includevoid main() char ch;int k;ch=a;k=10;printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k);printf(“k=%dn”,k);输出结果:解释:3/* e3.cpp */#includevoid main() flo

8、at a1,a2;double b1,b2;9a1=3141.59;a2=0.000001;b1=3141.59;b2=0.000001;printf(“%f,%lfn”,a1+a2,b1+b2);输出结果:解释: 4 /* e4.cpp */#includevoid main() float x=5/2,y=5.0/2;printf(“x=%f,y=%fn“,x,y);输出结果:解释:二、 编写程序。1 编程(c1.cpp)定义 3 个整型变量 x,y,z 和一个实型变量averge,计算并输出 3 个整数的平均值 averge,其中x=y=1,z=0。观察运行结果。再将 x,y,z 和 a

9、verge 改为实型变量,再观察运行结果。理解整除和不同类型数据进行混合运算的10转化规律,对结果进行合理的解释。源程序:输出结果:解释:2 改写程序(c2.cpp) ,针对上一题要求,采用从键盘用 scanf()函数输入 x,y,z 的值。要求输出结果的形式为 averge=。源程序:11输出结果:解释:3 输入 3 个整数给 a,b,c,然后交换它们中的数,把 a 中原来的值给 b,把 b 原来的值给 c,把 c 中原来的值给 a。源程序:输出结果:三、 调示示例。121 求华氏温度 100。F 对应的摄氏温度。计算公式:C=( 5/9) (F-32 ) ,其中 C 表示摄氏温度,F 表示

10、华氏温度。源程序(有错误)#includevoid main() int celsius;fahr;fahr=100;celsius=5*(fahr-32)/9;printf(“fahr=d,celsius=%dn“,fahr,celsius);1)输入源程序。2)实验一中用菜单完成编译、连接和运行,现在介绍工具栏的使用方法。在工具栏或菜单栏上单击鼠标右键,出现如图所示的整个工具箱,在“编译”或“编译微型条”项前打上“”。图中第 1 个按钮为 “Compile”(编译,Ctrl+F7 ) ,第 2 个按钮为“Build”(构件,F7),第 4 个按钮为“Build Execute”(执行,Ct

11、rl+F5)。3)单击 “编译”工具条中的第 1 个按钮,出现第一个错误信息:Cannot open include file: stdoi.h: No such file or directory (不能打开stdoi.h)改正(应该是 stdio.h)后,重新编译,新产生的第一个错误信息是:13fahr : undeclared identifier (“fahr”变量没有定义)改正:将 fahr 前的分号改为逗号,重新编译,编译正确。4)单击 “编译”工具条中的第 2 个按钮,连接正确。5)单击 “编译”工具条中的第 4 个按钮,运行结果为 :fahr=d,Celsius=100不符合题

12、目的要求,仔细检查源程序,发现函数 printf()中的 d 应为%d,改正的,重新连接和运行,运行结果与题目要求的结果一致,程序调试结束。2 改错,计算某个数 x 的平方 y,并以算术公式的形式输出 x 和 y 的值.请不要删除源程序中的任何注释。输入输出示例(假设 x 的值为):9=3*33*3=9#include void main()int y;y=x*x;printf(“%d=%d*%d”,x); /* 输出printf(“d*%d=%d”,y);14改正后的源程序:实验报告要求将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告

13、上。15实验三 选择结构程序设计 实验目的1、了解 C 语句表示逻辑量的方法(以 0 代表“假” 以 1 代表“真” ) ;2、学会正确使用逻辑运算符和逻辑表达式; 3、熟练掌握 if 语句和 switch 语句;4、熟练掌握 switch 语句中 break 语句的作用。实验内容 1调试示例,输入参数 a,b,c,求一元二次方程 ax2+bx+c=0 的根。源程序(有错误的程序)#include#includevoid main() double a,b,c,d;printf(“输入一元二次方程 a=,b=,c=n”);scanf(“a=%lf,b=%lf,c=%lf”,d=b*b-4*a*

14、c;if(a=0)if(b=0) if(c=0)printf( “0=0 参数对方程无意义! ”);elseprintf( “c!=0 方程不成立”);elseprintf(“x=%0.2fn”,-c/b);elseif(d=0) printf(“x1=%0.2fn”,(-b+sqrt(d)/(2*a);printf(“x1=%0.2fn”,(-b-sqrt(d)/(2*a);16else printf(“x1=%0.2f+%0.2fin”,-b/(2*a),sqrt(-d)/(2*a);printf(“x1=%0.2f-%0.2fin”,-b/(2*a),sqrt(-d)/(2*a);运行结

15、果(改正后程序的运行结果)输入一元二次方程 a= ,b= ,c=a=2.1, b=8.9, c=3.5x1=-7.22x2=-10.58运行结果(有错误的程序的运行结果)输入一元二次方程 a= ,b= ,c=a=2.1, b=8.9, c=3.5x1=-7.22x2=-10.58对以上程序进行编译、连接、调试和运行如下:1)执行 “编译”“构件”,对以上程序进行编译、连接,没有出现错误信息。2)调试开始,设置三个断点(断点的作用,程序执行到断点处暂停,使用户可以观察当前的变量或其他表达式的值,然后继续运行) ,先把光标定位到要设置断点的位置,然后单击编译工具条上的Inert/Remove Br

16、eakpoint 或 F9,断点就设置好了,如果要取消断点,只要把光标放到要取消的断点处,单击 ,这个断点就取消了。173)单击编译工具条 (go F5) ,程序运行,等待输入一元二次方程 a、b 、 c 的值,输入 a=2.1,b=8.9,c=3.5.4) 程序运行到第一个断点,在 Watch 窗口输入变量名 a,b,c 观察执行到第一个断点时变量 a,b,c 的值是否和(2 )中输入一致。注意,变量可以在 Watch1、Watch2 、Wathc3、Watch4 任何一个窗口输入,输入可以是变量,也可以是表达式。5)假设我们在输入的时候,输错了变量 a 的值,我们可以在Watch 窗口重新

17、赋值,改变原来的值,如我们在 Watch 窗口中输入表达式 a=0,则 a 的值就改变为 0 了。单步执行,单击 ,箭头指向下一行,说明程序执行到这一行,再观察变量 a,b,c 的值,发现变量 b 的值已经改变,原来输入的是 8.9,现在已改变为 0,我们在 2)中输入变量 b 的值是 8.9,说明在程序的执行过程中肯定有一个地方改变了 b 的值,通过仔细观察、分析,发现 if语句中误把相等“=”写成了赋值“=” ,所以 b=0 了,单击 (Stop Debugging(Shift+F5)停止调试,把源程序中的“=”改为”=”后,重新编译、连接,没有出现错误信息。6)单击 ,重新开始调试,执行

18、 3)和 4) ,此时,观察 b 的值没有改变,单击 ,结束本次调试。7)单击 ,重新开始调试,观察结果的正确性。2编程,输入任意三个数 n1,n2,n3,求其中最大的一个数。18输入输出示例:Input n1,n2,n3: 2 10.5 8max=10.50提示:模仿 1,运行时调试程序,包括设置断点、在 Watch 窗口设置变量的值等。思考:1)如何求 5 个数中的最大的一个数2)如果要在 3 个字符中找出最大的一个,如何修改程序3编程,输入 x,计算并输出下列分段函数 f(x)的值(保留 2 位小数) 。y= x x=10 输入输出示例:Input x: -2.5f(-2.500000)

19、=-2.5提示:该程序应该运行 3 次,每次测试一个分支,即分别输入每个分段中的 x 值。思考:假设 x 为整数,如何用 switch 计算上述分段函数。4编程,把百分制成绩转换成 5 级记分制,要求用 switch 语句。90 分以上(包括 90): A 80 至 90 分(包括 80):B 70 至 80 分(包括 70):C 1960 至 70 分(包括 60):D 60 分以下:E 输入输出示例:Input Score: 8686 的等级为 B提示:1)该程序应该运行 6 次,每次测试一种情况,即分别输入不同等级的成绩2)在 switch 中使用 break 语句思考:如何用 if 语

20、句实现转换?5编程,输入 2005 年的任一个月,输出这个月的天数,要求使用 switch 语句。输入输出示例:Input month of 2005: 10 2005 年 10 月有 31 天提示:1)该程序应该运行 13 次,分别输入 112 月,以及除此之外的数2)运行时调试跟踪月份的变化3)编程时注意不同月份可以有相同的天数思考:输入年和月,如何求该月的天数?206改错,对 2 个整数进行乘、除和求余运算。输入输出示例:输入 x 运算符 y : 21 % 8 21 Mod 8 = 5源程序(有错误的程序)#includevoid main() char sign;int x,y;prn

21、itf(“输入 x 运算符 y:”);scanf(“%d%c%d”,if(sign=*)printf(“%d * %d = %dn”,x,y,x*y);else ifprintf(“%d * %d = %dn”,x,y,x*y);else ifprintf(“%d * %d = %dn”,x,y,x*y);elseprintf(“运算符输入错误”);21提示:在程序调试中,在变量窗口和 Watch 窗口中观察变量值的变化。实验报告要求将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。22实验四 循环结构程序设计 (一)实验目的1熟练使

22、用 while、do-while 语句实现循环程序设计2理解循环条件和循环体,以及 for、while 和 do-while 语句的相同及不同之处3掌握嵌套循环程序设计4熟练掌握下拉菜单 Debug 的程序调试方法实验内容 1调试示例:输入 2 个正整数 m,n,输出它们的最小公倍数和最大公约数。源程序(有错误的程序)#includevoid main() int m,n,j,k;printf(“input m nn”);while(scanf(“%d%d”,y=0;if(n=0) return y;else return y;void main() int n,m;Scanf(“%d%d”,

23、Printf(“%d 的逆向是%dt”,n,fun(n);Printf(“%d 的逆向是%dt”,m,fun(m);提示:模仿 1 调试程序,在变量窗口中观察变量值的变化,读者还可以在 Watch 窗口输入不同变量的值来验证程序的正确性。实验报告要求将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。26实验五 循环结构程序设计 (二)实验目的1熟练掌握循环程序设计,包括嵌套循环2熟练掌握使用 break、continue 语句在循环程序设计中的实现3继续掌握 VC+的程序调试方法实验内容 1调试示例,输入正整数的个数 n,再输入 n

24、个正整数,判断它们是否为素数。素数就是只能被 1 和自身整除的正整数,1 不是素数,2 是素数。源程序(有错误)#include#includevoid main() int i,j,k,m,n;printf(“输入正整数的个数 n:”);scanf(“%d”,printf(“输入%d 个正整数n”);for(j=0;jn)printf(“%d 是一个素数!n”,m);elseprintf(“%d 不是一个素数!n”,m);运行结果(改正后程序的运行结果)输入正整数的个数:2输入 2 个正整数1111 是一个素数1515 不是一个素数27按照前面学过的程序调试的方法,设置断点调试程序,找出程序

25、的逻辑错误,得到正确的运行结果。2编程,输出 101115 之间不能被 3 整除的数,每行输出 5 个。要求使用 continue 语句。输入输出救命:101 103 104 106 107109 110 112 113 115思考:输入一批整数(Ctrl+Z) ,输出其中不能被 3 整除的奇数。3编程,输入一个正整数,再输入 n 个整数,输出其中的最大值,输入的每个数都在 100200 之间,如果某个输入数不在100200 之间,则只处理在该数这前输入的数据。输入示例(共运行 2 次)第一次运行:输入 n:5输入 5 个整数: 100 155 187 192 168最大值是 192第二次运行

26、:输入 n:6输入 6 个整数: 100 155 187 292 168 199最大值是 187思考:如果输入 n 个浮点数(或字符) ,怎样找出其中的最大和最小的数(或字符)4编程,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第 2 天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第 10 天早上想再吃的时候,见只剩下一个桃子了。求第 1 天共摘了多少桃子?输入输出示例:第 1 天共摘了 1534 个桃子!思考:把题目中的第 10 天改为第 n 天,多吃了一个桃子,改为多吃了 2 个桃子,如何编程。5在 1001500

27、内找出所有的亲密数对,并输出每对亲密数对。输入输出示例:(220,284) (284,220) (1184,1210) (1210,1184)28提示:若 a 和 b 为 1 对亲密数,则 a 的因子和等于 b,b 的因子和等于 a,并且 a 不等于 b。6 编程,找出 200 以内的所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,如 61+2+3,其中1、2 、3 为因子,6 为因子和。输入输出示例:1161+2+3281+2+4+7+14实验报告要求将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。29实验六

28、 数组 实验目的1熟练掌握数组的定义和初始化2熟练掌握使用数组元素的引用3继续掌握排序算法实验内容 1调试,输入一个正整数 n(0Void main()Int I,j,n,x,an;Printf(“输入数据的个数 n:”);Scanf(“%d”,Printf(“输入 %d 个整数:”,n);For(i=0;iai) continue;J=n-1;While(j=i) /*调试时设置断点*/Aj=aj+1;J+; /*调试时设置断点*/Ai=x;Break;If(i=n) an=x;For(i=0;in+1;i+)30Printf(“%d”,ai);Putchar(n);运行结果(改正后程序的运

29、行结果)输入数据的个数 n:5输入 5 个整数: 1 2 4 5 7 输入要插入的整数:31 2 3 4 5 7 提示:先找到插入点,从插入点开始,所有的数据顺序后移,然后插入数据;如果插入点在最后,则直接插入(说明插入的数排在该组数据中的最后) 。用前面学过的调试方法,调试本程序,使得程序能够得到正确的运行结果。2编程,输入 1 个正整数 n(1n=10) ,再输入 n 个整数,将最小值与第 1 个数交换,最大值与最后 1 个数交换,然后输出交换后的 n 个数。输入输出示例:输入整数个数:5输入 5 个整数: 5 2 1 10 91 2 5 9 10提示:注意下标的变化。思考:如果输入的是实数,要求将绝对值最小的数与第 1 个数交换,绝对值最大的数与最后 1 个数交换,然后输出交换后的 n 个数,如何编程。3编程,输入 1 个正整数 n(1n=10) ,再输入 n 个整数,按绝对值从小到大排序后输出。输入输出示例:输入整数个数:10输入 10 个整数: -11 2 8 5 -3 -16 9 7 6 10排序后:2 -3 5 6 7 8 9 10 -11 -164编程,平面上有 n 个点,求所有各点之间的最长距离。要求定义和调用函数计算距离。输入输出示例:输入点数:5输入 5 个点的坐标:1 2.5

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报