四、习题答案
(一)、是非题
1.A 2.A 3.B 4.B 5.B 6.B 7.B 8.B 9.A 10.A 11.B 12.B 13.A 14.B 15.A 16.B 17.B 18.B 19.A 20.B (二)、选择题
1.C 2.D 3.C 4.D 5.C 6.D 7.B 8.A 9.A 10.D 11.D 12.A 13.B 14.B 15.C 16.C 17.D 18.C 19.A 20.C 21.C 22.C 23.B 24.D 25.C 26.A 27.B 28.A 29.B 30.B
41
第6章 函数
二、习题
(一)是非题
1.在C程序中,main()函数必须有且只有一个。
A.对 B.错
2.如果某个函数在定义时省略了存储类型,则默认的存储类型是int。
A.对 B.错
3.C程序中,定义函数时的参数是“实际参数”,调用函数时的参数是“形式参数”。
A.对 B.错
4.函数的定义可以嵌套,但函数的调用不可以嵌套。
A.对 B.错
5.若函数定义的头部为:double cacl(float x,float y),则该函数是外部函数。
A.对 B.错
6.若用数组名作为函数调用的实参,传递给形参的是数组中的第一个元素的值。
A.对 B.错
7.C程序中所有的全局变量都是静态存储的。
A.对 B.错
8.函数中的多个return语句,可以实现调用该函数后,多个值同时被返回。
A.对 B.错
9.如果在一个函数中的复合语句内定义了一个变量,则该变量在该函数中都有效。
A.对 B.错
10.有参的宏,其参数参与运算,宏替换要先完成参数的计算,然后再执行替换。
A.对 B.错
11.在函数之间数据传递的方式有三种,即返回值、参数、全局变量。
A.对 B.错
12.在C语言中,除了main()函数外,其余所有的函数都能够被调用。
A.对 B.错
13.在main()函数中定义的变量称为全局变量。
A.对 B.错 14.在C语言中形参与实参共用内存单元。
A.对 B.错
15.在C语言中定义的auto变量,若没有对其进行显式初始化,则初值是一个不确定的值。
A.对 B.错 (二)选择题
1.以下说法中正确的是________。
42
A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分
2.在C语言中,函数值类型在定义时可以缺省,此时函数值的隐含类型是________。 A.void B.int C.float D.double 3.在C语言中,函数返回值的类型最终取决于________。 A.函数定义时在函数值首部所说明的函数类型 B.return语句中表达式值的类型
C.用函数时主调函数所传递的实参类型 D.函数定义时形参的类型
4.以下程序的执行结果为________。 #include \float fun(int x,int y) { return(x*y); } main()
{ int a=2,b=5,c=8;
printf(\ A.-24 B.24 C.-168 D.168 //嵌套调用。 fun(2+5,8) 返回得到 56; fun(56,2-5) 56*(-3)=-168
5.以下程序运行后的输出结果是________。 #include \int f(int x); main()
{ int n=1,m; m=f(f(f(n)));
printf(\int f(int x) {return x*2;} A.1 B.2 C.4 D.8 6.如下函数调用语句中,含有的实参个数是________。
fun(arg1,arg2+arg3,(arg4,arg5)); //实参可以是表达式 A.3 B.4 C.5 D.有语法错误 7.以下程序的输出结果是________。 #include \main()
{ int w=5;fun(w); } fun(int m)
43
{ if(m>0)fun(m-1); printf(\
A.5 4 3 2 1 B.0 1 2 3 4 5 C.1 2 3 4 5 D.5 4 3 2 1 0 8.在一个C源程序文件中所定义的全局变量,其作用域为________。 A.所在文件的全部范围 B.所在程序的全部范围
C.所在函数的全部范围 D.由具体定义位置和extern说明来决定范围 9.以下程序的运行结果是________。
#include \int a=1; int f(int c)
{ static int a=2; c=c+1;
return (a++)+c; } main()
{ int i,k=0;
for(i=0;i<2;i++) { int a=3; k+=f(a); } k+=a;
printf(\A.13 B.14 C.15 D.16 10.以下程序执行后变量w的值是________。
#include \int fun1(double a) {return a*=a;}
int fun2(double x,double y) { double a=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b); } main()
{ double w;
w=fun2(1.1,2.0); ?? }
A.5.21 B.5 C.5.0 D.0.0
11.以下程序执行时,给变量x输入10,程序的输出结果是________。
#include \int fun(int n)
{ if(n==1) return 1;
else return(n+fun(n-1)); } main() { int x;
44