程序编程题目
1、第一大类(交换类)共7道 2. 程序修改(第3套) 给定程序中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b中的值为8. /**found**/ t=*x; *x=y; /**found**/ return(t);
2. 程序修改(第60套)
给定程序中函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60 /**found**/
void fun(int *a,int *b) /**found**/
t=*b;*b=*a;*a=t;
2. 程序修改(第88套) 给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。 /**found**/
void fun(int *x, int *y) /**found**/
t=*x,*x=*y,*y=t;
2、第二大类(计算类)共22道 2. 程序修改(第1套) 给定程序中函数fun的功能是:求出以下分数序列的前n项之和。
2/1+3/2+5/3+8/5+13/8+21/13+ 和值通过函数值返回main函数。例如n=5,则应输出:8.391667。
/**found**/ double fun(int n) /**found**/
s=s+(double)a/b;
2. 程序修改(第6套) 给定程序中函数fun的功能是:用递归算法计算列中第n项的值。从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、 /**found**/ switch(g) /**found**/
case 1:case 2:return 1;
2. 程序修改(第13套) 给定程序中函数fun的功能是:求 s=aa aa— —aaa—aa—a(此处aa aa表示n个a,a和n的值在1至9之间)。例如,a=3,n=6,则以下表
达式为:
S=333333-33333-3333-333-33-3其值是296298。 /**found**/ long s=0,t=0; /**found**/ t=t/10;
2. 程序修改(第21套) 给定程序中函数fun的功能是:计算s=f(-n)+f(-n+1)+ +f(0)+f(1)+f(2)+ f(n)的值。例如,当n为5时,函数值应该是:10.407143。
f(x)=(x+1)(x-2) x>0且x!=2 f(x)=0
f(x)= (x-1)(x-2) x<0 /**found**/
double f(double x) /**found**/ return s;
2. 程序修改(第27套) 给定程序中函数fun的功能是:用递归算法求形参a的平方根。求平方根的迭代公式如下:x1=1/2(x0+a/x0)例如:a为2时,平方根值为1.414214 /**found**/
double fun(double a,double x0) /**found**/
if(fabs(x1-x0)>0.00001)
2 程序修改(第29套) 给定程序中函数fun的功能是:计算函数值,F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值得。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。 /**found**/
#define FU(m,n) (m)/(n) /**found**/ return (value);
2. 程序修改(第33套) 给定程序中函数fun的功能是:根据整形形参m=1,计算如下公式的值。
m=1+1/2*2+1/3*3+1/4*4+..+1/m*m例如,若m中的值为5,则应输出1.463611 /**found**/
for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ;
2. 程序修改(第37套) 给定程序中函数fun的功能是:用下面的公式求π的近似值,知道最后一项的近似值小于指定数(参数num)为止:例如程序0.0001,则程序输出3.1414。 /**found**/
while((fabs(t))>=num) /**found**/
t=s/n
2. 程序修改(第45套) 给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=30140578.。 /**found**/ t=1.0;
/**found**/ return(s*2);
2. 程序修改(第47套) 给定程序中函数fun函数功能是:计算n!。例如,给n输入5,则输出120.000000。 /**found**/ if (n==0) /**found**/ result *=n--;
2. 程序修改(第48套) 给定程序中函数fun的功能是:根据整形形参m=1,计算如下公式的值。
m=1+1/2*2+1/3*3+1/4*4+..+1/m*m例如,若m中的值为5,则应输出1.463611 /**found**/
for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ;
给定程序中函数fun的功能是:计算并输出下列级数的前n项的和Sn,直到Sn+1大于q为止,q的值通过形参传入。 Sn=2/1+3/2+4/3+…+(N+1)/N /**found**/
s=s +(double)(n+1)/n; /**found**/ return t;
2. 程序修改(第52套) 下列给定程序中函数fun的功能是:按以下递推公式求函数的值。
Fun=10 (n=1),fun(n-1)+2 (n>1) 例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14. /**found**/ int fun(int n) /**found**/ if(n==1)
2. 程序修改(第58套) 给定程序中函数fun的功能是:求K!,所求阶乘的值作为函数值返回。例如,若K=10,则应输出3628800。 /**found**/ if(k>1)
/**found**/ else if(k= =0)
2. 程序修改(第63套) 给定程序中函数fun的功能是:计算整数n的阶乘。
/**found**/ result *=n--; /**found**/ return result;
2. 程序修改(第65套) 给定程序中,函数fun的功能是:根据形参m,计算下列公式的值:t=1+1/2+1/3+1/4+… +1/m例如,若输入5,则应输出2.28333 /**found**/ t+=1.0/i; /**found**/ return t;
2. 程序修改(第77套) 给定程序中函数fun的功能是:根据整形形参m,计算如下公式的值。
Y=1/(100*100)+1/(200*200) +1/(300*300)+L+1/(m*m) /**found**/
double fun(int m) /**found**/
for(i=100;i<=m;i+=100)
2. 程序修改(第78套) 给定程序中函数fun的功能是:根据整型形参n计算如下公式的值。A1=1,
A2=1/(1+A1),A3=1/(1+A2),An=1/(1+A(n-1))例如:若n=10,则应输出:0.617977. /**found**/ float fun(int n) /**found**/
for(i=2;i<=n;i++)
2. 程序修改(第85套) 下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。 t=1/2-1/3-…-1/m例如,若输入5,则应输出-0.283333. /**found**/ t-=1.0/i; /**found**/ return t;
2. 程序修改(第91套) 下列给定程序中,函数fun的功能是:求s的值。设S=(2*2/(1*3))*(4*2/(1*3))*(6*2/(5*7))*L*(2k)(2k)/((2k-1)*(2k+1))例如,当k为10时,函数的值应为1.533852。 /**found**/ double fun(int k) /**found**/ return s ;
2. 程序修改(第95套)
给定程序中函数fun的功能是:求出以下分数列的前n项之和2/1,3/2,5/2,8/5, 13/8, 21/13 和值通过函数值返回到main函数。例如,若n=5,则应输出8.391667。 /**found**/