输入x,计算并输出下列分段函数f(x)的值(保留1位小数)。
当x不等于0时,y=f(x)=1/x,当x等于0时,y=f(x)=0。
输入输出示例:
括号内是说明
输入
2(repeat=2)
10(x=10)
0(x=0)
输出
f(10.00)=0.1
f(0.00)=0.0*/
#include
intmain(void)
{
intrepeat,ri;
doublex,y;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf",&x);
if(x!
=0)
y=1/x;
else
y=0;
printf("f(%.2f)=%.1f\n",x,y);
}
}
2.2-2/*输入华氏温度,输出对应摄氏温度。
计算公式:
c=5*(f-32)/9*/
#include
intmain(void)
{
intcelsius,fahr;
printf("Enterfahr:
");
scanf("%d",&fahr);
celsius=5*(fahr-32)/9;
printf("celsius=%d\n",celsius);
return0;}
2.2-3/*算利息interest=mney*(pow((1+rate),year)-money*/
#include
#include
intmain(void)
{
intmoney,year;
doubleinterest,rate;
printf("Entermoney,year,andrate:
");
scanf("%d%d%lf",&money,&year,&rate);
interest=money*pow((1+rate),year)-money;
printf("interest=%.2f\n",interest);
}
2.2-4/*计算下列分段函数,若x<0,y=x^2+2x+1/x;否则,y=sqrt(x)*/
#include
#include
intmain(void)
{
intrepeat,ri;
doublex,y;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
/*---------*/
scanf("%lf",&x);
if(x<0)
y=pow(x,2)+2*x+1/x;
else
y=sqrt(x);
printf("f(%.2f)=%.2f\n",x,y);
}
}
2.2-5/*计算下列分段函数,若x=10,y=1/x;否则,y=x.*/
#include
intmain(void)
{
intrepeat,ri;
doublex,y;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf",&x);
if(x==10)
y=1/x;
else
y=x;
printf("f(%.1f)=%.1f\n",x,y);
}
}
2.2-6/*算术运算,求两数的和、差、积、商和余*/
#include
intmain(void)
{
intnum1,num2;
scanf("%d%d",&num1,&num2);
printf("%d+%d=%d\n",num1,num2,num1+num2);
printf("%d-%d=%d\n",num1,num2,num1-num2);
printf("%d*%d=%d\n",num1,num2,num1*num2);
printf("%d/%d=%d\n",num1,num2,num1/num2);
printf("%d%%%d=%d\n",num1,num2,num1%num2);
}
2.3-1/*程序填空,不要改变与输入输出有关的语句。
计算表达式1+2+3+......+100的值。
输出示例:
sum=5050*/
#include
intmain(void)
{
inti,sum;
sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("sum=%d\n",sum);
}
2.3-2/*程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一个正整数m(0<=m<=100),计算表达式m+(m+1)+(m+2)+......+100的值。
输入输出示例:
括号内为说明
输入
3(repeat=3)
0(计算0+1+2+...+100)
10(计算10+11+12+...+100)
50(计算50+51+52+...+100)
输出
sum=5050
sum=5005
sum=3825#include*/
intmain(void)
{
inti,m,sum;
intrepeat,ri;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&m);
sum=0;
for(i=m;i<=100;i++)
sum=sum+i;
printf("sum=%d\n",sum);
}
}
2.3-3/*程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个正整数m和n(m<=n),计算表达式1/m+1/(m+1)+1/(m+2)+......+1/n的值,输出时保留3位小数。
输入输出示例:
括号内为说明
输入
3(repeat=3)
515(计算1/5+1/6+1/7+...+1/15)
1020(计算1/10+1/11+1/12+...+1/20)
13(计算1+1/2+1/3)
输出
sum=1.235
sum=0.769
sum=1.833
*/
#include
intmain(void)
{
inti,m,n;
intrepeat,ri;
doublesum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&m,&n);
sum=0;
for(i=m;i<=n;i++)
sum=sum+1.0/i;
printf("sum=%.3f\n",sum);
}
}
2.3-4/*程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入一个正整数n,计算表达式1+1/3+1/5+......的前n项之和,输出时保留6位小数。
输入输出示例:
括号内为说明
输入
2(repeat=2)
5(计算1+1/3+1/5+1/7+1/9)
23(计算1+1/3+1/5+...+1/45)
输出
sum=1.787302
sum=2.549541*/
#include
intmain(void)
{
inti,n;
intrepeat,ri;
doublesum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++)
sum=sum+1.0/(2*i-1);
printf("sum=%.6f\n",sum);
}
}
2.3-5/*程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入一个正整数n,计算1-1/4+1/7-1/10+……的前n项之和,输出时保留3位小数。
输入输出示例:
括号内是说明
输入
2(repeat=2)
3
10
输出
sum=0.893
sum=0.819
*/
#include
intmain(void)
{
intflag,i,n,t;
intrepeat,ri;
doubleitem,sum;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
flag=1;
t=1;
sum=1;
for(i=1;i{
flag=-flag;
t=t+3;
item=1.0*flag/t;
sum=sum+item;
}
printf("sum=%.3f\n",sum);
}
}
2.3-6/*程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入2个整数lower和upper,输出一张华氏—摄氏温度转换表,华氏温度的取值范围是[lower,upper],每次增加2F。
计算公式:
c=5*(f-32)/9,其中:
c表示摄氏温度,f表示华氏温度。
输出请使用语句printf("%3.0f%6.1f\n",fahr,celsius);
输入输出示例:
括号内是说明
输入
2(repeat=2)
3235(lower=32,upper=35)
4030(lower=40,upper=30)
输出
fahrcelsius
320.0
341.1
fahrcelsius
*/
#include
intmain(void)
{
intlower,upper;
intrepeat,ri;
doublecelsius,fahr;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&lower,&upper);
printf("fahrcelsius\n");
for(fahr=lower;fahr<=upper;fahr=fahr+2)
{
celsius=5*(fahr-32)/9;
printf("%3.0f%6.1f\n",fahr,celsius);
}
}
}
2.3-7/*
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个正整数m和n,计算m!
+n!
。
输入输出示例:
括号内是说明
输入:
2(repeat=2)
14(m=1,n=4)
38(m=3,n=8)
输出:
1!
+4!
=25
3!
+8!
=40326
*/
#include"stdio.h"
intmain(void)
{
inti,m,n;
intrepeat,ri;
doublefm,fn;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&m,&n);
fm=fn=1;
for(i=1;i<=m;i++)
fm=fm*i;
for(i=1;i<=n;i++)
fn=fn*i;
printf("%d!
+%d!
=%.0f\n",m,n,fm+fn);
}
}
2.3-8/*
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0读入1个实数x和正整数n(n<=50),计算并输出x的n次幂(保留2位小数),不允许调用pow函数求幂。
输入输出示例:
括号内是说明
输入
2(repeat=2)
1.52(x=1.5,n=2)
27(x=2,n=7)
输出
2.25
128.00
*/
#include
intmain(void)
{
inti,n;
intrepeat,ri;
doublemypow,x;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf%d",&x,&n);
mypow=1;
for(i=1;i<=n;i++)
mypow=mypow*x;
printf("%.2f\n",mypow);
}
}
2.4-1/*
程序填空,不要改变与输入输出有关的语句。
输入一个正整数n,生成一张3的乘方表,输出3^0~3^n的值,可调用幂函数计算3的乘方。
输出使用语句printf("pow(3,%d)=%.0f\n",i,mypow);
输入输出示例:
括号内是说明
输入
3(n=3)
输出
pow(3,0)=1
pow(3,1)=3
pow(3,2)=9
pow(3,3)=27
*/
#include
#include
intmain(void)
{
inti,n;
doublemypow;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
mypow=pow(3,i);
printf("pow(3,%d)=%.0f\n",i,mypow);
}
}
2.4-2/*程序填空,不要改变与输入输出有关的语句。
输入一个正整数n,生成一张阶乘表,输出1!
~n!
的值,要求定义和调用函数fact(n)计算n!
,函数类型为double。
输出使用语句printf("%d!
=%.0f\n",i,myfact);
输入输出示例:
括号内是说明
输入
3(n=3)
输出
1!
=1
2!
=2
3!
=6
*/
#include
intmain(void)
{
inti,n;
doublemyfact;
doublefact(intn);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
myfact=fact(i);
printf("%d!
=%.0f\n",i,myfact);
}
}
doublefact(intn)
{
inti;
doublep;
p=1;
for(i=1;i<=n;i++)
p=p*i;
returnp;
}
2.4-3/*
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入2个正整数m和n(m<=n),计算n!
/(m!
*(n-m)!
)。
要求定义并调用函数fact(n)计算n的阶乘,其中n的类型是int,函数类型是double。
例:
括号内是说明
输入:
2(repeat=2)
27(m=2,n=7)
512(m=5,n=12)
输出:
result=21
result=792
*/
#include"stdio.h"
doublefact(intn);
intmain(void)
{
intm,n;
intrepeat,ri;
doubles;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d%d",&m,&n);
s=fact(n)/(fact(m)*fact(n-m));
printf("result=%.0f\n",s);
}
}
doublefact(intn)
{
inti;
doublep;
p=1;
for(i=1;i<=n;i++)
p=p*i;
returnp;
}
2.4-4/*
程序填空,不要改变与输入输出有关的语句。
计算100^0.5+101^0.5+……+1000^0.5的值(保留2位小数),可调用sqrt函数计算平方根。
输入输出示例:
括号内是说明
输出
sum=20435.99
*/
#include
#include
intmain(void)
{
inti;
doublesum;
sum=0;
for(i=100;i<=1000;i++)
sum=sum+sqrt(i);
printf("sum=%.2f\n",sum);
return0;
}
2.4-5/*
输出还款年限----月还款额表
*/
#include
#include
intmain(void)
{
inti,year,month;
doubleloan,rate,money;
scanf("%lf%lf",&loan,&rate);
printf("还款年限----月还款额\n");
for(i=5;i<=30;i++)
{
month=i*12;
money=loan*rate*pow((1+rate),month)/(pow((1+rate),month)-1);
printf("%4d%f\n",i,money);
}
return0;
}
3-1/*
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0输入参数a,b,c,求一元二次方程a*x*x+b*x+c=0的根,结果保留2位小数。
输出使用以下语句:
printf("参数都为零,方程无意义!
\n");
printf("a和b为0,c不为0,方程不成立\n");
printf("x=%0.2f\n",-c/b);
printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a));
printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
printf("x2=%0.2f-%0.2fi\n",-b/(2*a),sqrt(-d)/(2*a));
输入输出示例:
括号内为说明
输入:
5(repeat=5)
000(a=0,b=0,c=0)
001(a=0,b=0,c=1)
024(a=0,b=2,c=4)
2.18.93.5(a=2.1,b=8.9,c=3.5)
123(a=1,b=2,c=3)
输出:
参数都为零,方程无意义!
a和b为0,c不为0,方程不成立
x=-2.00
x1=-0.44
x2=-3.80
x1=-1.00+1.41i
x2=-1.00-1.41i
*/
#include
#include
intmain(void)
{
intrepeat,ri;
doublea,b,c,d;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if(a==0)
if(b==0)
if(c==0)
printf("参数都为零,方程无意义!
\n");
else
printf("a和b为0,c不为0,方程不成立\n");
else
printf("x=%0.2f\n",-c/b);
else
if(d>=0)
{
printf("x1=%0.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%0.2f\n",(-b-sqrt(d))/(2*a));
}
else
{
printf("x1=%0.2f+%0.2fi\n",-b/(2*a),sqrt(-d)/(