1、1这种说法是错误的。在C语言中,函数调用时采用的是传值方式,因此无论实参与形参是否同名,均占用不同的存储空间。2不完全对。在C语言中,主函数可以调用其他函数,但不能被任何函数调用。函数(不包括主函数)可以直接或间接地调用自己,即递归调用。3实参与形参的个数必须相同、对应类型一致。调用函数时,实参与形参按顺序对应,将值一一传给对应的形参。以变量的地址(包括数组的首地址)作为实参调用函数时,形参必须是基类型相同的指针变量。此时在被调函数中可以通过形参间接访问实参所代表的存储单元,以此改变主调函数中相应变量的值。如:【实例6.4】、【实例6.7】等。4答:有3种可能。分别为:“int fun(int
2、 *p)”、“int fun(int p30)”或“int fun(int p)”。5相同。这是因为函数fun中定义的变量k为动态存储变量,只占用临时的存储单元,调用结束时将释放临时的存储单元。执行语句“a=fun();”调用函数fun时,为变量k开辟了临时的存储单元并赋初值为1,计算后k=3并返回,则a=3,返回时释放存储单元。之后执行语句“b=fun();”调用函数fun时,仍为变量k开辟了临时的存储单元并赋初值为1,计算并返回3,则b=3。如将函数fun中的变量k定义为静态变量,则输出结果为a=3,b=9。这是因为在整个程序的运行期间,静态变量始终占有固定的存储单元,即使退出函数,静态变量占用的存储单元也不释放。执行语句“a=fun();”调用函数fun时,为变量k开辟了固定的存储单元并赋初值为1,计算后k=3并返回,则a=3,返回时不释放存储单元。之后执行语句“b=fun();”调用函数fun时,由于k占用的存储单元不释放,k=3,计算后k=9并返回,则b=9。