C++语言程序设计实验答案_C++简单程序设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1实验02C++简单程序设计(6学时)(第2章C++简单程序设计)一、实验目的(1)学会编写简单的C++程序。(2)复习基本数据类型变量和常量的应用。(3)复习运算符与表达式的应用。(4)复习结构化程序设计基本控制结构的运用。(5)复习自定义数据类型的应用。(6)练习使用简单的输入输出。(7)观察头文件的作用。(8)学会使用VisualStudio2010开发环境的Debug调试功能:单步执行、设置断点、观察变量值。二、实验任务2_1(例2-7)输入并运行例2-7,即:用do-while语句编程,求自然数1~10之和。程序正确运行之后,去掉源程序中#include语句,重新编译,观察会有什么问题。2_2将do-while语句用for语句代替,完成相同的功能。2_3编程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来。2_4使用Debug调试功能观察任务2_3程序运行中变量值的变化的情况。2_5(习题2-35)输出乘法九九算表。编程中要用到单重循环、二重循环、选择结构和I/O格式控制的操纵符。2_6编写程序,实现整数算术四则运算。三、实验步骤1.(验证,例2-7)用do-while语句编程,求自然数1~10之和。(1)建立一个控制台应用程序项目lab2_1;(2)向其中添加一个C++源文件lab2_1.cpp(方法见实验1);(3)输入例2-7的代码,检查一下确认没有输入错误;(4)选择菜单命令“生成”|“生成解决方案”编译源程序;(5)再选择“调试”|“开始执行(不调试)”运行程序;(6)观察输出是否与书上的答案一致。2★程序的运行结果:2.(验证,例2-7)去掉#include行及using行,观察会有什么问题。程序正确运行之后,在源程序行“#includeiostream”及下一行前面加注释标记“//”,使之成为注释行,重新编译,此时,编译器会输出类似于下面内容的提示:3C++语言没有输入输出语句,只是C++编译系统带有一个面向对象的I/O软件包,即I/O流类库。cout和cin是该类库预定义的流对象,#includeiostream提示编译器在对程序预处理时,将头文件iostream中的代码嵌入到该程序中该指令所在的地方。头文件iostream中声明了程序所需要的输入和输出操作的有关信息,在C++程序中若使用了系统中提供的一些功能,就必须嵌入相关的头文件,否则,系统无法找到实现这些功能的代码。现在,删除注释标记,将程序恢复正确。3.(编程,例2-7)用for语句编程,求自然数1~10之和。建立一个项目lab2_2,包含一个C++源程序lab2_2.cpp,将do-while语句用for语句代替,完成与实验任务2_1相同的功能。★程序及运行结果://lab2_2.cpp(例2-7修改)#includeiostreamusingnamespacestd;voidmain(){inti,sum(0);for(i=1;i=10;i++)sum+=i;coutsum=sumendl;}4.(验证)计算图形的面积。建立项目lab2_3,包含一个C++源程序lab2_3.cpp(见步骤5),计算图形的面积。计算公式:圆形面积S=PI*r*r,长方形面积S=a*b,正方形面积S=a*a。程序中声明整型变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的类型,用cin读入iType的值,然后使用switch语句判断图形的类型,分别提示用户输入需要的参数值,用cout语句显示计算结果。★程序的运行结果:运行3次,每种图形一次。45.(操作)学习简单的Debug调试功能。参考程序://lab2_3.cpp#includeiostreamusingnamespacestd;constfloatPI=3.1416;voidmain(){intiType;floatradius,a,b,area;cout图形的类型为?(1-圆形2-长方形3-正方形):;ciniType;switch(iType){case1:cout圆的半径为:;cinradius;area=PI*radius*radius;cout面积为:areaendl;break;case2:cout长方形的长为:;cina;cout长方形的宽为:;cinb;area=a*b;cout面积为:areaendl;break;case3:cout正方形的边长为:;cina;area=a*a;cout面积为:areaendl;break;default:cout不是合法的输入值!endl;}}一个程序,编写完成后会存在这样或那样的错误。有些错误在编译连接阶段可由编译系统发现并指出(如步骤2所示),称为语法错误。当修改完语法错误生成了执行程序后,并不意味着程序已经正确。常常会发现程序运行的结果与预期的不一致,有时在运行过程中程序中止或发生死机,这种错误称为运行错误,这是因为算法设计不当或编程实现时的疏忽造成的。调试是指在发现程序存在运行错误后,寻找错误的原因和位置并排除错误。虽然编译系统不能像对待语法错误那样,明确指出运行错误的原因和位置,但开发环境提供了辅助调试工具,可实现单步运行、设置断点、观察变5量和表达式的值等功能,使我们可以跟踪程序的执行流程、观察不同时刻变量值的变化状况。(1)在第12行处设置调试断点。用鼠标右键单击源程序第12行(cout图形的类型为?…;),出现一个菜单,如图2-1。图2-1添加断点(2)选择“断点|插入断点”一项,可看到左边的边框上出现了一个褐色的圆点,标记此处设置了一个断点。断点是程序运行时的暂停点。程序运行到断点处便暂停,这样就可以观察程序的执行流程,以及执行到断点处时有关变量的值。(3)然后选择菜单命令“调试|启动调试”,或按下快捷键F5,系统进入调试状态,程序开始运行,一个DOS窗口出现,此时,VisualStudio的外观如图2-2,程序暂停在断点处。//点击底行“局部变量”选项卡6图2-2调试状态下的VisualStudio(“局部变量”窗口)(4)单步执行:从“调试”菜单或调试工具栏中单击“逐过程”选项或按钮两次。在程序运行的DOS窗口中输入选择的图形类型,例如,输入3,代表正方形,这时,回到VisualStudio中,把鼠标放在变量名iType上片刻,可看到出现了一个提示:iType=3;此时,在“局部变量”窗口中也看到iType以及其他变量的值。逐语句:若下一语句行中有函数调用,将进入被调用的函数。(慎用)逐过程:若下一语句行中有函数调用,将不进入被调用的函数。跳出:执行完当前函数的所有语句。注意:单步执行时每次执行一行语句,便于跟踪程序的执行流程。因此,为了调试方便,需要单步执行的语句不要与其他语句写在一行中。(5)在“监视1”窗口中,在“名称”栏中输入iType,按回车键,可看到“值”栏中出现3,这是变量iType现在的值(若没看到“局部变量”窗口或“监视X”窗口,可通过菜单“调试|窗口|局部变量”或“调试|窗口|监视”选项打开它。图2-3是此时“监视1”窗口的状态。7图2-3“监视1”窗口的状态(6)继续执行程序,参照上述方法,再试试“调试”菜单栏中别的菜单项,熟悉调试的各种方法。6.(编程,习题2-35)输出乘法九九算表。建立一个项目lab2_4,包含一个C++源程序lab2_4.cpp,要求该程序运行的结果如下(注意列之间的间隔):8★程序及运行结果://程序1#includeiostream//定义cout#includeiomanip//定义setwusingnamespacestd;voidmain(){inti,j;for(i=1;i=9;i++){for(j=1;j=i;j++){if(j==1)coutsetw(2);elseif((j==3)&&(i=4))coutsetw(4);elsecoutsetw(3);coutj×i=i*j;}coutendl;}}//太细!//程序2#includeiostream#includeiomanipusingnamespacestd;voidmain(){inti,j;for(i=1;i=9;i++){coutsetw(2);for(j=1;j=i;j++){coutj×i=i*jsetw(3);if(j!=1&&i*j10)coutsetw(4);}coutendl;}}//量化!//程序3#includeiostreamusingnamespacestd;voidmain(){inti,j;for(i=1;i=9;i++){cout;//行首加1个空格for(j=1;j=i;j++){coutj×i=i*j;列之间加2个空格9if(j!=1&&i*j10)cout;//再加1个空格}coutendl;//一行结束}}//直白!7.(编程,例2-4)编写程序,实现整数算术四则运算。分别用switch和if…elseif…各编写一个程序。建立项目其名称为lab2_5_1,解决方案名称为lab2_5,包含一个C++源程序lab2_5_1.cp(用switch语句实现);在同一解决方案lab2_5下再建立项目其名称为lab2_5_2,包含一个C++源程序lab2_5_2.cp(用if…elseif语句实现)(参考实验提示)参考的运行结果:★程序及运行结果://程序1:用switch#includeiostreamusingnamespacestd;voidmain(){inta,b;charc;cout输入表达式:;cinacb;switch(c){case'+':couta+bendl;break;case'-':couta-bendl;break;case'*':couta*bendl;break;case'/':10if(b==0)cout出错!除数为0。endl;elsecouta/bendl;break;default:cout出错!运算符无效。endl;}}//程序2:用if…elseif…#includeiostreamusingnamespacestd;voidmain(){inta,b;charc;cout输入表达式:;cinacb;if(c=='+')couta+bendl;elseif(c=='-')couta-bendl;elseif(c=='*')couta*bendl;elseif(c=='/')if(b==0)cout出错!除数为0。endl;elsecouta/bendl;elsecout出错!运算符无效。endl;}四、实验提示步骤2提示标识符cout,endl不是本程序定义的,而是在文件iostream中定义的,这些标识符归属于命名空间std。用法一#includeiostreamusingnamespacestd;//将标识符cout,endl的作用域从命令空间std扩展到本程序voidmain(){inti(1),sum(0);do{sum+=i;i++;}while(i=10);coutsum=sumendl;//可以不使用作用域分辨符}用法二11#includeiostream//标识符cout,endl的作用域在本程序无效voidmain(){inti(1),sum(0);do{sum+=i;i++;}while(i=10);st

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功