2013年计算机二级C语言上机题库及解析二十六

牛课网 考试宝典 更新时间:2024-05-19 19:03:38

浙江湖州中考语文试卷 小儿厌食的中医辨证论治 佳木斯历届高考状元

填空题
给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。
例如,当形参n的值为10时,函数返回:9.612558。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun(int n)
{ int i; double s, t;
s=__1__;
for(i=1; i<=__2__; i++)
{ t=2.0*i;
s=s+(2.0*i-1)*(2.0*i+1)/__3__;
}
return s;
}
main()
{ int n=-1;
while(n<0)
{ printf("Please input(n>0): "); scanf("%d",&n); }
printf("The result is: %f",fun(n));
}
解题思路:
第一处:根据公式可知,累加和变量s,应置0。
第二处:for循环的终止值应为形参n。
第三处:根据公式以及函数体中t变量内容,所以应填:t*t。
改错题
给定程序MODI1.C中函数 fun 的功能是:统计substr所指子字符串在str所指字符串中出现的次数。
例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
fun (char *str,char *substr)
{ int i,j,k,num=0;
for(i = 0, str[i], i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
If(substr[k+1]=='\0')
{ num++;
break;
}
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
printf("Input a substring:") ;
gets(substr);
printf("%d",fun(str,substr));
}
解题思路:
第一处:循环for语句中应有分号。
第二处:if错写成If。
 

编程题
请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度 0.0005, 即某项小于0.0005时停止迭代):
π 1 1×2 1×2×3 1×2×3×4 1×2×…×n
─ = 1+─+─—+────+──────+……+────────
2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14…。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include  
#include
double fun ( double eps)
{
}
main( )
{ double x;
printf("Input eps:") ;
scanf("%lf",&x); printf("eps = %lf, PI=%lf", x, fun(x));
NONO();
}
解题思路:
本题是根据公式进行计算。
参考答案:
double fun ( double eps)
{
double s=1,t=1./3;
int n=1;
while(t>=eps){ s+=t; n++; t=t*n/(2.0*n+1); }
return (s*2.0);
}
main( )
{ double x;
printf("Input eps:") ;
scanf("%lf",&x); printf("eps = %lf, PI=%lf", x, fun(x));
NONO();
}

考试宝典安装说明

宝典适用于手机、电脑、平板,您可安装客户端或在浏览器使用。

电脑版

手机版

网页版

考试宝典咨询
服务热线

TEL:029-88699698