第5章 函数(带答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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 fun(int 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) 6 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 fun(int b[], int n)
{ for(int i=0;i ++b[i]; } void main() { int x, a[5]={2,3,4,5,6}; f (a, 5); printf("%d\n", a[1]); } A) 2 B) 3 C) 4 D) 5 ***********************************嵌套和递归*********************************** 21、以下描述错误的是()D A) C程序中,函数可以直接或间接的调用自己 B) 函数调用时,函数名必须与所调用的函数名字完全一致 C) 函数声明语句中的类型必须与函数返回值的类型一致 D) 实参数可以与形参个数不一致