浙江大学C程试题库更新.docx
《浙江大学C程试题库更新.docx》由会员分享,可在线阅读,更多相关《浙江大学C程试题库更新.docx(154页珍藏版)》请在冰豆网上搜索。
浙江大学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