c语言函数习题.docx

上传人:b****4 文档编号:24532559 上传时间:2023-05-28 格式:DOCX 页数:12 大小:17.22KB
下载 相关 举报
c语言函数习题.docx_第1页
第1页 / 共12页
c语言函数习题.docx_第2页
第2页 / 共12页
c语言函数习题.docx_第3页
第3页 / 共12页
c语言函数习题.docx_第4页
第4页 / 共12页
c语言函数习题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

c语言函数习题.docx

《c语言函数习题.docx》由会员分享,可在线阅读,更多相关《c语言函数习题.docx(12页珍藏版)》请在冰豆网上搜索。

c语言函数习题.docx

c语言函数习题

第8章函数习题

A卷

1.单项选择题

(1)C语言总是从函数开始执行。

A

A.mainB.处于最前的C.处于最后的D.随机选一个

(2)函数在定义时,省略函数类型说明符,则该函数值的类型为。

A

A.intB.floatC.longD.double

(2)以下函数,真正地没有返回值。

B

A.inta(){inta=2;return(a);}B.voidb(){printf("c");}

C.inta(){inta=2;returna;}D.以上都是

(3)在C语言中,有关函数的说法,以下正确的是。

A

A.函数可嵌套定义,也可嵌套调用B.函数可嵌套定义,但不可嵌套调用

C.函数不可嵌套定义,但可嵌套调用D.函数不可嵌套定义,也不可嵌套调用

(4)以下函数调用语句中,含有实参的个数为。

C

fun((2,3),(4,5+6,7));

A.1B.2C.5D.6

(5)函数调用可以在。

D

A.函数表达式中B.函数语句中C.函数参数中D.以上都是

(6)被调函数返回给主调函数的值称为。

C

A.形参B.实参C.返回值D.参数

(7),可以不进行函数类型说明。

D

A.被调函数的返回值是整型或字符型时B.被调函数的定义在主调函数定义之前时

C.在所有函数定义前,已在函数外预先说明了被调函数类型D.以上都是

(8)被调函数通过语句,将值返回给主调函数。

D

A.ifB.forC.whileD.return

(9)被调函数调用结束后,返回到。

D

A.主调函数中该被调函数调用语句处

B.主函数中该被调函数调用语句处

C.主调函数中该被调函数调用语句的前一语句

D.主调函数中该被调函数调用语句的后一语句

(10)以下对C语言函数的有关描述中,正确的是。

A

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.C函数既可以嵌套定义又可递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

(11)C语言中函数的隐含存储类型是。

C

A.autoB.staticC.externD.无存储类型

(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是。

A

A.return这两个数B.形参用两个元素的数组

C.形参用两个这种数据类型的指针D.用两个全局变量

(13)C语言可执行程序从什么地方开始执行()。

C

A.程序中第一条可执行语句B.程序中第一个函数

C.程序中的main函数D.包含文件中的第一个函数

(14)有一个函数原型如下所示,则该函数的返回类型为()。

C

abc(floatx,floaty);

A.voidB.doubleC.intD.float

2.填空题

(1)变量的作用域主要取决于变量,变量的生存期既取决于变量,又取决于变量。

所处的位置,所处的位置,存储类型

(2)说明变量时,若省略存储类型符,系统默认其为存储类别,该存储类别的类型符为:

动态,auto

(3)静态型局部变量的作用域是,生存期是。

它所在的局部,整个程序

(4)函数中的形参和调用时的实参都是数组名时,传递方式为,都是变量时,传递方式为。

址传递,值传递

(5)函数的形式参数的作用域为,全局的外部变量和函数体内定义的局部变量重名时,_________变量优先。

该函数中,局部

(6)若自定义函数要求返回一个值,则应在该函数体中有一条语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符。

return,void

(7)若函数的形式参数是指针类型,则实参可以是或。

指针,数组名

(8)函数的参数为char*类型时,形参与实参结合的传递方式为。

址传递

(9)函数的实参为常量时,形参与实参结合的传递方式为。

值传递

(10)下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。

intintint**result

voidmul(___x,___y,___result)

{

___=x*y;

}

3.判断题

(×)

(1)函数说明指的是在程序中设定一个函数模块。

(√)

(2)形参只有在被调用时才分配存储空间。

(×)(3)在C的函数中,最好使用全局变量。

(×)(4)在调用函数时,实参传值给形参,调用结束时,形参值传给实参。

(√)(5)所有函数定义都是并行的,相互独立的。

(×)(6)函数的隐含存储类型是extern。

(×)(7)形参可以是常量、变量或表达式。

(×)(8)函数调用可以作为一个函数的形参。

(√)(9)C语言规定,实参应与其对应的形参类型一致。

(×)(10)定义函数时,形参的类型说明可以放在函数体内。

4.程序填空题

(1)对数组按值从大到小的顺序排序后输出,请填空。

#include

voidmain()

{

floata[7]={2,6,3,8,3,12,9};

inti;

voidsort(float*,int);

;

for(i=0;i<7;i++)printf("%f",a[i]);

printf("\n");

}

voidsort()

{

inti,j,k;floatt;

for(i=0;i

{

k=i;

for(j=i+1;j

if()k=j;

{t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}

}

}

sort(a,7)float*p,intn*(p+k)<*(p+j)if(k!

=i)

(2)下列函数在n个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。

#include

voidfind(float*p,intmax,intmin,intn)

{

intk;

*max=*p;

for(k=1;k

{

t=*(p+k);

if()*max=t;

if(t<*min)*min=t;

}

}

floatt;*min=*p;*max

B卷

5.写出下列程序运行结果

(1)

main()

{

inti=1,p;

p=fun(i,i+1);

printf("%d\n",p);

}

intfun(inta,intb)

{

intf;

if(a>b)

f=1;

elseif(a==b)

f=0;

else

f=-1;

returnf;

}

-1

(2)键盘输入abcdef

#include

voidfun()

{

charc;

if((c=getchar())!

='\n')

fun();

putchar(c);

}

voidmain()

{fun();}

fedcba

(3)

#include

#defineC5

intx=1,y=C;

voidmain()

{

intx;

x=y++;printf("%d%d\n",x,y);

if(x>4){intx;x=++y;printf("%d%d\n",x,y);}

x+=y--;

printf("%d%d\n",x,y);

}

56

77

126

(4)

#include

intc,a=4;

func(inta,intb)

{c=a*b;a=b-1;b++;return(a+b+1);}

voidmain()

{

intb=2,p=0;c=1;

p=func(b,a);

printf("%d,%d,%d,%d\n",a,b,c,p);

}

4,2,8,9

(5)

unsignedfun6(unsignednum)

{

unsignedk=1;

do{k*=num%10;num/=10;}

while(num);

returnk;

}

voidmain()

{

unsignedn=26;

printf("%d\n",fun6(n));

}

12

(6)

#include

intmax(inta,intb);

main()

{

intx,y,z,t,m;

scanf("%d,%d,%d",&x,&y,&z);

t=max(x,y);

m=max(t,z);

printf("%d",m);

}

intmax(inta,intb)

{

if(a>b)

return(a);

else

return(b);

}

运行时若输入:

10,15,9则输出:

___15

运行时若输入:

300,129,300则输出:

___300

(7)

#include

longsum(inta,intb);

longfactorial(intn);

main()

{

intn1,n2;

longa;

scanf("%d,%d",&n1,&n2);

a=sum(n1,n2);

printf("a=%1d",a);

}

longsum(inta,intb)

{

longc1,c2;

c1=factorial(a);

c2=factorial(b);

return(c1+c2);

}

longfactorial(intn)

{

longrtn=1;

inti;

for(i=1;i<=n;i++)

rtn*=i;

return(rtn);

}

运行时若输入:

2,3则输出:

___8

运行时若输入:

0,5则输出:

___121

(8)

#include

ints();

intx,y;

main()

{

intn;

x=1;y=2;

n=s();

printf("x=%d,y=%d,n=%d",x,y,n);

}

ints()

{

intz;

x=3;y=4;

z=x+y;

return(z);

}

程序运行后输出:

___3,4,7

(9)以下程序的输出结果是a=___,b=___,c=___。

#include

intfunc(inta,int*p);

voidmain()

{

inta=1,b=2,c;

c=func(a,&b);

b=func(c,&a);

a=func(b,&c);

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

}

intfunc(inta,int*p)

{

a++;

*p=a+2;

return(*p+a);

}

361619

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

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

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

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