计算机二级上机题型分类,计算机二级C语言上机题型总结---新.doc

计算机二级C语言上机题型总结---新

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

(一)“******”问题

1、将字符串中的前导*号全部删除,中间和后面的*号不删除。

void fun(char *a)

{char *p=a;

while(*p==’*’)? p++;

for( ; *p!=’\0’;p++,a++)

?????? *a=*p;

??*a=’\0’;

}

?2、只删中间*??

#include

void main()

{ char a[81]="*****plpkj**123****mmkk***lkj***";

puts(a);

int i=0; char *h=a,*p=a;

while(*p!='\0') p++;

do

{p--;

}

while (*p=='*');

for(i=0;a[i]=='*';i++) h++;

for( ;h

if(*h!='*') a[i++]=*h;

for( ;*p;p++)

a[i++]=*p;

a[i]='\0';

puts(a);

}

3、只删尾*

#include

void main()

{ char a[81]="*****plpkj**123****mmkk***lkj***";

puts(a);

char *p=a;

while(*p!='\0') p++;

p--;

while(*p=='*') p--;

*(p+1)='\0';

puts(a);

}?

?

?(二)移动问题

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;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;

}

}

?()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(c

c=a;

return c;

}

2、用递归算法计算数列中第n项的值。

long fun(int g)

(g==1) return 1;

? if (g==2) return 1;

if (g>2) return(fun(g-1)+fun(g-2));

}

(四)素数问题

1、将大于整数m且紧靠m的k个非素数存入所指的数组中。

void fun(int m,int k,int xx[])

{ int i,j,n;

? for(i=m+1,n=0;n

???? for(j=2;j

??????? if(i%j==0)

??????? {xx[n++]=i;break;}

}

2、小于或等于lim的所有素数放在aa数组中,该函数返回所求出的素数个数。

int fun(int lim, int aa[MAX])

{? int i,j,k=0;

?? for(i=2;i<=lim;i++)

???? { for(j=2;j

??? if(i%j= =0) break;

??? if(j>=i)? aa[k++]=i;

}

return k;

}

3、将所有大于1小于整数m的非素数存入xx数组中,个数通过k传回。

void fun(int m,int *k,int xx[])

{ int i,j,n=0;

? for(i=4;i

{ for(j=2;j

?? if(i%j= =0) break;

?? if(j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值