您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  二级C语言教程章节测试7.函数 【注册男护士专用博客】          

二级C语言教程章节测试7.函数

www.nanhushi.com     佚名   不详 

 一、选择题

    (1)以下关于函数的叙述中正确的是_____。
     A)每个函数都可以被其它函数调用(包括main函数)
     B)每个函数都可以被单独编译
     C)每个函数都可以单独运行
     D)在一个函数内部可以定义另一个函数

    (2)设函数fun的定义形式为
      void  fun(char  ch, float  x )  { …  }
    则以下对函数fun的调用语句中,正确的是_____。
     A)fun("abc",3.0);     B)t=fun('D',16.5);
     C)fun('65',2.8);      D)fun(32,32);

    (3)有以下程序
    int  f1(int  x,int  y){return  x>y?x:y;}
    int  f2(int  x,int  y){return  x>y?y:x;}
    main()
    {   int  a=4,b=3,c=5,d=2,e,f,g;
        e=f2(f1(a,b),f1(c,d));
        f=f1(f2(a,b),f2(c,d));
        g=a+b+c+d-e-f;
        printf("%d,%d%d\n",e,f,g);
    }
    程序运行后的输出结果是_____。                  
    A)4,3,7
    B)3,4,7
    C)5,2,7
    D)2,5,7

    (4)有以下程序
    #define  P   3
    #define  F(int  x)   {  return  (P*x*x);}
    main()
    {
       printf("%d\n",F(3+5));
    }
    程序运行后的输出结果是_____。                     
    A)192
    B)29
    C)25
    D)编译出错

    (5) 若程序中定义了以下函数
           double  myadd(double a,double B)
            { return (a+B) ;}
    并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是_____。
    A) double myadd(double a,B) ;
    B) double myadd(double,double);
    C) double myadd(double b,double A) ;
    D) double myadd(double  x,double y);

    (6) 有以下程序
    char fun(char x , char y)
    {  if(x<y)   return x;
       return y;
    }
    main( )
    {  int a=’9’,b=’8’,c=’7’;
       printf(“%c\n”,fun(fun(a,B) ,fun(b,C) ));
    }
    程序的执行结果是_____。
    A) 函数调用出错  B)8     C)9     D)7

    (7) 有以下程序
    void f(int v , int  w)
    {  int t;
       t=v;v=w;w=t;
    }
    main( )
    {  int x=1,y=3,z=2;
       if(x>y)       f(x,y);
       else if(y>z) f(y,z);
           else      f(x,z);
       printf(“%d,%d,%d\n”,x,y,z);
    }
    执行后输出结果是_____。
    A) 1,2,3    B) 3,1,2    C) 1,3,2    D) 2,3,1

    (8) 若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是_____。
    A) 调用可以作为独立的语句存在 B) 调用可以作为一个函数的实参
    C) 调用可以出现在表达式中  D) 调用可以作为一个函数的形参

    (9) 有以下函数定义:
    void fun( int  n,  double  x)  { …… }
    若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是_____。
    A) fun(int  y,double  m);       B) k=fun(10,12.5);
    C) fun(x,n);                  D) vold fun(n,x);

    (10) 有以下程序
    fun(int  a, int b)
    {  if(a>b)   return(a);
    else      return(b);
    }
    main()
     {  int   x=3, y=8, z=6,  r;
        r=fun (fun(x,y), 2*z);
       printf("%d\n", r);
     }
    程序运行后的输出结果是_____。
    A) 3          B) 6           C) 8           D) 12



    (11) 在一个C程序中_____。
    A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现
    C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置

    (12) 有以下程序
    int fl(int x,int y)
    {  return x>y?x:y; }
    int f2(int x,int  y)
    {  return x>y?y:x; }
    main()
    { int  a=4,b=3,c=5,d,e,f;
     d=f1(a,b); d=f1(d,c);
    e=f2(a,b); e=f2(e,c);
     f=a+b+c-d-e;
     printf("%d,%d,%d\n",d,f,e);
    }
    执行后输出结果是_____。
    A) 3,4,5   B) 5,3,4  C) 5,4,3   D) 3,5,4

    (13) 有如下程序
    void   f(int   x,int y)
    { int t;
     if(x<y){ t=x; x=y; y=t; }
    }
    main()
    { int a=4,b=3,c=5;
     f(a,b);   f(a,c);  f(b,c);
     printf("%d,%d,%d\n",a,b,c);
    }
    执行后输出结果是_____。
    A) 3,4,5   B) 5,3,4  C) 5,4,3  D) 4,3,5

    (14) C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是_____。
    A) void      B) int   C) float  D) double

    (15) 有以下程序
    float fun(int x,int y)
    { return(x+y); }
    main()
    {   int a=2,b=5,c=8;
    printf(“%3.0f\n”,fun(int)fun(a+c,b),a-c));
    }
    程序运行后的输出结果是_____。
    A) 编译出错  B) 9   C) 21   D) 9.0

    (16) 若有以下程序
    #include    <stdio.h>
    void    f(int  n);
    main()
    {  void  f(int  n);
     f(5);
    }
    void f(int  n)
    {  printf("%d\n",n);  }
    则以下叙述中不正确的是_____。
    A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
    B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
    C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
    D) 函数f无返回值,所以可用void将其类型定义为无值型

    (17) 以下函数值的类型是_____。
    fun ( float  x )
    {   float   y;
    y= 3*x-4;
    return  y;
    }
    A) int          B) 不确定       C) void       D) float

    (18) 以下所列的各函数首部中,正确的是_____。
    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)

    (19) 以下程序的输出结果是_____。
    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);
    }

    (20) 有如下函数调用语句
    func(rec1,rec2+rec3,(rec4,rec5);
    该函数调用语句中,含有的实参个数是_____。
    A) 3               B) 4               C) 5              D) 有语法错


    (21) 有如下程序
    int runc(int a,int b)
    {   return(a+b);}
    main0
    {   int   x=2,y=5,z=8,r;
    r=func(func(x,y),z);
    printf(“%\d\n”,r);
    }
    该程序的输出的结果是_____。
    A) 12              B) 13              C) 14             D) 15

    (22) 以下叙述中不正确的是_____。
    A) 在不同的函数中可以使用相同名字的变量
    B) 函数中的形式参数是局部变量
    C) 在一个函数内定义的变量只在本函数范围内有效
    D) 在一个函数内的复合语句中定义的变量在本函数范围内有效

    (23) 有以下程序
    viod fun (int    a,int   b,int  c)
    { a=456;  b=567;   c=678;}
    main()
    { int x=10, y=20,z=30;
    fun (x,y,z);
    printf("%d,/%d\n",c,d);
    }
    输出结果是_____。
    A)30,20,10   B)10,20,30   C) 456,567,678    D) 678,567,456

    (24) 有以下程序
    #include    "atdio.h"
    int   abc(int u,intv);
    main ()
    { int a=24,b=16,c;
      c=abc(a,b);
      printf('%d\n",c);
    }
    nt abc(int u,int v)
    { int  w;
      while(v)
      { w=u%v;  u=v;  v=w }
      return u;
    }
    输出结果是_____。
    A) 6             B) 7               C) 8                D) 9

    (25) 以下说法中正确的是_____。
    A) C语言程序总是从第一个的函数开始执行
    B) 在C语言程序中,要调用的函数必须在main()函数中定义
    C) C语言程序总是从main()函数开始执行
    D) C语言程序中的main()函数必须放在程序的开始部分

    (26) 请读程序:
    #include<stdio.h>
    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);
    }
    上面程序的输出结果是_____。
    A) 11            B) 20             C) 21             D) 31


    二、填空题

    (1)有以下程序
     int  sub(int  n)  {  return (n/10+n%10);  }
     main()
     { int  x,y;
       scanf("%d",&x);
       y=sub(sub(sub(x)));
       printf("%d\n",y);
     }
    若运行时输入:1234<回车>,程序的输出结果是  【1】   。

    (2) 通过函数求f(x)的累加和,其中f(x)=x2+1
    main()
    {
       printf("The sum=%d\n",SunFun(10));
    }
    SunFun(int n)
    {
       int x,s=0;
       for(x=0;x<=n;x++)  s+=F( 【2】 );
       return s;
    }
    F( int x)
    {  return  【3】 );}

    (3) 函数fun的功能是计算xn
    double fun(double x,int n)
    {  int i; double y=1;
       for(i=1;i<=n;i++)  y=y*x;
       return y;
    }
    主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+B) 3。实现这一计算的函数调用语句为【4】 。

    (4) 以下sum函数的功能是计算下列级数之和。
                S=1+x+x2/2!+x3/3!+........+xn/n!
                请给函数中的各变量正确赋初值。
                double  sum(  double  x, int  n )
                {  int i;  double  a,b,s;
                   【5】
                   for( i=1;i<=n;i++)
                   {  a=a*x;   b=b*i;    s=s+a/b; }
                   return  s;

    (5) 以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
    int fun(int  n)
    { int  n=0,f=1, i;
    for (i=1; i<=n; i++)
    { m+=i*f;
    f=  【6】  ;
    }
    return  m;
    }
    main()
    { printf("m=%d\n",  【7】 );}

    (6) 请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
    【8】(double,double); 
    main()
    {  double   x,y;
    scanf("%1f%1f",&x,&y);
    printf("%1f\n",max(x,y));
    }
    double max(double   a,double  b)
    {   return (a>b ? a:b) :}

    (7) 若有以下程序
    int  f(int x,int y)
    { return(y-x)*x; }
    main()
    { int a=3,b=4,c=5,d;
     d=f(f(3,4),f(3,5));
     printf("%d\n",d);
    }
    执行后输出的结果是【9】。

    (8) 以下程序运行后的输出结果是 【10】  。
    void fun(int x,int y)
    {  x=x+y;y=x-y;x=x-y;
    printf(“%d,%d,”,x,y);    }
    main()
    {  int x=2,y=3;
    fun(x,y);
    printf(“%d,%d\n”,x,y);
    }

    (9) 函数pi的功能是根据以下近似公式求π值:
    (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
    现在请你在下面的函数中填空,完成求π的功能。
    #include  “math.h”
    double  pi(long n)
    {   double  s=0.0;    long i;
    for(i=1;i<=n;i++)s=s+  [11] ;
    return(sqrt(6*s));
    }

    (10) 下面程序的输出是 【12】 。
    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));
    }

    (11) 下面pi函数的功能是根据以下的公式,返回满足精度ε要求的π值。请填空。     
    double pi(double eps)
    { double s=0.0, t=1.0;
    int n;
    for(  【13】  ; t>eps; n++)
    { s+=t;
    t=n*t/(2*n+1);}
    return(2.0 *  【14】  );}


    答案:
    一、选择题
    1) B 2) D 3) A 4)  D 5) A 6) D 7) C 8) D 9) C 10) D
    11) B 12) C 13) D 14) B 15) B 16) C 17) A 18) C 19) C 20) A
    21) D 22) D 23) A 24) C 25) C 26) C  

    二、填空题

    (1) 10
    (2) x
    (3) x*x+1
    (4) fun(a,4)+fun(b,4)-fun(a+b,3);
    (5) a=1.0;b=1.0;s=1.0;
    (6) -f
    (7) fun(10)
    (8) double max
    (9) 9
    (10) 3,2,2,3
    (11) 1.0/(i*i)
    (12) 12
    (13) n=1
    (14) s

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目