2015年计算机二级C语言上机操作题及答案(96)
发布时间:2011/7/28 15:45:35 来源:城市学习网 编辑:ziteng
填空题
给定程序的功能是将未在字符串s中出现,而在字符串t中出现的字符,形成一个新的字符串放在u中,u中字符按原来字符串中字符顺序排序,但去掉重复的字符。
例如:当s=”12345”,t=”24677”时,u中的字符为:”67”。
请勿改动主函数main和其他函数中任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#include
#include
void fun (char *s, char *t, char *u)
{
int i, j, sl, tl, k, ul = 0;
sl = strlen(s);
tl = strlen(t);
for (i=0; i {
for (j=0; j if (t[i] == s[j])
break;
if (j >= sl)
{
for (k=0; k if (t[i] == u[k])
___1___;
if (k >= ul)
u[ul++] = ___2___;
}
}
___3___ = '\0';
}
main()
{
char s[100], t[100], u[100];
printf("\nPlease enter string s:");
scanf("%s", s);
printf("\nPlease enter string t:");
scanf("%s", t);
fun(s, t, u);
printf("The result is: %s\n", u);
}
答案:
1、break
2、t[i]
3、u[ul] [NextPage] 改错题
下列给定程序中,fun的功能是:计算
S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。列如,当n为5是,函数值应为10.407143。f(x)函数定义如下:
f(x)=
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
/********found********/
f(double x)
{
if (x==0.0 || x==2.0)
return 0.0;
else if (x < 0.0)
return (x-1)/(x-2);
else
return (x+1)/(x-2);
}
double fun(int n)
{
int i;
double s = 0.0, y;
for (i=-n; i<=n; i++)
{
y = f(1.0*i);
s += y;
}
/********found********/
return s
}
main()
{
printf("%lf\n", fun(5));
}
答案:
1、f(double x) 应改为double f (double x)
2、rerurn s 应改为 return s ; [NextPage] 编程题
请编写函数fun,其功能是:计算并输出下列多项式值:
S=1+ +…+
例如,若主函数从键盘给n输入50后,则输出为S=1.960784。
注意:n的值要求大于1但不大于100。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
double fun(int n)
{
}
main()
{
int n;
double s;
FILE *out;
printf("\nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n\n",s);
out=fopen("out.dat","w");
for (n = 0; n < 10; n++)
fprintf(out, "%f\n", fun(n+50));
fclose(out);
}
答案:
double fun (int n)
{
int i, j,k;
double sum=0.0, t;
for(i=1;i <=n;i++)
{
t=0.0;
for(j=1;j<=i;j++)
t+=j;
sum+=1.0/t;
}
return sum;
}