知ing

最新计算机二级C语言上机试题汇编100套

NCRE研究组 编 / 高等教育出版社

゛Zirro、Y 上传

查看本书

27套: 

给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 

例如,当形参n的值为10时,函数返回:9.612558。 

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

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

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

给定源程序: 

#include <stdio.h> 

double fun(int n) 

{ int i; double s, t; 

/ **********found**********/ 

s=__1__; 

/ **********found**********/ 

for(i=1; i<=__2__; i++) 

{ t=2.0*i; 

/ **********found**********/ 

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("\nThe result is: %f\n",fun(n)); 

解题思路: 

第一处:根据公式可知,累加和变量s,应置0。 

第二处:for循环的终止值应为形参n。 

第三处:根据公式以及函数体中t变量内容,所以应填:t*t。 

*************************************************** 

给定程序MODI1.C中函数 fun 的功能是:统计substr所指子字符串在str所指字符串中出现的次数。 

例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。 

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

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

给定源程序: 

#include <stdio.h> 

 

fun (char *str,char *substr) 

{ int i,j,k,num=0; 

/ ************found************/ 

for(i = 0, str[i], i++) 

for(j=i,k=0;substr[k]==str[j];k++,j++) 

/ ************found************/ 

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\n",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 <stdio.h> 

#include <math.h> 

double fun ( double eps) 

main( ) 

{ double x; 

printf("Input eps:") ; 

scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", 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("\neps = %lf, PI=%lf\n", x, fun(x)); 

NONO(); 

※※※※※※※※※※※※※※※※※※※※※※※※※ 


查看更多