"大学生c++上机实验实验一" 该实验的目的是让学生复习C语言的内容,熟悉C++中简单的标准输入输出函数的使用,理解内置函数的优缺点,学会使用内置函数,理解和使用函数重载以及带默认参数的函数,理解和使用引用。 1.1 实验目的: * 复习C语言的内容 * 熟悉C++中简单的标准输入输出函数的使用 * 理解内置函数的优缺点 * 学会使用内置函数 * 理解和使用函数重载以及带默认参数的函数 * 理解和使用引用 1.2 实验内容: 1.2.1 程序阅读 * 理解下面的程序,并在VS下运行查看结果,回答程序后面的问题。 问题一:上述程序的输出结果是什么? 答案:645.612 问题二:哪些情况可以参与函数的重载? 答案:同名函数的传入参数的个数、类型和顺序不同 问题三:①处调用的是哪个函数? 答案:第二个(有三个参数值的那个) 问题四:②处的输出结果为什么是d2=12,而不是d2=12.3? 答案:有三个参数的函数定义传入的参数类型是int型,返回值也是int型,在传入参数时,小数就变成了整数。 2.理解下面的5个程序代码,分析输出结果 程序一: 输出结果:a=1 程序二: 输出结果:55,50 程序三: 输出结果:9 8 7 6 5 4 3 2 1 0 程序四: 输出结果:x=13,y=21 x=5,y=8,z=34 程序五: 输出结果:1 51 61 73 3.理解下面的程序,回答程序后面的问题。 问题一:上述程序的输出结果是什么? 答案:Before swap: i=5,j=10 After the first swap: i=5,j=10 After the second swap: i=10,j=5 问题二:①处函数调用后并不能实现两个数的交换,而②处却可以,为什么? 答案:①处函数传入的只是参数的数值,属于值传递,并不会影响原来值的内容;②处函数传入的是变量的地址,属于地址传递,改变的值直接影响处于该地址的变量。 问题三:②处调用的是哪个重载函数? 答案:调用的是第二个函数 4、书后15.10题,改错题 (a)模板并没有体现参数类型 template<class A> A sum(A num1,A num2,A num3){ return num1 + num2 +num3; } (b)返回类型应该为int型 (c)模板中少些了个class,应该添加上 (d) 1.2.2 程序设计 * 使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则默认为圆点(0,0)。 #include<bits/stdc++.h> using namespace std; typedef double db; int dis(int a,int b,int x=0,int y=0){ return sqrt((a-x)*(a-x) + (b-y)*(b-y)); } db dis(db a,db b,db x=0.0,db y=0.0){ return sqrt((a-x)*(a-x) + (b-y)*(b-y)); } int main(){ cout<<dis(1,1,2,2)<<'\n'; cout<<dis(2.5,3.5,1.0,1.0)<<'\n'; return 0; } 该程序使用函数重载的方法定义了两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离。如果没有输入第二点的坐标则默认为圆点(0,0)。
剩余7页未读,继续阅读
- 粉丝: 1w+
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0