1、函数(二)及答案解析(总分:13.00,做题时间:90 分钟)一、B选择题/B(总题数:7,分数:7.00)1.有如下程序 int func(int a,int b) return(a+b); main() int x=3,y=6,z=7,r; r=func(func(x,y),z); printf(“%/d/n“,r); 该程序的输出的结果是_。(分数:1.00)A.14B.15C.16D.172.一个源文件中定义的外部变量的作用域为_。(分数:1.00)A.本文件的全部范围B.本程序的全部范围C.本函数的全部范围D.从定义该变量的位置开始至本文件结束3.有如下程序 void f(int x
2、,int y) int t; if(xy)t=x;x=y;y=t; main() int a=4,b=3,c=5; f(a,b);f(b,c);f(c,a); print(“%d,%d,%d/n“,a,b,c); 执行后输出结果是_。(分数:1.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,54.以下程序的运行结果是_。 float fun(int x,int y) return(x+y); main() int a=2,b=5,c=8; printf(“%3.1f/n“,fun(int)fun(a+c,b),a-c); (分数:1.00)A.编译出错B.9C.21D.9.05.
3、以下正确的描述是:在 C 语言程序中_。(分数:1.00)A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和函数的调用均可以嵌套C.函数的定义和函数的调用均不可以嵌套D.函数的定义不可以嵌套,但函数的调用可以嵌套6.以下程序的输出结果是_。 long fun(n) long s; if(n=1|n=2)s=2; else s=n-fun(n-1);return s; main() printf(“%ld/n“,fun(3); (分数:1.00)A.1B.2C.3D.47.有如下程序 long fib(int n) if(n2)return(fib(n-1)-fib(n-2); el
4、se return(1); main() printf(“%d/n“,fib(5); 该程序的输出结果是_。(分数:1.00)A.-3B.-2C.-1D.0二、B填空题/B(总题数:3,分数:6.00)8.以下程序的运行结果是_。 #includestdio.h func(int a,int b) static int m=1,i=3; i+=m+1; m=i+a+b; return m; main() int k=2,m=3,p; p=func(k,m);printf(“%d,“,p); p=func(k,m);printf(“%d/n“,p); (分数:2.00)填空项 1:_9.fun(
5、int n,int *s) int f1,f2; if(n=1|n=2)*s=1; else fun(n-1, main() int x; fun(6, main() int x; fun(6,&x); printf(“%d/n“,x); 执行上述程序后,输出结果是_。(分数:2.00)填空项 1:_ (正确答案:8)解析:10.下面程序的运行结果是_。 #includestdio.h main() void inc1(); void inc2(); inc1();inc1();inc1(); inc2();inc2();inc2(); void inc1() int x=0; x+; printf(“in inc1 x=%d/n“,x); void inc2() static int x=0; x+; printf(“in inc2 x=%d/n“,x); (分数:2.00)填空项 1:_ (正确答案:in inc1 x=1)解析:in inc1 x=1 in inc1 x=1 in inc2 x=1 in inc2 x=2 in inc2 x=3