PTA基础题目集
清凉一度
喜欢经典,经典是时间的产物。
总觉得自己还小,干什么都还早。有道是“记得少年骑木马,转眼已是白头人”当我认识到这一点的时候,特别后悔没有珍惜时间。这里面的笔记是,很长时间以来对我自己的提升,自己的学习过程,大家的阅读和评论是对我的一丝认可,一点激励。
展开
-
7-4 BCD解密 (10 分)
BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。输入格式:输入在一行中给出一个...原创 2019-03-05 21:37:11 · 1848 阅读 · 0 评论 -
7-26 单词长度(15 分) JAVA与C++
7-26 单词长度(15 分) 你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it’s算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。输入格式:输入在一行中给出一行文本,以.结束提示:用scanf(“%c”,…);来读入一个字符,直到读到.为止。输出格式:在一行中输出这...原创 2018-04-17 21:57:46 · 1350 阅读 · 0 评论 -
6-12 判断奇偶性(10 分)
6-12 判断奇偶性(10 分)本题要求实现判断给定整数奇偶性的函数。函数接口定义:int even( int n );其中n是用户传入的整型参数。当n为偶数时,函数返回1;n为奇数时返回0。注意:0是偶数。裁判测试程序样例:#include <stdio.h>int even( int n );int main(){ int n; scanf("...原创 2018-04-13 18:00:14 · 7160 阅读 · 0 评论 -
6-11 求自定类型元素序列的中位数(25 分)
6-11 求自定类型元素序列的中位数(25 分)本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第⌊N/2+1⌋大的元素。其中集合元素的类型为自定义的ElementType。函数接口定义:ElementType Median( ElementType A[], int N );其中给定集合元素存放在数组A[]中,正整数N是数组元素个数。该函数须返回N个A[]元素的中位数,其值也必须是...原创 2018-04-11 22:31:57 · 1624 阅读 · 6 评论 -
6-10 阶乘计算升级版(20 分)
6-10 阶乘计算升级版(20 分)本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。裁判测试程序样例:#include <stdio.h>void Print_Fa...原创 2018-04-11 22:30:33 · 1257 阅读 · 0 评论 -
6-9 统计个位数字(15 分)
6-9 统计个位数字(15 分)本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。函数接口定义:int Count_Digit ( const int N, const int D );其中N和D都是用户传入的参数。N的值不超过int的范围;D是[0, 9]区间内的个位数。函数须返回N中D出现的次数。裁判测试程序样例:#include...原创 2018-04-11 22:28:34 · 12481 阅读 · 4 评论 -
6-8 简单阶乘计算(10 分)
6-8 简单阶乘计算(10 分)本题要求实现一个计算非负整数阶乘的简单函数。函数接口定义:int Factorial( const int N );其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。裁判测试程序样例:#include <stdio.h>int Factorial( const int N );int main()...原创 2018-04-11 22:26:50 · 5912 阅读 · 1 评论 -
6-6 求单链表结点的阶乘和(15 分)
6-6 求单链表结点的阶乘和(15 分)本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。函数接口定义:int FactorialSum( List L );其中单链表List的定义如下:typedef struct Node *PtrToNode;struct Node { int Data; /* 存储结点数据 */ Pt...原创 2018-04-11 22:24:41 · 1058 阅读 · 0 评论 -
6-5 求自定类型元素的最大值(10 分)
6-5 求自定类型元素的最大值(10 分)本题要求实现一个函数,求N个集合元素S[]中的最大值,其中集合元素的类型为自定义的ElementType。函数接口定义:ElementType Max( ElementType S[], int N );其中给定集合元素存放在数组S[]中,正整数N是数组元素个数。该函数须返回N个S[]元素中的最大值,其值也必须是ElementType类型。裁判测试程序样...原创 2018-04-11 22:22:53 · 4933 阅读 · 1 评论 -
7-27 冒泡法排序(20 分)Java实现
7-27 冒泡法排序(20 分) 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。本题要求对任意给定的K(import java.util.Scanner;pu...原创 2018-04-17 21:58:41 · 1860 阅读 · 0 评论 -
7-28 猴子选大王(20 分)Java实现
7-28 猴子选大王(20 分) 一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。输出格式:在一行中输出当选猴...原创 2018-04-17 21:59:30 · 1588 阅读 · 0 评论 -
6-13 折半查找(15 分)
给一个严格递增数列,函数int binSearch(SeqList T, KeyType k)用来二分地查找k在数列中的位置。函数接口定义:int binSearch(SeqList T, KeyType k)其中T是有序表,k是查找的值。裁判测试程序样例:#include <iostream>using namespace std;#define MAXLEN 50ty...原创 2018-04-13 18:01:32 · 2209 阅读 · 2 评论 -
7-35 有理数均值(20 分)C语言实现
7-35 有理数均值(20 分) 本题要求编写程序,计算N个有理数的平均值。输入格式:输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。输出格式:在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。...原创 2018-04-18 18:04:25 · 6332 阅读 · 0 评论 -
7-34 通讯录的录入与显示(10 分)C语言结构体实现
7-34 通讯录的录入与显示(10 分) 通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入N条记录,并且根据要求显示任意某条记录。输入格式:输入在第一行给出正整数N(≤10);随后N行,每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串;生日按yyyy/mm/dd的格...原创 2018-04-17 22:05:34 · 6091 阅读 · 2 评论 -
7-33 有理数加法(15 分)Java实现
7-33 有理数加法(15 分) 本题要求编写程序,计算两个有理数的和。输入格式:输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1:1/3 1/6 输出样例1:1/2 输入样例2:...原创 2018-04-17 22:04:28 · 1534 阅读 · 0 评论 -
7-32 说反话-加强版(20 分)Java实现
7-32 说反话-加强版(20 分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。输出格式:每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。输入样...原创 2018-04-17 22:03:32 · 1869 阅读 · 6 评论 -
7-31 字符串循环左移(20 分)Java实现
7-31 字符串循环左移(20 分) 输入一个字符串和一个非负整数N,要求将字符串循环左移N次。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出循环左移N次后的字符串。输入样例:Hello World! 2 输出样例:llo World!Heimport java.util.Sc...原创 2018-04-17 22:02:40 · 1359 阅读 · 0 评论 -
7-30 字符串的冒泡排序(20 分)Java实现
7-30 字符串的冒泡排序(20 分) 我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(import java.util.Scanner;public class Main{ public static void main(String [] args){ Scanner sc = new Scanner...原创 2018-04-17 22:01:49 · 2385 阅读 · 1 评论 -
7-29 删除字符串中的子串(20 分)Java实现
7-29 删除字符串中的子串(20 分) 输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。输入样例:Tomcat is a male ccatat cat ...原创 2018-04-17 22:00:40 · 554 阅读 · 0 评论 -
6-4 求自定类型元素的平均(10 分)
6-4 求自定类型元素的平均(10 分)本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。函数接口定义:ElementType Average( ElementType S[], int N );其中给定集合元素存放在数组S[]中,正整数N是数组元素个数。该函数须返回N个S[]元素的平均值,其值也必须是ElementType类型。裁判测试程序...原创 2018-04-11 21:26:36 · 2261 阅读 · 0 评论 -
6-3 简单求和(10 分)
6-3 简单求和(10 分)本题要求实现一个函数,求给定的N个整数的和。函数接口定义:int Sum ( int List[], int N );其中给定整数存放在数组List[]中,正整数N是数组元素个数。该函数须返回N个List[]元素的和。裁判测试程序样例:#include <stdio.h>#define MAXN 10int Sum ( int List[], in...原创 2018-04-11 21:25:18 · 7331 阅读 · 0 评论 -
6-2 多项式求值(15 分)
本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑i=0n(a[i]×xi) 在x点的值。函数接口定义:double f( int n, double a[], double x );其中n是多项式的阶数,a[]中存储系数,x是给定点。函数须返回多项式f(x)的值。裁判测试程序样例:#include <stdio.h>#def...原创 2018-04-11 21:23:57 · 4590 阅读 · 0 评论 -
7-10 计算工资
7-10 计算工资(15 分) 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。输入格式: 输入在一行中给出2个正整...原创 2018-04-14 20:50:19 · 758 阅读 · 0 评论 -
7-9 用天平找小球
7-9 用天平找小球(10 分) 三个球A、B、C,大小形状相同且其中有一个球与其他球重量不同。要求找出这个不一样的球。输入格式: 输入在一行中给出3个正整数,顺序对应球A、B、C的重量。输出格式: 在一行中输出唯一的那个不一样的球。输入样例: 1 1 2 输出样例: Cimport java.util.Scanner;public class Main { ...原创 2018-04-14 20:49:29 · 926 阅读 · 0 评论 -
7-8 超速判断
7-8 超速判断(10 分) 模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。输入格式: 输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。输出格式: 在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。输入样例1: 40 输出样例1: ...原创 2018-04-14 20:48:39 · 390 阅读 · 0 评论 -
7-7 12-24小时制
7-7 12-24小时制(15 分) 编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。输入格式: 输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。输出格式: 在一行中输出这个时间...原创 2018-04-14 20:47:35 · 2136 阅读 · 2 评论 -
7-6 混合类型数据格式化输入
7-6 混合类型数据格式化输入(5 分) 本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。输入格式: 输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。输出格式: 在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。输入样例: 2.12 88 c 4.7 输出样例: ...原创 2018-04-14 20:46:33 · 1912 阅读 · 0 评论 -
7-5 表格输出
7-5 表格输出(5 分) 本题要求编写程序,按照规定格式输出表格。输入格式: 本题目没有输入。输出格式: 要求严格按照给出的格式输出下列表格:Province Area(km2) Pop.(10K)Anhui 139600.00 6461.00 Beijing 16410.54 1180.70 Chongqin...原创 2018-04-14 20:33:31 · 976 阅读 · 0 评论 -
7-3 逆序的三位数
7-3 逆序的三位数(10 分) 程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式: 每个测试是一个3位的正整数。输出格式: 输出按位逆序的数。输入样例: 123 输出样例: 321import java.util.Scanner;public class Main ...原创 2018-04-14 20:32:22 · 668 阅读 · 0 评论 -
7-2 然后是几点
7-2 然后是几点(15 分) 有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是...原创 2018-04-14 20:30:40 · 307 阅读 · 0 评论 -
7-11 分段计算居民水费
7-11 分段计算居民水费(10 分) 为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x−17.5。请编写程序实现水费的计算。输入格式: 输入在一行中给出非负实数x。输出格式: 在一行输出应交的水费,精确到小数点后2位。输入样例1: 12 输出样例1: 16.00 ...原创 2018-04-16 17:41:12 · 822 阅读 · 0 评论 -
7-12 两个数的简单计算器(10 分)
7-12 两个数的简单计算器(10 分) 本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。输入格式:输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符...原创 2018-04-16 17:44:02 · 7957 阅读 · 1 评论 -
6-1简单输出整数
6-1 简单输出整数(10 分)本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。函数接口定义:void PrintN ( int N );其中N是用户传入的参数。该函数必须将从1到N的全部正整数顺序打印出来,每个数字占1行。裁判测试程序样例:#include <stdio.h>void PrintN ( int N );int main (){ i...原创 2018-04-11 21:21:06 · 2687 阅读 · 0 评论 -
7-25 念数字(15 分)Java与C++
7-25 念数字(15 分) 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu 输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这个...原创 2018-04-16 17:56:35 · 3690 阅读 · 1 评论 -
7-24 约分最简分式(15 分)
7-24 约分最简分式(15 分) 分数可以表示为分子/分母的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。输入格式:输入在一行中给出一个分数,分子和分母中间以斜杠/分隔,如...原创 2018-04-16 17:55:42 · 6579 阅读 · 0 评论 -
7-22 龟兔赛跑(20 分)
7-22 龟兔赛跑(20 分) 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输入...原创 2018-04-16 17:54:46 · 559 阅读 · 0 评论 -
7-20 打印九九口诀表(15 分)
7-20 打印九九口诀表(15 分) 下面是一个完整的下三角九九口诀表:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=...原创 2018-04-16 17:53:50 · 3575 阅读 · 0 评论 -
7-16 求符合给定条件的整数集(15 分)
7-16 求符合给定条件的整数集(15 分) 给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。输入格式:输入在一行中给出A。输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。输入样例:2 输出样例:234 235 243 245 253 254 324 325 342...原创 2018-04-16 17:52:08 · 4505 阅读 · 0 评论 -
7-15 计算圆周率(15 分)
7-15 计算圆周率(15 分) 根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。 输入格式:输入在一行中给出小于1的阈值。输出格式:在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。输入样例:0.01 输出样例:3.132157import java.util.Scanner;public class Main { publi...原创 2018-04-16 17:49:21 · 2285 阅读 · 0 评论 -
7-14 求整数段和(15 分)
7-14 求整数段和(15 分) 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。输入格式:输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。输入样例:-3 8 输出样例:-3 ...原创 2018-04-16 17:46:16 · 1880 阅读 · 0 评论