- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)