第7章函数练习题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章函数练习题(含答案)
函数练习题
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(\ 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. 以下程序中,主函数调用了LineMax函数,实现在N行M 列的二维数组中,找出每一行上的最大值。请填空。 #define N 3 #define M 4
void LineMax(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】 LineMax(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
A) printf(\;
B) printf(\; C) printf(\;
D) 调用时发生错误
18.下面函数的功能是____。B a(s1,s2)
char s1[ ],s2[ ];
{ while(s2++=s1++) ; }
A) 字符串比较 B) 字符串复制 C) 字符串连接 D) 字符串反向
19.已知:int a, *y=&a;则下列函数调用中错误的是
( D )。 A) scanf(\; B) scanf(\; C) printf(\; D) printf(\;