第一套
给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:2,在程序中定义的变量名要与公式的变量相同)。
例如,输入圆的半径值:,输出为:s=。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序:
#include <>
double fun( double r)
{
return *【1】/;
}
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时,。f(x)函数定义如下:
f(x)=
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <>
#include <>
#include <>
#include <>
/*************found**************/
f(double x)
{
if(x==||x==)
return ;
else if(x<)
return(x-1)/(x-2);
else
return(x+1)/(x-2);
}
double fun(int n)
{
int i; double s=,y;
for(i=-n; i<=n;i++)
{ y=f(*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时,。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <>
#include <>
#include <>
#include <>
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
全国计算机等级考试二级C语言上机题库及其答案详解 来自淘豆网www.taodocs.com转载请标明出处.