【正确答案】
C
【答案解析】[解析] 本题考核指针和引用作为函数形参。做此类题时,应学会整体比较,要不然花费的时间不亚于一个大的编程题。
①首先,这4个程序都是调用swap函数,而且目的都一致,交换传入的两个实参值。
②分析被调函数swap()。在选项A、B和C中都是指针作为形参,只有在选项D中,函数swap()是以引用作为形参。由指针和引用作为函数形参的特点可知,只要调用了函数,就能达到交换两个实参变量的值,所以这几个被调函数没有问题。
③再看主函数。在选项C中,没有定义指针类型变量,而是直接给指针变量赋值:
“floata,b;*a=8.0;*b=9.0;”,这显然是非法的。想直接开辟存储空间,交换两个常量值,是不可能的。所以只有选项C是错误的。