问题
-
具有空函数体的函数可以作为存根使用。你如何对这类函数进行修改,使其更加有用?
答:当存根函数被调用时,打印一条消息,显示它已被调用,或者也可以打印作为参数传递给它的值。
-
.如果在一个函数的声明中,它的返回值类型为A,但它的函数体内有一条return语句,返回了一个类型为B的表达式。请问,这将导致什么后果?
答:如果在一个函数的声明中,它的返回值类型为A,但它的函数体内有一条return语句,返回了一个类型为B的表达式。请问,这将导致什么后果?
-
如果一个函数声明的返回类型为void,但它的函数体内包含了一条retum语句,返回了一个表达式。请问,这将导致什么后果?
答:这是不允许的;编译器应该给出一条错误消息
-
如果一个函数被调用之前,编译器无法看到它的原型,那么当这个函数返回一个不是整型的值时,会发生什么情况?
答:返回的值被解释为一个整数。 -
如果一个函数被调用之前,编译器无法看到它的原型,如果当这个函数被调用时,实际传递给它的参数与它的形式参数不匹配,会发生什么情况?
答:参数值被解释为形式参数的类型,而不是它们的实际类型。 -
下面的函数有没有错误?如果有,错在哪里?
答: 这个函数假定当它被调用时传递给它的正好是10个元素的数组。如果参数数组更大一些,它就会忽略剩余的元素。如果传递一个不足10个元素的数组,函数将访问数组边界之外的值。 -
.递归和while循环之间是如何相似的?
答:递归和迭代都必须设置一些目标,当达到这些目标时便终止执行。每个递归调用和循环的每次迭代必须取得一些进展,进一步靠近这些目标 -
请解释把函数原型单独放在#include文件中的优点。
答:
a.在多个源文件中使用#include比复制原型更容易。
b.原型本身只有一个副本。
c.#在定义函数的文件中包含原型可以确保它们匹配。