福建计算机二级c语言试题及答案,2015年计算机二级C语言测试题及答案(9)

1: 请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。

答案:

void fun(char *s,char t[])

{

int I,j=0,n;

n=strlen(s);

for(i=0;I,n;i++)

if(i%2==0&&s[i]%2==0)

{

t[j]=s[i];

j++;

}

t[j]=‘\0’;

}

2: 请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。

答案:

void fun(char *s,char t[])

{

int I,j=0,n;

n=strlen(s);

for(i=0;I,n;i++)

if(i%2!=0&&s[i]%2!=0)

{

t[j]=s[i];

j++;

}

t[j]=‘\0’;

}

3: 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

答案:

void fun(char *a,int n)

{

int i=0;k=0;

char *p, *t;

p=t=a;

while (*t)

t++;

t--;

while(*t==‘*’)

{

k++;

t--;

}

t++;

if(k>n)

{

while (*p&&p

{

a[i]=*p;

i++;

p++;

}

a[i]=‘\0’;

}

}

4: 学生的记录由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

答案:

int fun (STREC *a, STREC *b)

{

int I,j=0,n=0, max;

max=a[0].s;

for(i=0;i

if(a[i].s>max)

max=a[i].s;

for(i=0;i

if(a[i].s==max)

{

*(b+j)=a[i];

j++;

n++;

}

return n;

}

5: 请编写一个函数,用来删除字符串中的所有空格。

答案:

void fun(char *str)

{

int i=0;

char *p=str;

while (*p)

{

if(*p!=‘’)

{

str[i]=*p;

i++;

}

p++;

}

str[i]=‘\0’;

}

6: 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

答案:

void fun(char *a)

{

int i=0,n=0;

char *p;

p=a;

while (*p==‘*’)

{

n++;

p++;

}

while (*p)

{

a[i]=*p;

i++;

p++;

}

while(n!=0)

{

a[i]=‘*’;

i++;

n--;

}

a[i]=‘\0’;

}

7: 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。

答案:

void fun(STREC *p)

{

double av=0.0;

int i:

for(i=0;i

av+=p->s[i];

av/=N;

p->ave=av;

}

8: 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

答案:

int fun(char *ss, char c)

{

int n=0;

while (*ss)

{

if(*ss==c)

n++;

ss++;

}

return n;

}

9: 请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。

答案:

void fun(int *w, int p, int n)

{

int b[N], i, j=0;

for(i=0;i<=p;i++)

{

b[i]=w[i];

j++;

}

for(i=0;i<=p;i++)

{

w[j]=b[i];

j++;

}

}

10: 请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

答案:

void fun(char *w,int m)

{

char b[N];

int I,j=0;

for(i=0;i

{

b[j]=w[i];

j++;

}

for (i=0;i

w[i]=w[i+m];

for(j=0;j

{

w[i]=b[j];

i++;

}

w[i]=‘\0’;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值