问3个C++笔试题目

1
以下关于调用函数时,形、实参结合的通用规则不正确的描述为_______。
A、实参可以是变量,也可以是常数或者表达式。
B、实参的个数可以多于形参,也可以少于形参。
C、系统将为形参分配内存单元。
D、实参必须与对应的形参类型相兼容。
答案选择B,但是C,不是只有在被调用时,形参才会分配内存单元吗?
D实参有时候不是可以不喝形参类型相同吗?这里的兼容和相同意思一样吗?
2
下列哪个不是重载函数在调用时选择的依据_________。
A、形参类型 B、形参个数
C、函数名 D、函数返回值类型
答案是C,但是D不也不是选择的依据吗?如果两个函数形参个数和类型都相同,只有参数名不同,合法吗?能作为重载函数吗?
3
若已定义double使用语句area=Trgl_Area(3.5, 4, 6.2);调用求三角形面积函数,则下列式中 是正确的函数原型说明。
A、floatTrgl_Area(float,int, float);
B、intTrgl_Area(x, y, z);
C、doubleTrgl_Area(double, double, double);
D、int Trgl_Area(float x, float y, float z);
这一题为什么选D不选C 呢?

说说我的看法:

    B正确。C,调用时分配也是系统分配,不是程序员用代码分配;D,兼容就是相配的意思,相配并不一定要相同,就当是“可以”来理解吧。所以本题无歧意。

    我认为D才是正确答案。难道调用重载函数时能把与A函数的形参类型和个数对应相同的B函数当作被调函数吗?显然错误。所以函数名是必须选择的依据。

    在下认为C正确。D返回类型是int,有几个三角形的面积是int的?

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-06
第一题,题目中已经说了“调用函数时”,和你想的一样。这里的兼容应该是可以隐式转换的意思吧。
第二题,不存在你说的那种重装函数,可以想象一下,系统如何只通过返回值调用不同函数?
第三题,看上去应该选C吧,D的返回值是int丢失精度了,还算神马。
随便说说,错了不管换。
相似回答