实验一 C++基础
1.1 实验目的
1.进一步了解和熟悉VC++6.0开发环境,学会在VC++6.0环境下调试程序;
2.熟悉C++中简单的标准输入输出函数的实用;
3.理解const修饰符的作用,并学会应用const修饰符;
4.理解内置(内联)函数的优缺点并学会使用内置函数;
5.理解和使用函数重载以及带默认参数的函数;
6.使用new和delete进行动态内存管理;
7.理解和使用引用。
1.2实验内容
1.2.1 程序阅读
1.理解下面的程序,并在VS下运行查看结果,回答程序后面的问题。
问题一:上述程序的输出结果是什么?
545.612
问题二:哪些情况可以参与函数的重载?
函数需要的参数不同,需要的参数不是常数
问题三:①处调用的是哪个函数?
Int max_def
问题四:②处的输出结果为什么是d2=12,而不是d2=12.3?
函数的返回类型为整数,temp也是整数类型
2.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。
问题一:①、②、③处动态申请内存分别代表什么不一样的意思?
1处代表:整型数指针定义
2处代表:函数指针定义
3处代表:字符型数组指针定义
问题二:该程序存在什么隐患?改正该程序使隐患消除。
没有清理1,2内存
3.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。
问题一:上述程序的输出结果是什么?
5 10
5 10
10 5
问题二:①处函数调用后并不能实现两个数的交换,而②处却可以,为什么?
函数使用的是形参
指针传的是地址可以改变原数值
问题三:②处调用的是哪个重载函数?
第二个重载函数
1.2.2 程序设计
1.使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则默认为圆点(0,0)。
2.设计一个函数:exchange(float x, float y, float z),当调用exchange(a,b,c)时,将a的内容赋值给b,b的内容赋值给c,c的内容赋值给a,要求采用引用的方式来实现。
1.3 思考题
1.自己设计一个程序,测试const的三种用法:指向常量的指针,常指针,指向常量的常指针。
代码:
#include
using namespace std;
int main(){
int *const p = new int; //常量指针
*p=23;
*p=32;
Return 0;
}
#include
using namespace std;
int main(){
int *const p = new int; //常量指针
p++;
Return 0;
}
#include
using namespace std;
int main(){
int const *p = new int; //常量指针
p++;
*p=23;
Return 0;
}
//*P只读,p可以修改
#include
using namespace std;
int main(){
const int *const p = new int; //常量指针
p++;
*p=23;
Return 0;
}
//都不可修改
2.编写一个函数,实现两个字符串变量的交换,要求参数用引用。
代码:
#include “stdafx.h”
#include “iostream”
using namespace std;
void swapstring(char *&a,char *&b){
char *temp;
temp = a;
a = b;
b = temp;
}
int _tmain(int argc, _TCHAR* argv[])
{
char *a = “hello”;
char *b = “world”;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
swapstring(a, b);
cout << "0000" << endl;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
return 0;
}