

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. .- .jz*第五局部函 数51 选择题1 c 语言是由构成。a. 主程序和子程序b. 主函数和假设干子函数c. 一个主函数和一个其他函数d. 主函数和子程序2 以下说法中正确的选项是 。a. c 语言程序总是从第一个的函数开场执行b. 在 c 语言程序中 ,要调用的函数必须在main()函数中定义c. c 语言程序总是从main()函数开场执行d. c 语言程序中的main()函数必须放在程序的开场局部3 以下对 c 语言函数的有关描述中,正确的选项是 。a. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参b. c 函数既可以嵌套定义又可以递归调用c. 函数必须有返回值,否
2、那么不能使用函数d. c 程序中有调用关系的所有函数必须放在同一个源程序文件中4 c 语言程序中,当函数调用时 。a. 实参和形参各占一个独立的存储单元b. 实参和形参共用一个存储单元c. 可以由用户指定是否共用存储单元d. 计算机系统自动确定是否共用存储单元5 关于 return 语句,以下正确的说法是 。a. 在主函数和其他函数中均要出现b. 必须在每个函数中出现c. 可以在同一个函数中出现屡次d. 只能在除主函数之外的函数中出现一次6 一个函数返回值的类型是由决定的。a. return 语句中表达式的类型b. 在调用函数时临时指定c. 定义函数时指定的函数类型d. 调用该函数的主调函数的
3、类型7 在 c 语言的函数中,以下正确的说法是 。a. 必须有形参b. 形参必须是变量名c. 可以有也可以没有形参d. 数组名不能作形参8 以下描述正确的选项是 。a. 函数调用可以出现在执行语句或表达式中b. 函数调用不能作为一个函数的实参. .- .jz*c. 函数调用可以作为一个函数的形参d. 以上都不正确9 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 。a. 地址传递b. 单向值传递c. 由实参传给形参,再由形参传回实参d. 传递方式由用户指定10当调用函数时,实参是一个数组名,那么向函数传送的是 。a. 数组的长度b. 数组的首地址c. 数组每一个元素的地址d
4、. 数组每个元素中的值11如果在一个函数的复合语句中定义了一个变量,那么该变量 。a. 只在该复合语句中有效,在该复合语句外无效b. 在该函数中任何位置都有效c. 在本程序的源文件围均有效d. 此定义方法错误,其变量为非法变量12以下说法不正确的选项是 。a. 主函数 main 中定义的变量在整个文件或程序中有效b. 不同函数中,可以使用一样名字的变量c. 形式参数是局部变量d. 在一个函数部,可以在复合语句中定义变量,这些变量只在本复合语句中有效13在一个源程序文件中定义的全局变量的有效围是 。a. 根源程序文件的全部围b. 一个 c 程序的所有源程序文件c. 函数全部围d. 从定义变量的位
5、置开场到源程序文件完毕14以下表达中不正确的选项是 。a. 在不同的函数中可以使用一样名字的变量b. 函数中的形式参数是局部变量c. 在一个函数定义的变量只在本函数围有效d. 在一个函数的复合语句中定义的变量在本函数围有效15如果要限制一个变量只能为本文件所使用,必须通过来实现。a. 外部变量说明b. 静态局部变量c. 静态外部变量d. 局部变量说明16以下哪种数据不存放在动态存储区中 。a. 函数形参变量b. 局部自动变量c. 函数调用时的现场保护和返回地址d. 局部静态变量17以下表达中不正确的选项是 。a. 函数中的自动变量可以赋初值,每调用一次,赋一次初值。b. 在调用函数时,实在参数
6、和对应形参在类型上只需赋值兼容。c. 外部变量的隐含类别是自动存储类别。d. 函数形参可以说明为register变量。18以下只有在使用时才为该类型变量分配存的存储类说明是 。a. auto 和 static b. auto 和 register c. register和 static d. extern 和 register 19 c 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是 。a. void b. int c. float d. double . .- .jz*20在 c 语言中,函数的隐含存储类别是 。a. auto b. static c. extern d. 无存储类
7、别21在 c 语言中,形参的缺省存储类是 。a. auto b. register c. static d. extern 22假设有以下程序#include void f(int n); main() void f(int n); f(5); void f(int n) printf(%dn,n); 那么以下表达中不正确的选项是 。a. 假设只在主函数中对函数f 进展说明,那么只能在主函数中正确调用函数f b. 假设在主函数前对函数f 进展说明, 那么在主函数和其后的其它函数中都可以正确调用函数f c. 对于以上程序,编译时系统会提示出错信息:提示对f 函数重复说明d. 函数 f 无返回值,
8、所以可用void 将其类型定义为无值型23以下所列的各函数首部中,正确的选项是 。a. void play(var :integer,var b:integer) b. void play(int 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);在此
9、函数调用语句中实参的个数是 。a.3 b.4 c.5 d.6 26以下函数值的类型是 。fun (float x) float y; y= 3*x-4; return y; a. int b. 不确定c. void d. float 27以下函数定义不正确的选项是 。a. int max() b. int max(x,y) . .- .jz*int x,y,z; int x,y; z=xyx:y; int z; z=xyx:y; return(z); c. int max(x,y) d. int max() int x,y,z; z=xyx:y; return(z); 28以下程序的运行结果是
10、 。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,3 29以下程序的输出结果是 。fun(int x, int y, int 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(
11、%c,sti); if(i3)i+=2;func2(i); void func2(int i) printf(%c,sti); if(i3)i+=2;func1(i); main() int i=0; func1(i); . .- .jz*printf(n); a. hello b. hel c. hlo d. hlm 31有如下程序int 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. 15
12、 32有以下程序float fun(int x,int y) return(x+y); main() int a=2,b=5,c=8; printf(%3.0fn,fun(int)fun(a+c,b),a-c); 程序运行后的输出结果是 。a. 编译出错b. 9 c. 21 d. 9.0 33有以下程序#include stdio.h int abc(int u,int v); main () int a=24,b=16,c; c=abc(a,b); printf(%dn,c); int abc(int u,int v) int w; while(v) w=u%v; u=v; v=w retu
13、rn u; 输出结果是 。a. 6 b. 7 c. 8 d. 9 . .- .jz*34阅读以下函数:fun(char s,char t) int i=-1; while(+i,si=ti&si!=0 );return(si=0 &ti= 0 ); 以上函数的功能是 。a. 比拟串 s和 t 的长度b. 比拟串 s和 t 的大小c. 比拟串 s和 t 是否相等d. 将串 t 赋给串 s 35以下程序的输出结果是 。f( int b , int m, int n) int i,s=0; for(i=m;in;i=i+2) s=s+bi; return s; main() int
14、x, a =1,2,3,4,5,6,7,8,9; x=f(a,3,7); printf(%dn,x); a. 10 b. 18 c. 8 d. 15 36以下程序中函数reverse的功能是将a 所指数组中的容进展逆置。void reverse(int a ,int n) int i,t; for(i=0;in/2;i+) t=ai; ai=an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(%dn,s); 程序运行后的输出结果是
15、 。a. 22 b. 10 c. 34 d. 30 37请读程序 : #include . .- .jz*func( 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); 上面程序的输出结果是 。a. 11 b. 19 c. 21 d. 31 38请读程序:#include f(in b, int n) int i, r; r=1; for(i=0; i=n; i+) r=r*bi; return r; main() int x, a=
16、 2,3,4,5,6,7,8,9; x=f(a, 3); printf(%dn,x); 上面程序的输出结果是 。a. 720 b. 120 c. 24 d. 6 39下面程序的输出是 。main() int t=1; fun(fun(t); fun(int h) static int a3=1,2,3; int k; for(k=0;k3;k+) ak+=ak-h; for(k=0;k2) return(fib(n-1)+fib(n-2); else return(2); main() printf(%dn,fib(3); 该程序的输出结果是( )。a. 2 b. 4 c. 6 d. 8 41
17、以下程序的输出结果是 。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(3); a. 1 b. 2 c. 3 d. 4 42以下程序的输出结果是 。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. 3 43有以下程序int f(int n) . .- .jz*if(n=1) re
18、turn 1; else return f(n-1)+1; main() int i,j=0; for(i=1;i3;i+) j+=f(i); printf(%dn,j); 程序运行后的输出结果是 。a. 4 b. 3 c. 2 d. 1 44下面程序的输出是 。int w=3; main() int w=10; printf(%dn,fun(5)*w); fun(int k) if(k=0) return w; return(fun(k-1)*k); a. 360 b. 3600 c. 1080 d. 1200 45以下程序的输出结果是 。#include stdio.h int i=5;
19、main() int i=3; int i=10;i+; f1(); i+=1; printf(%dn,i); int f1() i=i+1; return(i); a.7 b.4 c.12 d.6 46以下程序的输出结果是 。int a, b; void fun() . .- .jz* a=100; b=200; main() int a=5, b=7; fun(); printf(%d%dn, a,b); a. 100200 b. 57 c. 200100 d. 75 47以下程序输出结果是 。main() int i; for(i=0;i2;i+) add(); add() int x=
20、0;static int y=0; printf(%d,%dn,x,y); x+; y=y+2; a. 0,0 b. 0,0 c. 0,0 d. 0,0 0,0 0,2 1,0 1,2 48设有以下函数:f (int a) int b=0; static int c = 3; b+; c+; return(a+b+c); 如果在下面的程序中调用该函数,那么输出结果是 。main() int a = 2, i; for(i=0;i3;i+) printf(%dn,f(a); a. 7 b. 7 c. 7 d. 7 8 9 10 7 9 11 13 7 49以下程序的输出的结果是 。int x=3
21、; main() . .- .jz* int i; for (i=1;ix;i+) incre(); incre() static int x=1; x*=x+1; printf( %d,x); a. 3 3 b. 2 2 c. 2 6 d. 2 5 50有以下程序int a=3; main() int s=0; int a=5; s+=a+; s+=a+;printf(%dn,s); 程序运行后的输出结果是 。a. 8 b. 10 c. 7 d. 11 51下面程序的输出是 。fun3(int x) static int a=3; a+=x; return(a); main() int k=
22、2, m=1, n; n=fun3(k); n=fun3(m); printf(%dn,n); a. 3 b. 4 c. 6 d. 9 52下面程序的输出是 。int m=13; int fun2(int x, int y) int m=3; return(x*y-m); main() . .- .jz* int a=7, b=5; printf(%dn,fun2(a,b)/m); a. 1 b. 2 c. 7 d. 10 53以下程序执行后输出的结果是 。#include f(int a) int b=0; static c=3; a=c+,b+; return (a); main( ) i
23、nt a=2,i,k; for(i=0;i2;i+) k=f(a+); printf(%dn,k); a. 3 b. 0 c. 5 d. 4 54以下程序执行后输出的结果是 。int 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. 96 c. 94 d. 85 55以下程序的输出结果是 。int d=1; fun(int p) static int d=5; d+=p; printf(%d ,d); return(d); main( )
24、. .- .jz* 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 52 填空题1 下面程序的输出结果是_。int t(int x,int y,int cp,int dp) cp=x*x+y*y; dp=x*x-y*y; main( ) int a=4,b=3,c=5,d=6; t(a,b,c,d); printf(%d %d n,c,d) ; 2 下面程序运行后的输出结果是_。void fun(int x,int y) x=x+y;y=x-y;x=x-y; printf(%d,%d,x,y);
25、 main() int x=2,y=3; fun(x,y); printf(“ %d,%dn ,x,y); 3 下面程序的输出结果是_。void fun() static int a=0; a+=2; printf(%d,a); main() int cc; for(cc=1;cc4;cc+) fun(); printf(n); . .- .jz*4 下面程序输出的最后一个值是_。int ff(int n) static int f=1; f=f*n; return f; main() int i; for(i=1;i=5;i+) printf(%5d,ff(i); 5 下面程序运行结果为_。
26、#include main() int i; for(i=0;i2;i+) as(); as() int lv=0; static int sv=0; printf(%d,%dn,lv,sv); lv+;sv+; return; 6 下面程序的输出是_。unsigned fun6( unsigned num) unsigned k=1; do k*=num%10; num/=10; while(num); return(k); main() unsigned n=26; printf(%dn, fun6(n); 7 下面程序的输出结果是_。#include . .- .jz*fun( int
27、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; else s=n+fun5(n-1); return(s); main() long x; x=fun5(4); printf(%ldn,x); 9 下面程序的输出是_。#define max 5 int amax,k; main() fun1();fun3(); fun2(); fun3(); printf(n
28、); fun1() for(k=0;kmax;k+) ak=k+k; fun2() int amax,k; for(k=0;k5;k+) ak=k; . .- .jz*fun3() int k; for(k=0;kmax;k+) printf(%d,ak); 10下面程序的运行结果是_。#include main() 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;
29、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)*x; else p=1; return(p); 12下面程序从键盘输入:5647,输出结果是_。#include void convert(int n) int i; if(i=n/10)!=0) convert(i); putchar(n%10+ 0 ); main() . .- .jz*int number; scanf(%d,&number); if(number0) put
30、char(- );number= -number; convert(number); 13输入 i am a student.时,下面程序运行结果是_。#include main() 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,num); 14下面程序的运行结果是_。#include long fib(int g) switch(g) case 0:return 0; case 1:c
31、ase 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; . .- .jz*int n; fun(s); 16以下程序中,主函数调用了linemax 函数,实现在n 行 m 列的二维数组中,找出每一行上的最大值。请填空。#define n 3 #define m 4 void linemax(int xnm) int
32、 i,j,p; for(i=0; in;i+) p=0; for(j=1; jm;j+) if(xipxij) 【1】 ; printf(the max value in line %d is %dn, i, 【2】 ); main() int xnm=1,5,7,4,2,6,4,3,8,2,3,1; 【3】 ; 17下面函数的功能是:求x 的 y 次方,请填空。double fun( double x, int y) int i; double z; for(i=1, z=x; iy;i+) z=z* 【1】 ; return z; 18假设已定义:int a10, i;,以下 fun 函数
33、的功能是:在第一个循环中给前10个数组元素依次赋 1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前 10 个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、 2、1。请填空。fun( int a ) int i; for(i=1; i=10; i+) 【1】=i; for(i=0; i5; i+) 【2】 =ai; 19下面函数的功能是计算ns*4*3*2*113*2*112*111,请填空。double fun(int n) . .- .jz* double s=0.0,fac=1.0; int i; for(i=1,ieps;n+) s+=t; t=n*t/(2*
34、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) int i; float c; . .- .jz*【1】; for(i=1;i=n;i+) c+=i; 【2】; main() int x; scanf(%d,
35、【3】); printf(%fn,fun(x); 23分别计算并输出1! ,2! ,3! , 4!和 5! 。main() int i; for(i=1;i=5;i+) printf(%d!=%dn,i, 【1】); int fac(int n) 【2】f=1; f*=n; return(f); 24求出数组中的最大、最小元素值以及所有元素的均值。【1】 ; float average(int n,float array) int i; float sum; max=min=sum= 【2】 ; for(i=1;in;i+) sum+=arrayi; if(maxarrayi) min=arr
36、ayi; return(sum/n); main() int i; float aver,score10; printf(input 10 score:n); for(i=0;i10;i+) scanf(%f, 【3】); aver=average(10,score); printf(max=%.2fnmin=%.2fnaverage=%.2fn,max,min,aver); . .- .jz*25下面程序的功能是找出三个字符串中最大串,填空完善程序。【1】#include main() int i; char string20,str320; for(i=0;i0) strcpy(strin
37、g,str0); else strcpy(string,str1); if(strcmp(str2,string) 【3】) strcpy(string,str2); printf(the largest string isn%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);istrlen(str)/2;i+,j-) t
38、=stri; 【2】; 【3】; 27用“起泡法对输入的10 个字符排序后按从小到大的次序输出。#define n 10 char strn; main() int i,flag; for(flag=1;flag=1;) scanf(%s,str); flag=0; printf(n); sort( 【1】); for(i=0;in;i+) printf(%c,stri); printf(n); sort(char strn) int i,j; . .- .jz*char t; for(j=1;jn;j+) for(i=0;(istri+1) t=stri; 【2】; 【3】; 28用选择法对
39、数组进展由小到大排序。void sort(n,array) 【1】; int i,j,k,t; for(i=0;in-1;i+) k=i; for( 【2】;jarrayj) k=j; t=arrayi; arrayi=arrayk; arrayk=t; main() int i,a10; printf(input the array:n); for(i=0;i10;i+) scanf(%d,&ai); 【3】; printf(the sorted array:n); for(i=0;i10;i+) printf(%6d,ai); 29用递归方法求n!。float fac(int n)
40、 float f; if(n0) printf(n0,data error! ); else if( 【1】 ) f=1; else f= 【2】; return(f); main() int n=6; float y; printf(n); 【3】; . .- .jz*printf(%d!=%5.0f,n,y); 30程序调用prime 函数,判断输入的一个整数是否为素数,是那么打印yes,否那么打印no. #include stdio.h main() int x; printf( 输入一个整数给x: ); scanf(%d, 【1】); if(prime(x) printf(yesn);
41、 else printf(non); prime(int a) int e,i,yes; yes=1;e=a/2; i=2; while(i=e) 【2】) if(a% 【3】=0) yes=0; else i+; 【4】; 53 答案及局部解析一选择题答案1.b 2.c 3.a 4.a 5.c 6.c 7.c 8.a 9.b 10.b 11.a 12.a 13.d 14.d 15.c 16.d 17.c 18.b 19.b 20.c 21.a 22.c 23.c 24.a 25.a 26.a 27.c 28.d 29.c 30.c 31.d 32.b 33.c 34.c 35.a 36.a 37.b 38.b 39.d 40.b 41.a 42.a 43.b 44.b 45.b 46.b 47.b 48.a 49.c 50.a 51.c 52.b 53.d 54.a 55.c 36解析:此题考的知识点是数组名作为函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省渭南市韩城市2022-2023学年九年级上学期期中化学试题(含答案)
- 电票相关知识培训内容课件
- 电瓶报警知识培训内容课件
- 高空作业安全知识培训课件教程
- 北京商务楼宇考试题目及答案
- Trimethylamine-N-oxide-Standard-生命科学试剂-MCE
- Tiglyl-Glycine-13C2-15N-生命科学试剂-MCE
- 职业素养考试题及答案
- 幼师舞蹈考试题及答案
- 雅安中考试题及答案
- 工程挂靠免责协议书
- 风电并购协议书
- 企业微信在电脑上使用课件功能
- 2025-2030年中国天然冰片行业市场现状分析及竞争格局与投资发展研究报告
- 成考学位日语试题及答案
- (重庆康德三诊)2025年重庆市高三第三次联合诊断检测生物试卷(含答案解析)
- 2024年重庆机场集团有限公司招聘笔试真题
- 健康体检信息系统软件需求规格说明书
- 微生物组与卵巢癌关联-全面剖析
- 机油商店转让协议书
- 数据结构应用试卷汇编
评论
0/150
提交评论