网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > C语言

2017年计算机二级C语言考前测试题及答案

栏目: C语言 / 发布于: / 人气:1.86W

为了让大家更好地巩固计算机二级考试C语言知识,下面小编就为大家收集整理了2017年计算机二级C语言考前测试题及答案,欢迎学习!

2017年计算机二级C语言考前测试题及答案

  测试题一

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

答案:

void fun(int a, int b, long *c)

{

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

}

2: 第2题请编写函数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;

}

3: 第3题请编写函数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;

}

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

答案:

void fun(char *a)

{

int i=0;

char *p=a;

while(*p&&*p==‘*’)

p++;

while(*p)

{

a[i]=*p;

i++;

p++;

}

a[i]=‘’;

}

5: 第5题假定输入的字符串中只包含字母和*号。请编写函数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]=‘’;

}

6: 第6题请编写函数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;

}

7: 第7题请编写函数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;

}

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

答案:

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;

}

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

答案:

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;

}

10: 第10题请编写函数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;

}

  测试题二

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

答案: