c语言func函数调用 c语言fun函数调用例题
c语言求解
8
创新互联公司是一家从事企业网站建设、成都网站设计、网站制作、外贸营销网站建设、行业门户网站建设、网页设计制作的专业网站设计公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点上千余家。
17
第一调用func函数
static int m 被系统自动赋值为 0, 和 main 函数中 int m = 1 相当于两个不同的变量, 在编译的过程中 会用不同的符号来标记
i+=m+1 -------- i=i+m+1=2+0+1=3
m=i+a+b -------- m=3+4+1=8
对于第一个输出:p=m=8
第二次调用func函数
因为函数func中定义的是静态变量, 所以 m = 8, i = 3
i+=m+1 -------- i=i+m+1=3+8+1=12
m=i+a+b -------- m=12+4+1=17
对于第二个输出:p=m=17
希望对你有帮助!!
C语言用func函数静态
这个很麻烦,不过不难。每次计算的时候,搞清楚各个值就好了。
首先
func调用两次,参数都是主函数的k和m
这两个值是不变的。也就是说
两次都是func(4,1)
对于func
第一次
a=4
b=1
m=0
i=2
//初始化
i+=m+1
-
i=i+m+1=2+0+1=3
m=i+a+b=3+4+1=8
返回8
于是第一个printf输出8,
第二次
a=4
b=1
m=8
i=3
//这两个变量是static
的,所以第二次进入的时候,m和i都是第一次退出时的值。
i+=m+1
-
i=i+m+1=3+8+1=12
m=i+a+b=12+4+1=17
返回17
于是第二个printf输出17
选A
c语言 函数调用(形参为数组名的情况)
#include stdio.h
void sort(int a[20])
{ int i,j,k,t;
for(i=0;i19;i++)
{ k=i;
for(j=i+1;j20;j++)
if(a[k]a[j]) k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
void main()
{ int a[20]={2,5,7,8,4,10,48,96,65,74,35,84,15,38,52,56,60,20,17,80};
sort(a);
}
没问题
我调试过了
记得给我加分
c语言中的func类型是什么
func不是C语言系统提供的类型,除非用户自定义。例如,如果用户用#define func int定义过,那么func就与int等价,编译时编译器将把代码语句中独立的func全更换为int;如果用户用typedef char* func;定义过,则func是char*的别名,func与char*等价,以后代码中写func pk;则是声明pk为char*型指针。用户自定义情况很多,不可能一一列举。
本文名称:c语言func函数调用 c语言fun函数调用例题
标题路径:http://ybzwz.com/article/ddedocg.html