计算机二级C语言上机题型总结..doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机二级C语言上机题型总结.

计算机二级C语言上机题型总结 一)“******”问题 1、将字符串中的前导*号全部删除,中间和后面的*号不删除。 void fun(char *a) {??? char *p=a; while(*p= =’*’)? p++; for( ; *p!=’\0’;p++,a++) ?????? *a=*p; ?????? *a=’\0’; } ? 2、只删中间*?? int i; for(i=0;a[i]= =’*’;i++) ? for( ;hp;h++) ? if(*h!=’*’) ? a[i++]=*h; ? for( ;*p;p++) ? a[i++]=*p; ? a[i]=’\0’; ? 3、只删尾* while(*a!=’\0’) ? a++; a--; while(*a= =’*’) ?? a--; *(a+1)=’\0’; ? 4、只留前*??? int i , j=0; for(i=0;a=’*’;i++); j=i; for( ;a;i++) if(a!=’*’) a[j++]=a[i]; a[j]=’\0’; ? 5、只留中间* int i,j=0; for(i=h;in-e;i++) ? a[j++]=a[i]; ? a[j]=’\0’; ? 6、只留尾* char *t=a; for( ; t=p;t++) ? if(*t!=’*’) ? *(a++)=*t; for( ;t!=’\0’;t++) ? *(a++)=*t; ? *a=’\0’; ? 7、*个数n个,删多余的*;*个数=n个,不做任何处理。 int i=0, k=0; char *p,*t; p=t=a; while(*t= =’*’) ?{ k++; t++; } if(kn) ?{ while(*p) ?{a[i]=*(p+k-n); ? i++;p++} a[i]=’\0’; } ? (二)移动问题 1、若一维数组中有n个整数,要求把下标从p到n-1(p=n-1)的元素平移到数组前面。 int i,j,t; for(i=p;i=n-1;i++) ? { ???? t=w[n-1]; ???? for(j=n-2;j=0;j--) w[j+1]=w[j]; w[0]=t; } 2、把下标从0到p(p=n-1)的元素平移到数组最后。 int i,j,t; for(i=0;i=p;i++) ? { ?? t=w[0]; ?? for(j=1;jn;j++) ???? w[j-1]=w[j]; ?? w[j-1]=t; } 3、把字符串str中的字符向前移动,原来第1个字符放串尾,结果仍保存在原串中。 ch=str[0]; for(i=0;str[i+1];i++) ?? str[i]=str[i+1]; ?? str[i]=ch; 4、移动字符串中的内容,把第1到第m个字符平移到串后,把第m+1到后移到前。 void fun(char *w, int m) { ? int i, j; ? char t; ? for(i=1,i=m;i++) ? { t=w[0]; for(j=1;w[j]!=’\0’;j++) ? w[j-1]=w[j]; ? w[j-1]=t; } } ? (三)排序法 1、冒泡法 for(i=1;in;i++) for(j=0;jn-1;j++) if(a[j]a[j+1]) ? {t=a[j];a[j]=a[j+1];a[j+1]=a[j];} 2、选择法 for(i=0;in-1;i++) { ? p=i; ? for(j=i+1;jn;j++) ? if(a[p]a[j]) p=j; ? if(p!=i) ? t=a[i];a[i]=a[p];a[p]=t; } 3、插入法 for(i=1;in;i++) { ? t=a[i]; ? for(j=i-1;a[j]tj=0;j--) a[j+1]=a[j]; a[j+1]=t; } ? (四)Fibonacci问题 1、求Fibonacci数列中小于t的最大的一个数,结果由函数返回。 int fun(int t) { ? int a=1,b=1,c=0,i; ? do ? { c=a+b; a=b; b=c; }while(ct); c=a; return c; } 2、用递归算法计算数列中第n项的值。 long fun(int g) { ? swich(g) ? { case 0:return 0; switch(g) ?case1:case2:return 1; } return(fun(g-1)+fun(g-2)); } (五)素数问题 1、将大于整数m且紧靠m的k个非素数存入所指的数组中。 void fun(int m,int k,int xx[]) { ?

文档评论(0)

s4as2gs2cI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档