C程序设计 2009春学期 上机练习M2-M8参考答案
20041 生成 3 的乘方表 sum=sum+sqrt(i); /*---------*/ 输入一个正整数n,生成一张3的乘方表,输出3^0 ~ 3^n的值,可调用幂函数计算3的乘方。
输出使用语句 printf(\输入输出示例:括号内是说明 输入 3 输出
pow(3,0) = 1 pow(3,1) = 3 pow(3,2) = 9 pow(3,3) = 27
#include
求100^0.5+101^0.5+……+1000^0.5 for(i=0;i<=n;i++) { } mypow=pow(3,i); printf(\(n=3)
printf(\} 20053
计算物体自由下落的距离
一个物体从 100m 的高空自由落下,编写程序,求它在前 3s 内下落的垂直距离(结果保留2位小数)。设重力加速度为10米/秒^2。
#include
计算分段函数
输入一个正整数repeat (0 编写程序,输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt()函数求平方根,调用pow()函数求幂。 当 x>=0 时,f(x) = x^0.5,当 x小于0时,f(x) = x^5 + 2x + 1/x。 输入输出示例:括号内是说明 输入 3 (repeat=3) 10 (x=10) -0.5 (x=-0.5) 0 (x=0) 输出 f(10.00) = 3.16 f(-0.50) = -3.03 f(0.00) = 0.00 #include sum = 20435.99 #include C程序设计 2009春学期 上机练习M2-M8参考答案 int repeat, ri; double x, y; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\if(x>=0) y=sqrt(x); cost=0.53*50+(e-50)*0.58; /*---------*/ printf(\ } 20062 求m*m+1/m+(m+1)*(m+1)+1/(m+1)+} else y=pow(x,5)+2*x+1.0/x; /*---------*/ printf(\ = %.2f\\n\ } 20061 阶梯电价 } (m+2)*(m+2)+1/(m+2)+......+n*n+1/n 输入一个正整数repeat (0 输入两个正整数 m 和 n(m<=n),求 sum = m*m+1/m+(m+1)*(m+1)+1/(m+1)+(m+2)*(m+2)+1/(m+2)......+n*n+1/n,结果保留6位小数。 输入输出示例:括号内为说明 输入 3 (repeat=3) 1 2 (m=1,n=2) 2 5 (m=2,n=5) 5 10 (m=5,n=10) 输出 sum = 6.500000 sum = 55.283333 sum = 355.845635 #include int main(void) { int i, m, n; int repeat, ri; double sum; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ sum=0; for(i=m;i<=n;i++) sum=sum+i*i+1.0/i; 输入一个正整数repeat (0 为了提倡居民节约用电,某省电力公司执行\阶梯电价\,安装一户一表的居民用户电价分为两个\阶梯\:月用电量50千瓦时以内的,电价为0.53元/千瓦时;超过50千瓦时的用电量,电价上调0.05元/千瓦时。 输入用户的月用电量e(千瓦时),计算并输出该用户应支付的电费(元),结果保留2位小数。 输入输出示例:括号内是说明 输入 2 (repeat=2) 10 (e=10) 100 (e=100) 输出 cost = 5.30 cost = 55.50 #include } 7 C程序设计 2009春学期 上机练习M2-M8参考答案 20063 求1-2/3+3/5-4/7+5/9-6/11+…… #include 输入一个正整数 n,计算1-2/3+3/5-4/7+5/9-6/11+……的前n项之和,输出时保留3位小数。 输入输出示例:括号内是说明 输入 3 (repeat=3) 1 (n=1) 3 (n=3) 5 (n=5) 输出 sum = 1.000 sum = 0.933 sum = 0.917 #include 第4周(M4) 10007 显示图案 (复习printf()的字符串输出) 编写程序,在屏幕上显示如下图案。 * * * * * * * * * * #include 20042 生成阶乘表 输入一个正整数n,生成一张阶乘表,输出 1! ~ n! 的值, 求2^1+2^2+2^3+……+2^n 要求定义和调用函数fact(n)计算 n!,函数类型为double。 } int repeat, ri; double item, sum; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ sum=0; flag=1; denominator =1.0; for(i=1; i<=n; i++) { } /*---------*/ } 20064 } 8 C程序设计 2009春学期 上机练习M2-M8参考答案 输出使用语句 printf(\输入输出示例:括号内是说明 输入 3 输出 1! = 1 2! = 2 3! = 6 #include 20043 使用函数求 n! /(m!* (n-m)!) 输入一个正整数repeat (0 输入2个正整数 m 和 n(m<=n),计算 n! /(m!* (n-m)!) 。 要求定义并调用函数fact(n)计算n的阶乘, 其中 n 的类型是 int,函数类型是 double。 例:括号内是说明 输入: 2 (repeat=2) 2 7 (m=2, n=7) 5 12 (m=5, n=12) 输出: (n=3) result = 21 result = 792 #include \int main(void) { int m, n; int repeat, ri; double s; double fact(int n); scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ fact(n); fact(m); fact(n-m); s=1; s=s*fact(n)/(fact(m)*fact(n-m)); printf(\ } } double fact(int n) { double result; int i; result=1; for(i=1;i<=n;i++) result=result*i; return result; } 20054 求平均值 编写程序,输入 3 个整数,计算并输出它们的平均值(结果保留2位小数)。 输入输出示例: 输入 1 2 3 输出 average = 2.00 #include C程序设计 2009春学期 上机练习M2-M8参考答案 int a, b, c; double average; scanf(\ average= (a+b+c )/3.0; printf(\} 20057 求1+1/2+1/3+......+1/n 输入一个正整数repeat (0 编写程序,输入一个正整数n,求1+1/2+1/3+......的前n项之和,输出时保留6位小数。 输入输出示例:括号内为说明 输入 2 6 2 输出 sum = 2.450000 sum = 1.500000 #include (计算1+1/2+1/3+1/4+1/5+1/6) (计算1+1/2) 编写一个程序,输入一个正整数 n,计算 e = 0!+1!+2!+……+n!,要求定义和调用函数fact(n)计算n!,函数类型是double。 例:括号内是说明 输入 3 (repeat=3) 1 2 4 输出 sum = 2 sum = 4 sum = 34 #include 20065 求0!+1!+2!+……+n! 输入一个正整数repeat (0 10