C语言程序题,求详解

 我来答
b_spike
2016-01-20 · TA获得超过3689个赞
知道大有可为答主
回答量:3724
采纳率:78%
帮助的人:1208万
展开全部
A错误,函数没有定义返回类型时,默认返回int类型,这没问题,但是没有写return的情况下,默认return 0;,所以返回0,说函数没有返回任何值是错误的

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项是错误的,它根本无法实现真正的交换

天秤菜盐荒
2016-01-20
知道答主
回答量:5
采纳率:0%
帮助的人:2.4万
展开全部
static 定义的属于静态变量 不是局部变量, 生存周期是函数的整个运行周期,也就是 在函数运行结束的时候 才释放
追问
函数运行结束不是函数退出吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式