第七章 函 数

一、选择题

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、以下函数用以求xy次方.请填空.

     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)用以求ab除之后的余数.

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

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?