C语言复习题函数

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

v1.0可编辑可修改1C语言复习题_函数一、选择1、当调用函数时,实参是一个数组名,则向函数传递的是C。A)数组的长度B)数组每一个元素的地址C)数组的首地址D)数组每个元素中的值2、以下函数定义形式正确的是D。A)doublemyfun(intx,inty){z=x+y;returnz;}B)myfun(intx,y){intz;returnz;}C)myfun(x,y){intx,y;doublez;z=x+y;returnz;}D)doublemyfun(intx,inty){doublez;z=x+y;returnz;}3、下列关于参数的说法正确的是B。A)实参和与其对应的形参共占用一个存储单元;B)实参和与其对应的形参各占用独立的存储单元;C)形参是虚拟的,不占用存储单元;D)只有当实参与其对应的形参同名时才共占用存储单元。4、一个完整的C源程序是B。v1.0可编辑可修改2A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成5、以下关于函数的叙述中正确的是C。A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数6、以下关于函数的叙述中不正确的是B。A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套7、在一个C程序中,B。A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置8、若在C语言中未说明函数的类型,则系统默认该函数的数据类型是C。A)floatB)longC)intD)double9、以下关于函数叙述中,错误的是D。A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式v1.0可编辑可修改310、若函数调用时参数为基本数据类型的变量,以下叙述正确的是C。A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元11、函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是D。A)实参将其地址传递给形参,并释放原先占用的存储单元B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C)实参将其值传递给形参,调用结束时形参再将其值回传给实参D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参12、若程序中定义函数floatmyadd(floata,floatb){returna+b;}并将其放在调用语句之后,则在调用之前应对该函数进行说明。以下说明中错误的是A。A)floatmyadd(floata,b);B)floatmyadd(floatb,floata);C)floatmyadd(float,float);D)floatmyadd(floata,floatb);13、以下程序运行后的输出结果是D。fun(inta,intb){if(ab)returna;elsereturnb;}intmain(){intx=3,y=8,z=6,r;v1.0可编辑可修改4r=fun(fun(x,y),2*z);printf(%d\n,r);return0;}A)3B)6C)8D)1214、以下程序的运行结果是C。voidf(inta,intb){intt;t=a;a=b;b=t;}intmain(){intx=1,y=3,z=2;if(xy)f(x,y);elseif(yz)f(x,z);elsef(x,z);printf(%d,%d,%d\n,x,y,z);return0;}A)1,2,3B)3,1,2C)1,3,2D)2,3,1二、判断1、C程序从源文件中的第一个函数开始运行,到最后一个函数结束。F2、C语言的函数调用时,形参是不需要分配存储单元的。F3、函数中的形参变量在被定义后即被分配了一定的内存单元。Fv1.0可编辑可修改5三、程序填空1、在C语言中,一个函数一般由两个部分组成,分别是函数首部和函数体。2、以下程序的功能是计算函数F(x,y,z)=(x+z)/(y-z)+(y+2×z)/(x-2×z)的值,请将程序补充完整。#includefloatf(floatx,floaty){floatvalue;value=x/y;returnvalue;}intmain(){floatx,y,z,sum;scanf(%f%f%f,&x,&y,&z);sum=f(x+z,y-z)+f(y+2*z,x-2*z);printf(sum=%f\n,sum);return0;}3、以下程序是选出能被3整除且至少有一位是5的所有三位正整数k(个位为a0,十位为a1,百位为a2),打印出所有这样的数及其个数。请将程序补充完整。#includesub(intm,intn){inta0,a1,a2;a2=m/100;a1=m/10-a2*10;v1.0可编辑可修改6a0=m%10;if(m%3==0&&(a2==5||a1==5||a0==5)){printf(“%d”,m);n++;}returnn;}intmain(){intm=0,k;for(k=105;k=995;k++)m=sub(k,m);printf(\nn=%d\n,m);return0;}四、写出程序运行结果1、#include#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i=n;i--)a[i+1]=a[i];}intmain(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i5;i++)printf(%d,a[i]);return0;}v1.0可编辑可修改7答:123342、#includeintF(intx){ints=0;s+=x;returns;}intG(intx){staticints=0;s+=x;returns;}intmain(){printf(%d\n,F(2));printf(%d\n,F(3));printf(%d\n,G(2));printf(%d\n,G(3));return0;}答:23253、#includevoidfact(inta);voidsum(intb);voidfact(inta){inti,total=1;v1.0可编辑可修改8intmain(){intc=5;fact(c);sum(c+5);return0;}for(i=1;i=a;i++)total*=i;printf(a=%d,total=%d\n,a,total);sum(a);}voidsum(intb){inti,sum=0;for(i=1;i=b;i++)sum+=i;printf(b=%d,sum=%d\n,b,sum);}运行结果为:4、#includevoidfun(intx,inty,intz);intmain(){inta=31;fun(6,3,a);printf(%d,a);return0;}voidfun(intx,inty,intz){z=x*x+y*y;}答:31v1.0可编辑可修改9五、程序设计1、写一个判素数的函数,在主函数中输入一个整数,输出是否为素数的信息。参考代码:#includeintmain(){intPrime(intn);intn;scanf(%d,&n);if(Prime(n))printf(%d是素数,n);elseprintf(%d不是素数,n);return0;}intPrime(intn){inti,flag=1;for(i=2;in/2;i++){if(n%i==0){flag=0;break;}}returnflag;}2、数学函数...)!12(...!7!5!3)(12753nxxxxxxfn,-∞x+∞编写函数:doubleF(doublex);要求精度达到10-6。#include#include#defineepsilon1e-6doubleF(doublex);doubleF(doublex){doublep=x,y=p;intd=1;do{v1.0可编辑可修改10intmain(){doublea,b;printf(a=);scanf(%lg,&a);b=F(a);printf(b=%lg\n,b);return0;}d+=2;p*=x*x/(d*(d-1));y+=p;}while(fabs(p)=epsilon);returny;}3、写一个计算x的n次方的函数,在主函数中输入一个实数x,一个整数n代表次数,输出x的n次方的结果。参考代码:#includefloatpower(floatx,intn);intmain(){floatx,y;intn;scanf(%f,%d,&x,&n);y=power(x,n);printf(%\n,y);return0;}floatpower(floatx,intn){inti;floatt=1;for(i=1;i=n;i++)t=t*x;returnt;}

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功