按下列公式s(n)12+22……+n2编写计算并输出s值,其中的n值由键盘输入。
第1题:
请编写函数proc,其功能是:计算并输出下列多项式值。 S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n) 例如,若主函数从键盘给n输入20后,则输出为S= 0.680803。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: include t:stdio.h> double proc(int n) { } void main { int n; double slim; printf("\nInput n:"); scanf("%d",&n); sum=proc(n)。 printf("\ns=%f\n",sum); }
double proc(int n)
{
int i;
double s=0.0; //s为其和的变量
for(i=1;i<=n;i+十)
S=s+(1.0/(2*i-1)-1.O/(2*i)); //计算s
=(1-1/z)+(1/3-1/4)+…+(1/(2n-1)-1/
2n)
return s; //最后把所得到的和返回到主函数中
}
【解析】由题目中所给表达式可知,多项式的值为n项表达式的和。可以利用n次循环求出n项表达式的值,求和放在变量s中。最后将多项式的值返回到主函数当中。
第2题:
( 6 ) 下面程序的功能是从键盘输入 1 大于 100 的整数 m ,计算并输出满足不等式
1+22+32 +42 + …… .+n2<m
的最大的 n 。请填空
Private Sub Command1__Click ()
Dim s ,m,n AS Integer
m=Val ( InputBox ( “ 请输入一个大于 100 的整数 ” ))
n=_________
s=0
Do While s<m
n=n+1
s=s+n*n
Loop
Print “ 满足不等式的最大 n 是_____
End Sub
第3题:
AG(s)=s/(s2+ωn2)
BG(s)=ωn2/(s2+ωn2)
CG(s)=s/(s2+2ξωns+ωn2)
Dωn2/(s2+2ξωns+ωn2)
第4题:
编写函数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>
float fun(int n)
{
}
main()
{
int n;
float s;
clrscr();
printf("\nPlease enter N: ");
scanf("%d",&n);
s=fun(n);
printf("The result is:%f\n " , s);
}
第5题:
请编写函数fun(),其功能是;计算井输出下列多项式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函数从键盘给n输入8后,则输出为 S-0.662872。
注意;部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
试题程序;
include<stdio. h>
double fun(int n)
{
}
main ()
{
int n;
double s;
printf("\nInput n: ");
scanf ("%d", &n);
s=fun (n);
printf ("\ns=%f\n ", s);
}
第6题:
有以下语句段:
int n1=10,n2=20;
printf("【 】",n1,n2);
要求按以下格式输出n1和n2的值:
n1=10
n2=20
每个输出行从第一列开始,请填空。
第7题:
给定程序MODI1.C中函数fun的功能是:用下面的公式:
π/4=1-1/3+1/5-1/7+.....
求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
例如,程序运行后,输入0.0001,则程序输出3.1414。
请改正程序中的错误,使它能输出正确的结果。_______
注意:不要改动smain函数,不得增行或删行,也不得更改程序的结构!
include 〈 math.h 〉
include 〈 stdio.h 〉
float fun (float num)
{ int s ;
float;n,t,pi ;
t=1;pi=0;n=1;s=1;
/**********found**********/
while(t 〉=num)
{
pi = pi + t ;
n = n +2 ;
s=-s ;
/**********found**********/
t = s % n ;
}
pi=pi*4 ;
return pi ;
}
main()
{ float n1,n2;
printf("Enter a float number:");
scanf("%f", &n1);
n2=fun(n1);
printf("%6.4f\n",n2);
}
参考答案:(1)while(fabs(t)〉=num)
(2)t=s/n;
详细解答:(1)题干中要求进行循环的条件是绝对值小于某范围,可以调用C语言提供的取绝对值函数fabs对t取绝对值。所以将“while(t 〉=num)”改为“while(fabs(t) 〉=num)”。
(2)表达式s%n中,n是浮点型,而%运算符只能用于整数运算,且要进行的是除法运算而不是求余运算。所以,第二个标识下“t=s%n;”应该改为“t=s/n;”。
第8题:
函数 void fun(float *sn, int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。
void fun( float *sn, int n)
{ float s=0.0, w, f=-1.0;
int i=0;
for(i=0; i<=n; i++)
{ f=( )* f;
w=f/(2*i+1);
s+=w; }
( )=s;}
第9题:
请编写函数fun(),其功能是:计算并输出下列多项式的值。
S=1+4/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)
例如,着主函数从键盘给n输入50后,则输出为 S=1.960784。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <stdio.h>
double fun(int n)
{
}
main ()
{
int n;
double s;
printf ("\nInput n: ");
scanf ("%d", &n);
s=fun (n);
printf ("\n\ns=%f\n\n", s);
}
第10题:
有以下程序
main( )
{ int s=0,a=1,n;
scanf("%d",&n);
do
{ s+=1; a=a-2; }
while(a!=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是
A.-1
B.-3
C.-5
D.0