您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页C语言程序设计(函数的定义及调用)习题与答案

C语言程序设计(函数的定义及调用)习题与答案

来源:华佗小知识


1、简单变量做实参时,它和对应形参之间的数据传递方式是()。

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回给实参

D.由用户指定的传递方式

正确答案:B

2、若函数的调用形式如下:

f((x1,x2,x3),(y1,y2))

则函数形参个数是( )。

A.5

B.2

C.3

D.4

正确答案:B

3、下列程序段中,有错误的是( )。

A. void change(int x, int y)

{

int t;

t=x; x=y; y=t;

}

B. int f2(int x)

{

return (x>1?printf(\"Y\"): putchar('N'));

}

C. int f()

{

int x;

scanf(\"%d\

return x++, x+5;

}

D.int main()

{

float a=2.6 , b;

b=max(2.1, 3.6)=a++;

printf(\"%f\

}

正确答案:D

4、以下说法正确的是( )。

A.C程序中,被调用的函数必须在main()函数中定义

B.C程序中的main()函数必须放在程序的开始处

C.C程序总是从第一个定义的函数开始执行

D.C程序总是从主函数main()开始执行

正确答案:D

5、关于函数原型,叙述错误的是( )。

A.当自定义函数被放在了主调函数的后面,就需要在函数调用之前,加上函数的原型声明

B.所有函数定义放在main函数之前,可以省略原型声明

C.函数可以不必进行声明,可以放在程序的任意位置

D.被调用函数在主调函数之前定义,可以省略函数原型声明

正确答案:C

6、下列函数定义中,正确的是( )。

A.int max1(int a,b)

{

return a>b?a:b;

}

B.int max1(a,b)

{

int a,b;

return a>b?a:b;

}

C.int max1(int a,int b)

{

return a>b?a:b;

}

D.int max1(int a,int b);

{

return a>b?a:b;

}

正确答案:C

7、以下函数返回值的类型是( )。

int fff(float x)

{

x=x+5;

return x;

}

A.无法确定

B.void 类型

C.int类型

D.与参数x的类型相同

正确答案:C

8、以下叙述错误的是( )。

A.函数调用可以出现在一个表达式中

B.函数调用可以作为一个函数的实参

C.函数调用可以作为一个函数的形参

D.函数允许递归调用

正确答案:C

9、下面叙述中错误的是( )。

A.函数的形参和实参必须要使用相同名字的变量

B.一般来说,函数的形参和实参的类型要一致

C.函数的形式参数,在函数未被调用时不被分配存储空间

D.若函数的定义出现在主调函数之前,则可以不必再加说明

正确答案:A

二、判断题

1、模块化程序设计方法是采用逐步分解、分而治之的方法处理问题。(√)

2、没有返回值的函数可以进行函数的语句调用。(×)

3、函数通过return语句可以向主调用函数返回多个值。(×)4、一个函数中有且只能有一个return 语句。(×)

5、函数可以根据需要通过参数与调用函数之间进行数据传递。三、填空题

1、数组作为函数参数进行函数调用时,实参应当采用( )。正确答案:数组名

2、以下函数的功能是连接两个字符串,请完善程序。

void str_cat(char str1[ ], char str2[ ], char str[ ])

{

int i,j;

√)

(

for(i=0;str1[i]!= '\\0';i++)

str[i]=str1[i];

for(j=0;str2[j]!='\\0';j++)

str[i++]=str2[j];

_______;

}

正确答案:str[i]='\\0' 或 str[i]=0

3、以下函数的功能是计算x的y次方,请完善程序。

double fun(float x, int y)

{

int i=1;

double z=1;

if(y==0) return 1;

while( i<=y )

{

z= _______;

i++;

}

return z;

}

正确答案:z*x 或 x*z

4、如果函数不要求返回值,可用_____来定义函数为空类型。

正确答案:void

5、下面程序的运行结果:_______。

#include

int fan(int n)

{

int k;

if(n==0||n==1)

return 3;

else

k=n-fan(n-2);

return k;

}

int main()

{

printf(\"%d\\n\

return 0;

}

正确答案:7

6、/*下列程序是求n元数组的平均值,请完善程序。*/

#include

#define N 10

float aver (float array[ ], int n)

{

int i;

float sum=0;

for (i=0; isum=sum+array[i];

return sum/n;

}

int main()

{

int i;

float a[N];

for (i=0; iscanf(\"%f\

printf(\"平均值 %f\\n\

return 0;

}

正确答案:aver(a,N)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务