使用VC6打开考生文件夹下的工程test30_1,此工程包含一个源程序文件test30_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为: Previous=9,Next=11 源程序文件test30_1.cpp清单如下

admin2010-02-08  28

问题 使用VC6打开考生文件夹下的工程test30_1,此工程包含一个源程序文件test30_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
   Previous=9,Next=11
   源程序文件test30_1.cpp清单如下:
       #include <iostream.h>
       /*****************  found  *****************/
       void prevnext  (int,int &,int&);
       int main ( )
       {
         int x=10,y,z;
         prevnext (x,y,z);
         cout << "Previous=" << y <<  ",  Next=" << z<<end1;
         return 0;
       }
       /*****************  found  *****************/
       void prevnext (int x, int prev, int next)
       {
       /*****************  found *****************/
         prev=x--;
         next=++x;
       }

选项

答案(1)错误:在main()函数前缺少prevnext函数的声明 正确:void prevnext(int,int &,int &); (2)错误:void prevnext(int x,int prev,int next) 正确:void prevnext(int x,int &prev,int &next) (3)错误:prev=x--; 正确:prev=x-1;

解析 (1)函数在使用前必须已经被定义,main()中调用prevnext函数,而该函数的实现在main()之后,所以在main()之前必须添加该函数的声明;
(2)由运行结果可知,通过函数prevnext调动要改变main()中的实参值,所以prey和next都应为引用型参数:
(3)由运行结果prev=x-1,而源程序的prev=x,x=x-1,这里涉及的是运算符的优先级问题。
转载请注明原文地址:https://kaotiyun.com/show/x7ID777K
0

最新回复(0)