c语言 第8章函数习题.docx
- 文档编号:29414698
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:12
- 大小:17.64KB
c语言 第8章函数习题.docx
《c语言 第8章函数习题.docx》由会员分享,可在线阅读,更多相关《c语言 第8章函数习题.docx(12页珍藏版)》请在冰豆网上搜索。
c语言第8章函数习题
第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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言 第8章 函数习题 语言 函数 习题