函数
一、选择题
100、以下正确的函数说明是_____
  Aint fun(int a, b)   Bfloat fun(int a; int b)
  Cdouble fun(  )   Dint fun(char a[ ][ ])
101、以下正确的函数形式是_____
  Adouble fun1(int x, int y)  Bfun1(int x, y)
    { z=x+y;  return z;  }    { int z;
                  return z; }
  Cfun1(x, y)             
    { int x, y; double z;
          z=x+y;
          return z;  }
  Ddouble fun1(int x, int y)
    { double z;
          z=x+y;  return z;  }
102、以下正确的说法是_____
  A、实参和与其对应的形参各占用独立的存储单元
  B、实参和与其对应的形参共占用一个存储单元
  C、只有当实参和与其对应的形参同名时才共用存储单元
  D、形参是虚拟的,不占用存储单元
103、以下正确的描述是_____
  A、定义函数时,形参的类型说明可以放在函数体内
  Breturn后面的值不能为表达式
  C、如果函数值的类型与返回值类型不一致,以函数值类型为准
  D、如果实参与形参的类型不一致,以实参类型为准
104C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是_____
  A、地址传递     B、单向值传递
  C、由实参传给形参,再由形参传回实参
  D、由用户指定传递方式
105、以下程序存在语法性错误,关于错误原因的正确说法是_____
  main(  )
  { int A=5, b;
   void p_ch(  );
   ……
   b=p_ch( A );
   ……
  }
  A、语句void p_ch( );有错,它是函数调用语句,不能使用void说明
  B、变量名不能使用大写字母
  C、函数说明和函数调用语句之间有矛盾
  D、函数名中不能使用下划线
106C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是_____
  Afloat    Bint    Clong    Ddouble
107、以下程序的功能是计算函数F(x, y, z)=(x+y)/(x-y)
+(z+y)/(z-y)的值,请选择填空。
  #include <stdio.h>
  #include <math.h>
  float fun1(float , float);
  main(  )
  { float x, y, z, sum;
   scanf("%f%f%f", &x, &y, &z);
   sum=fun1(____)+fun1(____);
   printf("sum=%f\n", sum);
  }
  float fun1(float a, float b)
  { float num;
   num=a/b;
   return(num);
  }
Ax-y, x+y   Bx+y, x-y
  Cz+y, z-y    Dz-y, z+y
Ax-y,x+y   Bx+y,x-y
  Cz+y,z-y   Dz-y,z+y
108、以下正确的描述是_____
  A、函数的定义可以嵌套,但函数的调用不可以嵌套
  B、函数的定义不可以嵌套,但函数的调用可以嵌套
  C、函数的定义和函数的调用均不可以嵌套
  D、函数的定义和函数的调用均可以嵌套
109、若使用一维数组名作函数实参,则以下正确的说法是_____
  A、必须在主调函数中说明此数组的大小
  B、实参数组类型与形参数组类型可以不匹配
  C、在被调函数中,不需要考虑形参数组的大小
  D、实参数组名与形参数组名必须一致
110、如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是_____
  A、该变量只在该复合语句中有效
  B、该变量在该函数中有效
  C、该变量在本程序范围内有效
  D、该变量为非法变量
111、以下不正确的说法为_____
  A、在不同函数中可以使用相同名字的变量
  B、形式参数是局部变量
  C、在函数内定义的变量只在本函数范围内有效
  D、在函数内的复合语句中定义的变量在本函数范围内有效
112、在一个源文件中定义的全局变量的作用域为_____
  A、本文件的全部范围
  B、本程序的全部范围
  C、本函数的全部范围
  D、从定义该变量的位置开始至本文件结束
113、以下程序的运行结果是_____
  #include <stdio.h>
  void  ff1(  )
  { extern int x, y;
    int a=15, b=10;
   x=a-b;
   y=a+b;
  }
  int x, y;
  main(  )
  { int a=7, b=5;
   x=a+b;
   y=a-b;
   ff1(  );
   printf("%d, %d\n", x, y);
  }
  A12, 2  B、不确定  C5, 25  D1, 12
114、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_____
  A、自动(auto)    B、静态(static
  C、外部(extern)    D、寄存器(register
115、以下程序的运行结果是_____
  main(  )
  { int a=1, k;
   for (k=0; k<3; k++)
    printf("%4d", f1(a));
  }
  f1(int x)
  { static int z=3, y=0;
   y++;
   z++;
   return(x+y+z);
  }
  A6  8  10     B6  6  6
  C7  8  9      D7  9  11
116、以下程序的运行结果是_____
  main(  )
  { char str1[ ]="abcdef";
   ff(str1);
   printf("str[ ]=%s\n", str1);
  }
  ff(char str1[ ])
  { int x, y;
   for (x=y=0; str1[x]!='\0'; x++)
    if (str1[x]!='c')
          str[y++]=str1[x];
   str1[y]='\0';
  }
  Astr[ ]=abdef    Bstr[ ]=abcdef
  Cstr[ ]=a      D、程序中存在语法错误
二、填空题
69、一个C程序是由若干个函数构成的,其中必须有一个_____
70、在C语言中,一个函数通常由两部分组成,它们是_____和_____
71、以下程序的运行结果是_____
  void f1(int x, int y, int z)
  { x=111;  y=222;  z=333;
  }
  main(  )
  { int x=100, y=200, z=300;
    f1(x, y, z);
   printf("%d, %d, %d\n", z, y, x);
  }
72、以下程序的运行结果是_____
  int fun(int x, int y)
  { int z;
   while (y)
    { z=x%y;  x=y;  y=z;  }
   return(x);
  }
  main(  )
  { int i=16, j=6, k;
   k=fun(i, j);
   printf("%d\n", k);
  }
73、以下函数用于统计一行中的单词个数,单词之间用空格分隔。请填空。
  word_num(char str [ ])
  { int i, num=0, word=0;
   for (i=0; str[i]!= ___; i++)
    if (____==32)  word=0;
    else if (word==0)
       { word=1;
         _____;  }
   return(num);
  }
74、以下函数用于出一个2×4矩阵中的最大元素值
  max_value(int arr[ ][4])
  { int i, j, max;
   max=arr[0][0];
   for (i=0; _____; i++)
    for (j=0; _____; j++)
     if (arr[i][j]>max)
      max=_____;
   return(max);
  }
75、以下函数f1用于求两个整数ab的最大公约数。
  f1(int a, int b)
  { int i, j, m, n;
   if (a>b)
    { m=a; a=b; _____;  }
   i=a;  j=b;
   while ((n= =_____)!=0)
    { j=i;  i=_____;  }
   return(i);
  }
76、以下程序的功能是:从键盘输入若干字符后,可统计出主函数调用count函数的次数,用字符“!”作为输入结束的标志。请填空。
  isalpha 函数count(_____)
  { static int k=0;
    k++;
   if (ch2=='!')
    printf("count=%d\n",_____);
  }
  main(  )
  { char ch1;
   while (1)
    { scanf("%c", &ch1);
     count(ch1);
     if (ch1=='!')
      break;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。