![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA题集
w
王佳Gre
hi
展开
-
习题4.5 顺序存储的二叉树的最近的公共祖先问题 (25分)
设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。输入格式:输入第1行给出正整数n(≤1000),即顺序存储的最大容量;第2行给出n个非负整数,其间以空格分隔。其中0代表二叉树中的空结点(如果第1个结点为0,则代表一棵空树);第3行给出一对结点编号i和j。题目保证输入正确对应一棵二叉树,且1≤i,j≤n。输出格式:如果i或j对应的是空结点,则输出ERROR: T[x] is NULL,其中x是i或j中先发现错误的那个编号;否则在一行中输出编号为i和j的两原创 2020-06-05 22:53:27 · 642 阅读 · 0 评论 -
习题3.9 堆栈操作合法性 (20分)
问题描述假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不是。程序设计原创 2020-05-31 18:00:15 · 810 阅读 · 0 评论 -
习题3.10 汉诺塔的非递归实现 (25分)
问题描述借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。输入输入为一个正整数N,即起始柱上的盘数。输出每个操作(移动)占一行,按柱1 -> 柱2的格式输出。问题分析汉诺塔的基本思路是不断将n个盘的汉诺塔问题转换为2个n-1的问题,用递归实现,当把n盘问题转换成n-1盘问题时,问题的起始柱和目标柱都发生了变化,设n盘问题为(n,a,b,c)原创 2020-05-31 16:29:09 · 2255 阅读 · 2 评论 -
实验5-4 使用函数计算两点间的距离 (10分)
本题要求实现一个函数,对给定平面任意两点坐标(x1 ,y1 )和(x2 ,y2),求这两点之间的距离。函数接口定义:double dist( double x1, double y1, double x2, double y2 );其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2),函数dist应返回两点间的距离。裁判测试程序样例:#include <stdio.h>#include <math.h>double dist( dou原创 2020-05-29 15:44:48 · 1786 阅读 · 0 评论 -
实验5-3 使用函数求奇数和 (15分)
本题要求实现一个函数,计算N个整数中所有奇数的和,同时实现一个判断奇偶性的函数。函数接口定义:int even( int n );int OddSum( int List[], int N );其中函数even将根据用户传入的参数n的奇偶性返回相应值:当n为偶数时返回1,否则返回0。函数OddSum负责计算并返回传入的N个整数List[]中所有奇数的和。裁判测试程序样例:#include <stdio.h>#define MAXN 10int even( int n );原创 2020-05-29 15:37:50 · 565 阅读 · 0 评论 -
实验5-2 符号函数 (10分)
本题要求实现符号函数sign(x)。函数接口定义:int sign( int x );其中x是用户传入的整型参数。符号函数的定义为:若x大于0,sign(x) = 1;若x等于0,sign(x) = 0;否则,sign(x) = −1。裁判测试程序样例:#include <stdio.h>int sign( int x );int main(){ int x; scanf("%d", &x); printf("sign(%d) = %d\n"原创 2020-05-29 15:25:35 · 799 阅读 · 0 评论 -
实验5-1 使用函数计算两个复数之积 (10分)
题目描述:若两个复数分别为:c1=x1+y1i和c2=x2+y2i,则它们的乘积为 c1×c2=(x1x2−y1y2)+(x1y2+x2y1)i。本题要求实现一个函数计算两个复数之积。函数接口定义:double result_real, result_imag;void complex_prod( double x1, double y1, double x2, double y2 );其中用户传入原创 2020-05-29 15:17:43 · 5625 阅读 · 0 评论 -
实验4-1-7 特殊a串数列求和 (20分)
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。#include<stdio.h>int main(){ int a,i,n,sum=0; scanf("%d%d",&a,&n); int t=a; ...原创 2020-04-23 14:57:50 · 685 阅读 · 0 评论 -
实验4-1-6 求分数序列前N项和 (15分)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。#include<stdio.h>int main(){ double x1,x2,x;...原创 2020-04-23 14:48:58 · 703 阅读 · 0 评论 -
实验4-1-4 求整数的位数及各位数字之和 (15分)
对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过109的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开#include<stdio.h>int main(){ int n; int k=0; int sum=0; scanf("%d",&n); while(n...原创 2020-04-23 14:32:22 · 1954 阅读 · 0 评论 -
实验4-1-3 找出最小值 (20分)
本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出n个整数中的最小值。注意for循环次数没有等于就是循环n-i次,有等于就是n-i+1次#include<stdio.h>int main(){ int n,num,min; sca...原创 2020-04-23 14:18:22 · 6669 阅读 · 0 评论 -
实验4-1-2 求奇数和 (15分)
本题要求计算给定的一系列正整数中奇数的和。输入格式:输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。输出格式:在一行中输出正整数序列中奇数的和。思路:判断奇数对2取余,余1就是奇数。判断偶数也是对2取余,余0就是偶数#include<stdio.h>int main(void){ int n, sum = 0; ...原创 2020-04-23 14:01:07 · 1495 阅读 · 0 评论 -
实验4-1-1 最大公约数和最小公倍数 (15分)
本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。#include<stdio.h>int main(){ int M,N,m,n; int t = 0; scanf("%d %d",&M,&N); ...原创 2020-04-23 13:56:54 · 2836 阅读 · 2 评论 -
实验3-11 计算油费 (15分)
现在90号汽油6.95元/升、93号汽油7.44元/升、97号汽油7.93元/升。为吸引顾客,某自动加油站推出了“自助服务”和“协助服务”两个服务等级,分别可得到5%和3%的折扣。本题要求编写程序,根据输入顾客的加油量a,汽油品种b(90、93或97)和服务类型c(m - 自助,e - 协助),计算并输出应付款。输入格式:输入在一行中给出两个整数和一个字符,分别表示顾客的加油量a,汽油品种b(9...原创 2020-04-23 12:07:02 · 1134 阅读 · 0 评论 -
实验3-10 高速公路超速处罚 (15分)
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。输入格式:输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。输出格式:在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“...原创 2020-04-23 12:02:02 · 924 阅读 · 0 评论 -
实验3-9 三天打鱼两天晒网 (15分)
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出一个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。思路:前三天打鱼后两天晒网,所以可以对5取余,余1,2,3的数就是打鱼天数...原创 2020-04-23 11:50:27 · 1763 阅读 · 0 评论 -
实验3-5 查询水果价格 (15分)
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。首先在屏幕上显示以下菜单:[1] apple[2] pear[3] orange[4] grape[0] exit用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不...原创 2020-04-22 22:51:44 · 1157 阅读 · 0 评论