第八章 函数.docx
- 文档编号:6842245
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:11
- 大小:17.59KB
第八章 函数.docx
《第八章 函数.docx》由会员分享,可在线阅读,更多相关《第八章 函数.docx(11页珍藏版)》请在冰豆网上搜索。
第八章函数
第八章函数
1、若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
2、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
11
121
1331
14641
15101051
┆
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i {x[i][0]=【】=1; for(j=1;j x[i][j]=【】; 3、以下叙述中正确的是 A)全局变量的作用域一定比局部变量的作用域范围大 B)静态(static)类别变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量 D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 4、有以下程序 intf1(intx,inty) {returnx>y? x: y;} intf2(intx,inty) {returnx>y? y: x;} main() {inta=4,b=3,c=5,d,e,f; d=f1(a,b);d=f1(d,c); e=f2(a,b);e=f2(e,c); f=a+b+c-d-e; printf("%d,%d,%d\n",d,f,e); } 执行后输出结果是 A)3,4,5B)5,3,4C)5,4,3D)3,5,4 5、有以下程序 voidf(intx,inty) {intt; if(x } main() {inta=4,b=3,c=5; f(a,b);f(a,c);f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出结果是 A)3,4,5B)5,3,4C)5,4,3D)4,3,5 6、以下程序运行后的输出结果是【】 fun(intx) {if(x/2>0)fun(x/2); printf("%d",x); } main() {fun(6);} 7、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 【】(double,double); main() {doublex,y; scanf("%lf%lf",&x,&y); printf("%lf\n",max(x,y)); } doublemax(doublea,doubleb) {return(a>b? a: b);} 8、以下程序运行后的输出结果是【】 inta=5; fun(intb) {staticinta=10; a+=b++; printf("%d",a); } main() {intc=20; fun(c); a+=c++; printf("%d\n",a); } 9、以下程序的功能是调用函数fun计算: m=1-2+3-4+…+9-10,并输出结果。 请填空。 intfun(intn) {intm=0,f=1,i; for(i=1;i<=n;i++) {m+=i*f; f=【】; } returnm; } main() {printf("m=%d\n",【】);} 10、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 11、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A)fun(inty,doublem);B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 12、以下sum函数的功能是计算下列级数之和。 S=1+x+x2/2! +x3/3! +........+xn/n! 请给函数中的各变量正确赋初值。 doublesum(doublex,intn) {inti;doublea,b,s; 【】 for(i=1;i<=n;i++) {a=a*x;b=b*i;s=s+a/b;} returns; } } 13、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。 请填空。 voidsstrcpy(char*s,char*t) {while(*s++=【】);} main() {charstr1[100],str2[]=”abcdefgh”; sstrcpy(str1,str2); printf(“%s\n”,str1); } 14、下列程序的运行结果是: 【】 #include char*ss(char*s) {returns+strlen(s)/2;} main() {char*p,*str=”abcdefgh”; p=ss(str);printf(“%s\n”,p); } 15、下面程序的运行结果是: 【】 intf(inta[],intn) {if(n>1)returna[0]+f(&a[1],n-1); elsereturna[0]; } main() {intaa[3]={1,2,3},s; s=f(&aa[0],3);printf(“%d\n”,s); } 16、以下程序中给指针p分配三个double型动态内存单元,请填空。 #include main() {double*p; p=(double*)malloc(【18】); p[0]=1.5;p[1]=2.5;p[2]=3.5; printf(“%f%f%f\n”,p[0],p[1],p[2]); } 17、函数fun的功能是计算x的n次方 doublefun(doublex,intn) {inti;doubley=1; for(i=1;i<=n;i++)y=y*x; returny; } 主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算: m=a4+b4-(a+B)3。 实现这一计算的函数调用语句为【】。 18、下面rotate函数的功能是: 将n行n列的矩阵A转置为’A’,例如: 123415913 5678261014 当A=9101112则A’=371115 13141516481216 请填空 #defineN4 voidrotate(inta[][N]) {inti,j,t; for(i=0;i for(j=0;【】;j++) {t=a[i][j]; 【】; a[j][i]=t; } } 19、有以下程序 voidf(inta[],inti,intj) {intt; if(i {t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main() {inti,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++)printf(“%d,”,aa[i]);printf(“\n”); } 执行后输出结果是 A)5,4,3,2,1,B)5,2,3,4,1,C)1,2,3,4,5,D)1,2,3,4,5 20、有以下程序 #definef(x)x*x main() {inti; i=f(4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果是 A)28B)22C)16D)4 21、有以下程序 intf(intb[][4]) {inti,j,s=0; for(j=0;j<4;j++) {i=j; if(i>2)i=3-j; s+=b[i][j]; } returns; } main() {inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(A)); } 执行后的输出结果是 A)12B)11C)18D)16 22、有以下程序 voidswap1(intc[]) {intt; t=c[0];c[0]=c[1];c[1]=t; } voidswap2(intc0,intc1) {intt; t=c0;c0=c1;c1=t; } main() {inta[2]={3,5},b[2]={3,5}; swap1(A);swap2(b[0],b[1]); printf(“%d%d%d%d\n”,a[0],a[1],b[0],b[1]); } 其输出结果是A)5353B)5335 C)3535D)3553 23、有以下程序 voidswap1(intc[]) {intt; t=c[0];c[0]=c[1];c[1]=t; } voidswap2(intc0,intc1) {intt; t=c0;c0=c1;c1=t; } main() {inta[2]={3,5},b[2]={3,5}; swap1(A);swap2(b[0],b[1]); printf(“%d%d%d%d\n”,a[0],a[1],b[0],b[1]); } 其输出结果是A)5353B)5335 C)3535D)3553 24、若程序中定义了以下函数 doublemyadd(doublea,doubleB) {return(a+B);} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是 A)doublemyadd(doublea,B); B)doublemyadd(double,double); C)doublemyadd(doubleb,doubleA); D)doublemyadd(doublex,doubley); 25、有以下程序 charfun(charx,chary) {if(x>y) returny; } main() {inta=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,B),fun(b,C))); } 程序的执行结果是 A)函数调用出错B)8C)9D)7 26、有以下程序 voidf(intv,intw) {intt; t=v;v=w;w=t; } main() {intx=1,y=3,z=2; if(x>y)f(x,y); elseif(y>z)f(y,z); elsef(x,z); printf(“%d,%d,%d\n”,x,y,z); } 执行后输出结果是 A)1,2,3B)3,1,2C)1,3,2D)2,3,1 27、通过函数求f(x)的累加和,其中f(x)=x2+1 F(intx) {return____________;} SumFun(intn) { intx,s=0; for(x=0;x<=n;x++)s+=F(_____); returns; } main() { printf("Thesum=%d\n",SumFun(10)); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八章 函数 第八
![提示](https://static.bdocx.com/images/bang_tan.gif)