C程序设计函数的声明与调用习题与答案.docx

上传人:b****3 文档编号:3675385 上传时间:2022-11-24 格式:DOCX 页数:11 大小:17.68KB
下载 相关 举报
C程序设计函数的声明与调用习题与答案.docx_第1页
第1页 / 共11页
C程序设计函数的声明与调用习题与答案.docx_第2页
第2页 / 共11页
C程序设计函数的声明与调用习题与答案.docx_第3页
第3页 / 共11页
C程序设计函数的声明与调用习题与答案.docx_第4页
第4页 / 共11页
C程序设计函数的声明与调用习题与答案.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C程序设计函数的声明与调用习题与答案.docx

《C程序设计函数的声明与调用习题与答案.docx》由会员分享,可在线阅读,更多相关《C程序设计函数的声明与调用习题与答案.docx(11页珍藏版)》请在冰豆网上搜索。

C程序设计函数的声明与调用习题与答案.docx

C程序设计函数的声明与调用习题与答案

一、单选题

1、以下关于函数的叙述中正确的是()。

A.每个函数都可以被其它函数调用(包括main函数)

B.每个函数都可以被单独编译

C.每个函数都可以单独运行

D.在一个函数内部可以定义另一个函数

正确答案:

B

2、对于函数,正确的说法是()。

A.必须包含函数体

B.必须有返回信息

C.必须有返回语句

D.必须有形式参数

正确答案:

A

3、以下叙述中正确的是()。

A.函数的定义和函数的调用均不可以嵌套

B.函数的定义和函数的调用均可以嵌套

C.函数的定义可以嵌套,但函数的调用不可以嵌套

D.函数的定义不可以嵌套,但函数的调用可以嵌套

正确答案:

D

4、以下叙述中正确的是()。

A.C语言所有函数本质上都是外部函数

B.C语言编译时不检查语法

C.C语言的子程序有过程和函数两种

D.C语言的函数可以嵌套定义

正确答案:

A

5、以下函数定义正确的是()。

A.doublef(intx,inty)

{z=x+y;

returnz;

}

B.doublef(intx,inty)

{doublez;

z=x+y;

returnz;

}

C.doublef(intx,y)

{doublez=x+y;

returnz;

}

D.doublef(x,y)

{intx,y;

doublez;

z=x+y;

returnz;

}

正确答案:

B

6、若调用一个函数intf(),且此函数中没有return语句,则正确的说法是()。

A.该函数没有返回值

B.该函数返回一个确定的值

C.该函数返回一个不确定的值

D.该函数返回一个系统默认值

正确答案:

C

7、若定义函数:

fun(inta,floatb){

returna+b;

}

则该函数的返回类型是()。

A.不确定

B.void

C.int

D.float

正确答案:

C

8、C语言规定,函数返回值的类型是由()决定的。

A.return语句中的表达式类型

B.调用该函数时由系统临时

C.调用该函数时的主调函数

D.在定义函数时所指定的函数类型

正确答案:

D

9、对于函数返回类型,不正确的说法是()。

A.可以是int类型

B.可以是void类型

C.可以是char类型

D.可以是数组类型

正确答案:

D

10、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。

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

B.函数调用可以作为独立的语句存在

C.函数调用可以出现在表达式中

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

正确答案:

A

11、基本类型变量做实参时,它和对应的形参之间的数据传递方式是()。

A.值传递

B.地址传递

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

D.由函数定义指定传递方式

正确答案:

A

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

A.形参可以是常量、变量或表达式

B.实参可以是常量、变量或表达式

C.实参可以为任意类型

D.如果形参与实参的类型不一致,以形参类型为准

正确答案:

A

13、以下函数调用语句中,含有的实参个数是()。

Fcalc(exp1,(exp3,exp4,exp5));

A.3

B.1

C.2

D.4

正确答案:

C

14、在函数调用时,以下叙述中正确的是()。

A.实际参数和形式参数可以同名

B.函数间的数据传递不可以使用全局变量

C.函数调用后必须带回返回值

D.主调函数和被调函数总是在同一个文件里

正确答案:

A

15、下面程序执行后的输出结果是()。

#include

voidF(intx){return(3*x*x);}

intmain(){

printf("%d",F(3+5));

return0;

}

A.编译出错

B.192

C.25

D.29

正确答案:

A

16、设函数f的定义形式为:

voidf(charch,floatx){......}

则以下对函数f的调用语句中,正确的是()。

A.t=f('D',16.5);

B.f("abc",3.0);

C.f(32,32);

D.f('65',2.8);

正确答案:

C

17、若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是()。

A.intmain()

{floatfun(inti,intj);

……x=fun(i,j);……}

floatfun(inta,intb){……}

B.floatfun(int,int);

intmain()

{……x=fun(2,10);……}

floatfun(inta,intb){……}

C.floatfun(inta,intb){……}

intmain()

{……x=fun(i,j);……}

D.intmain()

{……x=fun(2,10);……}

floatfun(inta,intb){……}

正确答案:

D

18、若程序中定义了以下函数:

doublef(doublea,doubleb)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行函数原型说明,以下选项

中错误的说明是()。

A.doublef(double,double);

B.doublef(doublex,doubley);

C.doublef(doubleb,doubleA);

D.doublef(doublea,b);

正确答案:

D

19、关于函数原型声明,以下叙述中错误的是()。

A.函数在调用之前,一定要给出函数原型或函数定义,保证编译系统进行调用检查

B.如果函数定义出现在函数调用之前,可以不必加函数原型声明

C.标准库函数不需要函数原型声明

D.如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明

正确答案:

C

20、在C语言中,计算正确的是()。

A.x**y

B.pow(x,y)

C.power(x,y)

D.x^y

正确答案:

B

21、有以下程序:

#include

voidf(intn);

intmain()

{voidf(intn);

f(5);

return0;

}

voidf(intn)

{printf("%d\n",n);}

以下叙述中错误的是()。

A.函数f无返回值,所以可用void将其类型定义为无值型

B.对于以上程序,编译时系统会提示出错信息:

“提示对f函数重复说明”。

C.若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

D.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

正确答案:

B

22、下列哪个类型函数不适合声明为内联函数()。

A.函数调用比较频繁

B.函数体语句较多

C.函数体语句较少

D.函数执行时间较短

正确答案:

B

23、在()情况下适宜采用inline定义内联函数。

A.函数体含有递归语句

B.需要加快程序的执行速度

C.函数代码多、不常调用

D.函数体含有循环语句

正确答案:

B

24、在函数调用过程中,如果函数A调用了函数B,函数B又调用了函数A,则()。

A.称为函数的直接递归调用

B.C语言中不允许这样的调用

C.称为函数的循环调用

D.称为函数的间接递归调用

正确答案:

D

25、下面程序执行后的输出结果是()。

#include

charf(charx,chary)

{

if(x>y)returny;

elsereturnx;

}

intmain()

{chara='9',b='8',c='7',d='6';

printf("%c",f(f(a,b),f(c,d)));

return0;

}

A.9

B.6

C.8

D.7

正确答案:

B

26、有以下程序段:

intfun1(doublea){returna*=a;}

intfun2(doublex,doubley)

{doublea=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b);

}

且doublew;执行语句w=fun2(1.1,2.0);后变量w的值是()。

A.0.0

B.5.0

C.5

D.5.21

正确答案:

B

27、下面程序执行后的输出结果是()。

#include

voidfun(intx,inty,intz)

{z=x*x+y*y;}

intmain()

{inta=31;

fun(5,2,a);

printf("%d",a);

return0;

}

A.31

B.29

C.无定值

D.0

正确答案:

A

28、下面程序执行后的输出结果是()。

#include

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn

(2);

}

intmain()

{printf("%d",fib(3));

return0;

}

A.6

B.2

C.8

D.4

正确答案:

D

29、下面程序执行后的输出结果是()。

#include

intf(intn)

{if(n==1)return1;

returnf(n-1)+1;}

intmain()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d",j);

return0;

}

A.2

B.3

C.4

D.1

正确答案:

B

30、设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,

下列表达式不正确的是()。

A.intm=max(22,59,70);

B.intm=max(max(22,59),70);

C.intm=max(59,max(22,70));

D.intm=max(22,max(59,70));

正确答案:

A

31、对于以下递归函数f,调用f(4)的返回值是__________。

intf(intn){

if(n)returnf(n-1)+n;

elsereturnn;

}

A.4

B.无穷递归

C.10

D.14

正确答案:

C

三、填空题

1、C语言函数返回类型的默认定义类型是__________(使用类型标识符描述)。

正确答案:

int

2、可以将被调函数中获得的值返回给主调函数的语句是__________。

正确答案:

return

3、函数fun的功能是计算

doublefun(doublex,intn)

{inti;

doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函数中已经正确定义m,a,b变量并赋值,调用fun函数计算m=a4+b4-(a+b)3:

的调用语句为______________________________。

正确答案:

m=fun(a,4)+fun(b,4)-fun(a+b,3);

5、若函数定义为:

intdata(){

floatx=9.9;

return(x);

}

则函数返回的值是__________。

正确答案:

9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1