一:关于函数学到的知识:
1:函数的定义:函数由函数首部和函数操作描述组成。函数首部是函数接口,函数操作描述有函数体的语句序列实现。(个人认为,在主函数外定义一个新的函数来解决主函数中的复杂问题)
2;函数的调用:指定函数地址,提供实际参数。(个人认为,主函数里引用自己定义的函数来解决问题)
3:函数参数的传递:函数定义首部的参数称为形参,调用函数时使用的参数为实参。函数调用前形参没有存储空间。函数被调用时,系统收回形参的临时存储空间。函数通过形参与实参进行通信,完成操作。这个过程称为参数传递参。(包括值传递,指针传递,引用传递)
值传递:在调用函数时将实际参数复制一份传递到函数中。(形参是实参的拷贝,直接调用定义函数)
传址参数:这种调用方式是将实参变量的地址值传递给形参,这是形参是指针,即让形参的指针指向实参地址,这里不再是将实参拷贝一个副本给形参,而是让形参直接指向形参,这就提供了一种可以改变实参变量的值的方法。
4:全局变量:定义在函数外部没有被花括号括起来的变量称为全局变量,全局变量的作用域是从变量定义的位置开始到文件结束。
全局变量可以使函数间多一种传递信息的方式。若在一个程序中多个函数要对一个变量进行处理,就可以把这个变量定义为全局变量。
过多的调用全局变量,会降低程序的通用性。
全局变量在定义时若没有赋初值,其默认值为0。
5:局部变量:定义在函数内部的变量,只在定义他的函数里有效。
①:局部变量的作用域仅局限于本函数内部,在不同的函数中变量名可以相同,但其分别代表不同的对象。互不干扰。
②:一个局部变量和一个全局变量是可以重名的,在相同作用域内局部变量有效时全局变量无效。
③:全局变量数组初始全部为0,局部变量值是随机的,要初始化初值,局部变量受栈空间大小限制,大数组需要注意。(局部变量的数组不能开很大,全局变量随意)
二: 疑难问题:
1;不理解指针参数和引用传参数的区别,该如何运用。
2:对于这个题总是超时,能运行就是过不了。
二项式系数C(n, k)因它在组合数学中的重要性而被广泛地研究。二项式系数可以如下递归的定义:
C(1, 0) = C(1, 1) = 1;
C(n, 0) = 1对于所有n > 0;
C(n, k) = C(n − 1, k − 1) + C(n − 1, k)对于所有0 < k ≤ n。
给出n和k,你要确定C(n, k)的奇偶性。
输入
输入包含多组测试数据。每组测试数据一对整数n和k(0 ≤ k ≤ n < 231),占据独立一行。
文件结束符(EOF)表示输入结束。
输出
对每组测试数据,输出一行,包含一个“0” 或一个“1”,即C(n, k)除以2的余数。
样例输入
1 1
1 0
2 0
样例输出
1
1
0
三:学习感悟:
通过学习函数,可以让我在以后的编程中能好好运用函数,将复杂问题分解成几个简单问题,而且通过运用函数还可以在程序中容易找出编程中的错误,便于找错。
函数中作为初学者现在用的做多的也是不好想的应该就是嵌套函数和递归函数了,其实说简单点嵌套函数就是把几个自己定义的函数多次运用起来,递归函数就是直接调用本身的函数。然而在定义这些函数的时候不简单,所以对这方面的题还不能掌握,希望在以后的学习中能更清楚的理解函数,并能熟练运用函数。