不会做,求C语言解题过程及答案

来源:百度知道 编辑:UC知道 时间:2024/04/26 08:14:41
1.执行下述程序的输出结果是【 】
func(int x)
{
static int a=3;
a+=x;
return (a);
}
main()
{
int k=2,m=1,n;
n=func(k);
n+=func(m);
printf("%d\n",n);
}
A)8 B)9 C)11 D)14

2、以下程序的正确运行结果是:
main()
{ int a=2,i;
for (i=0;i<3;i++)
printf(“%4d”,f(a));
}

f(int a)
{ int b=0;
static int c=3;
b++; c++;
return(a+b+c);
}
A) 7 7 7
B) 7 10 13
C) 7 9 11
D) 7 8 9

3.以下程序运行后,输出结果是【 】:
#include <stdio.h>
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,p;
p=func(k,m);
printf(&quo

1.C
2.D
3.C
4.C
5的输出结果是5 6

只简单说一下,static的变量为静态变量,此变量不会在函数退出后释放内存,也即是说它仍然在下次调用的时候,会保存上一次的值。
静态变量在定义的时候附的初值,只有一次生效.
比如说:
func(int x)
{
static int a=3;
}
中的static int a=3;为给静态变量附初值。
只会在函数的第一次调用时才会给a附初值3,而后面的调用将不会再给a附初值。

运行一下不就知道了吗?