2012二级c语言标准答案,二级C语言_上机题标准答案2012.doc

二级C语言_上机题标准答案2012

二级C语言_上机题标准答案2012

1、 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内容应当是:****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

void fun(char *a,char *h,char *p)

{char b[81],*x;

int i=0,j=0;

x=a;

while (x

while (h<=p)

if (*h!='*') {b[j]=*h;j++;h++;}

else h++;

p++;

while (*p) {b[j]=*p;j++;p++;}

b[j]='\0';j=0;

while (b[j])

{ a[i]=b[j];i++;j++;}

a[i]='\0';

}

void NONO( )

{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,

输出数据,关闭文件。 */

char s[81],*t,*f;

int i;

FILE *rf,*wf;

rf = fopen("b37.in","r");

wf = fopen("a37.out", "w") ;

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

{fscanf(rf,"%s",s);

t=f=s;

while(*t) t++;

t--;

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

while (*f=='*') f++;

fun(s,f,t);

fprintf(wf,"%s\n",s);

}

fclose(rf);

fclose(wf) ;

}

main()

{ char s[81],*t,*f;

printf("Enter a string:\n");gets(s);

t=f=s;

while(*t) t++;

t--;

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

while (*f=='*') f++;

fun(s,f,t);

printf("The string after deleted:\n");puts(s);

NONO();

}

2、 给定程序modi.c中,函数fun的功能是:给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实际个数。

例如,n=8时输入:193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763所得平均值为:195.838745,在平均值以上的实数个数应为:5

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

#include

#include

int fun(float x[],int n)

/************found************/

{ int j,c=0;float xa=0.0;

for(j=0;j

xa+=x[j]/n;

printf("ave=%f\n",xa);

for(j=0;j

/************found************/

if (x[j]>=xa)

c++;

return c;

}

main()

{float x[100]={193.199f,195.673f,195.757f,196.051f,196.092f,196.596f,196.579f,196.763f};

system("cls");

printf("%d\n",fun(x,8));

}

3、 给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值