荟萃馆

位置:首页 > 计算机 > 计算机二级

2016年计算机二级考试C++模拟试题及答案

1 请编写函数fun,其功能时:计算并输出当x<0.97时下列多项式的值,直到|sn-s(n-1)|<0.000001为止。

2016年计算机二级考试C++模拟试题及答案

Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n)

参考答案

le fun(double x)

{double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;

int n=1;

do

{s0=s1;

sum+=s0;

t*=n;

p*=(0.5-n+1)*x;

s1=p/t;

n++;}while(fabs(s1-s0)>1e-6);

return sum;}

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

【参考答案】

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

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

3请编写函数fun,其功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

【参考答案】

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

{int i,j=0,n=strlen(s);

for(i=0;i

if (s%2!=0)

{t[j]=s;

j++;}

t[j]=‘’;}

4已知学生的记录由学号和学习成绩构成,n名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。

【参考答案】

void fun(stu a[],stu *s)

{int i,min;

min=a[0].s;

for(i=0;i

if(a.s

{min=a.s;

*s=a;}}

5程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun,该函数的.功能是:使数组左下半三角元素中的值乘以n。

【参考答案】

fun(int a[][n],int n)

{int i,j;

for(i=0;i

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

a[j]=a[j]*n;}

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

【参考答案】

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

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

7请编写一个函数fun,它的功能使:计算n门课程的平均分,计算结果作为函数值返回。

【参考答案】

float fun(float *a,int n)

{float ave=0.0;

int i;

for(i=0;i

ave+=a;

ave/=n;

return ave;}

8假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能使:将字符串尾部的*号全部删除,前面和中间的*号不删除。

【参考答案】

void fun(char *a)

{int i=0;

char *p,*q;

p=q=a;

while(*p)

p++;

p--;

while(*p==‘*’)

p--;

while(q<=p)

{a=*q;

i++;

q++;}

a=‘’;}

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

【参考答案】

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

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

10 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。

【参考答案】

double fun(strec *h)

{double aver=0.0;

while(h!=null)

{aver+=h->s;

hy=h->next;}

aver/=n;

return aver;}