面向对象程序设计实验
实验一 C基础 1.1实验目的 1. 了解并熟悉开发环境,学会调试程序; 2. 熟悉C中简单的标准输入输出函数的使用方法; 3. 理解const修饰符的作用并学会应用; 4. 理解内联函数的优缺点并学会其使用场合; 5. 理解并学会函数重载; 6. 理解并熟练掌握使用new和delete来分配内存; 7. 理解并熟练掌握引用的使用方法。 1.2实验内容 1.2.1程序阅读 1. 理解下面的程序并运行,然后回答问题。 include iostream.h int max_defint x, int y { return xyxy; } int max_defint x, int y, int z { int temp 0; return tempxyxyztempz; double max_defdouble x, double y { return xyxy; } int main int xl 0; int x2 0; double dl 0.0; double d2 0.0; xl max_def5,6; x2 max_def2,3,4; dl max_def2.1,5.6; d2 max_def 12.3,3*4,7.8;① coutx lx 1 endl; coutx2nx2endl; coutd l-d 1 endl; coutnd2d2endl;② return 1; } 问题一上述程序的输出结果是什么 c *D\C\Debug\Cpp1. * xl 6 x2 4 dl5.6 H212 Press any key to continue 问题二用的是哪个函数 答调用的函数是 int max_defint x, int y, int z { int temp 0; return tempxyxyztempz; 问题三②处的输出结果为什么是d212,而不是d212.3 答因为①处调用的是整型函数,d2在此函数中被转换为整型,小数点后面被删除。 2. 理解下面的程序并运行,然后回答问题。 include iostream.h int main int *pl new int;① int *p2 new intO;② char *p3 new char[10];3 return 1; 问题一①、②、③处动态申请内存分别代表什么意思 答①new动态分配存放一个整数的内存空间,并将其首地址赋给指针变量pl;②new动态 分配存放一个整数的内存空间,并对其初始化赋值为0,并将其首地址赋给指针变量p2;③new 动态分配存放10个字符型数组元素的内存空间,并将其首地址赋给指针变量p3。 问题二该程序存在什么不合理的地方。 答程序结束时没有将分配的空间释放,应该使用delete函数释放内存。 3. 理解下面的程序并运行,然后回答问题。 include iostream.h void swapint a, int b int temp a; a b; b temp; } void swapint *a, int *b { int temp *a; *a *b; *b temp; } int main int i 5; int j 10; coutBefore swap i,i,j,jendl; swapi,j;① coutAfter the first swap ii,jnjendl; swapi,j;② coutnAfter the second swap ii,jnjendl; return 1; 问题一输出结果是什么 c *E\Debug\Cpp1. * Before swap i5,j10 After the first swap i5,j10 After the second swap i10,jS Press any key to continue 问题二①处函数调用不能实现两个数的交换,而②可以,原因是什么 ②处调用的函数使 答①处调用的函数只是交换了局部变量a和b,并没有改变i和j的值; 用了引用形参,i和j的值随着此处调用的函数中a和b的对换而对换。 问题三②处调用的是哪个函数 答调用的函数是 void swapint a, int b { int temp a; a b; b temp; 1.2.2程序设计 i. 定义两个重名函数,分别求出两点间平面距离和空间距离。 includeiostream includecmath using namespace std; int distanceint xl,int yl ,int x2,int y2 double dis; dissqrtxl-x2*xl-x2yl-y2*yl-y2; coutdisendl; return dis; int distanceint xl,int yl,int x2,int y2,int zl,int z2 double dis; dissqrtxl-x2*xl-x2yl・y2*yl-y2zl-z2*zl-z2; coutdisendl; return dis; } void main int a; int i,j,k,l,q,w,e,r,t,y; cout请输入平面两点坐标endl; cinij kl; adistancei,j,k,l; cout ”请输入空间两点坐标endl; cinqwerty; adistanceq,w,e,r,t,y; } 2. 设计一个函数exch,当调用exch a,b,c时,将a赋值给b, b赋值给c, c赋值给a,要 求采用引用的方式来实现。 includeiostream includecmath using namespace std; void exchint m,int n,int p int tempp; Pn; nm; mtemp; } int main { int al,b2,c3; cout,,ana,,bb,,c,,cendl; exch