C语言程序题,求详解
展开全部
A错误,函数没有定义返回类型时,默认返回int类型,这没问题,但是没有写return的情况下,默认return 0;,所以返回0,说函数没有返回任何值是错误的
B错误,这两个变量是局部变量这没问题,但是count是静态成员,因此它所在的内存空间不会在函数退出时被释放,而是一直存在,直到整个程序结束才被释放。temp由于不是静态成员因此函数退出就被释放
C错误,这个函数只是交换两个形参变量x和y的值,但实参不受影响,不会被交换
D正确,两个都是形参,注意对形参的值做任何修改都不影响实参的值,所以前面说交换x和y的值无法交换实参的值
E正确,理由同B项
B错误,这两个变量是局部变量这没问题,但是count是静态成员,因此它所在的内存空间不会在函数退出时被释放,而是一直存在,直到整个程序结束才被释放。temp由于不是静态成员因此函数退出就被释放
C错误,这个函数只是交换两个形参变量x和y的值,但实参不受影响,不会被交换
D正确,两个都是形参,注意对形参的值做任何修改都不影响实参的值,所以前面说交换x和y的值无法交换实参的值
E正确,理由同B项
更多追问追答
追问
那这里面实参是什么?
追答
那就要看调用这个函数的时候用的参数是什么了
比如
int main(){
int a=3,b=4;
f1(a,b);
printf("a=%d,b=%d\n",a,b);
return 0;
}
第三行f1(a,b)就是调用函数f1,实参就是a和b这两个变量
第四行printf输出的结果是a=3,b=4
原因是虽然f1函数中x和y的值被交换,但并不影响a和b的值,后面输出的这两个值不变。所以说C项是错误的,它根本无法实现真正的交换
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询