c语言函数试题及答案
单项选择题(每题2分,共10题)
1.以下关于C语言函数定义的说法正确的是()
A.函数必须有返回值
B.函数可以嵌套定义
C.函数定义的位置没有限制
D.函数名不能与变量名相同
答案:C
2.若函数定义为`voidfun(inta,floatb)`,则以下调用正确的是()
A.`fun(1,2)`
B.`fun(1,2.5f)`
C.`fun(1.0,2.5f)`
D.`fun()`
答案:B
3.以下函数声明正确的是()
A.`intfun(a,b);`
B.`intfun(inta,intb)`
C.`intfun(int,int);`
D.`fun(inta,intb);`
答案:C
4.函数返回值的类型是由()决定的。
A.return语句中表达式的类型
B.调用该函数的主调函数类型
C.函数定义时函数名前的类型
D.形参的类型
答案:C
5.以下关于函数形参和实参的说法正确的是()
A.形参和实参在数量、类型和顺序上必须一一对应
B.形参和实参可以同名
C.形参在函数调用时才分配内存
D.以上都正确
答案:D
6.若有函数`intadd(inta,intb){returna+b;}`,则`add(3,5)`的值是()
A.3
B.5
C.8
D.15
答案:C
7.以下函数定义中,函数体为空的是()
A.`voidfun(){}`
B.`voidfun(){;}`
C.`voidfun(){return;}`
D.以上都正确
答案:A
8.一个函数定义如下`intmax(inta,intb){returnab?a:b;}`,调用`max(10,20)`的结果是()
A.10
B.20
C.30
D.0
答案:B
9.若函数定义为`voidswap(inta,intb)`,以下调用方式正确的是()
A.`intx=1,y=2;swap(x,y);`
B.`intx=1,y=2;swap(x,y);`
C.`intx=1,y=2;swap(x,y);`
D.`intx=1,y=2;swap(intx,inty);`
答案:B
10.以下关于递归函数的说法错误的是()
A.递归函数必须有终止条件
B.递归函数调用自身
C.递归函数效率一定高
D.递归函数可以解决一些复杂问题
答案:C
多项选择题(每题2分,共10题)
1.以下哪些是C语言函数的特点()
A.提高代码复用性
B.增强程序的模块化
C.可以嵌套调用
D.可以递归调用
答案:ABCD
2.函数定义中形参的作用有()
A.接收实参传递过来的值
B.作为函数内部的局部变量使用
C.决定函数返回值类型
D.限制函数的调用次数
答案:AB
3.以下关于函数返回值的说法正确的是()
A.可以返回基本数据类型
B.可以返回指针类型
C.可以返回结构体类型
D.可以不返回值
答案:ABCD
4.函数调用时实参可以是()
A.常量
B.变量
C.表达式
D.函数调用
答案:ABCD
5.以下哪些情况函数不需要返回值()
A.函数用于执行某种操作,不产生需要返回的数据
B.函数只是修改全局变量的值
C.函数只是打印一些信息
D.函数调用另一个函数
答案:ABC
6.以下关于函数声明的说法正确的是()
A.函数声明可以省略形参名
B.函数声明和函数定义中的函数类型必须一致
C.函数声明必须放在主函数之前
D.函数声明可以多次出现
答案:ABD
7.以下函数定义中,合法的有()
A.`intfun(){return0;}`
B.`voidfun(inta){}`
C.`charfun(){returna;}`
D.`floatfun(inta,floatb){returna+b;}`
答案:ABCD
8.递归函数的优点有()
A.代码简洁
B.容易理解
C.执行效率高
D.适合解决一些具有递归性质的问题
答案:AD
9.以下哪些属于函数的参数传递方式()
A.值传递
B.地址传递
C.引用传递(C语言中通过指针模拟)
D.名称传递
答案:ABC
10.函数调用时,系统会进行的操作有()
A.为形参分配内存
B.将实参