C语言全部函数集合,C语言习题集合5(函数)

《C语言习题集合5(函数)》由会员分享,可在线阅读,更多相关《C语言习题集合5(函数)(24页珍藏版)》请在人人文库网上搜索。

1、第五部分 函 数51 选择题1C语言是由( )构成。A.主程序和子程序B.主函数和若干子函数C.一个主函数和一个其他函数D.主函数和子程序2以下说法中正确的是( )。A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分3以下对C语言函数的有关描述中,正确的是( )。A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个。

2、源程序文件中4C语言程序中,当函数调用时( )。A.实参和形参各占一个独立的存储单元B.实参和形参共用一个存储单元C.可以由用户指定是否共用存储单元D.计算机系统自动确定是否共用存储单元 5关于return语句,下列正确的说法是( )。A.在主函数和其他函数中均要出现B.必须在每个函数中出现C.可以在同一个函数中出现多次D.只能在除主函数之外的函数中出现一次6一个函数返回值的类型是由( )决定的。A.return语句中表达式的类型B.在调用函数时临时指定C.定义函数时指定的函数类型D.调用该函数的主调函数的类型7在C语言的函数中,下列正确的说法是( )。A.必须有形参B.形参必须是变量名C.可。

3、以有也可以没有形参D.数组名不能作形参8以下描述正确的是( )。A.函数调用可以出现在执行语句或表达式中B.函数调用不能作为一个函数的实参C.函数调用可以作为一个函数的形参D.以上都不正确9在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。A. 地址传递 B. 单向值传递C. 由实参传给形参,再由形参传回实参 D. 传递方式由用户指定10当调用函数时,实参是一个数组名,则向函数传送的是( )。A. 数组的长度 B. 数组的首地址C. 数组每一个元素的地址 D. 数组每个元素中的值11如果在一个函数的复合语句中定义了一个变量,则该变量( )。A.只在该复合语句中有效,在该。

4、复合语句外无效B.在该函数中任何位置都有效C.在本程序的源文件范围内均有效D.此定义方法错误,其变量为非法变量 12下列说法不正确的是( )。A.主函数main中定义的变量在整个文件或程序中有效B.不同函数中,可以使用相同名字的变量C.形式参数是局部变量D.在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效13在一个源程序文件中定义的全局变量的有效范围是( )。A.本源程序文件的全部范围B.一个C程序的所有源程序文件C.函数内全部范围D.从定义变量的位置开始到源程序文件结束14以下叙述中不正确的是( )。A.在不同的函数中可以使用相同名字的变量B.函数中的形式参数是局部变量。

5、C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效15如果要限制一个变量只能为本文件所使用,必须通过( )来实现。A.外部变量说明 B. 静态局部变量C.静态外部变量 D. 局部变量说明16下列哪种数据不存放在动态存储区中( )。A.函数形参变量 B. 局部自动变量C.函数调用时的现场保护和返回地址 D. 局部静态变量17以下叙述中不正确的是( )。A.函数中的自动变量可以赋初值,每调用一次,赋一次初值。B.在调用函数时,实在参数和对应形参在类型上只需赋值兼容。C.外部变量的隐含类别是自动存储类别。D.函数形参可以说明为register变量。。

6、18以下只有在使用时才为该类型变量分配内存的存储类说明是( )。A. auto和 static B. auto和 registerC. register和 static D. extern和 register19C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( )。A. void B. int C. float D. double20在C语言中,函数的隐含存储类别是( )。A. auto B. static C. extern D. 无存储类别21在C语言中,形参的缺省存储类是( )。A. auto B. register C. static D. extern22若有以下程序#i。

7、nclude void f(int n);main() void f(int n);f(5);void f(int n)printf(%dn,n); 则以下叙述中不正确的是( )。A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D.函数f无返回值,所以可用void将其类型定义为无值型23以下所列的各函数首部中,正确的是( )。A.void play(var :Integer,var b:Integer)B.void play(int。

8、 a,b)C.void play(int a,int b)D.Sub play(a as integer,b as integer)24有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( )。A. 3 B. 4 C. 5 D. 有语法错25若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b);在此函数调用语句中实参的个数是( )。A.3 B.4 C.5 D.626以下函数值的类型是( )。fun (float x) float y;y= 3*x-4;return y;A. int B. 不确定 C.。

9、 void D. float27下列函数定义不正确的是( )。A. int max() B. int max(x,y) int x,y,z; int x,y; z=xy?x:y; int z; z=xy?x:y;return(z);C. int max(x,y) D. int max()int x,y,z; z=xy?x:y;return(z);28下列程序的运行结果是( )。main()int i=3;printf(%d,%d,%dn,i,i+,i+);A. 5,5,4 B. 3,4,5 C. 3,3,4 D. 5,4,329以下程序的输出结果是( )。fun(int x, int y, i。

10、nt z) z=x*x+y*y; main()int a=31;fun(5,2,a);printf(%d,a);A. 0 B. 29 C. 31 D. 无定值30下列程序执行后的输出结果是( )。void func1(int i);void func2(int i);char st=hello,friend!;void func1(int i) printf(%c,sti);if(ifunc( int a, int b) int c;c=a+b;return c;main() int x=6, y=7, z=8, r;r=func( (x-,y-,x+y),z-);printf(%dn,r);。

11、上面程序的输出结果是( )。A. 11 B. 19 C. 21 D. 3138请读程序:#includef(in b, int n) int i, r;r=1; for(i=0; i2) return(fib(n-1)+fib(n-2);else return(2);main() printf(%dn,fib(3); 该程序的输出结果是( )。A. 2 B. 4 C. 6 D. 841以下程序的输出结果是( )。long fun( int n) long s;if(n=1 | n=2) s=2;else s=n-fun(n-1);return s;main() printf(%ldn, fun。

12、(3); A. 1 B. 2 C. 3 D. 442以下程序的输出结果是( )。func(int x)int p;if(x=0|x=1) return(3);p=x-func(x-2);return p;main() printf(%dn,func(9);A. 7 B. 2 C. 0 D. 343有以下程序int f(int n) if(n=1) return 1;else return f(n-1)+1;main() int i,j=0;for(i=1;if(int a) int b=0; static c=3;a=c+,b+;return (a); main( ) int a=2,i,k;。

13、for(i=0;imain()int i;for(i=0;ifun( int x) int p;if( x=0|x=1) return(3);p=x-fun( x-2);return p;main() printf( %dn, fun(9);8下面程序的输出是________。long fun5(int n) long s;if(n=1)|(n=2)s=2;elses=n+fun5(n-1);return(s); main() long x;x=fun5(4);printf(%ldn,x);9下面程序的输出是________。#define MAX 5int aMAX,k;main() fun。

14、1();fun3(); fun2(); fun3();printf(n); fun1() for(k=0;kmain() int k=4, m=1, p;p=func(k,m); printf(%d,p);p=func(k,m); printf(%d n,p);func(int a, int b) static int m=0, i=2;i+=m+1;m=i+a+b;return m;11下面程序运行结果是________。main()int x=2,n=3;printf(%dn,power(x,n);power(int x,int n)int p;if(n0) p=power(x,n-1)*。

15、x;else p=1;return(p);12下面程序从键盘输入:5647,输出结果是________。#includevoid convert(int n)int i;if(i=n/10)!=0)convert(i);putchar(n%10+0);main()int number;scanf(%d,&number);if(numbermain()int i,c,num=0,word=0; char string81;gets(string);for(i=0;c=stringi;i+)if(c= ) word=0;else if(word=0)word=1;num+;printf(%d,nu。

16、m);14下面程序的运行结果是________。 #includelong fib(int g)switch(g) case 0:return 0;case 1:case 2:return(1);return(fib(g-1)+fib(g-2);main()long k;k=fib(5);printf(%dn,k);15设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部 【1】 。(要求形参名为b。)main() double s1022;int n; fun(s);16以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的。

17、最大值。请填空。#define N 3#define M 4void LineMax(int xNM)int i,j,p;for(i=0; ieps;n+) s+=t;t=n*t/(2*n+1);return(2.0* 【2】 ); 21读下面的程序,填空完善程序。main()int a,b,c;scanf(%d%d, 【1】 );c= 【2】(a,b); printf(a=%d,b=%d,c=%dn,a,b,c);int max(x,y)【3】 ; int z;if(xy) z=x;else z=y;【4】 ; 22下面程序根据对x的输入,求1到x的累加和。float fun(int n) 。

18、int i; float c;【1】 ; for(i=1;iarrayi) min=arrayi;return(sum/n);main()int i; float aver,score10;printf(input 10 score:n);for(i=0;imain()int i; char string20,str320;for(i=0;i0) strcpy(string,str0);else strcpy(string,str1);if(strcmp(str2,string) 【3】 ) strcpy(string,str2); printf(the largest string isn%。

19、sn,string);26本程序的函数ver是使输入的字符串按反序存放,在主函数中输入和输出字符串。main()char str100;scanf(%s,str);ver(str);printf(%sn,str);ver( 【1】 ) char t; int i,j;for(i=0,j=strlen(str);istri+1)t=stri; 【2】 ; 【3】 ;28用选择法对数组进行由小到大排序。void sort(n,array)【1】 ; int i,j,k,t;for(i=0;iarrayj) k=j;t=arrayi;arrayi=arrayk;arrayk=t;main()int i,a10;printf(input the array:n);for(i=0;i 【2】 stri 【3】026.答案:【1】 str 【2】 stri=strj-1 【3】 strj-1=t27.答案:【1】 str 【2】 stri=stri+1 【3】 stri+1=t28.答案:【1】 int n,array 【2】 j=i+1 【3】 sort(10,a)29.答案:【1】 n=0|n=1 【2】 n*fac(n-1) 【3】 y=fac(n)30.答案:【1】 &x 【2】 &yes 【3】 i【4】return yes。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值