信息系统开发与维护(专科)

按下列公式s(n)12+22……+n2编写计算并输出s值,其中的n值由键盘输入。

题目

按下列公式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)


正确答案:D

第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);

}


正确答案:float fun(int n) { int is1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1; /*求多项式的值*/ } return s; }
float fun(int n) { int i,s1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1; /*求多项式的值*/ } return s; } 解析:本题中用s1来表示式中每一项的分母,而每一项的分母都是其前一项分母加项数。注意由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。

第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);

}


正确答案:double fun(int n) { int i; double s=0.0; for (i=1; i=n; i++) s=s+(1.0/(2*i-1)-1.0/(2*i)); /*计算S= (1-1/2) + (1/3-1/4) +…+ (1/(2n-1)-l/2n) */ return s; }
double fun(int n) { int i; double s=0.0; for (i=1; i=n; i++) s=s+(1.0/(2*i-1)-1.0/(2*i)); /*计算S= (1-1/2) + (1/3-1/4) +…+ (1/(2n-1)-l/2n) */ return s; } 解析:本题中s=s+(1.0/(2*i-1)-1,O/(2*i));语句是用C程序去表达题目中的每一项,这是关键,其他问题不难理解。

第6题:

有以下语句段:

int n1=10,n2=20;

printf("【 】",n1,n2);

要求按以下格式输出n1和n2的值:

n1=10

n2=20

每个输出行从第一列开始,请填空。


正确答案:n1=%d\nn2=%d
n1=%d\nn2=%d 解析:根据输出结果,可以确定“格式控制”为n1=%d\nn2=%d,其中,“n1=”和“n2 =”是按原样输出的字符,“%d”是按十进制整数输出,“\n”是转义字符,用于输出回车换行。

第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语言提供的取绝对值函数fabst取绝对值。所以将“while(t =num)”改为“while(fabs(t) =num)”
(2)
表达式sn中,n是浮点型,而%运算符只能用于整数运算,且要进行的是除法运算而不是求余运算。所以,第二个标识下“t=sn应该改为“t=sn

第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;}


正确答案:
-1;*sn

第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);

}


正确答案:double fun (int n) { int i; double s=0.0s1=0.0; for(i=1;i=n;i++) {s1=s1+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; }
double fun (int n) { int i; double s=0.0,s1=0.0; for(i=1;i=n;i++) {s1=s1+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; } 解析:该程序的数学思路是:在程序中输入n后,以前n项的和作为分母递加,由于s1是浮点类数据所以s=s+1.0/s1; for 循环的作用是每一次循环给总结果s加上一项1.0/s1。

第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


正确答案:B
解析:本题考查了循环的执行,因s在程序中起一个计数变量的作用,即记录循环执行的次数,若循环执行  两次,a的值等于n时退出循环,即a减两次2后应等于n,可推算出n的值为-3。

更多相关问题