浙江大学C程题库更新.docx

上传人:b****8 文档编号:9313488 上传时间:2023-02-04 格式:DOCX 页数:175 大小:51.11KB
下载 相关 举报
浙江大学C程题库更新.docx_第1页
第1页 / 共175页
浙江大学C程题库更新.docx_第2页
第2页 / 共175页
浙江大学C程题库更新.docx_第3页
第3页 / 共175页
浙江大学C程题库更新.docx_第4页
第4页 / 共175页
浙江大学C程题库更新.docx_第5页
第5页 / 共175页
点击查看更多>>
下载资源
资源描述

浙江大学C程题库更新.docx

《浙江大学C程题库更新.docx》由会员分享,可在线阅读,更多相关《浙江大学C程题库更新.docx(175页珍藏版)》请在冰豆网上搜索。

浙江大学C程题库更新.docx

浙江大学C程题库更新

c语言程序设计题目及答案

20021程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入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;

elsey=0;

printf("f(%.2f)=%.1f\n",x,y);

}

}

20022程序填空,不要改变与输入输出有关的语句。

输入华氏温度,输出对应的摄氏温度。

计算公式:

c=5*(f-32)/9,式中:

c表示摄氏温度,f表示华氏温度。

输入输出示例:

括号内为说明

输入

150(fahr=150)

输出

celsius=65

 

#include

intmain(void)

{

intcelsius,fahr;

/*---------*/

scanf(“%d”,&fahr);

celsius=5.0*(fahr-32)/9;

 

printf("celsius=%d\n",celsius);

}

20023程序填空,不要改变与输入输出有关的语句。

输入存款金额money、存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。

interest=money(1+rate)^year-money

输入输出示例:

括号内为说明

输入

100030.025(money=1000,year=3,rate=0.025)

输出

interest=76.89

 

#include

#include

intmain(void)

{

intmoney,year;

doubleinterest,rate;

/*---------*/

scanf(“%d%d%lf”,&money,&year,&rate);

interest=money*pow((1+rate),year)-money;

printf("interest=%.2f\n",interest);

}

20024程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt函数求平方根,调用pow函数求幂。

当x>=0时,f(x)=x^0.5,当x小于0时,f(x)=(x+1)^2+2x+1/x。

输入输出示例:

括号内是说明

输入

3(repeat=3)

10

-0.5

0

输出

f(10.00)=3.16

f(-0.50)=-2.75

f(0.00)=0.00

 

#include

#include

intmain(void)

{

intrepeat,ri;

doublex,y;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

/*---------*/

scanf("%lf",&x);

if(x>=0)y=sqrt(x);

elsey=pow((x+1),2)+2*x+1/x;

printf("f(%.2f)=%.2f\n",x,y);

}

}

20025程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。

当x不等于10时,y=f(x)=x,当x等于10时,y=f(x)=1/x。

输入输出示例:

括号内是说明

输入

2(repeat=2)

10

234

输出

f(10.0)=0.1

f(234.0)=234.0

 

#include

intmain(void)

{

intrepeat,ri;

doublex,y;

 

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

/*---------*/

scanf("%lf",&x);

if(x!

=10)y=x;

elsey=1/x;

 

printf("f(%.1f)=%.1f\n",x,y);

}

}

20026程序填空,不要改变与输入输出有关的语句。

输入2个整数num1和num2,计算并输出它们的和、差、积、商与余数。

输出两个整数的余数可以用printf("%d%%%d=%d\n",num1,num2,num1%num2);

输入输出示例:

括号内是说明

输入

53(num1=5,num2=3)

输出

5+3=8

5-3=2

5*3=15

5/3=1

5%3=2

 

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

return0;

}

20031程序填空,不要改变与输入输出有关的语句。

计算表达式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);

}

20032程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

}

20033程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

}

20034程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

}

20035程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

/*---------*/

sum=0;flag=1;item=0;t=1;

for(i=1;i<=n;i++)

{item=flag*1.0/t;

sum=sum+item;

flag=-flag;

t=t+3;

}

printf("sum=%.3f\n",sum);

}

}

20036程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

}

}

20037程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

}

20038程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

}

20041程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

return0;

}

20042程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

return0;

}

/*---------*/

doublefact(intn)

{

inti;

doublef=1;

for(i=1;i<=n;i++)

f=f*i;

returnf;

}

 

20043程序填空,不要改变与输入输出有关的语句。

输入一个正整数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);

}

return0;

}

/*---------*/

doublefact(intn)

{

inti;

doublef=1;

for(i=1;i<=n;i++)

f=f*i;

returnf;

}

 

20044程序填空,不要改变与输入输出有关的语句。

计算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);

}

30001程序填空,不要改变与输入输出有关的语句。

输入一个正整数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("参数都为零,方程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1