网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文

2016下半年计算机等级二级C语言上机模拟试题及答案

栏目: 计算机等级 / 发布于: / 人气:7.49K

给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。

2016下半年计算机等级二级C语言上机模拟试题及答案

例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的K1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include

void fun(char *s, char c)

{ int i, j, n;

for(i=0; s[i]!=___1___ ; i++)

if(s[i]==c)

{

n=___2___ ;

while(s[i+1+n]!=’�’) n++;

for(j=i+n+1; j>i; j--) s[j+1]=s[j];

s[j+1]=___3___ ;

i=i+1;

}

}

main()

{ char s[80]="baacda", c;

printf(" The string: %s ",s);

printf(" Input a character: "); scanf("%c",&c);

fun(s,c);

printf(" The result is: %s ",s);

}

解题思路:

第一处:在for循环中终止值要判断字符串是否结束符,所以应填:’�’。

第二处:n用于统计参数c后还有多少个字符,要对其进行初始化,所以应填:0。

第三处:要求插入相同的字符c,所以应填:c。

在主函数中从键盘输入若干个数放入数组中, 用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。

例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,

则程序的运行结果为:19.250000。

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

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

给定源程序:

#include

double fun ( int x[])

{

int sum = 0.0;

int c=0, i=0;

while (x[i] != 0)

{ if (x[i] > 0) {

sum += x[i]; c++; }

i++;

}

sum = c;

return sum;

}

main( )

{ int x[1000]; int i=0;

printf( " Please enter some data (end with 0): " );

do

{ scanf("%d", &x[i]); }

while (x[i++] != 0);

printf("%f ", fun ( x ));

}

解题思路:

第一处:由于sum是存放实数值,因此不能定义为整型,所以应改为double sum=0.0;或float

sum=0.0;。

第二处:除的运算符是“/”。

编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

1 1 1

S=1 + ── + ─── + ... + ──────

1+2 1+2+3 1+2+3+...+n

例如:若n的值为11时,函数的值为:1.833333

注意: 部分源程序在文件PROG1.C中。

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

给定源程序:

#include

float fun(int n)

{

}

main()

{ int n; float s;

printf(" Please enter N:"); scanf("%d", &n);

s = fun(n);

printf("the result is: %f ", s);

NONO();

}

解题思路:

本题是根据给定的公式计算结果。使用for循环语句依次求出每一项的值,分别进行累加并把结果存入变量s中,最后返回s。

参考答案:

float fun(int n)

{

int i,j,t;

float s=0;

for(i=1;i<=n;i++) {

t=0;

for(j=1;j<=i;j++) t+=j;

s=s+1./t;

}

return s;

}