第7章函数练习题(含答案)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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(\;

相关文档
最新文档