5 函数
一、选择题
1、以下正确的说法是(  A 
A) 实参可以是常量、变量或表达式      B) 实参类型不必同形参类型一致   
C) 形参可以是常量、变量或表达式      D) 实参顺序与形参顺序无关
2、以下函数首部的定义形式的正确的是( B
A) int fun(int x; int y)    B) int fun(int x, int y)    C) int fun(int x, y)    D) int fun(int x, int y);
3、以下描述正确的是( B
A) 如果形参和实参的类型不一致,应以实参类型为准   
B) 如果函数值类型与返回值类型不一致,应以函数值类型为准     
C) return语句后不能是表达式     
D) 定义函数时,可以省略不写形参的类型,只写形参名
4、下列关于函数的描述错误的是(    D   
A) c程序是由函数组成的                B) c程序中的函数是各自独立的         
C) main函数可以调用其它的函数          D) main函数中可以嵌套定义别的函数
5、关于C语言的主函数描述正确的是     B
A) C程序可以有多个main函数    B) C程序有且只有一个main函数
C) C程序可以没有main函数      D) C程序不一定从main函数开始执行
6、若定义的函数有返回值,则以下关于该函数调用的叙述错误的是(    D
A) 函数调用可作为独立的语句存在    B) 函数调用可作为一个函数的实参
C) 函数调用可以出现在表达式中      D) 函数调用可作为一个函数的形参
7、以下对于return语句的作用叙述不正确的是( C
A) 可以将函数值返回给主调函数        B) 可以将程序流程返回到主调函数
C) 一个函数只能有一个return语句      D) 一个函数可以没有return语句
8、C语言规定,函数返回值的类型是由(  D  )决定的。
A) return语句中表达式的类型      B) 调用该函数的主调函数的类型     
C) 调用该函数时系统临时        D) 在定义函数时所指定的函数值类型
9、在C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为(  A
A) int        B) double        C) void          D) float
10、若函数定义如下,则函数返回值的数据类型是(    A
float fun(int x)
{ int y=x+2;
  return(y);
}
A) float        B) int          C) 不能确定          D) 编译出错
11、以下正确的函数形式是( D
A) double fun(int x, int y)            B) void fun(int x, y)
{  z = x + y;                      {  int z;
  return z;                          return z;
}                                }
C) double fun(x, y)                  D) double fun(int x, int y)
{  double z = x + y;                {  double z = x + y;
  return z;                          return z;
}                                }
12、函数调用时,若参数为值传递方式,则下列描述错误的是( B   
A) 实参可以是表达式                      B) 实参与形参共用同一内存单元
C) 调用时为形参分配内存单元        D) 实参与形参类型应一致
13、若函数定义如下,假设将常数1.6传给x,则函数的返回值是(    B
int fun(float x)
{ float y=x+2;
  return(y);
}
A) 3.6        B) 3          C) 4          D) 3.0
14、设有如下的函数,则函数返回值的类型是(    )  C
ggg(float x)
{  return(x*x);  }
A) 与参数x的类型相同        B) void        C) int        D) 无法确定
15、有以下程序,则执行后输出的结果是(    A
#include "stdio.h"
void  funint k,int n
{ int t;
  t=k;   k=n;  n=t;
}
void  main()
{  int k=1, m=2; 
  fun(k, m); 
  printf("%d,%d\n", k,m); 
}
A) 1,2      B) 2,1        C) 1,1        D) 2,2
16、以下程序运行后的输出结果是  (        )  D
#include "stdio.h"
int fun(int a, int b)
{  if (a>b)  return(a);
else    return(b);
}
void  main( )
{ int x=3, y=8, z=6, r;
r=fun( fun(x, y), 2*z);
printf("%d\n", r);
}
A) 3        B)         C) 8          D) 12
*********************************数组作函数参数*********************************
17、对于一维数组名作函数实参,以下描述正确的是(  A 
A) 必须在主调函数中说明此数组的大小   
B) 实参数组类型与形参数组类型可以不一致     
C) 函数调用时是将实参数组中的所有元素值复制到形参数组中     
D) 实参数组名与形参数组名必须保持一致
18、数组名作参数时,以下叙述正确的是(    B
A) 函数调用时是将实参数组的所有元素传给形参 
B) 函数调用时是将实参数组的首地址传给形参 
C) 函数调用时是将实参数组的第1个元素传给形参
D) 函数调用时是将实参数组所有元素的地址传给形参
19、已有如下数组定义和函数调用语句,则fun函数的形参数组的正确定义方法是(  C 
int  a[3][4];
fun(a);
A) fun( int a[][6])    B) fun(int a[3][]     C) fun(int a[][4])      D) fun(int a[][])
20、有以下程序,则执行后的结果为(  C
#include "stdio.h"
void  funint b[], int n
{ for(int i=0;i<n;i++)  
++b[i];
}
void main()
{  int x, a[5]={2,3,4,5,6};
  f (a, 5);
 printf("%d\n", a[1]);
}
A)     B)       C)       D) 5
***********************************嵌套和递归***********************************
21、以下描述错误的是(  D
A) C程序中,函数可以直接或间接的调用自己
B) 函数调用时,函数名必须与所调用的函数名字完全一致
C) 函数声明语句中的类型必须与函数返回值的类型一致
D) 实参数可以与形参个数不一致
22、关于递归函数的叙述错误的是(      C
A) 递归函数是自己调用自己        B) 递归函数占用较多的存储空间
C) 递归函数的运行速度很快        D) 递归函数的运行速度一般比较慢
23、关于递归函数的叙述错误的是(    A        )
A) 用递归函数求n! 比用循环求n! 的速度快    B) 递归函数经常使用if结构
C) 递归函数运行时占用较多的存储空间        D) 通常递归函数的代码比较简洁
24、下列的结论中正确的是(        ) B
A) 所有的递归程序均可以采用非递归算法实现     
B) 只有部分递归程序可以用非递归算法实现
C) 所有的递归程序均不可以采用非递归算法实现   
D) 以上三种说法都不对
25、关于二分搜索以下说法错误的是(      )B
A) 二分搜索算法可以用循环语句实现      B) 二分搜索对数据排列没有要求
C) 二分搜索算法可以用递归函数实现      D) 二分搜索体现了分治法的思想
****************************局部和全局变量及存储类别****************************
26、以下描述错误的是(  D 
A) 在不同的函数中可以使用相同名字的变量     
B) 函数定义中的形参是局部变量     
C) 在一个函数内部定义的变量只能在该函数内使用     
D) 在一个函数内的复合语句中定义变量在整个函数范围内有效
27、以下对局部变量描述正确的是  (        )  D
A) 在函数内部定义的变量        B) main函数中定义的变量是局部变量
C) 形式参数也是局部变量        D)局部变量在程序的全部执行过程中一直占用存储单元
28、在一个源文件中定义的全局变量的作用域为(float()函数    D

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