C语言中,下列关于函数的叙述中,正确的的? 解释下为什么,狂谢

A.函数必须有返回值,否则不能调用函数
B.函数既可以嵌套调用,也可以嵌套定义
C.函数调用时,只能把实参的值传给形参,形参的值不能传给实参
D.程序中必须把main函数写在最后

C正确
A.函数可以没有返回值,如:
void Show(int x)
{
printf("%d\n",x);
}
这个函数的功能仅仅是将传入的x输出到控制台,它没有返回值,但是可用。
B.函数可以嵌套调用,但不可以嵌套定义。标准C语言不支持嵌套定义,但是有编译器是支持的,如gcc,下面这个程序在gcc编译和运行是没有任何问题的,在VC6.0中编译不过,本题中指的应该是标准C语言。
#include<stdlib.h>
#include<stdio.h>
int main()
{
void f(int i)//嵌套定义函数体
{
printf("%d\n",i);
}
int i=1;
f(i);
i=2;
f(i);
return 0;
}
C,对。函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,如想实参的值也改变就必须传入指针。
D.main函数也是一个函数,将它看成普通的函数就可以了,它可以放在任何的位置,只是C语言是以main为入口的,那么在执行main函数时,在它(main)的前面就必须要有其他函数的声明或者定义。如下面例子的两种形式都是正确的。
形式1,其它函数的定义放在main函数前。
#include<stdio.h>
void Show(int x) //函数定义
{
printf("%d\n",x);
}
void main()
{
int x = 0;
Show(0);
}
形式2,其他函数定义放在main函数后。
#include<stdio.h>
void Show(int x);//函数声明
void main()
{
int x = 0;
Show(0);
}

void Show(int x) //函数定义
{
printf("%d\n",x);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-25
A错,没有返回值也行,不过在函数前面要写void(空)关键词, 以说明函数返回为空
B错,嵌套调用肯定是对的;但嵌套定义没意义,在里面定义的函数,在函数外面不能调用它。
C对,形参的值不能传出去,因为它只是局部变量,函数调用结束后它即消失了。如果形参为指针或引用,实参传进来的就是它自己
D错,main函数可以写在其他函数前面,其他函数可以在main函数后定义。不过其它函数要在main函数前先声明。
比如:
void func();
void main()
{
func();
}
void func()
{
cout<<"hello"<<endl;
}本回答被网友采纳
第2个回答  2011-01-03
只有选项C正确,函数可以没有返回值,函数不能嵌套定义,main()函数的位置没有限制,这也是
c语言的自由性的体现
第3个回答  2010-12-25
C
main函数可以在程序最前头,最后,或一些函数之前,之后,但程序从main函数开始执行
函数可以嵌套调用,不可以嵌套定义
函数不一定要有返回值
相似回答