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

下载本文档

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

文档简介

函数练习题及答案函数练习题及答案函数练习题及答案xxx公司函数练习题及答案文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度单项选择==================================================题号:2914函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是().A、实参与形参是双向传递B、形参和实参可以同名C、实参类型一定要在调用时指定D、形参可以是表达式答案:B题号:4060以下程序的输出结果是main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(inta,intb){staticintm,i=2;i+=m+1;m=i+a+b;return(m);}A、8,20B、8,16C、8,17D、8,8答案:C题号:2491请阅读以下程序:#include<>#include<>voidfun(intb[]){ staticinti=0; do { b[i]+=b[i+1]; }while(++i<2);}main(){ intk,a[5]={1,3,5,4,9}; fun(a); for(k=0;k<5;k++)printf("%d",a[k]);}上面程序的输出是().A、48579B、48549C、48999D、13579答案:B题号:2643有以下程序:#include<>voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf("%d",k[i]);printf("\n");}程序的运行结果是().A、876543B、321678C、1098765D、345678答案:B程序设计==================================================题号:5340/*------------------------------------------------【程序设计】--------------------------------------------------题目:给定n个数据,求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)。--------------------------------------------------注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数station的花括号中填入所编写的若干语句。*********Begin**********和**********End**********不可删除------------------------------------------------*/#include""intstation(ints[],intn){/*********Begin**********//**********End**********/}main(){inta[100],n,i,t;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);t=station(a,n);printf("themin_valuepositionis:%d\n",t);TestFunc();}TestFunc(){FILE*IN,*OUT;intn;inti[10];into;IN=fopen("","r");if(IN==NULL){printf("ReadFileError");}OUT=fopen("","w");if(OUT==NULL){printf("WriteFileError");}for(n=0;n<10;n++){fscanf(IN,"%d",&i[n]);}o=station(i,10);fprintf(OUT,"%d\n",o);fclose(IN);fclose(OUT);}示例代码:inti,k;k=0;for(i=1;i<n;i++)if(s[i]<s[k])k=i;return(k);题号:5371/*------------------------------------------------【程序设计】--------------------------------------------------功能:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如若n为1000时,程序输出应为:s=。*********Begin**********和**********End**********不可删除------------------------------------------------*/voidTestFunc();#include<>#include<>doublefun(intn){/*********Begin**********//**********End**********/}main(){printf("s=%lf\n",fun(1000));TestFunc();}voidTestFunc(){FILE*IN,*OUT;inti;doubles;IN=fopen("","r");if(IN==NULL){printf("ReadFILEError");}OUT=fopen("","w");if(OUT==NULL){printf("WriteFILEError");}fscanf(IN,"%d",&i);s=fun(i);fprintf(OUT,"%lf",s);fclose(IN);fclose(OUT);}示例代码:inti;doubles=0;for(i=1;i<n;i++) if(i%3==0&&i%7==0) s+=i;returnsqrt(s);程序填空==================================================题号:599/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。-------------------------------------------------------*/#include""/***********FILL***********/intfun(_____){intm=0,mc=0,j,n;/***********FILL***********/while(k>=2&&_____){/***********FILL***********/if(k%13==0||_____){m=m+k;mc++;}k--;}/***********FILL***********/_____;}main(){printf("%d\n",fun(500));}答案:位置1:intk位置2:mc<10【或】10>mc【或】mc<=9【或】9>=mc位置3:k%17==0【或】!(k%17)【或】k/17*17==k位置4:returnm【或】return(m)题号:546/*给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵123456789计算结果为312645978请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!*/#include<>#defineN4voidfun(int(*t)[N]){inti,j,x;/**********FILL**********/for(i=0;i<___1___;i++){/**********FILL**********/x=t[i][___2___];for(j=N-1;j>=1;j--)t[i][j]=t[i][j-1];/**********FILL**********/t[i][___3___]=x;}}main(){intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;printf("Theoriginalarray:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%2d",t[i][j]);printf("\n");}fun(t);printf("\nTheresultis:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%2d",t[i][j]);printf("\n");}}答案:位置1:N位置2:N-1位置3:0题号:543/*给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入一个整数:,函数返回值为:64862。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!*/#include<>unsignedlongfun(unsignedlongn){unsignedlongx=0;intt;while(n){t=n%10;/**********FILL**********/if(t%2==__1__)/**********FILL**********/x=__2__+t;/**********FILL**********/n=__3__;}returnx;}main(){unsignedlongn=-1;while(n>||n<0){printf("Pleaseinput(0<n<0):");scanf("%ld",&n);}printf("\nTheresultis:%ld\n",fun(n));}答案:位置1:0位置2:10*x位置3:n/10程序改错==================================================题号:708/*给定程序中函数fun的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1、x2、x3分别输入15112,则输出结果应当是:330。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。*/#include<>/**********ERROR**********/fun(intx,y,z){intj,t,n,m;j=1;t=j%x;m=j%y;n=j%z;while(t!=0||m!=0||n!=0){j=j+1;t=j%x;m=j%y;n=j%z;}/**********ERROR**********/returni;}main(){intx1,x2,x3,j;printf("Inputx1x2x3:");scanf("%d%d%d",&x1,&x2,&x3);printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);j=fun(x1,x2,x3);printf("Theminimalcommonmultipleis:%d\n",j);}答案:位置1:intfun(intx,inty,intz)位置2:returnj;题号:693/*给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行和删行,也不得更改程序的结构!*/#include<>#defineN20voidfun(inta[],intn){inti,j,t,p;for(j=0;j<n-1;j++){/**********ERROR**********/p=jfor(i=j;i<n;i++)if(a[i]<a[p])/**********ERROR**********/p=j;t=a[p];a[p]=

温馨提示

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

评论

0/150

提交评论