
PAT基础习题集
coder_weiyi
这个作者很懒,什么都没留下…
展开
-
分支-12. 计算火车运行时间(15)
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。输入格式:输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。输出格式:在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。输入样例: 1201 1530 输出样例:原创 2015-03-26 11:50:27 · 2708 阅读 · 0 评论 -
字符串-06. IP地址转换(20)
一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例: 11001100100101000001010101110010 输出样例: 204.148.2原创 2015-03-29 11:16:03 · 3894 阅读 · 0 评论 -
循环-07. 爬动的蠕虫(15)
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。输入格式:输入在一行中顺序给出3个正整数N、U、D,其原创 2015-03-29 11:56:24 · 561 阅读 · 0 评论 -
循环-14. 最大公约数和最小公倍数(15)
本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出2个正整数M和N(<=1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例: 511 292 输出样例: 73 2044#include<stdio.h>int i,m,n,min,max,j,k;int cmax(int a,int b){//求最大公约数 m原创 2015-03-29 21:43:56 · 799 阅读 · 0 评论 -
循环-17. 简单计算器(20)
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例: 1+2*10-10/2= 输出样例: 10#include原创 2015-03-30 09:42:49 · 671 阅读 · 0 评论 -
数组-04. 查找整数(10)
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。输入格式:输入在第1行中给出2个正整数N(<=20)和X,第2行给出N个整数。数字均不超过长整型,其间以空格分隔。输出格式:在一行中输出X的位置,或者“Not Found”。输入样例1: 5 7 3 5 7 1 9 输出样例1: 2 输入样例2: 5 7 3 5 8原创 2015-04-04 17:51:10 · 556 阅读 · 0 评论 -
数组-05. 字符串字母大小写转换(10)
输入一个以#结束的字符串,本题要求将小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其它字符不变。输入格式:输入在一行中给出一个长度不超过40的、以#结束的非空字符串。输出格式:在一行中按照要求输出转换后的字符串。输入样例: Hello World! 123# 输出样例: hELLO wORLD! 123#include<stdio.h>#include<string.h>#in原创 2015-04-04 20:13:05 · 1618 阅读 · 0 评论 -
字符串-03. 字符串的冒泡排序(20)
我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(小于N),输出扫描完第K遍后的中间结果序列。输入格式:输入在第1行中给出N和K(1<=K<=N<=100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。输出格式:输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。输入样例: 6 2 best cat原创 2015-04-05 09:22:14 · 931 阅读 · 0 评论 -
字符串-07. 说反话-加强版 (20)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。输入样例: Hello World Here I Come原创 2015-04-05 10:06:07 · 1092 阅读 · 0 评论 -
循环-25. 求给定序列前N项和之三(15)
本题要求编写程序,计算序列 1 + 1/3 + 1/5 + … 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。输入样例: 23 输出样例: sum = 2.549541#include<stdio.h>int main(){ int n,i; double s原创 2015-04-05 11:12:22 · 501 阅读 · 0 评论 -
字符串-05. 字符串循环左移(20)
输入一个字符串和一个非负整数N,要求将字符串循环左移N次。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出循环左移N次后的字符串。输入样例: Hello World! 2 输出样例: llo World!He原创 2015-04-05 09:46:01 · 530 阅读 · 0 评论 -
循环-24. 求给定序列前N项和之二(15)
本题要求编写程序,计算序列 1! + 2! + … 的前N项之和。输入格式:输入在一行中给出一个不超过12的正整数N。输出格式:在一行中输出整数结果。输入样例: 5 输出样例: 153#include<stdio.h> int n,sum=0,i,j,k;int fun(int k){ int result=1; for(i=k;i>0;i--) re原创 2015-04-05 10:51:34 · 332 阅读 · 0 评论 -
循环-02. 计算圆周率(15)
根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。 输入格式:输入在一行中给出小于1的阈值。输出格式:在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。输入样例: 0.01 输出样例: 3.132157#include <stdio.h>int main(void) { double sum = 1, item = 1, fact = 1, denominator原创 2015-04-05 11:53:20 · 575 阅读 · 0 评论 -
字符串-02. 删除字符串中的子串(20)
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。输入样例: Tomcat is a male ccatat cat 输出样例: Tom is a male import java原创 2015-04-05 08:58:16 · 457 阅读 · 0 评论 -
循环-26. 求给定序列前N项和之四(15)
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + … 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后3位。题目保证计算结果不超过双精度范围。输入样例: 10 输出样例: sum = 0.819#include<stdio.h>int main(){ int n,i=2; do原创 2015-04-05 11:29:46 · 810 阅读 · 0 评论 -
循环-27. 求给定序列前N项和之五(15)
本题要求编写程序,计算序列 1 + 1/2 + 1/3 + … 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。输入样例: 6 输出样例: sum = 2.450000#include<stdio.h>int main(){ int n,i; doubl原创 2015-04-05 11:33:36 · 450 阅读 · 0 评论 -
循环-16. 猴子吃桃问题(15)
一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入在一行中给出正整数N(1#include<stdio.h>int main(){ int n; scanf("%d",&n); int原创 2015-03-30 08:59:43 · 554 阅读 · 0 评论 -
循环-15. 统计素数并求和(20)
本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出2个正整数M和N(1<=M<=N<=500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例: 10 31 输出样例: 7 143#include<stdio.h>int main(){ int m,n,i,j,k=0,count=0; scanf("%原创 2015-03-30 10:11:30 · 903 阅读 · 1 评论 -
分支-13. 计算天数(15)
本题要求编写程序计算某年某月某日是该年中的第几天。输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。输出格式:在一行输出日期是该年中的第几天。输入样例1: 2009/03/02 输出样例1: 61 输入样例2: 2000/03/02 输出样例2: 62#原创 2015-03-26 12:36:28 · 3883 阅读 · 0 评论 -
分支-14. 简单计算器(10)
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。输入格式:输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出原创 2015-03-26 12:53:09 · 788 阅读 · 0 评论 -
分支-15. 日K蜡烛图(15)
股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早上刚刚开始开盘买卖成交的第1笔价格)、收盘价格Close(下午收盘时最后一笔成交的价格)、中间的最高价High和最低价Low原创 2015-03-26 19:08:43 · 892 阅读 · 0 评论 -
分支-17. 统计学生成绩(15)
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。 输入格式:输入在第1行中给出1个正整数N(<=1000),即学生人数;第2行中给出N个学生的百分制成绩,其间以空格分隔。输出格式:在一行中输出A、B、C、D、E对应的原创 2015-03-26 20:52:20 · 3356 阅读 · 1 评论 -
分支-19. 阶梯电价(15)
为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。输入格式:输入在一行中给出某用户的月用电量(单位:千瓦时)。输出格式:在一行中输出该用户应支付的电费(元),结果保留2位小数,格式如:“cost = 应付原创 2015-03-26 22:17:03 · 695 阅读 · 0 评论 -
分支-16. 计算分段函数(10)
本题目要求计算下列分段函数f(x)的值:注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。输入样例1: 10 输出样例1: f(10.00) = 3.16 输入样例2: -0.5 输出样例2: f(-0.50) = -2.7原创 2015-03-26 19:25:39 · 1944 阅读 · 0 评论 -
分支-20. 计算符号函数的值(10)
对于任一整数n,符号函数sign(n)的定义如下: 请编写程序计算该函数对任一输入整数的值。 输入格式:输入在一行中给出整数n。输出格式:在一行中按照格式“sign(n) = 函数值”输出该整数n对应的函数值。输入样例 1:10 输出样例 1:sign(10) = 1 输入样例 2:0 输出样例 2:sign(0) = 0 输入样例 3:-98 输出样例 3:sign(-98) = -原创 2015-03-26 22:33:00 · 829 阅读 · 0 评论 -
字符串-01. 在字符串中查找指定字符(15)
输入一个字符串S,再输入一个字符c,要求在字符串S中查找字符c。如果找不到则输出“Not found”;若找到则输出字符串S中从c开始的所有字符。输入格式:输入在第1行中给出一个不超过80个字符长度的、以回车结束的非空字符串;在第2行中给出一个字符。输出格式:在一行中按照题目要求输出结果。输入样例1: It is a black box b 输出样例1: black box 输入样例2:原创 2015-03-26 23:09:19 · 1653 阅读 · 0 评论 -
分支-18. 求一元二次方程的根(20)
本题目要求一元二次方程 a*x2+b*x+c=0 的根,结果保留2位小数。输入格式:输入在一行中给出3个浮点系数a, b, c,中间用空格分开。输出格式:根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小; 2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的; 3)如果方程只有一个根,则直接输出此根;原创 2015-03-26 22:09:16 · 1040 阅读 · 0 评论 -
循环-04. 验证“哥德巴赫猜想”(20)
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。输出格式:在一行中按照格式“N = p + q”输出N的素数分解,其中p <= q均为素数。又因为这样的分解不唯一原创 2015-03-27 22:13:29 · 872 阅读 · 0 评论 -
结构-02. 有理数加法(15)
本题要求编写程序,计算两个有理数的和。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照“a/b”的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1: 1/3 1/6 输出样例1: 1/2 输入样例2: 4/3 2/3 输出样例2: 2#inclu原创 2015-03-27 22:55:11 · 741 阅读 · 0 评论 -
结构-03. 平面向量加法(10)
本题要求编写程序,计算两个二维平面向量的和向量。输入格式:输入在一行中按照“x1 y1 x2 y2”的格式给出两个二维平面向量V1=(x1, y1)和V2=(x2, y2)的分量。输出格式:在一行中按照“(x, y)”的格式输出和向量,坐标输出小数点后1位(注意不能输出-0.0)。输入样例: 3.5 -2.7 -13.9 8.7 输出样例: (-10.4, 6.0)#include<stdio原创 2015-03-27 23:12:10 · 638 阅读 · 0 评论 -
结构-01. 有理数比较(10)
本题要求编写程序,比较两个有理数的大小。输入格式:输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。输入样例1: 1/2 3/4 输出样例1: 1/2 < 3/4 输入样例2: 6/原创 2015-03-27 22:59:23 · 452 阅读 · 0 评论 -
数组-01. 字符转换(15)
本题要求提取一个字符串中的所有数字字符(’0’……’9’),将其转换为一个整数输出。输入格式:输入在一行中给出一个不超过80个字符且以回车结束的字符串。输出格式:在一行中输出转换后的整数。题目保证输出不超过长整型范围。输入样例: free82jeep5 输出样例: 825#include<stdio.h>int main(){ char str[81]; int i=0 ;原创 2015-03-29 10:29:37 · 520 阅读 · 0 评论 -
循环-09. 支票面额(15)
一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分。采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少?输入格式:输入在一行中给出小于100的正整数n。输出格式:在一行中按格式“y.f”输出该支票的原始面额。如果无解,则输出“No Solution”。输入样例1: 23 输出样例1: 25.51 输入样例2: 22 输出样例2: No So原创 2015-03-29 11:36:05 · 351 阅读 · 0 评论 -
循环-28. 求给定序列前N项和之六(15)
本题要求编写程序,计算序列 2,sup>1 + 22 + 23 + … 的前N项之和。输入格式:输入在一行中给出一个不超过30的正整数N。输出格式:在一行中按照“sum = S”的格式输出部分和的整数值S。输入样例: 5 输出样例: sum = 62#include<stdio.h>#include <math.h>int main(){ int n,i; int sum=原创 2015-04-05 11:38:22 · 546 阅读 · 0 评论