黄老师 发表于 2012-8-8 08:33:20

西安交通大学12春《程序设计基础》第五章复习资料

西安交通大学12春《程序设计基础》第五章复习资料
第五章函数
Q: 在C语言中,函数的实参和形参之间是如何进行数据传递的
A:当调用函数时,实参把自己的值复制一份传递给形参,然后形参用获得的值参加运算。这也就是所谓的“值传递”。需要注意的是,因为形参和实参各自有自己独立的存储空间,因此,形参值的改变不会影响实参的值,所以这种传递方式又称之为“单向传递”。也就是说,数据只能从实参传递给形参,而形参的值不能带回给实参。
但是,如果采用数组名或指针做函数参数的时候,情况就大不相同。因为数组名或指针作为函数的参数时,传递的并不是数据的值,而是地址,也就是所谓的“地址传递”。当函数调用时,形参和实参会共享同一段内存空间,那么,一旦形参数据单元的值发生了变化,对应的实参单位的值也自然会发生变化,这样就能实现所谓的“双向传递”了。
Q:在C语言中,怎样理解函数的嵌套调用、递归调用?
A:需要明白的是:函数嵌套是语言特性,递归调用是逻辑思想。
函数的嵌套调用是指一个函数中调用了另一个函数。当发生了嵌套调用时,程序控制按照“逐级调用,逐级返回”的方式进行。
嵌套调用是一个语言提供的程序设计的方法,也就是语言的特性。
而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。
如果在嵌套调用中一个函数调用了它自已,就构成了一种的嵌套调用,这时称为递归调用。递归调用在理解上较嵌套调用更为抽象,递归最明显的特点就是,自己调用自己(不就嵌套调用了嘛)。
概括说,函数嵌套就是函数调用函数,是普遍的,递归就是函数调用自身,使函数嵌套的一个特例。
Q:C语言中全局变量的作用域一定比局部变量的作用域大,对吗?
A:这种说法是错误的。如果同一个源文件中,只有一个主函数,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即它不起作用。所以是错的
Q:在C语言中,内部函数和外部函数的区别?
A:内部函数跟外部函数的区别在于:一个文件中定义的函数能否被其它文件调用。能被调用的函数在前面加extern(一般省略),而不能被调用的加static(不能省略),通常函数本质上是全局的,也就是外部的可调用的。
我们通常调用的#include<stdio.h>本质上就是一些外部函数的集合,由于在一个文件中的函数要调用另外一个文件的函数,要求在开始声明一下,为了省略这些声明,我们引用include命令
转载请注明奥鹏作业答案网www.ap5u.com
页: [1]
查看完整版本: 西安交通大学12春《程序设计基础》第五章复习资料