第八章函数上机习题
- 格式:doc
- 大小:40.00 KB
- 文档页数:4
第八章函数
问题与思考
1.有如下程序
#include<stdio.h>
long fib( int n)
{if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
void main( )
{ printf("%d\n",fib(3));}
该程序的输出结果是()
A、2
B、 4
C、 6
D、8
2.在C语言中,函数的隐含存储类别是()
A、 auto
B、 static
C、 extern
D、无存储类别
3.以下所列的各函数首部中,正确的是()
A、 void play(var:Integer,var b:Integer)
B、 void play(int a,b)
C、 void play(int a,int b)
D、 Sub play(a as integer,b as integer)
4.以下程序的输出结果是()
A、 0
B、 29
C、 31
D、无定值
fun(int x,int y,int z)
{ z=x*x+y*y;}
main( )
{ int a=31;
fun(5,2,a);
printf("%d",a);
}
5.以下程序的输出结果是()
f(int b[ ],int m,int n)
{int I,s=0;
for(i=m;i<n;i=i+2) s=s+b[i];
return s;
}
main( )
{int x,a[ ]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A、10
B、18
C、8
D、15
6.以下程序的输出结果是()
A、1
B、2
C、3
D、4
long fun( int n)
{ long s;
if(n==1 || n==2)s=2;
else s=n-fun(n-1);
return s;}
main( )
{ printf("%ld\n",fun(3));}
7.以下程序的输出结果是()
int f( )
{ static int i=0;
int s=1;
s+=i;i++;
return s;
}
main( )
{ int i,a=0;
for(i=0;i<5;i++)a+=f();
printf("%d\n",a);
}
A、20
B、24
C、25
D、15
8. 以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。
请填空。
int fun( int n)
{ int m=0,f=1,i;
for(i=1; i<=n; i++)
{ m+=i*f;
f= _____________ ;
}
return m;
}
main()
{ printf("m=%d\n", _________ ); }
9.以下程序输出的最后一个值是_____________
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main( )
{ int i;
for(i=1;i<=5;i++ ) printf("%d\n",ff(i));
}
10.以下函数的功能是:求x的y次方,请填空。
double fun( double x,int y)
{ int i;
double z;
for(i=1, z=x; i<y;i++) z=z*_______;
return z;
}
11.以下正确的说法是()
A、用户若需要调用标准库函数,调用前必须重新定义
B 、用户可以重新定义标准库函数,如若此,该函数将失去原有定义
C 、系统不允许用户重新定义标准库函数
D 、用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包
含编译,系统会自动调用。
12. C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()
A、地址传递
B 、值传递
C 、有实参传给形参,再由形参传给实参
D 、由用户指定传递方式
13. 下面程序的输出是()
int i=2 ;
printf(“%d%d%d”,i*=2,++i,i++) ;
A、 8 , 4 , 2 B 、 8 , 4 , 3
C、 4 , 4 , 5 D 、 4 , 5 , 6
14.以下不正确的说法是()
A 、 register 变量可以提高变量使用的执行效率
B 、 register 变量由于使用的是 CPU 的寄存器,其数目是有限制的
C 、 extern 变量定义的存储空间按变量类型分配
D 、全局变量使得函数之间的“ 耦合性” 更加紧密,不利于模块化的要求
15. C 语言函数返回类型的默认定义类型是____________
16. 函数的实参传递到形参有两种方式:____________和____________。
17. C 语言变量按其作用域分为____________和____________。
按其生存期分为
____________和____________。
18.已知函数定义 :void dothat(i nt n,double x) { …… }, 其函数声明的两种写法
为____________ , ____________。
19. C 语言变量的存储类别有____________,____________,____________和
____________。
20. 在一个C 程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为____________。
答案
1. B
2.A
3.C
4.C
5.A
6.A
7.D
8.-f, fun(10) 9.120 10. x 11.B 12.B 13.A
14.C 15.int 16.传值方式和传址方式
17.全局变量,局部变量,动态生存期,静态生存期
18. void dothat(int n,double x);void dothat(int,double);
19.auto, static, register, extern
20.static。