- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一部分 对函数的进一步讨论
第十一部分:对函数的进一步讨论
一、选择题(1)有以下程序?# include??? string.h?void f(char? *s, char? *t)?{ char? k;?? k=*s;??? *s=*t;??? *t=k;?? s++;??? t--;?? if (*s)? f(s, t);?}?main()?{ char? str[10]=abcdefg, *p ;?? p=str+strlen(str)/2+1;?? f(p, p-2);?? printf(%s\n,str);?}程序运行后的输出结果是 A)abcdefg?? B)gfedcba?? C)gbcdefa?? D)abedcfg(2)有以下程序?float f1(float? n)?{? return? n*n;? }?float f2(float? n)?{? return? 2*n;? }?main()?{ float? (*p1)(float),(*p2)(float),(*t)(float), y1, y2;?? p1=f1;??? p2=f2;?? y1=p2( p1(2.0) );?? t = p1;?? p1=p2;?? p2 = t;?? y2=p2( p1(2.0) );?? printf(%3.0f, %3.0f\n,y1,y2);?}程序运行后的输出结果是 A)8,? 16?? B)8,? 8 ?? C)16,? 16?? D)4,? 8(3)程序中若有如下的说明和定义语句char? fun(char? *);main(){?? char? *s=one,a[5]={0},(*f1)()=fun,ch;?? ……}以下选项中对函数fun的正确调用语句是??????????????????? A)(*f1)(a); B)*f1(*s); C)fun(a); D)ch=*f1(s)(4) 在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 A) 称为函数的直接递归调用 ?? B) 称为函数的间接递归调用 C) 称为函数的循环调用? ??? D) C语言中不允许这样的递归调用(5) 有以下程序void fun(int *a,int i,int j){ int t;? if(ij)? { t=a[i];a[i]=a[j];a[j]=t;??? i++; j--;??? fun(a,i,j);? }}main(){ int x[]={2,6,1,8},i;? fun(x,0,3);? for(i=0;i4;i++) printf(-,x[i]);? printf(\n);}程序运行后的输出结果是 A) 1 2 6 8? ? B)? 8 6 2 1 ? C)? 8 1 6 2 ? D) 8 6 1 2(6) 有以下程序#include string.hmain(int argc ,char *argv[ ]){? int i,len=0;?? for(i=1;iargc;i+=2)? len+=strlen(argv[i]);?? printf(“5d\n”,len);}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex?? abcd?? efg?? h3?? k44执行后输出结果是 A) 14? ??? B) 12 ??? C) 8? ??? D) 6(7) 有以下程序void f(int a[],int i,int j){? int? t;?if(ij)?? {? t=a[i]; a[i]=a[j];a[j]=t;????? f(a,i+1,j-1);?? }}main( ){? int i,aa[5]={1,2,3,4,5};?? f(aa,0,4);?? for(i=0;i5;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,(8) 有以下程序void?fun(int?*a,int?i,int?j){?int?t;if(ij)?{?t=a[i];a[i]=a[j];a[j]=t;??fun(a,++i,--j);?}}main(){?int?a[]={1,2,3,4,5,6},i;?fun
文档评论(0)