永发信息网

求解C语言题目

答案:2  悬赏:30  手机版
解决时间 2021-04-30 03:10
  • 提问者网友:情歌越听越心酸
  • 2021-04-29 12:10

求解两道C语言程序设计的题目。

程序阅读题

1.写出下面程序的运行结果。

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\n”,p1,p2) ;

}

程序判断题

1.下面add函数求两个参数的和;判断下面程序的正误,如果错误请改正过来。

void add(int a,int b)

{ int c ;

c = a + b;

return (c) ;

}

最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-04-29 12:49

第一题: 输出是8,17


在func函数.static int m=0,i=2; 在编译时就将m 和i定义成静态全局变量.


所以每次进入func函数并不会将m 和 i重新赋值. 所以其他也就很容易算出来了.


调用func(),传递4和1作为实参.第一次调用m=0,i=2; i+=m+1; i就等于3;


m=i+a+b; m就等于3+4+1. m=8; 将m的值返回并赋值给p1. 所以p1的值是8;


第二次调用. 由于m 和i是静态全局变量. 所以第二次进入func函数时. 并不会在执行static int m=0,i=2;


m和i的值仍然为上一次的结果, 所以m=8. i=3; 执行i+=m+1; i就等于12;


执行m=i+a+b; m就等于17;


所以最终输出是8,17



第二题:


int add(int a,int b) //由于函数返回一个整形变量. 所以返回类型要声明为int.


{ int c ;


c = a + b;


return (c) ;


}

全部回答
  • 1楼网友:杯酒困英雄
  • 2021-04-29 13:13

8,7

错误

改正:

int add(int a,int b)

{ int c ;

c = a + b;

return (c) ;

}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯