C++实验一

原创 2018年04月14日 22:16:12

【实验目的】

1. 掌握一种编程开发环境的使用,掌握在其下建立工程、编辑源文件、编译、链接、运行的完整过程,了解每一步操作下生成的对应文件及各种文件存放的位置。

2. 用C++语言实现面向过程的程序设计,正确理解引用作为形式参数和函数返回值的意义和用法,并与值形式参数、指针形式参数作比较。

3.能够正确定义和调用带有默认参数值的函数,通过跟踪调试观察形式参数在不同的调用方式下所获得的实在参数值。

4.能够正确定义重载函数,并通过跟踪调试观察每次调用的是哪一个同名函数,注意二义性问题。

5.能够正确使用C++的异常处理机制检测并处理程序中的异常。

【实验内容及步骤】

P186   二、实验内容   题目1234

题目一

(1)#include<iostream.h>

void swap (int x,int y);

int main()

{

int x=10,y=20;

cout<<"before swap,x="<<x<<" y="<<y<<endl;

swap(x,y);

cout<<"After swap,x="<<x<<" y="<<y<<endl;

return 0;

}

 

void swap (int x,int y)

{   int t=x;

    x=y;

    y=t;

}

 

(2)#include<iostream.h>

void swap (int &x,int &y);

int main()

{

int x=10,y=20;

cout<<"before swap,x="<<x<<" y="<<y<<endl;

swap(x,y);

cout<<"After swap,x="<<x<<" y="<<y<<endl;

return 0;

}

 

void swap (int &x,int &y)

{   int t=x;

    x=y;

    y=t;

}

 

(3)#include<iostream.h>

int &swap (int &x,int &y);

int main()

{

int x=10,y=20;

cout<<"before swap,x="<<x<<" y="<<y<<endl;

swap(x,y)=100;

cout<<"After swap,x="<<x<<" y="<<y<<endl;

return 0;

}

 

int &swap (int &x,int &y)

{   int t=x;

    x=y;

    y=t;

return y;

}

 

(4)#include<iostream.h>

void swap (int *x,int *y);

int main()

{

int x=10,y=20;

cout<<"before swap,x="<<x<<" y="<<y<<endl;

swap(&x,&y);

cout<<"After swap,x="<<x<<" y="<<y<<endl;

return 0;

}

 

void swap (int *x,int *y)

{   int *t=x;

    x=y;

    y=t;

}

 

(5)#include<iostream.h>

void swap (int *x,int *y);

int main()

{

int x=10,y=20;

cout<<"before swap,x="<<x<<" y="<<y<<endl;

swap(&x,&y);

cout<<"After swap,x="<<x<<" y="<<y<<endl;

return 0;

}

 

void swap (int *x,int *y)

{   int t;

    t=*x;

    *x=*y;

    *y=t;

}

 

题目二:

(1)#include<iostream.h>

int f(int x,int y=10,int z=20);

int main()

{

int a=1,b=2,c=3,r[4];

r[0]=f(a);

r[1]=f(a,b);

r[2]=f(a,b,c);

for (int i=0;i<3;i++)

cout<<r[i]<<" ";

cout<<endl;

return 0;

}

 

int f(int x,int y,int z)

{   return x+y+z;

}

 

(2)#include<iostream.h>

int f(int x,int y=10,int z=20);

int main()

{

int a=1,b=2,c=3,r[4];

r[0]=f(a);

r[1]=f(a,b);

r[2]=f(a,b,c);

for (int i=0;i<3;i++)

cout<<r[i]<<" ";

cout<<endl;

return 0;

}

 

int f(int x,int y=10,int z=20)

{   return x+y+z;

}

出错信息

f:\练习\cpp1.cpp(16) : error C2572: 'f' : redefinition of default parameter : parameter 3

        f:\练习\cpp1.cpp(2) : see declaration of 'f'

f:\练习\cpp1.cpp(16) : error C2572: 'f' : redefinition of default parameter : parameter 2

        f:\练习\cpp1.cpp(2) : see declaration of 'f'

执行 cl.exe 时出错.

分析:因为在f函数的声明和定义中都将默认参数写上,出现了重复定义的错误。只用在在函数声明处将默认参数写入到函数的参数列表中,在调用函数的时候不用在默认参数的位置输入参数。

(3)#include<iostream.h>

int f(int x=10,int y,int z=20);

int main()

{

int a=1,b=2,c=3,r[4];

r[0]=f(a);

r[1]=f(a,b);

r[2]=f(a,b,c);

for (int i=0;i<3;i++)

cout<<r[i]<<" ";

cout<<endl;

return 0;

}

出错信息

F:\练习\Cpp1.cpp(2) : error C2548: 'f' : missing default parameter for parameter 2

F:\练习\Cpp1.cpp(6) : error C2660: 'f' : function does not take 1 parameters

F:\练习\Cpp1.cpp(7) : error C2660: 'f' : function does not take 2 parameters

执行 cl.exe 时出错.

分析:系统规定默认参数时,必须从右向左添加默认值。缺省的参数必须从右边第一个开始,因此缺省参数放在中间是不对的,编译器认为从右边数第三个参数也应该是缺省的。在此函数中,缺省参数放在了中间,此时编译器认为你第三个参数是缺省的,可是你又默认初始值,所以出现错误。

(4)#include<iostream.h>

int f(int x,int y=10,int z=20);

int main()

{

int a=1,b=2,c=3,r[4];

r[0]=f(a);

r[1]=f(a,b);

r[2]=f(a,b,c);

r[3]=f();

for (int i=0;i<3;i++)

cout<<r[i]<<" ";

cout<<endl;

return 0;

}

 

int f(int x,int y,int z)

{   return x+y+z;

}

错误信息:

F:\练习\Cpp1.cpp(9) : error C2660: 'f' : function does not take 0 parameters

执行 cl.exe 时出错.

分析:调用的函数需要给定参数,参数的个数和类型都是在函数声明的时候就定了的。

在此函数中r[3]=f()没有给定参数,函数又不能带0个参数所以出现错误。

题目三:

(1)#include<iostream.h>

double volume(double a)

{   double v1;  

v1=a*a*a;

    return v1;

}

double volume(double b,double c)

{   double v2;

v2=4*b*c*c*c/3;

    return v2;

}

double volume(double d,double e,double f)

{   double v3;

v3=d*e*f;

    return v3;

}

int main()

{   cout<<"正方体的体积为"<<volume(5.0)<<endl;

    cout<<"圆球的体积为"<<volume(5.0,3.14)<<endl;

    cout<<"长方体的体积为"<<volume(3.0,4.0,5.0)<<endl;

return 0;

}

 

(2)#include<iostream.h>

double volume(double a)

{   double v1;  

v1=a*a*a;

    return v1;

}

double volume(double b,double c)

{   double v2;

v2=4*b*c*c*c/3;

    return v2;

}

double volume(double d,double e,double f)

{   double v3;

v3=d*e*f;

    return v3;

}

int main()

{   cout<<"正方体的体积为"<<volume(5.0)<<endl;

    cout<<"圆球的体积为"<<volume(5.0,3.14159)<<endl;

    cout<<"长方体的体积为"<<volume(3.0,4.0,5.0)<<endl;

return 0;

}

分析:在我本人设计的原程序正确的基础上,改变圆周率的值并没有错误,课本上出现的1 error,我个人觉得应该是定义圆周率数据类型时出现了错误。

 

 

 

 

 

实验一 实现几个简单的c++程序

1.改正程序如下: include using namespace std; int main(void) { cout&amp;lt;&amp;lt;”This is a pr...
  • leiwenyu_Zoe
  • leiwenyu_Zoe
  • 2018-03-19 19:48:09
  • 37

c++第二次实验--类和对象1

类和对象--分数类
  • ecjtusanhu
  • ecjtusanhu
  • 2016-03-31 23:20:02
  • 446

c++第一次实验1

问题及代码:/* * 文件名称:666 * 作 者:宋剑 * 完成日期:2016 年 3月 10日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:无...
  • songjian_m
  • songjian_m
  • 2016-03-10 11:10:41
  • 189

实验一 C++简单程序设计 基础实验

  • 2009年11月25日 22:44
  • 38KB
  • 下载

c++第一次上机实验

一.问题与代码 /* * 文件名称: 第1次作业 * 作 者: 徐闻东 * 完成日期: 2016 年 3 月 10 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部...
  • xuwendong1
  • xuwendong1
  • 2016-03-10 11:17:02
  • 162

实验一:线性表的基本操作实现及其应用(C++)

实验一线性表的基本操作实现及其应用 一、实验目的        1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。        2、巩固 C++相关的程序设计方法与技术。        3、学会使...
  • h_lita
  • h_lita
  • 2017-09-19 20:33:48
  • 302

简单的c++程序(实验一)

一、实验目的和要求:1、熟悉Visual c++6.0编译系统的常见功能;2、学会使用Visual  C++6.0编译系统实现的简单c++程序;3、熟悉c++程序的基本结构,学会使用简单的输入/输出操...
  • qq_35315915
  • qq_35315915
  • 2018-03-26 13:04:50
  • 29

c++实验总结

鉴于周五有c++模拟考试。。又是小崔出的全新的题目。。所以总结一下以前做过的实验和学过的重要的知识点或者思路; Problem A: 学生比大小//没啥坑。。就是实验的测试用例不完全最开始的答案有b...
  • beautifulco
  • beautifulco
  • 2017-04-26 18:52:17
  • 788

c++实验二-简单程序设计

/*   * 文件名称:  * 作    者;  * 完成日期:2017 年 3月8日 * 版 本 号:v1.0   * 对任务及求解方法的描述部分:  * 输入描述:无   * 问题描述: * 程序...
  • hc0014
  • hc0014
  • 2017-03-08 23:59:37
  • 465

[C++]实验一:使用VC++6.0环境编写C++程序

// Expm1.1// Write a non-graphic standard C++ program:#include void main(void){    std::cout    std:...
  • freshare
  • freshare
  • 2006-01-22 21:06:00
  • 1579
收藏助手
不良信息举报
您举报文章:C++实验一
举报原因:
原因补充:

(最多只允许输入30个字)