写出下面程序的运行结果。 func (int a,int b) { static int m=0,i=2;i+=m+1; m=i+a+b; return (m);⏫main ( ) { int k=4,m=1,p1,p2;p1=func(k,m) ; p2=func(k,m) ; printf( “%d,%d”,p1,p2) ;⏫8,17 相关知识点: 试题来源: 解析8,17函数func内部
8,17首先分析func函数中的静态变量m和i。第一次调用func(k=4, m=1)时:1. 静态变量初始值m=0,i=2。2. i += m +1 → i = 2 + 0 +1 =3。3. m = i + a + b = 3 +4 +1 =8,返回8。此时静态变量i=3、m=8被保留。第二次调用func(k=4, m=1)时:...
是的,这句话相当于static int m=0; static int i=2;
解析: 在子函数 fun(int x,int y) 中 , 变量 m 和 i 声明为静态局部变量 , 所以经过第 1 次函数的调用后,局部静态变量 m 和 i 的值分为为 5 和 3 ,当第 1 次调用结束时,其值保持不变 ,所以第 2 次调用时 , m 和 i 的值分别为 5 和 3 , 也就是说在执行 “ i+=m+1 ”时 , i ...
i+=m+1含义为:i=i+m+1.第一次调用子程序fun时,赋值得:x=j=1,y=m=1.而子程序里m=0,i=2.所以 运行i+=m+1得 i=3; 运行m=i+x+y得 m=5. 同时返回值m=5,即把5赋值给fun,即k=5,输出k=5.在这次调用中x、y值没改变,所以fun(j,m)中的j、m值不变。第二次调用fun时...
函数`fun`中的静态变量`m`和`i`仅在第一次调用时初始化为`0`和`2`,后续调用会保留前一次的值。 **第一次调用`fun(j, m)`(x=1,y=1)** 1. 静态变量`m=0`,`i=2`(初始化仅一次)。 2. `i += m + 1` → `i = 2 + 0 + 1 = 3`。 3. `m = i + x + y = 3...
m=i+a+b;return(m);}main( ){ int k=4,m=1,p;p=func(k,m);printf(“%d,”,p);p=func(k,m);printf(“%d”,p);}运行结果:C语言程序设计模拟试卷[2] 相关知识点: 试题来源: 解析8,17分析函数`func`内的静态变量:1. 首次调用`func(4,1)`:...
{ static int m=0 ,i=2;i+=m+1;m=i+a+b;return(m);}main(){ int k=4,m=1,p;p=func(k,m);printf("%d",p);p=func(k,m);printf("%d\n",p);}我运行出来的答案是8,17 但不知为什么,看不懂程序 扫码下载作业帮搜索答疑一搜即得 答案解析 查看更多优质解析 解答一 举报 这是很基础的...
{ static int m=0 ,i=2;i+=m+1;m=i+a+b;return(m);}main(){ int k=4,m=1,p;p=func(k,m);printf("%d",p);p=func(k,m);printf("%d\n",p);}我运行出来的答案是8,17 但不知为什么,看不懂程序 扫码下载作业帮搜索答疑一搜即得 答案解析 查看更多优质解析 解答一 举报 这是很基础...
有以下程序 fun(int x,int y) {static int m=0,i=2; i+=m+1;m=i+x+y; return m; } main() {int j=1,m=1,k; k=fun(j,m); printf(%d,,k); k=fun(j,m); printf(%d\n,k); } 执行后的输出结果A.11,11B.11,5C.5,11D.5,5的答案是什么.用刷刷题APP,拍照搜索答疑.刷...