文档详情

计算机等级考试二级上机100套题库..doc

发布:2017-01-19约28.54万字共209页下载文档
文本预览下载声明
第一套 给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:2,在程序中定义的变量名要与公式的变量相同)。 例如,输入圆的半径值:19.527,输出为:s=598.949991。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #include stdio.h double fun( double r) { return 3.14159*【1】/2.0; } void main() { double x; printf(Enter x: ); scanf(%lf,【2】); printf(s=%lf\n,fun(【3】)); } 【参考答案】 (1)r*r (2)x (3)x 【考点分析】 本题考查:圆面积计算公式*r*r;scanf( )函数的形式,其一般形式为scanf(格式控制字符串,地址表列);,注意地址是由地址运算符后跟变量名组成的;printf( )函数的形式,其一般形式为printf(格式控制字符串,输出表列);;函数实参调用,函数作为另一个函数调用的实际参数出现。 【解题思路】 填空1:计算圆的面积,公式为:*r。 填空2:scanf( )函数一般形式为scanf(格式控制,地址表列),因此填入x。 填空3:函数的实际参数是圆的半径x。 下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。 例如,当n为5时,函数值应为10.407143。f(x)函数定义如下: f(x)= 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include stdlib.h #include conio.h #include stdio.h #include math.h /*************found**************/ f(double x) { if(x==0.0||x==2.0) return 0.0; else if(x0.0) return(x-1)/(x-2); else return(x+1)/(x-2); } double fun(int n) { int i; double s=0.0,y; for(i=-n; i=n;i++) { y=f(1.0*i); s+=y;} /*************found**************/ return s } void main() { system(CLS); printf(%f\n, fun(5)); } 【参考答案】 (1) 错误:f(double x) 正确:double f(double x) (2) 错误:return s 正确:return s; 【考点分析】 本题考查:函数的定义,其一般形式为类型标识符 函数名(形式参数表列),其中类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。 【解题思路】 该程序的流程是,fun( )程序对f(n)项循环累加,并且采用条件选择语句计算函数f(x)的值。本题的错误在于未定义函数f(double x)的返回值类型。C语言规定,在未显式声明的情况下,函数返回值默认为int型。 编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n) 例如,若n的值为11时,函数的值为1.833333。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include conio.h #include stdio.h #include string.h #include stdlib.h float fun(int n) { } void main() { FILE *wf; int n; float s; system(CLS); printf(\nPlease enter N: ); scanf(%d,n); s=fun(n); printf(The result is:%f\n , s); /******************************/ wf=fopen
显示全部
相似文档