实验报告一

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一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 的三种用法:指向常量的指针,常指针,指向常量的常指针。

4、编写一个函数,实现两个字符串变量的交换,要求参数用引用。

5、设计一个程序,比较内联函数和普通函数在时间开销和目标文件大小等方面的区别。

四、实验过程设计

略。

五、实验结果分析

(一)、程序理解

1.#include

int max_def( int x, int y)

{

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)

{

C++程序设计实验报告return (x>y?x:y);

}

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<< "x1=" <

cout<< "x2=" <

cout<< "d1=" <

cout<< "d2=" <

}

问题一:上述程序的输出结果是什么?

问题二:哪些情况可以参与函数的重载?

答:同名函数具有相同的功能,而只是参数的个数和参数的类型不同时可以参与函数的重载。

问题三:①处调用的是哪个函数?

答:调用的是

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 main()

{

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

int main()

{

int *p1 ;

p1= new int ;

int *p2 ;

p2= new int (0);

char *p3 ;

p3= new char [64];

return 1;

}

在分配操作结束后,返回的地址值为0,内存申请未成功。{ 3. #include

void swap( int a, int b)

{

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;

相关文档
最新文档