c语言-第8章--函数习题.doc
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
2.下载的文档,不会出现我们的网址水印。
3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
文档包含非法信息?点此举报后获取现金奖励!
下载文档到电脑,查找使用更方便
20
积分
还剩页未读,继续阅读
关 键 词:语言
函数
习题
资源描述:
第8章 函数习题
A卷
1. 单项选择题
(1)C 语言总是从 函数开始执行。 A
A. main B. 处于最前的 C.处于最后的 D. 随机选一个
(2)函数在定义时,省略函数类型说明符,则该函数值的类型为 。A
A. int B. float C. long D. double
(2)以下 函数,真正地没有返回值。 B
A. int a(){int a=2;return (a);} B. void b(){printf("c");}
C. int a(){int a=2;return a;} D. 以上都是
(3)在 C 语言中,有关函数的说法,以下正确的是 。 A
A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用
C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用
(4)以下函数调用语句中,含有实参的个数为 。C
fun((2,3),(4,5+6,7));
A. 1 B. 2 C. 5 D. 6
(5)函数调用可以在 。 D
A. 函数表达式中 B. 函数语句中 C. 函数参数中 D. 以上都是
(6)被调函数返回给主调函数的值称为 。C
A. 形参 B. 实参 C. 返回值 D. 参数
(7) ,可以不进行函数类型说明。 D
A. 被调函数的返回值是整型或字符型时 B. 被调函数的定义在主调函数定义之前时
C. 在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是
(8)被调函数通过 语句,将值返回给主调函数。 D
A. if B. for C. while D. return
(9)被调函数调用结束后,返回到 。 D
A.主调函数中该被调函数调用语句处
B.主函数中该被调函数调用语句处
C.主调函数中该被调函数调用语句的前一语句
D.主调函数中该被调函数调用语句的后一语句
(10)以下对 C语言函数的有关描述中,正确的是 。A
A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B. C函数既可以嵌套定义又可递归调用
C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个源程序文件中
(11)C 语言中函数的隐含存储类型是 。 C
A. auto B. static C. extern D. 无存储类型
(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是 。A
A. return 这两个数 B. 形参用两个元素的数组
C. 形参用两个这种数据类型的指针 D. 用两个全局变量
(13)C语言可执行程序从什么地方开始执行 ( )。 C
A. 程序中第一条可执行语句 B. 程序中第一个函数
C. 程序中的main函数 D. 包含文件中的第一个函数
(14)有一个函数原型如下所示,则该函数的返回类型为( ) 。 C
abc(float x,float y);
A. void B. double C. int D. float
2. 填空题
(1) 变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。 所处的位置,所处的位置,存储类型
(2) 说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。动态,auto
(3) 静态型局部变量的作用域是 ,生存期是 。它所在的局部,整个程序
(4) 函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。 址传递,值传递
(5) 函数的形式参数的作用域为 ,全局的外部变量和函数体内定义的局部变量重名时, _________变量优先。 该函数中,局部
(6) 若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 。 return,void
(7) 若函数的形式参数是指针类型,则实参可以是 或 。指针,数组名
(8) 函数的参数为 char *类型时,形参与实参结合的传递方式为 。址传递
(9) 函数的实参为常量时,形参与实参结合的传递方式为 。值传递
(10) 下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。int int int* *result
void mul(___x,___y,___result)
{
___=x*y;
}
3. 判断题
( )(1) 函数说明指的是在程序中设定一个函数模块。
( √ )(2) 形参只有在被调用时才分配存储空间。
( )(3) 在C的函数中,最好使用全局变量。
( )(4) 在调用函数时,实参传值给形参,调用结束时,形参值传给实参。
( √ )(5) 所有函数定义都是并行的,相互独立的。
( )(6) 函数的隐含存储类型是extern。
( )(7) 形参可以是常量、变量或表达式。
( )(8) 函数调用可以作为一个函数的形参。
( √ )(9) C语言规定,实参应与其对应的形参类型一致。
( )(10) 定义函数时,形参的类型说明可以放在函数体内。
4. 程序填空题
(1) 对数组按值从大到小的顺序排序后输出,请填空。
#include void main()
{
float a[7]={2,6,3,8,3,12,9};
int i ;
void sort(float*,int);
;
for(i=0;i<7;i++) printf("%f ",a[i]);
printf("\n");
}
void sort( )
{
int i,j,k; float t;
for(i=0;ivoid find(float *p, int max, int min, int n)
{
int k;
*max=*p;
for(k=1;kb)
f=1;
else if(a==b)
f=0;
else
f=-1;
return f;
}
-1
(2)键盘输入 abcdef#include void fun( )
{
char c ;
if((c=getchar( ))!=\n)
fun( ) ;
putchar(c);
}
void main( )
{ fun( ); }
fedcba
(3)
#include #define C 5
int x=1,y=C;
void main( )
{
int x;
x=y++; printf("%d %d\n", x,y);
if(x>4) { int x ; x=++y; printf("%d %d\n",x,y) ; }
x+=y--;
printf("%d %d\n",x,y);
}
5 6
7 7
12 6
(4)
#include int c , a=4 ;
func(int a , int b)
{ c=a*b ; a=b-1 ; b++ ; return (a+b+1) ; }
void main( )
{
int b=2 , p=0 ; c=1 ;
p=func(b , a) ;
printf("%d,%d,%d,%d\n", a,b,c,p) ;
}
4,2,8,9
(5)
unsigned fun6(unsigned num)
{
unsigned k=1;
do { k*=num%10; num/=10; }
while(num);
return k;
}
void main( )
{
unsigned n=26;
printf("%d\n", fun6(n));
}
12
(6)
#include int max(int a,int b);
main()
{
int x,y,z,t,m;
scanf("%d,%d,%d",&x,&y,&z);
t=max(x,y);
m=max(t,z);
printf("%d",m);
}
int max(int a,int b)
{
if(a>b)
return(a);
else
return(b);
}
运行时若输入:10,15,9 则输出:___ 15
运行时若输入:300,129,300 则输出:___ 300
(7)
#include long sum(int a,int b);
long factorial(int n);
main()
{
int n1,n2;
long a;
scanf("%d,%d",&n1,&n2);
a=sum(n1,n2);
printf("a=%1d",a);
}
long sum(int a,int b)
{
long c1,c2;
c1=factorial(a);
c2=factorial(b);
return(c1+c2);
}
long factorial(int n)
{
long rtn=1;
int i;
for(i=1;i<=n;i++)
rtn*=i;
return(rtn);
}
运行时若输入:2,3 则输出:___ 8
运行时若输入:0, 5 则输出:___ 121
(8)
#include int s();
int x,y;
main()
{
int n;
x=1;y=2;
n=s();
printf("x=%d,y=%d,n=%d",x,y,n);
}
int s()
{
int z;
x=3;y=4;
z=x+y;
return(z);
}
程序运行后输出:___ 3,4,7
(9) 以下程序的输出结果是a=___,b=___,c=___。
#include int func(int a,int *p);
void main()
{
int a=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);
}
int func(int a,int *p)
{
a++;
*p=a+2;
return(*p+a);
}
36 16 19
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:c语言-第8章--函数习题.doc
链接地址:https://www.renrendoc.com/p-26340562.html