实验报告一
更新时间:2023-12-01 01:17:01 阅读量: 教育文库 文档下载
C++程序设计实验报告
实验一 C++基础
开课实验室:数学实验室 指导老师:韩逢庆 时间:2010.3.18
学院:理学院 专业:信息与计算科学 班级:2008级1班 姓名:张雄 学号:08180109
一、 实验目的
1、进一步了解和熟悉 VC++6.0 开发环境,学会在 VC++6.0 环境下调试程序;
2、熟悉 C++ 中简单的标准输入输出函数的实用; 3、理解 const 修饰符的作用,并学会应用 const 修饰符; 4、理解内置(内联)函数的优缺点并学会使用内置函数; 5、理解和使用函数重载以及带默认参数的函数; 6、使用 new 和 delete 进行动态内存管理; 7、理解和使用引用。 二、 实验内容
程序理解、程序设计 三、 实验要求
1、使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则默认为圆点(0,0)。
2、设计一个函数:exchange(float x, float y, float z) ,当调用 exchange(a,b,c) 时,将 a 的内容赋值给 b , b 的内容赋值给 c , c 的内容赋值给 a ,要求采用引用的方式来实现。
3、设计一个程序,测试 const 的三种用法:指向常量的指针,常指
2008 -2009学年 第2学期
C++程序设计实验报告
针,指向常量的常指针。
4、编写一个函数,实现两个字符串变量的交换,要求参数用引用。 5、设计一个程序,比较内联函数和普通函数在时间开销和目标文件大小等方面的区别。
四、 实验过程设计
略。
五、 实验结果分析 (一)、程序理解
1.#include
return (x>y?x:y); }
int max_def( int x, int y, int z) {
int temp = 0;
return (temp=(x>y?x:y))>z?temp:z; }
double max_def( double x, double y) {
return (x>y?x:y);
2008 -2009学年 第2学期
}
int main() {
int x1 = 0; int x2 = 0; double d1 = 0.0; double d2 = 0.0; x1 = max_def(5,6); x2 = max_def(2,3,4); d1 = max_def(2.1,5.6); d2 = max_def(12.3,3.4,7.8); cout<< \ cout<< \ cout<< \ cout<< \}
问题一:上述程序的输出结果是什么?
问题二:哪些情况可以参与函数的重载?
C++程序设计实验报告
2008 -2009学年 第2学期
C++程序设计实验报告
答:同名函数具有相同的功能,而只是参数的个数和参数的类型不同时可以参与函数的重载。 问题三:①处调用的是哪个函数? 答:调用的是
int max_def( int x, int y, int z) {
int temp = 0;
return (temp=(x>y?x:y))>z?temp:z; }
问题四:②处的输出结果为什么是 d2=12 ,而不是 d2=12.3 ? 答:因为该函数的类型为int型,所以返回整型值。 2. #include
int *p1 = new int ; ----------------------------------------------------- ① int *p2 = new int (0); ----------------------------------------------------- ② char *p3 = new char [64]; ----------------------------------------------------- ③ return 1; }
问题一:①、②、③处动态申请内存分别代表什么不一样的意思? 答:①处*p1指向一个未初始化的int型对象;
②处*p2指向一个表示为0的int型对象; ③处*p3指向64个char型对象。
问题二:该程序存在什么隐患?改正该程序使隐患消除。 #include
2008 -2009学年 第2学期
C++程序设计实验报告
int *p1 ; p1= new int ; int *p2 ; p2= new int (0); char *p3 ;
p3= new char [64]; return 1; }
在分配操作结束后,返回的地址值为0,内存申请未成功。 { 3. #include
int temp = a; a = b; b = temp; }
void swap( int *a, int *b)
int temp = *a; *a = *b; *b = temp; } int main() { int i = 5; int j = 10;
cout<< \ swap(i,j); ----------------------------------------------------- ① cout<< \
2008 -2009学年 第2学期
C++程序设计实验报告
swap(&i,&j); ----------------------------------------------------- ② cout<< \ return 1; }
问题一:上述程序的输出结果是什么?
问题二:①处函数调用后并不能实现两个数的交换,而②处却可以,为什么?
答:①处交换的是i和j的地址值,②处交换的是i和j的值 问题三:②处调用的是哪个重载函数? 答:void swap( int *a, int *b) {
int temp = *a; *a = *b; *b = temp; }
(二)、程序设计 1. #include
int juli(int,int,int,int);
double juli(double,double,double,double);
2008 -2009学年 第2学期
int a,b,c,d,s;
cout<<\cin>>a>>b>>c>>d; s=juli(a,b,c,d);
cout<<\double e,f,g,h,r;
cout<<\cin>>e>>f>>g>>h; r=juli(e,f,g,h);
cout<<\}
int juli(int x,int y,int z,int t) { int m;
m=sqrt((y-x)*(y-x)+(t-z)*(t-z)); return m; }
double juli(double x,double y,double z,double t) { double m;
m=sqrt((y-x)*(y-x)+(t-z)*(t-z)); return m; }
运行结果:
C++程序设计实验报告
2008 -2009学年 第2学期
2.#include
void exchange(float &, float &, float &); cout<<\ cin>>a>>b>>c; exchange(a,b,c); cout<<\ cout<<\ cout<<\
}
void exchange(float &x, float &y, float &z) { x=y;y=z;z=x; }
运行结果:
C++程序设计实验报告
2008 -2009学年 第2学期
C++程序设计实验报告
3. #include
int c=4,d=5,m=6; int const *p1=&c; const int *p2=&d; const int *const p3=&m;
p1=&c; // *p1=d;//error
p2=&d; //*p2=d;//error
//p3=&d;//error
//*p3=d;//error
cout<<\
p3< 运行结果: 2008 -2009学年 第2学期 C++程序设计实验报告 4. #include void swap(char &,char &); void main() { } void swap(char &s1,char &s2) { 2008 -2009学年 第2学期 char s1[N],s2[N]; int i; cout<<\cin>>s1; cout<<\cin>>s2; { for(i=0;i<10;i++) swap(s1[i],s2[i]); cout<<\} C++程序设计实验报告 } char s3; s3=s1; s1=s2; s2=s3; 运行结果: 5. #include inline double CalArea(double r) { } double mianji(double r) { } 2008 -2009学年 第2学期 return 3.14*r*r; return 3.14*r*r; int main() { int i; double r=3.0; double area1,area2; time_t now; time(&now); printf(\ for(i=0;i<22222*22222;i++) area1=CalArea(r); time(&now); printf(\ for(i=0;i<22222*22222;i++) area2=mianji(r); time(&now); printf(\ cout< return 0; } 运行结果: C++程序设计实验报告 2008 -2009学年 第2学期 C++程序设计实验报告 六、 实验体会 通过实验一的练习,对C++基础有了更进一步的认识,并且理解了 const 修饰符的作用,并学会应用 const 修饰符,以及内置(内联)函数的使用,理解和使用函数重载以及带默认参数的函数;理解和使用引用。 七、 附录:(源代码) 2008 -2009学年 第2学期
正在阅读:
实验报告一12-01
16春 东财《面向对象的程序设计》在线作业二(随机)05-29
闲情偶尔禅 简介07-21
18号 - 图文10-13
吉首大学 期末考试题spss09-25
提高六年级语文教学质量的措施03-17
南方都市报的受众与市场分析11-07
萧县政府采购计划项目执行申报书【模板】04-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 实验
- 报告
- 哈工大移动通信作业第四章-第六章 - 图文
- 2015中考模拟数学试题(淄博博山)
- 大班音乐欣赏《猜调》
- 电子电路基础习题册参考答案
- 2016-2022年中国金融软件市场调查与投资前景预测报告(目录) - 图文
- 2018届高考地理二轮复习 专题训练(一)地球运动
- 洗煤厂环境保护工作常态化管理实施细则 - 图文
- 江西省上饶市2015届高三第二次高考模拟试题 语文试题及答案
- 湖北省宜昌市届高考物理二轮复习电学实验题计算题强化训练十七无答案0108384
- Oracle数据库试题
- 人教版英语高中必修一Unit 4 Earthquakes单元测试卷(附答案)
- 表示感恩的诗句有哪些
- 人教版五年级下册数学真分数和假分数练习题
- 高数期末考试定积分(复习必备)
- 2015年人教版二年级数学下册第二单元测试题
- 微观习题(2012)
- (目录)2018-2024年能繁母猪养殖行业市场发展前景预测与投资战略规划分析报告 - 图文
- 2013福建省小学美术学科骨干教师省级培训方案 王阅w20131212
- 技术部考核及奖惩管理办法(试行)
- 《国际贸易》习题集