1、C语言题库函数C语言函数练习题一、选择题 1.在函数的说明和定义时若没有指出函数的类型,则( )A: 系统自动地认为函数的类型为整型。B: 系统自动地认为函数的类型为字符型。C: 系统自动地认为函数的类型为实型。D: 编译时会出错。2.下面正确的函数定义形式是( )A: double fun(int x,int y) B: double fun(int x;int y) C: double fun(int x,int y); D: double fun(int x,y); 3. 若调用一个函数,且此函数中没有return 语句,则正确的说法是:该函数( ) A: 没有返回值;B: 返回若干个系
2、统默认值;C: 能返回一个用户所希望的函数值;D: 返回一个不确定的值4. C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是( )A: float 型B: int 型C: long 型D: double 型5. C语言规定,函数返回值的类型是由( )(二级题)A: return 语句中的表达式类型所决定;B: 调用该函数时的主调函数类型所决定;C: 调用该函数时系统临时决定;D: 在定义该函数时所指定的函数类型所决定6.下面函数调用语句含有实参的个数为( )func(exp1,exp2),(exp3,exp4,exp5); A: 1 B: 2 C: 5 D: 4 7. 以下错误的
3、描述是( )函数的调用可以A: 出现在执行语句中;B: 出现在一个表达式中;C: 为一个函数的实参;D: 作为一个函数的形参;8.若函数的形参为一维数组,则下列说法中正确的是( )A: 调用函数时的对应实参必为数组名。B: 形参数组可以不指定大小。C: 形参数组的元素个数必须等于实参数组的元素个数。D: 形参数组的元素个数必须多于实参数组的元素个数。9.下面叙述中正确的是( )A: 对于用户自己定义的函数,在使用前必须加以说明。B: 说明函数时必须明确其参数类型和返回类型。C: 函数可以返回一个值,也可以什么值也不返回。D: 空函数不完成任何操作,所以在程序设计中没有用处。10.若使用一维数组
4、名作函数参数,则以下正确的说法是( )A: 必须在主调用函数中说明此数组的大小;B: 实参数组类型与形参数组类型可以匹配;C: 在被调函数中,不需要考虑形参数组的大小;D: 实参数组名与形参数组名必须一致11. 下面说法中不正确的是( ) 在C 语言中A: 实参可以是常量、变量或表达式;B: 形参可以是常量、变量或表达式;C: 函数的参数是函数间传递数据的一种手段;D: 实参个数应与对应的形参个数相等,类型匹配12. 以下叙述中正确的是( ) A 全局变量的作用域一定比局部变量的作用域范围大B 静态(static)类别变量的生存期贯穿于整个程序的运行期间C 函数的形参都属于全局变量D 未在定义
5、语句中赋初值的auto变量和static变量的初值都是随机值13.下面程序的输出结果是( ) #include void num() extern int x,y; int a=15,b=10; x=a-b; y=a+b; int x,y; main() int a=7,b=5; x=a-b; y=a+b; num(); printf(%d,%dn,x,y); A: 12,2 B: 5,25 C: 1,12 D: 输出不确定14.下面程序的输出结果是( )#includef(int a) int b=0; static int c=3; b+; c+; return(a+b+c);main()
6、 int a=2,i; for(i=0;i3;i+) printf(%d ,f(a); A: 7 7 7 B: 7 10 13C: 7 9 11D: 7 8 9 15.下面程序的输出结果是( )#include tr() static int x=3; x+; return(x);main() int i, x; for(i=0; i=2; i+ ) x=tr(); printf(%dn, x);A: 3 B: 4 C: 5 D: 616. 下面程序的输出结果是( )#include main( ) int x=1; void f1( ); void f2(int); f1( ); f2(x)
7、; printf(%dn, x); void f1() int x=3; printf(%d , x); int x; void f2(int x ) printf(%d , +x); A: 1 1 1 B: 2 2 2 C: 3 3 3 D: 3 2 1 17.下列叙述中错误的是( )A: 主函数中定义的变量在整个程序中都是有效的。B: 在其它函数中定义的变量在主函数中也不能使用。C: 形式参数也是局部变量。D: 复合语句中定义的变量只在该复合语句中有效。18.下正确的说法是( )如果在一个函数中的复合语句中定义了一个变量,则该变量A: 只在该复合语句中有效B: 在该函数中有效C: 本程序中
8、有效D: 为非法变量19.下面程序的输出结果是( )#include main( ) int x=10; int x=20; printf (%d, x); printf(%dn, x); A: 10,20B: 20,10C: 10,10D: 20,20 20. 以下叙述中不正确的是( )A在不同的函数中可以使用相同名字的变量B函数中的形式参数是局部变量C在一个函数内定义的变量只在本函数范围内有效D在一个函数内的复合语句中定义的变量在本函数范围内有效21. 下面说法中不正确的是( )A全局变量一定是外部变量B局部变量一定是内部变量。C全局变量作为函数间传递数据的手段时,与文件的作用类似,都是通
9、过共享某种资源来传递数据。D全局变量与局部变量不可以重名。22. 以下程序的正确运行结果是( )(二级题)#includefunc(int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return(m);void main() int k=4,m=1,p; p=func(k,m); printf(%d,p); p=func(k,m); printf(%d,p);A8,17 B8,16 C8,20D8,823.C语言程序的基本单位是( )(二级题)A. 程序行B. 语句 C. 函数D. 字符24.C语言规定,程序中各函数之间( )(二级题)A. 既
10、允许直接递归调用也允许间接递归调用B. 不允许直接递归调用也不允许间接递归调用C. 允许直接递归调用不允许间接递归调用 D. 不允许直接递归调用允许间接递归调用25.C语言可执行程序的开始执行点是( )(二级题)A. 程序中第一条可执行语句 B. 程序中第一个函数 C. 程序中的main函数 D. 包含文件中的第一个函数26.C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为( )(二级题)A. 该数组的长度。 B. 该数组的元素个数。C. 该数组中各元素的值。 D. 该数组的首地址。27.当调用函数时,实参是一个数组名,则向函数传送的是( )(二级题)A. 数组的长度 B. 数组
11、的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值28.若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b);在此函数调用语句中实参的个数是( )(二级题)A.3 B.4 C.5 D.629.在C语言中,函数的隐含存储类别是( )(二级题)A. auto B. static C. extern D. 无存储类别30.在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是( )类型(二级题) A. void B. double C. int D. char31.在C语言中,形参的缺省存储类是( )(二级题)A. auto B. register C.
12、static D. extern32.以下函数值的类型是( )(二级题)fun ( float x ) float y; y= 3*x-4; return y; A. int B. 不确定 C. void D. float33.以下说法中正确的是( )(二级题) A. C语言程序总是从第一个的函数开始执行 B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分34.以下所列的各函数首部中,正确的是( )(二级题) A. void play(var a:integer,var b:
13、integer) B. void play(int a,b) C. void play(int a,int b) D. sub play(a as integer,b as integer)35.以下叙述中不正确的是( )(二级题) A. 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。 B. 在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容。 C. 在C中,外部变量的隐含类别是自动存储类别。 D. 在C中,函数形参可以说明为register变量。36.以下叙述中不正确的是( )(二级题)A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量 C. 在
14、一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效37.以下程序运行后,输出结果是( )(二级题)#includeint d=1; fun (int p) int d=5; d+=p+; printf(%d,d); main() int a=3; fun(a); d+=a+; printf(%dn,d); A.84 B.99 C.95 D.44 38.以下对C语言函数的有关描述中,正确的是( )(二级题) A. 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值
15、,否则不能使用函数 D. C程序中有调用关系的所有函数必须放在同一个源程序文件中39.有如下程序 #includeint func(int a,int b) return(a+b); main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(%dn,r); 该程序的输出的结果是( )(二级题)A. 12 B. 13 C. 14 D. 1540.有如下程序( )(二级题)#includelong fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); main() printf(%d
16、n,fib(3);该程序的输出结果是 A. 2 B. 4 C. 6 D. 841.以下程序的输出结果是( )(二级题) #includeint a, b; void fun() a=100; b=200; main() int a=5, b=7; fun(); printf(%d%dn, a,b); A. 100200 B. 57 C. 200100 D. 7542.以下程序运行后,输出结果是( )(二级题)#includefunc (int a,int b) int m=0 ,i=2; i+=m+1; m=i+a+b ; return(m); main() int k=4,m=1,p; p=
17、func(k,m); printf(%d,p); p=func(k,m); printf(%dn,p); A 8,15 B 8,16 C 8,17D 8,8 43.以下程序的输出结果是( )(二级题)#includelong fun( int n) long s; if(n=1 | n=2) s=2; else s=n-fun(n-1); return s; main() printf(%ldn, fun(3); A. 1 B. 2 C. 3 D. 4 44.以下程序的输出结果是( )(二级题)#includeint d=1; fun(int p) static int d=5; d+=p;
18、printf(%d ,d); return(d); main( ) int a=3; printf(%d n,fun(a+fun(d); A. 6 9 9 B. 6 6 9 C. 6 15 15 D. 6 6 15 45.下面程序的输出是( )(二级题)#includeint w=3; fun(int k) if(k=0) return w; return(fun(k-1)*k); main() int w=10; printf(%dn,fun(5)*w); A.360 B.3600 C.1080 D.120046.下面程序的输出是( )(二级题)#includeint m=13; int f
19、un2(int x, int y) int m=3; return(x*y-m); main() int a=7, b=5; printf(%dn,fun2(a,b)/m); A. 1 B. 2 C. 7 D. 10 47.下面程序的输出是( )(二级题)#includefun3(int x) static int a=3; a+=x; return(a); main() int k=2, m=1, n; n=fun3(k); n=fun3(m); printf(%dn,n); A. 3 B. 4 C. 6 D. 9 48.C语言中函数能否嵌套调用和递归调用( )(二级题)A.二者均不可 B.
20、前者可,后者不可 C.前者不可,后者可 D.二者均可49.有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5); 该函数调用语句中,含有的实参个数是( )(二级题) A. 3 B. 4 C. 5 D. 有语法错50.有以下程序#includevoid fun(int a,int n) int i; for(i=0;in;i+) if(i%2=0) ai+=n; else ai-=n; main() int c5=5,4,3,2,1,i; fun(c,5); for(i=0;i5;i+) printf(%d,ci); printf(n);程序运行后输出的结果是( )
21、(二级题)A.10,-1,8,-3,6,B.5,4,3,2,1,C.10,2,8,4,6,D.5,-1,3,-3,1,51.有以下程序#include#define N 4void fun(int aN) int i; for(i=0;iN;i+) a0i=aN-1N-1-i; main() int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i; fun(x); for(i=0;iN;i+) printf(%d,xii); printf(n);程序运行后输出的结果是( )(二级题)A.16,6,11,16,B.1,6,11,16,C.4,7,10,1
22、3,D.17,17,17,17,52.有以下程序#include#define N 4double fun(double a) double x; x=a-(int)a; return x; main() double a=3.1415; printf(%fn,fun(a);程序的运行结果是( )(二级题)A.3.000000B.3.141500C.0.141500D.0.00000053.有如下程序#includeint sum(int data) static int init=1; return init +=data;main() int i; for(i=1;i=1;i+) prin
23、tf(%d,sum(i); printf(n);程序运行后输出的结果是( )(二级题)A.2,B.2,3,C.3,D.1,54.以下针对全局变量的叙述错误的是( )(二级题)A.全局变量的作用域是从定义位置开始至源文件结束B.全局变量是在函数外部任意位置上定义的变量C.用extern说明符可以限制全局变量的作用域D.全局变量的生存期贯穿于整个程序运行期间55.有以下程序#includevoid fun(int a,int n) int i; for(i=0;in;i+) if(i%3=0) ai-=n; else ai+=n; main() int c5=6,7,8,9,10,i; fun(c
24、,5); for(i=0;i5;i+) printf(%d,ci); printf(n);程序运行后输出的结果是( )(二级题)A.1,12,13,4,15,B.10,9,8,7,6,C.1,7,13,9,15,D.10,12,8,4,6,56.有以下程序#includeint sub(double a,double b) return (int)(a-b-1.3);main() printf(%dn,sub(3.2,4.1);程序运行后输出的结果是( )(二级题)A.-2B.1.7C.-3D.2.057.有如下程序#includevoid convert(char ch) if(chX) c
25、onvert(ch+1); printf(%c,ch);main() convert(W); printf(n);程序运行后输出的结果是( )(二级题)A.YZB.VWC.XYD.XW58.有如下程序#includevoid get_put() char ch; ch=getchar(); if(ch!=n) get_put(); putchar(ch);main() get_put();程序运行时,输入ABCD,则输出结果是( )(二级题)A.DCDCB.DCBAC.BABAD.ABCD59.以下叙述错误的是( )(二级题)A.未经赋值的全局变量值不确定B.未经赋值的auto变量值不确定C.
26、未经赋值的register变量值不确定D.未经赋值的静态局部变量值为060.有如下程序#includeint sum(int a,int b) return a+b-2;main() int i; for(i=0;i5;i+) printf(%d,sum(i,3); printf(n);程序运行后的输出结果是( )(二级题)A.54321B.01234C.45678D.12345二、填空题1. C 语言规定,可执行程序的开始执行点是 。2.阅读以下程序,若输入15,写出程序运行结果 。#include stdio.hint main( ) int n; void dectobin(int n); scanf(%d,&n); dectobin(n); printf(n); void dectobin(int n) int a16=0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1