PTA21——40题

7-21 三角形面积

请编写程序,输入三角形的底 b 和高 h,计算并输出三角形的面积 a。

输入格式

b 和 h

输出格式

a

输入样例

19.77 48.36

输出样例

478.04

#include
int main()
{double b,h,a;scanf("%lf%lf",&b,&h);a=(b*h)/2;	printf("%.2lf",a);return 0;
}

7-22 求序列平方和   部分正确

请编写程序,输入正整数 n,计算平方和 s=12+22+32+⋯+n2。

输入格式

整数 n

注:n 在 int 类型范围内,格式限定符采用 %d。

输出格式

实数 s

注:s 在 double 类型范围内,格式限定符采用 %.15g。

输入样例

100

输出样例

338350
//部分正确 #include
// int main(){
//     int n,m;
// double s;
// scanf("%d",&n);
// for(m=1;m<=n;m++)
//     s=m*m+s;
// printf("%.15g",s);
// return 0;
// }#include 
int fun(int n)
{return n*n;
}
int main()
{int i,n;double s=0;scanf("%d",&n);for(i=1;i<=n;i++)s+=fun(i);printf("%.15g\n",s);return 0;
}

7-23 求序列立方和   部分正确

编写程序,输入正整数 n,计算立方和 s=13+23+33+⋯+n3。

输入格式

整数 n

注:n 在 int 类型范围内,格式限定符采用 %d。

输出格式

实数 s

注:s 在 double 类型范围内,格式限定符采用 %.15g。

输入样例

40

输出样例

672400
#include
int main(){int n,m;double s;scanf("%d",&n);for(m=1;m<=n;m++)s=m*m*m+s;printf("%.15g\n",s);return 0;
}
// #include 
// int fun(int n)
// {
// 	return n*n*n;
// }
// int main()
// {
// 	int i,n;
// 	double s=0;
// 	scanf("%d",&n);
// 	for(i=1;i<=n;i++)
// 	s+=fun(i);
// 	printf("%.15g",s);
//     return 0;
// }

7-24 书香节    部分正确

当当网每年书香节都推出购书优惠活动:每满100元就减50元。请编写程序,输入你购书的金额,计算并输出可减金额和付款金额。

输入格式

购书金额

输出格式

可减金额
付款金额

样例输入1

228.76

样例输出1

100.00
128.76

样例输入2

1000.0

样例输出2

500.00
500.00
#include
int main(){double a;double b,m;scanf("%lf",&a);b=a/100*50;m=a-b;printf("%.2lf\n%.2lf\n",b,m);return 0;
}
// #include 
// int main()
// {
// 	double a,m,s;
// 	scanf("%lf",&a);
// 	m=a/100*50;
// 	s=a-m;
// 	printf("%.2lf\n%.2lf",m,s);// 	return 0;
// }

7-25 买U盘(误差修正版)

IT 协会举办程序设计竞赛,准备购买 U 盘作奖品。请编写程序,根据活动经费和 U 盘单价预估可购买 U 盘的最大数量。

输入格式

活动经费和 U 盘单价

输出格式

可购买 U 盘的最大数量

输入样例

660.8 47.2

输出样例

14

输入样例2

504.9 19.8

输出样例2

25

要求:考虑实数的误差。

#include
int main()
{double a,b;int max;scanf("%lf%lf",&a,&b);max= a/b;printf("%d\n",max);return 0;
}

7-26 聪明的高斯

著名德国数学家高斯(Gauss)上小学时,老师让大家计算:

1+2+3+4+⋯+100= ?

当大家都还在埋头做加法时,高斯却最先算出了答案。你知道他是怎么算的吗?

请编写程序,输入正整数 n,计算 s=1+2+3+4+⋯+n,输出 s 的值。

输入格式

n

输出格式

s

输入样例

100000

输出样例

5000050000

提示:本题要使用 long long int 类型。

//变量用long  %lld
#include
int main()
{long long int n,s;scanf("%lld", &n);s=n*(n+1)/2;printf("%lld", s);return 0;}

7-28 何时空仓

某仓库现存货物 s 箱,每天上午出货 m 箱、下午进货 n 箱,若s≥m>n≥0,则第 k 天将会出现空仓的情况。请你帮仓库管理员编写程序,输入s、m 和 n,计算并输出 k。

输入格式

s,m,n  (s≥m>n≥0)

输出格式

k

输入样例

4705 268 193

输出样例

61
#include
int main()
{                   int s,m,n,k=0;scanf("%d %d %d",&s,&m,&n);while(s>0){k++;s=s-m;if(s<=0)break;s=s+n;}printf("%d\n",k);return 0;    
}

7-29 烟囱的高度

已知人离烟囱的距离为 a,人的眼睛离地高度为 b,人看烟囱顶时的仰角为 θ,求烟囱的高度 h。

输入格式

a b θ

注:a、b 的单位为米,均为小数。仰角 θ 的单位为角度,包括度、分和秒数,其中度、分为整数,秒数为小数。

输出格式

h

注:h 的单位为米。

要求:输出2位小数,末位四舍五入。

输入样例

27.8 1.2 32 48 59.5

输出样例

19.13

#include int main(){double a,b,m,n,s,h;//,h1,h2;double p=3.1415926;scanf("%lf %lf",&a,&b);scanf("%lf %lf %lf",&m,&n,&s);h=m+(n/60)+(s/3600);h=h*(p/180); //h2=a*((sin*h1)/(cos*h1))+b;//printf("%.2lf",h2);printf("%.2lf",a*(sin(h)/cos(h))+b);return 0;}

7-30 求矩形面积 

已知一个矩形的长和宽,计算该矩形的面积。矩形的长和宽用整数表示,由键盘输入。

输入格式:

输入在一行中给出2个绝对值不超过1000的整数A和B,表示矩形的长和宽。

输出格式:

在一行中输出矩形的面积。

输入样例:

4 3

输出样例:

12
#include 
int main()
{
int a,b,s;
scanf("%d %d",&a,&b);
s=a*b;
printf("%d\n",s);
return 0;
}

7-31 求圆周长和面积 

已知一个圆的半径,计算该圆的周长和面积,结果保留2位小数。半径用实数表示,由键盘输入。设圆周率等于3.14159。

输入格式:

输入在一行中给出1个实数r,表示圆的半径。

输出格式:

在一行中输出圆的周长和面积,结果保留2位小数。数据之间留一个空格。

输入样例:

3

输出样例:

18.85 28.27
#include int main()
{int r;double s, c;double p=3.14159;scanf("%d", &r);	s = p*r*r;c = 2*p*r;printf("%0.2lf %0.2lf", c, s);return 0;
}

7-32 交换两实数的整数部分

输入两个实数,将其整数部分交换后输出,结果保留2位小数。

输入格式:

输入2个实数A和B。

输出格式:

输出交换整数部分之后的两个实数。数据之间以一个“,”分隔。

输入样例:

23.45 54.22

输出样例:

54.45,23.22
#include
int main()
{double  A,B,e,f,m,n;int a,b;scanf("%lf %lf",&A,&B);a=(int)A;b=(int)B;e=A-a;f=B-b;m=b+e;n=a+f;printf("%.2lf,%.2lf\n",m,n);return 0;
}

7-33 温度转换

输入一个华氏温度f(整数),要求根据公式c=5(f-32)/9计算并输出摄氏温度,其中f由键盘输入,结果保留1位小数。

输入格式:

输入在一行中给出1个绝对值不超过1000的整数f,表示华氏温度。

输出格式:

在一行中输出摄氏温度,结果保留1位小数。

输入样例:

100

输出样例:

37.8
#include
int main()
{double f;
double c;scanf("%lf", &f);c = 5*(f-32)/9;printf("%.1lf\n", c);return 0;}

7-34 反序显示一个四位数

从键盘上输入一个四位整数,将结果按反序显示出来。

输入格式:

输入在一行中给出1个四位整数a。

输出格式:

在一行中输出a的反序数。

输入样例:

1234

输出样例:

4321
#include
int main()
{int n,a,b,c,d;scanf("%d",&n);//1234a=n/1000;//1b=(n%1000)/100;//2c=((n%1000)%100)/10;//3d=(((n%1000)%100)%10);//4n= d*1000+c*100+b*10+a;printf("%d",n);return 0;
}

7-35 英文字母的大小写转换

输入一个大写字母c1和一个小写字母c2,把c1转换成小写,c2转换成大写,然后输出。

输入格式:

输入在一行中给出2个字母,第1个是大写字母c1,第2个是小写字母c2。

输出格式:

在一行中输出把c1转换成小写,c2转换成大写后的结果。数据之间留一个逗号。

输入样例:

Y e

输出样例:

y,E
int main()
{char a,b;scanf("%c %c",&a,&b);if(a >= 'a' && a <= 'z')a -= 32;else if(a >= 'A' && a <= 'Z')a += 32;if(b >= 'a' && b <= 'z')b -= 32;else if(b >= 'A' && b <= 'Z')b += 32;printf("%c,%c",a,b);return 0;
}

7-36 4位整数的数位和

输入一个4位数的整数,求其各数位上的数字之和。

输入格式:

输入在一行中给出1个4位的正整数n。

输出格式:

在一行中输出n的各数位上的数字之和。

输入样例:

1234

输出样例:

10
#include
int main(){int a,m,n,t,f;scanf("%d",&a);m=a%10;n=a/10%10;t=a/100%10;f=a/1000%10;printf("%d",(m+n+t+f));return 0;
}

7-37 5门课的平均分

输入5门课程成绩(整数),求平均分(结果保留1位小数)。

输入格式:

输入在一行中给出5个整数,表示5门课成绩。

输出格式:

在一行中输出5门课的平均分(结果保留1位小数)。

输入样例:

66 77 88 99 79

输出样例:

81.8
#include 
int main()
{float a,b,c,d,e,m;scanf("%f %f %f %f %f",&a,&b,&c,&d,&e);m=(a+b+c+d+e)/5;printf("%0.1f",m);return 0;
}

7-38 等边三角形面积

数学基础对于程序设计能力而言很重要。对于等边三角形面积,请选择合适的方法计算之。

输入格式:

测试数据有多组,处理到文件尾。每组测试输入1个实数表示等边三角形的边长。

输出格式:

对于每组测试,在一行上输出等边三角形的面积,结果保留2位小数。

输入样例:

1.0
2.0

输出样例:

0.43
1.73
//s=sqrt(3)a*a/4等边三角形的面积
#include 
#include 
int main()
{float a,t,s;while(scanf("%f",&a)!=EOF){s=sqrt(3)*a*a/4;printf("%.2f\n",s);}return 0;
}

7-39 程序改错:温度转化

以下程序的功能是:输入一个华氏温度,求出对应的摄氏温度是多少。两种温度之间的关系为C=5/9(F-32),其中的C和F分别代表摄氏温度和华氏温度。

#include ;

int main(void);

{int f,c;

scanf("%d%d",f,c);

c=5/9(f-32);

printf("摄氏温度=%d\n",c);

return 0

}

调试运行该程序,改正程序中所有的语法错误和逻辑错误。

输入格式:

输入一个代表华氏温度的数。

输出格式:

输出摄氏温度的值,保留两位小数,最后换行。

输入样例:

100

输出样例:

37.78
#include
int main()
{
float f,c;
//double c;scanf("%f", &f);c = 5*(f-32)/9;printf("%.2lf", c);return 0;}

7-40 统计闰年个数

现行格里高利历法的置闰规则可以概括为:四闰百不闰,四百闰。编程序实现:输入一个年份,求出到这一年的年末总共经历了多少个闰年,限定不能使用循环结构。假定从公元第一天开始,就实施格里高利历法。

(提示:求出经历了多少个4年、多少个100年、多少个400年。
1.假如所有能被4整除的年份都是闰年,那么到第n年的年末总共经历了多少个闰年?
2.假如所有能被100整除的年份都不是闰年,那么到第n年的年末总共减少多少个闰年?
3.假如所有能被400整除的年份都是闰年,那么到第n年的年末总共增加多少个闰年?)

输入格式:

输入一个代表年份的正整数。

输出格式:

输出闰年个数,最后换行。

输入样例:

2020

输出样例:

490
#include
int main()
{int x,y,z,m,n;scanf("%d",&x);m=x/400;z=x/100;n=x/4;y=m+n-z;printf("%d",y);return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部