您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 64程序设计基础实验指导书(C++版)
程序设计基础实验指导书广州大学计算机科学与教育软件学院程序设计基础实验课程组二0一0年九月1目录实验1简单的C程序设计、数据类型、运算符与表达式2实验2顺序结构和选择结构设计程序设计6实验3循环结构程序设计7实验4数组与字符串11实验5函数16实验6指针21实验7结构体与共同体24实验8文件(多文件程序结构)28实验9程序设计基础应用实验302实验1简单的C程序设计、数据类型、运算符与表达式一、实验目的及要求1.了解在集成开发环境下程序的编辑、编译、连接、运行与调试;2.掌握C语言的基本数据类型、算术运算符、赋值运算符和逗号运算符及表达式;3.输入并编译C++程序。二、实验设备与平台1.实验设备:计算机;2.平台:WindowsXP操作系统,VisualC++6.0。三、实验内容与步骤1.启动VisualC++6.0,认识开发环境界面;图1_1启动VisualC界面2.建立新文件:选择File的new项,在窗口new中选C++SourecFile(C++原文件),并输入文件名(扩展名为.cpp由系统给出)和该文件将要保存的位置(即存盘路径,一般自己先建立一个常用文件夹,将拟建立的文件保存在该文件夹),再按OK按钮。图1_2建立C++原文件33.输入运行程序代码:上述步骤后出现编辑版面,这时可以输入所要运行的程序代码。图1_3输入拟运行程序代码4.编译(将程序文本转为机器能识别的代码文件):选Build菜单中的Compile项,若程序出错在编译中系统会给出提示信息,方便用户进行修改。5.运行:选Build菜单中的Execute项,运行程序,再根据程序提示输入数据,系统会给出结果。图1_4程序运行的结果6.有关说明:1)运行程序时系统会产生.exe文件,同时执行.exe文件。2)对VC++的每一菜单项,都有一个相应的图标,可按图标快速执行。3)程序运行完后,可按File菜单的CloseWorkspace关闭工作区,再退出VC++系统。4)运行完一程序后,若需再打开另一程序,必须先关闭原有程序的工作区,即做3)。5)运行已有存盘的旧程序,可选File菜单中的open项,再选取执行指定文件夹中的.cpp程序文件即可。4实验1_1:输入并运行以下程序,分析其运行结果。//sy1_1.cpp#includeiostreamusingnamespacestd;intmain(){charc1,c2;c1=97;c2=98;coutc1c2endl;return0;}(运行上面程序)在此基础上①加上一个cout语句并运行:coutc1c2;②再将第三行改为:intc1,c2;并运行两种输出格式实验1_2:输入并运行以下程序,分析其运行结果。//sy1_2.cpp#includeiostreamusingnamespacestd;intmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;couti=ij=jm=mn=nendl;return0;}运行。分别作以下改动并运行:①将第7行改为:m=i++;n=--j②将第6行改为:inti=8,j=10,m=0,n=0将第7行改为:m+=i++;n-=--j分析分别修改以后的变化情况。实验1_3:输入并运行以下程序,并回答思考题//sy1_3.cpp#includeiostreamusingnamespacestd;5intmain(){unsignedshorta;shortintb=-1;a=b;coutaendl;return0;}思考题:运行结果是什么?依据是什么?因为-1的补码形式为1111111111111111(即全部16个二进制位均为1),将它传送给a,而a是无符号型变量,16个位全1是十进制的65535。如果b为正值,且在0~32767之间,则赋值后数值不变。思考问题:1.输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符,上机编写并通过程序。2.输入3个a,b,c,求出最大数,上机编写并通过程序。3:#include“filename”与#includefilename的区别?实验相关知识1.程序的编译、连接、运行在“编译”菜单中,“Compile”命令可对源程序进行编译,编译通过则生成扩展名为.obj的目标文件;“Build”命令可对目标文件连接生成“可执行文件”,此命令也可将源程序进行编译再连接生成“可执行文件”;“Execute”命令可运行“可执行文件”显示结果,此命令也可将源程序进行编译再连接生成“可执行文件”并运行显示结果。编译或连接时的信息都会显示在输出窗口,若出现错误,则标识出错文件名,发生错误的行号及错误的原因等。错误信息中的警告信息不妨碍可执行文件的形成,但最好进行修改。2.程序的调试在VisualC++6.0环境下集成了调试器,可以利用Build菜单Debug级联菜单中的命令或快捷键来控制调试器中程序的运行情况。通过设置断点,观察断点的各种信息,单步跟踪有疑问的程序段,进而修改源程序。DeveloperStudio中的工程可以产生两种可执行代码,分别称为调试版本和发布版本。调试版本是在开发过程中使用的,用于检测程序中的错误;发布版本是面向用户的。高度版本体积较大,而且速度通常要比发布版本慢,发布版本不能用调试器进行调试。6实验2顺序结构和选择结构设计程序设计一、实验目的及要求:1.学会正确使用逻辑运算符和逻辑表达式;2.熟练掌握if语句和switch语句;3.掌握在程序设计中灵活使用顺序结构和选择结构。二、实验设备与平台1.实验设备:计算机;2.平台:WindowsXP操作系统,VisualC++6.0。三、实验内容及步骤:先画程序流程图,再编写程序,解下列问题,然后上机调试运行程序。实验2_1:有一个函数xx=0Y=5x-101=x1010x-20x=10用cin函数输入x的值(分别为x=0,1=x=10,x=10),输出y的值。说明:这个题目主要是练习学生对if…eles语句的使用。实验2_2:给出一个不多于5位的正整数,要求:1)求出它是几位数;2)分别输出每一位数;3)按逆序输出各位数字,例如原数为5631,应输出为1365。说明:这个题目主要是练习学生对if…elsefif嵌套语句,switch…case语句的使用。思考:如果不使用switch…case语句,完全使用if…elseif来实现,那程序应该怎么改动呢?实验2_3:输入四个整数,要求按大小顺序输出。上机编写并通过程序。说明:这个题目主要是练习学生对两个数的交换以及多个数的排序处理。思考:程序中需要两个数的比较是多少次,如果有5个数,那比较的次数又是多少次呢?7实验3循环结构程序设计一、实验目的及要求1.掌握while、for、do…while循环结构的使用方法以及循环条件的使用;2.能够使用三种循环结构设计程序、分析程序并解决实际问题;3.掌握三种循环结构的差异和不同,能灵活地实现三种结构间的转换;4.正确编写具有循环结构的C语言程序。二、实验设备与平台1.实验设备:计算机;2.平台:WindowsXP操作系统,VisualC++6.0。三、实验内容及步骤1.程序实验验证(1)求=1+2+···+100之和,上机验证程序运算结果。方法一(实验3_1):用while语句编程。方法二(实验3_2):用do-while语句,求1到100的和。方法三(实验3_3):用for语句编程。上机编写并通过程序,并分析三种编程方法的特点。几种循环结构的比较分析:for语句适合于循环次数是预先知道的,且步长固定;而while和do语句的循环次数则依赖于循环体的动作。for和while语句是先判断后执行,所以循环体可能一次也不执行;do语句是先执行后判断,所以循环体至少执行一次。循环体可以是空语句,也是几个语句复合。三种循环语句可以相互转化,但一般来说,while语句的适应性最广,应首先考虑。但在特别的问题中,选择for语句和do语句会更自然、更方便。(2)实验3_4:编写程序找出3位数中(100—200间)各位数之和能被5整除的所有数,每行按5个数据显示在屏幕上。编写程序代码并上机验证程序运行结果。1001nn8(3)编程求水仙花数。水仙花数是满足这样条件的3位数:3位数中各位数的立方和等于该3位数,上机运行程序并验证程序运行结果。2.程序实验分析(1)实验3_5:根据程序代码,分析下列程序所完成功能和相应输出结果,并思考下列问题。//sy3_5.cpp分析下列程序的运行结果行号程序代码1#includeiostream2usingnamespacestd;3voidmain()4{5inti,sum;6sum=0;7i=10;8while(i)9{sum=sum+i;10i=i-1;11}12coutsum=sum;13}思考问题1:运行程序,分析程序的运行结果(sum=55),根据程序运行结果,思考程序中第8行的语句while(i)中的表达含义。思考问题2:试着将第8行中的语句修改为while(x!=0)再运行修改后的程序,并对运行结果与原程序运行结果进行比较分析。思考问题3:试着将第8行中的语句修改为while(!x==0)再运行修改后的程序,并对运行结果与上面两次运行结果进行比较分析。(2)分析下面程序:如果用下列语句来实现s=1+2+3+4+5的累加功能,请你分析、运行程序,找出程序中存在的错误并进行修改。9行号程序代码1#includeiostream2usingnamespacestd;3voidmain()4{5inti,s=0;//累加变量初始化为06for(i=1,i=5,i++);//实现1—5的累加7s=s+i;8cout“s=”sendl;9}问题拓展:1)如果将原程序修改为用while语句来实现,请分析程序中存在的错误。行号程序代码1#includeiostream2usingnamespacestd;3voidmain()4{5inti,s=0;//累加变量初始化为06while(i=5);7{8s=s+i;9}10cout“s=”sendl;11}2)如果将原程序修改为用do…while语句来实现,请分析程序中存在的错误。行号程序代码1#includeiosertam2usingnamespacestd;3voidmain()4{105inti=1,s=0;6do7{8s=s+i;9i++;10}while(++i=100)11cout“s=”sendl;12}11实验4数组与字符串一、实验目的及要求1.了解数组与数学矩阵的关系;2.掌握数组的定义、引用与初始化;3.理解二维数组数据的存储顺序;4.理解并掌握冒泡排序法、选择排序法;5.掌握字符数组与字符串的定义、引用;6.了解字符串处理函数的用法。二、实验设备与平台1.实验设备:计算机;2.平台:WindowsXP操作系统,VisualC++6.0。三、实验内容及步骤1.排序算法排序算法有很多种,如冒泡排序、选择排序等。1)冒泡排序法:相邻元素比较大小并发生交换,使最大值(最小值)“浮出”到数组尽头:a0a1a2a3现以N元数组a[0]–a[N-1]由小到大排序为例,其算法执行步骤如下:第1步:找到a[0]–a[N-1]中的最大值元素浮动到a[N-1];第2步:找到a[0]–a[N-2]中的最大值元素浮动到a[N-2];第3步:找到a[0]–a[N-3]中的最大值元素浮动到a[N-3];…………第i步:找到a[0]–a[N-i]中的最大值元素浮动到a[N-i];…………第N-1步:找到a[0]–a[1]中的最大值元素浮动到a[1],且算法停止。2)选择排序法:仍以N元数组a[0]–a[N-1]由小到大排序为例,其算法执行步骤如下:第1步:找到a[0]–
本文标题:64程序设计基础实验指导书(C++版)
链接地址:https://www.777doc.com/doc-4171158 .html