第7章函数练习题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数练习题
1、在C语言中,正确的说法是( A )
A.函数内部和外部定义的变量同名是合法的
B.只要形参和实参都是变量,那么形实结合一定是地址传递
C.变量的定义和声明(也称说明)功能是相同的
D.没有return 的函数就失去了返回功能
2. 若程序中定义了以下函数
double myadd(double a,double B)
{ return (a+B) ;}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是(A)
A) double myadd(double a,B);
B) double myadd(double,double);
C) double myadd(double b,double A);
D) double myadd(double x,double y);
3. 有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
int main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
return 0;
}
执行后输出结果是( C )
A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1
4. 以下叙述正确的是(C)
A) c程序由主函数构成B) c程序由函数和过程构成
C) c程序由函数构成
D) 在c程序中,无论是整形值还是实型值,只要在允许的范围内,都能准确无误的表示
5. 构成c语言程序的基本结构单位是(A)
A)函数B)过程C)复合语句D)语句
6. C语言规定:在一个源程序中,main函数的位置(C)。
A)必须在最开始B)必须在系统调用的库函数的后面
C)可以任意 D)必须在最后
7.在C语言中,下列函数经常与getchar()组合起来使用的函数是(D)
A)scanf() B)strcpy() C)puts() D)putchar()
8.C语言自定义函数的返回值的类型是由(B)决定的。
A)return语句中的表达式类型 B)定义函数时,指定函数值类型
C)调用函数时临时确定的 D)无法确定
9.函数的实参为数组名时,形参与实参结合的传递方式为地址传递。
10.int func(int n)
{
if (n= =0)return 0;
else if (n= =1) return 1;
else return n*n+func(n-2);
}
int main()
{
printf("%5d%5d\n",func(4),func(5));
return 0;
}
以下程序的输出结果是: 20 35
11.以下程序的输出结果是(6)
int add(int a, int b)
{ return (a+b);}
int main()
{ int x=1,y=2,z=3,s;
s=add(add(x,y),z);
printf(“%d”,s);
return 0;
}
12. 以下程序中,主函数调用了Line M ax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。
#define N 3
#define M 4
void Line M ax(int x[N][M])
{ int i,j,p;
for ( i=0;i<N; i++ )
{ p=0;
for ( j=1;j<M; j++ )
if(x[i][p]<x[i][j]) 【1】p=j ;
printf(″The max value in line is %d\n″, 【2】x[i][p] );
}
}
main()
{ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
【3】Line M ax(x) ;
return 0;
}
13. 若用数组名作为函数调用时的实参,则实际上传递给形参的是。(A)
A) 数组首地址B) 数组的第一个元素值
C) 数组中全部元素的值D) 数组元素的个数
14.在C语言中,函数的数据类型是指A。
A) 函数返回值的数据类型B) 函数形参的数据类型
C) 调用该函数时的实参的数据类型D) 任意指定的数据类型
15.定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是____。C
A) swapa(int x, int y) B) swapb(int *x, int *y)
{ int temp;{ int temp;
temp=x;x=y;y=temp;temp=x;x=y;y=temp;
} }
C) swapc(int *x, int *y) D) swapd(int *x, int *y)
{ int temp;{ int *temp;
temp=*x;*x=*y;*y=temp;temp=x;x=y;y=temp;
} }
16.一个函数内有数据类型说明语句如下:
double x, y, z(10);
关于此语句的解释,下面说法正确的是____。D
A) z是一个数组,它有10个元素。
B) z是一个函数,小括号内的10是它的实参的值。
C) z是一个变量,小括号内的10是它的初值。
D) 语句中有错误。
17.已知函数定义如下:
float fun1(int x, int y)
{ float z;
z=(float)x/y;
return(z);
}
主调函数中有int a=1,b=0;可以正确调用此函数的语句是____。 D