C++学习,实验二

一,验证性实验部分

(1).函数声明和函数定义各自的作用和区别:   函数在使用之前首先就要声明,函数定义是自己写一个函数。   二者的区别在于,声明不需要我们写出函数的代码,而函数定义需要。     先定义再调用。     函数声明包含函数定义。

(2).什么是形参?什么是实参?:   形参也叫形式参数,是指定义函数名和函数体时使用的参数,用来接收调用该函数时传来的参数。   实参可以是常量,变量,表达式,函数等,它们具有确定的值。二者的区别在于,形参离开该函数,不能使用。实参变量进入被调函数时,不能使用。  发生函数调用时,将实参的值传给形参从而实现,主调函数向被调函数的数据传送。  形参只有在被调用时,才分配内存单元,调用结束,立即释放。   只能把实参的值传给形参(单向的),因此,在函数的调用过程中,形参的值发生改变,而实参不变。       但是!!!当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。

如果函数的参数是指针类型时,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,使用的就是实参本身。所以在函数内部可以改变实参的值。

(3).值传递和引用传递的区别:值传递,传递的是参数的值,不能改变实参的值。引用传递,传递的是地址,可以改变实参的值。

 

二,编程实验部分

1).

2).若一个数为素数,那么它仅可以被1和它本身整除。同时,我们只要判断1到根号它的数字,就可以得出结论。

 3).

4).

首先,取小球一共有多少种,就是让我们算C(m,n)  所以只要计算m的阶乘和n的阶乘,并相除,就可以得出答案。

但是有一个注意点:C(5,3)和C(5,2)是一样的。

三,实验总结

 

   在本次实验中,我回顾了递归算法,并编写了高中数学的求C(m,n)问题,感觉很不错。

1.在递归算法中,要注意的是:一定要有一个结束条件。

2.在函数声明和函数定义时()内也必须定义变量,例如  

3.使用rand()函数注意点:

    1).要加#include<stdlib.h>头文件。

    2).rand()函数每次运行都与上一次的结果相同。

    3).加入这一串代码,可以使随机数发生器随机化,从而得到不同的随机数。

    #include<time.h>

    srand(time(0));

    4).rand()%b+a     a是起始值,b-1+a是最大值。

4.引用传递和值传递的区别:引用传递,传递的是地址,可以改变实参的值。值传递,传递的是参数的值,不能改变实参的值。

5.  break用于循环体和switch语句,   continue用于循环体结构。

 

     

posted @ 2018-03-20 21:41  丿罗小黑  阅读(208)  评论(7编辑  收藏  举报