ImageVerifierCode 换一换
格式:DOCX , 页数:57 ,大小:71.12KB ,
资源ID:9888638      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9888638.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(TPA部分试题.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

TPA部分试题.docx

1、TPA部分试题算法与程序设计PTA习题集第4周本题目要求计算下列分段函数f(x)的值:输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。输入样例1:10输出样例1:f(10.0) = 0.1输入样例2:0输出样例2:f(0.0) = 0.0#includeint main() float x,result; scanf(%f,&x); if (x=0) result=0; else result=1.0/x; printf(f(%.1f) = %.1f,x,result); return 0;编写一个程序,要求用

2、户输入24小时制的时间,然后显示12小时制的时间。输入格式:输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。输出格式:在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,

3、所以是0:0 AM。输入样例:21:11输出样例:9:11 PM#includeint main() int a,b; scanf(%d:%d,&a,&b); if(a12) printf(%d:%d,a-12,b); if(a=12) printf(%d:%d,a,b); if(a12) printf(%d:%d AM,a,b); else printf( PM,a,b); return 0;给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。输入格式:输入在一行中顺序给出六个100,100范围内的数字,即三个点的坐标x1、y1、x2、y2、x3

4、、y3。 输出格式:若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。输入样例1:4 5 6 9 7 8输出样例1:L = 10.13, A = 3.00输入样例2:4 6 8 12 12 18输出样例2:Impossible#includeint main() int a,b,c; scanf(%d %d %d,&a,&b,&c); if(a+bc)&(b+ca)&(a+cb) printf(YES); else printf(NO); return 0;输入一个年份,判断

5、其是否为闰年,若是闰年输出“yes”的信息,否则输出“no”的信息。输入格式:直接输入一个4位数年份,没有其它任何附加字符。输出格式:直接输出“yes”或“no”,没有其它任何附加字符。输入样例:1900 输出样例:no输入样例:2000 输出样例:yes输入样例:1904 输出样例:yes#includeint main()int a;scanf(%d,&a);if(a%4=0&a%100!=0|a%400=0) printf(yesn);else printf(non);return 0;输入三个整数x,y,z,请把这三个数由小到大输出。输入格式:在一行中直接输入3个整数,之间各用一个空格

6、间隔。输出格式:在一行中按照“x=最小值,y=次小值, z=最大值”的顺序输出结果,最大值、次大值和最小值均原样输出,没有宽度控制。输入样例:2 1 3 输出样例:x=1,y=2,z=3#includeint main() int x,y,z,temp; scanf(%d %d %d,&x,&y,&z,&temp); if(xy) temp=x,x=y,y=temp; if(xz) temp=x,x=z,z=temp; if(yz) temp=y,y=z,z=temp; printf(x=%d,y=%d,z=%d,x,y,z); return 0;第5周本题要求编写程序将一个百分制成绩转换为五

7、分制成绩。转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。输入格式:输入在一行中给出一个整数的百分制成绩。 输出格式:在一行中输出对应的五分制成绩。输入样例:90 输出样例:A#includeint main() int a,ch; scanf(%d,&a); if(a90|a=90) ch=A; else if(a80|a=80) ch=B; else if(a70|a=70) ch=C; else if(a60|a=60) ch=D; else ch=E; printf(%c,ch); return

8、0;中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出一个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34#includeint main() int N; scanf(%d,&N); if(N%5=4|N%5=0) printf(Drying in da

9、y %d,N); else printf(Fishing in day %d,N); return 0;本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。输入格式:输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。输入样例1:-7 / 2 输出样例1:-3输入样例2:3 & 6 输出样例2:ER

10、ROR#include int main() int x,y; char ch; scanf(%d %c %d, &x, &ch, &y); switch(ch) case +: printf(%dn,x+y); break; case -: printf(%dn, x-y); break; case *: printf(%dn, x*y); break; case /: printf(%dn, x/y); break; case %: printf(%dn, x%y); break; default: printf(ERRORn); break; return 0; 股票价格涨跌趋势,常用蜡

11、烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早上刚刚开始开盘买卖成交的第1笔价格)、收盘价格Close(下午收盘时最后一笔成交的价格)、中间的最高价High和最低价Low。如果CloseOpen,表示为“R-Hollow”(即“空心红蜡烛”);如果Open等于Close,则为“R-Cross”(即“十字红蜡烛”)。如果Low比Open和Close低,称为“Lower Shadow”(即“有下影线”),如果High比Open和Close高,称为“Upper Shado

12、w”(即“有上影线”)。请编程序,根据给定的四个价格组合,判断当日的蜡烛是一根什么样的蜡烛。输入格式:输入在一行中给出4个正实数,分别对应Open、High、Low、Close,其间以空格分隔。输出格式:在一行中输出日K蜡烛的类型。如果有上、下影线,则在类型后加上with 影线类型。如果两种影线都有,则输出with Lower Shadow and Upper Shadow。输入样例1:5.110 5.250 5.100 5.105输出样例1:BW-Solid with Lower Shadow and Upper Shadow输入样例2:5.110 5.110 5.110 5.110输出样例

13、2:R-Cross输入样例3:5.110 5.125 5.112 5.126输出样例3:R-Hollow#include #include int main() double open, high, low, close; scanf(%lf%lf%lf%lf, &open, &high, &low, &close); if(close open) printf(R-Hollow); else if(fabs(close - open) = 0) printf(R-Cross); if(low open & low open & high close) printf( with Lower S

14、hadow and Upper Shadown); else if(low open & low open & high close) printf( with Upper Shadown); return 0;本题要求编写程序计算某年某月某日是该年中的第几天。输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。 输出格式:在一行输出日期是该年中的第几天。输入样例1:2009/03/02输出样例1:61输入样例2:2000/03/02输出样例2:62#includ

15、e int main() int day,month,year; scanf(%d/%d/%d,&year,&month,&day); int i; int sum; sum=day; for(i=1;imonth;i+) switch(i) case 1:sum+=31;break; case 3:sum+=31;break; case 5:sum+=31;break; case 7:sum+=31;break; case 8:sum+=31;break; case 10:sum+=31;break; case 12:sum+=31;break; case 4:sum+=30;break;

16、case 6:sum+=30;break; case 9:sum+=30;break; case 11:sum+=30;break; case 2: if(year%4=0&year%100!=0)|(year%400=0) sum+=29; else sum+=28; printf(%dn,sum); return 0; 第6周三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。找出这个不一样的球。输入格式:输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式:在一行中输出唯一的那个不一样的球。输入样例:1 1 2 输出样例:C#includeint main() in

17、t a,b,c; char ch; scanf(%d %d %d,&a,&b,&c); if(a=b) ch=C; else if(a=c) ch=B; else ch=A; printf(%cn,ch); return 0;某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。输入格式:输入在一行中给出2个正整数,分别为某员工

18、入职年数和周工作时间,其间以空格分隔。输出格式:在一行输出该员工的周薪,精确到小数点后2位。输入样例1:5 40 输出样例1:2000.00输入样例2:3 50 输出样例2:1650.00#include int main() int time,year; double money; scanf(%d%d,&year,&time); if(year=5) if(time=40) money=time*50; else money=2000+(time-40)*50*1.5; else if(time=40) money=time*30; else money=1200+(time-40)*30

19、*1.5; printf(%.2lfn,money); return 0; 输入三个实数,代表三条线段的长度。判断这三条线段组成的三角形是什么类型:等边(equilateral triangle)、等腰(isosceles triangle)、不等边(common triangle)或不能构成三角形(not a triangle)。输入格式:输入三条线段的长度,输入保证所有数据均大于0。输出格式:输出三角形的类型:等边(equilateral triangle)、等腰(isosceles triangle)、不等边(common triangle)或不能构成三角形(not a triangle

20、)。输入样例:3 3 3 # 输出样例:equilateral triangle#include int main() float a,b,c; scanf(%f %f %f,&a,&b,&c); if (a + b = c | a + c = b | b + c = a) printf(not a trianglen); else if (a = b & b = c) printf(equilateral trianglen); else if (a = b | b = c | a = c) printf(isosceles trianglen); else printf(common tr

21、ianglen); return 0;有一分段函数如下:根据输入的x值,计算对应的y值。输入格式:输入x。 输出格式:输出y的值,保留两位小数。#include#includeint main() double x,y; scanf(%lf,&x); if(x=-1&x1&x10) y=5*x+3*log10(2*x*x-1)-13; printf(%.2f,y); return 0;第7周本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。输入格式:输入为10个字符。最后一个回车表示输入结束,不算在内。输出格式:在一行内按照letter = 英文字母个数

22、, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。输入样例:aZ &09 Az 输出样例:letter = 4, blank = 3, digit = 2, other = 1#includeint main() int l=0,b=0,d=0,o=0,i=1; char ch; scanf(%c,&ch); while(i=a&ch=A&ch=0&ch=9) d+; else if(ch= |ch=n) b+; else o+; scanf(%c,&ch); i+; printf(letter = %d, blank = %d, d

23、igit = %d, other = %d,l,b,d,o); return 0;本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数nnn,之后是nnn个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出nnn个整数中的最小值。输入样例:4 -2 -123 100 0输出样例:min = -123#includeint main() int n,x,y,i=1,min; scanf(%d%d,&n,&x); min=x; while(iy) min=y; else min=min; i+; printf(min = %dn,min

24、); return 0;本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:在一行中输出正整数序列中奇数的和。输入样例:8 7 4 3 70 5 6 101 -1输出样例:116#include int main() int n,sum=0; scanf(%d,&n); while(n0) if(n%2=0) sum=sum; else sum=sum+n; scanf(%d,&n); printf(%dn,sum); return 0;输入若干学生成绩,以负数结束输入。计算所有学生的平均

25、成绩并统计成绩在80到90分(不含90)之间的人数。输入格式:在一行输入几个百分制实型成绩,数据之间以一个空格间隔。输入负数结束输入。输出格式:在一行中按照“ave=平均分,n=人数”的顺序输出结果,其中平均分要求保留两位小数,人数是正整数。输入样例:58 89 84 55 -1 输出样例:ave=71.50,n=2#includeint main() int x,n=0,sum=0,i=0; scanf(%d,&x); while(x=0) i+; if(x=80&x90) n=n+1; sum=sum+x; scanf(%d,&x); printf(ave=%.2f,n=%dn,sum*1.0/i,n); return 0;对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过109109109的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。输入样例:321 输出样例:3 6#includeint main() int n,x,i=0,sum=0; scanf(%d,&n); while(n!=0)

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

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