1、函数练习题及答案单项选择=题号:2914函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的就是()、A、实参与形参就是双向传递B、形参与实参可以同名C、实参类型一定要在调用时指定D、形参可以就是表达式答案:B题号:4060以下程序的输出结果就是main()int k=4,m=1,p;p=fun c(k,m);printf(%d,p);p=fun c(k,m);printf(%dn,p);fun c(int a,int b)static int m,i=2;i+=m+1;m=i+a+b;return(m);A、8,20B、8,16C、8,17D、8,8答案:C题号:2491请阅
2、读以下程序:#include#includevoid fun(int b) static int i=0; do bi+=bi+1; while(+i2);main() int k,a5=1,3,5,4,9; fun(a); for(k=0;k5;k+)printf(%d,ak);上面程序的输出就是()、 A、48579B、48549C、48999D、13579答案:B题号:2643有以下程序:#includevoid fun(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 k10=1,2,3,4,5,
3、6,7,8,9,10,i;fun(k,5);for(i=2;i8;i+)printf(%d,ki);printf(n);程序的运行结果就是()、A、876543B、321678C、D、345678答案:B程序设计=题号:5340/*-【程序设计】-题目: 给定n个数据, 求最小值出现的位置 (如果最小值出现多次,求出第一次出 现的位置即可)。-注意:部分源程序给出如下。请勿改动主函数 main与其它函数中的任何内容,仅在函数 station的花括号中填入所编写的若干语句。*Begin*与* End *不可删除-*/#include stdio、hint station(int s,int n)
4、/*Begin*/* End */ main() int a100,n,i,t; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); t=station(a,n); printf(the min_value position is:%dn,t); TestFunc(); TestFunc()FILE *IN,*OUT;int n;int i10;int o;IN=fopen(in、dat,r);if(IN=NULL)printf(Read );OUT=fopen(out、dat,w);if(OUT=NULL)printf(Write );for(n=0;n1
5、0;n+) fscanf(IN,%d,&in);o=station(i,10);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);示例代码:int i,k; k=0; for(i=1;in;i+) if(sisk) k=i; return(k);题号:5371/*-【程序设计】-功能:求小于形参n同时能被3与7整除的所有自然数之与的平方根,并作为函数值返回。例如若n为1000时,程序输出应为:s=153、909064。*Begin*与* End *不可删除-*/void TestFunc(); #include #include double fun( int
6、 n) /*Begin*/ /* End */main() printf(s=%lfn,fun(1000); TestFunc();void TestFunc() FILE *IN,*OUT; int i; double s; IN=fopen(in、dat,r); if(IN=NULL) printf(Read ); OUT=fopen(out、dat,w); if(OUT=NULL) printf(Write ); fscanf(IN,%d,&i); s=fun(i); fprintf(OUT,%lf,s); fclose(IN); fclose(OUT);示例代码:int i; doub
7、le s=0; for(i=1;i= 2 & _) /*FILL*/ if (k%13 = 0 | _) m=m+k; mc+; k-; /*FILL*/ _;main ( ) printf(%dn, fun (500);答案:位置 1:int k位置 2:mc mc 【或】 mc = mc位置 3:k%17 = 0 【或】 !(k%17) 【或】 k/17*17=k位置 4:return m 【或】 return (m)题号:546/* 给定程序中,函数fun的功能就是: 将NN矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。 例如,N=3,有下列矩阵 1 2 3 4 5 6
8、7 8 9 计算结果为 3 1 2 6 4 5 9 7 8 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! */#include #define N 4void fun(int (*t)N)int i, j, x;/*FILL*/ for(i=0; i=1; j-) tij=tij-1;/*FILL*/ ti_3_=x; main()int tN=21,12,13,24,25,16,47,38,29,11,32,54,42, 21,33,10, i, j; printf(The original array:n); for(
9、i=0; iN; i+) for(j=0; jN; j+) printf(%2d ,tij); printf(n); fun(t); printf(nThe result is:n); for(i=0; iN; i+) for(j=0; jN; j+) printf(%2d ,tij); printf(n); 答案:位置 1:N位置 2:N-1位置 3:0题号:543/* 给定程序中,函数fun的功能就是: 将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。 例如,输入一个整数:,函数返回值为:64862。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! */#include unsigned long fun(unsigned long n)unsigned long x=0; int t; while(n) t=n%10;/*FILL*/ if(t%2=_1_)/*FILL*/
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1