首页>计算机等级考试>模拟试题>正文
全国计算机等级考试C语言南开100题(十)附答案

www.zige365.com 2010-7-20 17:44:21 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

90: 90题 请编写函数fun,其功能是:计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).
答案:

sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n).
double fun(int n)
{int i;
double sn=0.0;
for(i=1;i
=n;i++)
sn+=(1.0/(2*i-1)-1.0/(2*i));
return sn;}



91:
91题 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
答案:

void fun(int a, int b, long *c)
{
*c=(a)*1000+(b)*100+(a/10)*10+b/10;
}



92:
92题 请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作为函数值返回。
答案:

double fun(int m)
{
int I;
double s=0.0, log(double x);
for(i=1;i
=m;i++)
s=s+log(i);
s=sqrt(s);
return s;
}



93:
93题 请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
S=1+x+x(2)/2!+x(3)/3!+…x(n)/n!
答案:

double fun(double x, int n)
{
double s=1.0, p=1.0;
int I,j,t;
for(i=1;i
=n;i++)
{
t=1;
for(j=1;j
=i;j++)
t=t*j;
p=p*x;
s=s+p/t;
}
return s;
}



94:
94题 规定输入字符串中只包含字母和*号。请编写函数fun,它的功能是:将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。
答案:

void fun(char *a)
{
int i=0;
char *p=a;
while(*p&&*p==‘*’)
p++;
while(*p)
{
a[i]=*p;
i++;
p++;
}
a[i]=‘\0’;
}



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

void fun(char *a, int n)
{
int i=0,k=0;
char *t=a;
while(*t==‘*’)
{
k++;
t++;
}
t=a;
if(k>n)
t=a+k-n;
while( *t)
{
a[i]=*t;
i++;
t++;
}
a[i]=‘\0’;
}



96:
96题 请编写函数fun,其功能使:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。
答案:

double fun(double x[9])
{
double sum=0.0;
int I,j=1;
for(i=0;i
9;i++)
if(j
=8)
{
sum+=sqrt((x[i]+x[i+1])/2.0);
j++;
}
return sum;
}



97:
97题 请编写函数fun,其功能是:计算并输出下列多项式值:
s=1+1/(1+2)+1/(1+2+3)+..1/(1+2+3…+50)
答案:

double fun(int n)
{
int I,j;
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;
}



98:
98题 请编写函数fun,它的功能是:计算并输出n(包括n)以内能被59整除的所有自然数的倒数之和。
答案:

double fun(int n)
{
int I;
double sum=0.0;
for(i=1;i
=n;i++)
if(i%5==0 || i%9==0)
sum+=1.0/I;
return sum;
}



99:
99题 请编写函数fun ,其功能是:计算并输出3n之间所有素数的平方根之和。
答案:

double fun(int n)
{
int m,k,I;
double s=0.0;
for(m=3;m
=n;m++)
{
k=sqrt(m);
for(i=2;i
=k;i++)
if(m%i==0) break;
if(i>=k+1)
s+=sqrt(m);
}
return s;
}



100:
100题 请编写函数fun,其功能是:计算并输出 s=1+(1+2(0.5))+(1+2(0.5)+3(0.5))+…+(1+2(0.5)+3(0.5)+…+n(0.5))
答案:

double fun(int n)
{
int I;
double =1.0,p=1.0;
for(i=2;i
=n;i++)
{
p+=pow(I,0.5);
s+=p;
}
return s;
}

我要投稿 新闻来源: 编辑: 作者:
相关新闻