函数练习题及答案_第1页
函数练习题及答案_第2页
函数练习题及答案_第3页
函数练习题及答案_第4页
函数练习题及答案_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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请阅读以下程序: #incl

2、ude#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,6,7,8,9,10,i

3、;fun(k,5);for(i=2;i8;i+)printf(%d,ki);printf(n);程序的运行结果是().a、876543b、321678c、1098765d、345678答案:b程序设计=题号:5340/*-【程序设计】-题目: 给定n个数据, 求最小值出现的位置 (如果最小值出现多次,求出第一次出 现的位置即可)。-注意:部分源程序给出如下。请勿改动主函数 main和其它函数中的任何内容,仅在函数 station的花括号中填入所编写的若干语句。*begin*和* end *不可删除-*/#include stdio.hint station(int s,int n)/*begi

4、n*/* 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 file error);out=fopen(out.dat,w);if(out=null)printf(write file err

5、or);for(n=0;n10;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 d

6、ouble fun( int 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 file error); out=fopen(out.dat,w); if(out=null) printf(write file error); fscanf(in,%d,&i); s=fun(i); fprintf(out,%lf,s); fclose

7、(in); fclose(out);示例代码:int i; double 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个位置,右边被移出矩阵的

8、元素绕回左边。 例如,n=3,有下列矩阵 1 2 3 4 5 6 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; p

9、rintf(the original array:n); for(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中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。 例如,输入一个整数:27

10、638496,函数返回值为: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*/ x=_2_+t;/*fill*/ n=_3_; return x;main()unsigned long n=-1; while(n99999999|n0) printf(please input(0n100

11、000000): ); scanf(%ld,&n); printf(nthe result is: %ldn,fun(n);答案:位置 1:0位置 2:10*x位置 3:n/10程序改错=题号:708/* 给定程序中函数fun的功能是:求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是:330。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 */#include /*error*/fun(int x, y, z)int j,t ,n ,m; j = 1 ; t=j%x; m=j%

12、y ; n=j%z; while(t!=0|m!=0|n!=0) j = j+1; t=j%x; m=j%y; n=j%z; /*error*/ return i;main()int x1,x2,x3,j ; printf(input x1 x2 x3: ); scanf(%d%d%d, &x1,&x2,&x3); printf(x1=%d, x2=%d, x3=%d n,x1,x2,x3); j=fun(x1,x2,x3); printf(the minimal common multiple is : %dn,j);答案:位置 1:int fun(int x, int y, int z)位

13、置 2:return j;题号:693/* 给定程序中函数fun的功能是: 用选择法对数组中的n个元素按从小到大的顺序进行排序。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行和删行,也不得更改程序的结构! */#include #define n 20void fun(int a, int n)int i, j, t, p; for (j = 0 ;j n-1 ;j+) /*error*/ p = j for (i = j;i n; i+) if(ai ap)/*error*/ p = j; t = ap ; ap = aj ; aj = t; main()

14、 int an=9,6,8,3,-1,i, m = 5; printf(排序前的数据:); for(i = 0;i m;i+) printf(%d ,ai); printf(n); fun(a,m); printf(排序后的数据:); for(i = 0;i m;i+) printf(%d ,ai); printf(n);答案:位置 1:p=j;位置 2:p=i;题号:692/* 给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! */#include double fun (int n)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论