C语言的一个问题

若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是

A)main() B) float fun(int a,int b){……}

{……x=fun(2,10);……} main()

float fun(int a,int b){……} {……x=fun(i,j);……}

C)float fun(int,int); D) main()

main() { float fun(int i,int j);

{……x=fun(2,10);……} ……x=fun(i,j);……}

float fun(int a,int b){……} float fun(int a,int b){……}

答案选哪个?请解释谢谢

答案选A。这是二级C真题。
本题考查函数声明、函数调用、函数定义间的关系,关键知识点:

在主调函数调用被调函数时,在函数调用语句之前,需要对被调函数进行函数声明,函数声明可以在主调函数内,也可以在主调函数外;

以下情况可以不在主调函数内对被调用函数进行类型说明:
1.当被调用函数的定义位于调用函数之前时,可以不必说明
2.如果函数没有返回值或返回值的类型为整形或字符型,也可不进行类型说明,系统自动进行处理
3.C语言允许在所有函数外面、文件的开头对函数类型进行说明,此时可以不对调用函数进行类型说明

所以,本题中BCD都正确,而A选项在调用返回值为float型的子函数前未作声明,因此错
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-09
请书写规范下,看得好累,不清楚!
相似回答