C语言函数练习题及答案Word文档格式.docx

上传人:b****5 文档编号:21260871 上传时间:2023-01-29 格式:DOCX 页数:24 大小:18.96KB
下载 相关 举报
C语言函数练习题及答案Word文档格式.docx_第1页
第1页 / 共24页
C语言函数练习题及答案Word文档格式.docx_第2页
第2页 / 共24页
C语言函数练习题及答案Word文档格式.docx_第3页
第3页 / 共24页
C语言函数练习题及答案Word文档格式.docx_第4页
第4页 / 共24页
C语言函数练习题及答案Word文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言函数练习题及答案Word文档格式.docx

《C语言函数练习题及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言函数练习题及答案Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

C语言函数练习题及答案Word文档格式.docx

实参将地址传递给形参,并释放原先占用的存储单元;

实参将地址传递给形参,调用结束时形参再将此地址回传给实参;

实参将值传递给形参,调用结束时形参再将其值回传给实参;

实参将值传递给形参,调用结束时形参并不将其值回传给实参;

D得分:

7

若用数组名作为函数调用的实参,则传递给形参的是?

数组第一个元素的地址;

数组的第一个元素的值;

数组中所有元素的值;

数组元素的个数;

8

【单选题】C语言规定了程序中各函数之间调用关系,以下说法正确的是?

∙A、既允许直接递归调用也允许间接递归调用;

∙B、不允许直接递归调用也不允许间接递归调用;

∙C、允许直接递归调用不允许间接递归调用;

∙D、不允许直接递归调用允许间接递归调用;

9

递归函数f(n)=f(n-1)+n 

(n>

1)的递归体是?

f

(1)=0   

f(0)=1

f(n)=f(n-1)+n

f(n)=n

10

若函数的形参为一维数组,则下列说法中正确的是()。

使用函数时的对应实参必为数组名。

形参数组可以不指定大小。

形参数组的元素个数必须等于实参数组的元素个数。

形参数组的元素个数必须多于实参数组的元素个数。

11

在函数调用过程中,如果函数fun 

A调用了函数fun 

B,函数fun 

B又调用了函数fun 

A,则()。

为函数的直接递归调用  

称为函数的间接递归调用

为函数的循环调用   

C语言中不允许这样的递归调用

12

有以下函数定义:

void 

fun(int 

n,double 

x) 

{……}

下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。

fun(int y,double m);

  

k=fun(10,12.5);

fun(x,n);

   

void fun(n,x);

13

已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的正确定义方式为______。

inta[3][4];

f(a);

f(int array[][6]) 

f(int array[3][])

f(int array[][4]) 

f(int array[2][5])

14

若程序中定义函数

float 

fadd(float 

a, 

b)

{

return 

a+b;

}

并将其放在调用语句之后,则在调用之前应对该函数进行说明。

以下说明中错误的是?

float fadd(float a,b);

float fadd(float b, float a) ;

float fadd(float, float) ;

float fadd(float a, float b) ;

15

下面程序段运行后的输出结果是?

(假设程序运行时输入5,3回车)

int 

b;

swap( 

t;

t=a;

a=b;

b=t;

main()

a,b;

scanf("

%d,%d"

&

&

b);

);

printf 

("

a=%d,b=%d\n"

a,b);

a=5,b=3

a=3,b=5

5,3

3,5

16

以下程序运行后的输出结果是?

fun 

(int 

x, 

y)

if(x>

y) 

x;

else 

y;

x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

printf("

%d\n"

r);

17

下列程序的输出结果是()。

#include"

stdio.h"

voidfun(inta,intb,intc)

 

c=a*b;

int 

main()

intc;

fun(2,3,c);

printf("

c);

return0;

无法确定

18

有以下程序,运行后的输出结果是( 

)。

#include<

stdio.h>

floatfun(intx,inty)

return(x+y);

voidmain()

inta=2,b=5,c=8;

printf(“%3.0f\n”,fun((int)fun(a+c,b),a-c));

编译出错

21

9.0

0.0分

19

以下描述正确的是?

调用函数时的实参只能是有确定值的变量;

return()语句的括号中,可以是变量、常量或有确定值的表达式;

C语言中,函数调用时实参和形参间的参数传递方式不都是值传递;

实参和形参若类型不匹配,编译时将报错;

20

已有以下代码

inta=6,b=3;

intmain()

inta=8;

(a>

b?

a:

b));

则程序的输出结果是()?

36

f()

staticintx=1;

x-=1;

%d,"

x);

inti;

for(i=0;

i<

4;

i++)

f();

return0;

则程序的输出是:

()?

1,2,3,4

0,1,2,3,

0,-1,-2,-3,

-1,-2,-3,-4,

22

C语言程序的基本单位是?

函数

过程

子程序

源程序文件

23

【单选题】以下说法中正确的是?

∙A、C语言程序总是从第一个定义的函数开始执行;

∙B、C语言程序中,要调用的函数必须在main()函数中定义;

∙C、总是从main()函数开始执行;

∙D、main()函数必须放在程序的开始部分;

24

在函数调用时,以下说法正确的是?

函数调用后必须带回返回值;

实际参数和形式参数可以同名;

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

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

25

【填空题】

下面程序段运行后的输出结果是:

_______

voidswap(inta, 

intb)

intt;

t=a;

a=b;

b=t;

inta,b;

scanf("

a,&

swap(a,b);

printf("

得分:

第一空:

批语

26

以下程序的功能是用递归方法计算工资,已知第一位员工工资最少,为3100元,其余员工工资一个比一个多500元,求第5位员工的工资。

请填空。

salary(int 

n)

s;

if(n==1)

s=3100;

else

s=salary(n-1)+500;

n=5;

printf(“sarary:

%d\n”,______);

salary(5)

27

分析以下程序的运行结果是_______

#include“stdio.h”

func(inta,intb)

c=a+b;

returnc;

intx=6,y,r;

y=x+2;

r=func(x++,y);

%d%d%d\n"

x,y,r);

7814

28

有如下程序

longfib(intn)

if(n>

2)

return(fib(n-1)+fib(n-2));

return2;

,fib(3));

该程序的输出结果是_______。

29

以下程序的输出结果是________。

f(int 

b[],int 

m,int 

i,s=0;

for(i=m;

i<

n;

i=i+2)

s=s+b[i];

returns;

x,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

,x);

30

以下程序的输出结果是_____。

fac_sum(int 

static 

f=1,t=1,s=0;

i;

t)

for(i=t+1;

=n;

i++)

f=f*i;

f=1;

for(i=1;

t=n;

s=s+f;

return(s);

a[]={3,5,2},i,sum;

for(i=0;

3;

sum=fac_sum(a[i]);

printf(“sum=%d\n”,sum);

sum=128

31

以下程序的运行结果是________。

#include<

intn=1;

staticintx=5;

voidfunc();

inty;

y=n;

MAIN:

x=%2dy=%2dn=%2d\n"

x,y,n);

func();

voidfunc()

staticintx=4;

inty=10;

x=x+2;

n=n+10;

y=y+n;

FUNC:

x=5y=1n=1FUNC:

x=6y=21n=11MAIN:

x=5y=1n=11FUNC:

x=8y=31n=21

32

输入一个整数10,以下程序的运行结果是_______。

intsub(int);

inta,e[10],c,i=0;

输入一个整数\n"

%d"

a);

while(a!

=0)

c=sub(a);

a=a/2;

e[i]=c;

i++;

for(;

i>

0;

i--)

e[i-1]);

intsub(inta)

c=a%2;

returnc;

1010

33

以下程序的运行结果是______。

voidfun();

for(i=0;

i++) 

fun();

voidfun()

staticintx=0;

x+=1;

%3d"

x);

123

34

intworkover(inti);

intreset(inti);

inti=0;

inti=5;

reset(i/2);

i=%d\n"

i);

reset(i=i/2);

workover(i);

intworkover(inti)

i=(i%i)*((i*i)/(2*i)+4);

returni;

intreset(inti)

i=i<

=2?

5:

i=5i=2i=2i=0i=2

35

【判断题】

函数调用时值传递方式特点:

形参与实参占用相同的内存单元,单向传递。

×

函数定义与函数说明不是同一个概念。

√得分:

37

c语言中,函数的定义不能嵌套,而调用是可以嵌套的。

38

函数调用时值传递特点:

无论是值传递还是地址传递,都是单向的。

39

函数调用时,当数组名作函数参数时,实参数组值与形参数组值不同。

40

一个C程序可以由一个或多个函数组成,其中必须有且只有一个main函数。

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

当前位置:首页 > 工作范文 > 行政公文

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

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