第七章 函 数 |
一、选择题 1、 以下说法中正确的是 A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言程序总是从main函数开始执行 D)C语言程序中的main函数必须放在程序的开始部分 2、以下函数的类型是 A)与参数x的类型相同 B)void类型 C)int类型 D)无法确定 fff(float x) { printf("%d\n",x*x);} 3、以下函数调用语句中,含有的实参个数是 A)1 B)2 C)4 D)5 func( (exp1,exp2),(exp3,exp4,exp5)); 4、以下程序的输出结果是 A)11 B)20 C)21 D)31 func(int a,int b) { int c c=a+b; return c; } main() { int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d\n",r); } 5、以下程序的输出结果是 A)-1 B)0 C)1 D)2 main() { int i=2,p; p=f(i,i+1); printf("%d",p); } int f(int a,int b) { int c; c=a; if(a>b)c=1; else if(a==b)c=0; else c=-1; return(c); } 6、以下程序的输出结果是 A)0 B)1 C)6 D)无定值 fun( int a, int b, int c) { c=a*b; } main() { int c; fun(2,3,c); printf("%d\n",c); } 7、以下程序的输出结果是 A)5.500000 B)3.000000 C)4.000000 D)8.25 double f(int n) { int i; double s; s=1.0; for(i=1; i<=n; i++) s+=1.0/i; return s; } main() { int i,m=3; float a=0.0; for(i=0; i<m; i++) a+=f(i); printf("%f\n",a)L; } 二、填空题 1、以下程序的输出结果是________. unsigned fun6(unsigned num) { unsigned k=1; do { k=*=num%10; num/=10; } while(num); return k; } main() { unsigned n=26; printf("%d\n",fun6(n); } 2、 以下程序的输出结果是________. double sub(double x,double y,double z) { y-=1.0; z=z+x; return z; } main() { double a=2.5,b=9.0; printf("%f\n",sub(b-a,a,a)); } 3、 以下程序的输出结果是________. fun1(int a,int b) { int c; a+=a; b+=b; c=fun2(a,b); return c*c; } fun2(int a,int b) { int c; c=a*b%3; return c; } main() { int x=11,y=19; printf("%d\n",fun1(x,y)); } 4、下面pi函数的功能是,根据以下公式返回满足精度要求的的值.请填空. pi/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9+... double pi(double eps) { double s=0.0,t=1.0; int n; for(_____;t>eps;n++) { s+=t; t=n*t/(2*n+1); } return (2.0*_____); } 5、以下函数用以求x的y次方.请填空. double fun(double x,int y) { int i; double z=1; for(i=1; i_____; i++) z=_____; return z; } n 6、以下程序的功能是计算S= S K!.请填空. long f(int n) K=1 { int i; long s; s=_____; for(i=1; i<=n; i++) s=_____; return s; } main() { long s; int k,n; scanf("%d",&n); s=_____; for(k=0; k<=n; k++)s=s+_____; printf("%ld\n",s); } 三、程序调试和编程题 1、 以下fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正. fun(int n) { int k,yes; for(k=2; k<=n/2; k++) if(n%k==0) yes=0; else yes=1; return yes; } 2、 编写函数 int mymod ( int a, int b)用以求a被b除之后的余数. 3、编写程序求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n 4、编写函数,根据整型形参m的值,计算如下公式的值. t=1-1/2*2-1/3*3-...-1/m*m 例如,若m=5,则应输出0.536389. 5、编写函数用以求表达式x*x-5*x+4,x作为参数传送给函数,调用此函数求: y1=2*2-5*2+4 y2=(x+15)*(x+15)-5*(x+15)+4 y3=sinx*sinx-5*sinx+4 |
|