紧急求救!
#include <stdio.h> int func(int a,int b);
void main() { int k=4,m=1,p;
p=func(k,m); printf("%d,",p); p=func("%d\n",p); }
int func(int a,int b) { static int m=0,i=2;
i+=m+1; m=i+a+b;
return(m); }
A. 8,17 B. 8,16 C. 8,20 D. 8,8 答案:A #include <stdio.h> void main() { int i,s;
i=0;s=0; while(i<10); { s+=(i++); printf("%d\n",s); } printf("i=%d\n",i); }
A. i值为9,s值为45 B. i值为10,s值为45 C. i值为10,s值为36 D. 程序陷入了死循环
答案: D 这两题觉得有问题,请大家指教!
----------------解决方案--------------------------------------------------------
p=func("%d\n",p); // 这个地方是不是写错啦,
函数int func(int a,int b)的m位于静态存储区,是一个静态局部变量
也就是说p=func(k,m);语句后,func函数中m的值为8,第二次执行这个函数时mde值还是8.
位于静态存储区的变量,经程序编译后,就已经分配了存储空间,在程序整个运行期间都存在,
而未经static修饰的变量,是在程序运行期间分配的,如果一个函数结束,那么这个变量将消失.
第二题,while语句后有个分号,循环条件不变,陷入死循环
----------------解决方案--------------------------------------------------------
while语句后有个分号,循环条件不变,陷入死循环 ,呵呵,怪浪
----------------解决方案--------------------------------------------------------