首页 > 试题广场 >

以下程序的输出结果是() 。

[单选题]
以下程序的输出结果是() 。
           # include <stdio.h > 
           fun ( int  a ,  int  b ,  int  m ) 
           {  m = a * b ;   return ;   } 
           main ( ) 
           {  int  m = 1;  fun ( 2 ,  3 ,  m ) ;  printf ( “ %d \n ” ,  m ) ;  }

  • 1
  • 2
  • 3
  • 6
推荐
A
函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参
调用fun ( 2 ,  3 ,  m )后m的值并没有改变,因此最后仍然输出1。
编辑于 2019-11-21 14:44:55 回复(0)
A
值传递,不改变原来的m;
发表于 2019-11-21 14:13:23 回复(0)
A
根据程序的入口main主程序自上而下一次执行:
  1. 初始化变量m为1
  2. 将m作为实参传入到fun函数中(属于一个迷惑步骤,该步骤不影响原来变量的初始值)
  3. 输出m,则m仍为1
发表于 2019-11-20 17:27:37 回复(0)
选A 先执行第五行 m=1,fun(2,3,1) 执行第三行 m=6 但因为调用函数的空间是临时的,调用结束直接释放空间。主函数输出1
编辑于 2019-11-20 15:07:52 回复(0)
m是局部变量,和函数里的m是不同的变量
所以答案是A ,
发表于 2019-11-20 10:35:08 回复(0)
传值,不是传地址
发表于 2020-07-27 09:12:43 回复(0)
答案:A
运算步骤由上之下。M最后被赋值为1;
发表于 2019-11-21 10:29:08 回复(0)
D
发表于 2019-11-19 17:09:22 回复(0)
6
发表于 2019-11-19 16:20:26 回复(0)