问答题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使该程序的输出结果为: 100 注意:错误的语句在//********error********的下面,修改该语句即可。#include<iostream.h>static int x=50;int t=0;int*func(int x,int y,int z){ t=t+x+y+z; //********error******** return t;};Void main(){ int y=30; int x=10; int z=20; //********error******** x=x; //********error******** cout<<func(x,y,z)<<endl;}
【正确答案】正确答案:(1)return&t; (2)X=::x; (3)cout<<*func(x,y,z)<
【答案解析】解析:(1)由审题分析可知,函数func(int x,int y,int z)返回的是整型数据指针,而第1个标识下的return t表示返回一个整型数据,和要求的返回数据类型不匹配,应改为“return&t;”。 (2)第2个标识下x=x表示局部变量x自己给自己赋值,调用func(x,y,z)函数后,返回的运算结果是30+10+20=60,与输出100不同,而全局静态变量x值为50,30+50+20=100,刚好满足条件,因此第2个标识下是将全局静态变量x的值赋给局部变量x,即第2个标识下应该为“X=::x;”,“::”表示的是引用全局变量。 (3)func(x,y,z)返回一个整型数据指针,通过该指针可以得到运算结果,而cout<