练习
题型练习
TQ2
这个作者很懒,什么都没留下…
展开
-
第11周——指针的孪生兄弟(在线编程测试)
1山地训练(4分)题目内容:为了能在下一次跑步比赛中有好的发挥,小白在一条山路上开始了她的跑步训练。她希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:女孩子独自进山的时间不得超过M秒(1 <= M <= 10,000,000)。假设整条山路划分成T个长度相同的路段(1 <= T <= 100,000),并且小白用si表示第i个路段的路况,用u、f、d这3个字母分别表示第i个路段是上坡、平地、下坡。小白跑完一段上坡路的耗时是U秒(1 <= U <= 100原创 2020-11-26 18:03:01 · 1545 阅读 · 0 评论 -
第10周——字符串:C语言世界中的大力水手(在线编程测试)
1数字字符串转换为整型数(4分)题目内容:从键盘输入一串字符(假设字符数少于8个),以回车表示输入结束,编程将其中的数字部分转换为整型数并以整型的形式输出。函数原型为 int Myatoi(char str[]);其中,形参数组str[]对应用户输入的字符串,函数返回值为转换后的整型数。解题思路的关键是:1)判断字符串中的字符是否是数字字符;2)如何将数字字符转换为其对应的数字值;3)如何将每一个转换后的数字值加起来形成一个整型数。程序运行结果示例1:Input a string:7hg09y原创 2020-11-13 20:36:45 · 1654 阅读 · 0 评论 -
第9周——指针:C语言世界中所向披靡的“金箍棒”(在线编程测试)
1重复数字检查(4分)题目内容:从键盘输入一个数,检查这个数中是否有重复出现的数字。如果这个数中有重复出现的数字,则显示“Repeated digit!”;否则显示“No repeated digit!”。已知函数原型:int CountRepeatNum(int count[], int n);若有重复数字,则该函数返回重复出现的数字;否则返回-1.程序运行结果示例1:Input n:28212↙Repeated digit!程序运行结果示例2:Input n:12345↙No原创 2020-11-13 17:58:41 · 1548 阅读 · 0 评论 -
蓝桥杯:铺地毯
为了准备一个学生节,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限铺上一些矩形地毯。一共有n 张地毯,编号从1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。输入格式:输入共 n+2 行。第一行,一个整数 n,表示总共有n 张地毯。 接下来的 n 行中,第i+1 行表示编号i 的地毯的信息,包含四个正整数a,b,g原创 2020-10-07 19:09:04 · 1483 阅读 · 1 评论 -
PTA练习题:公路村村通
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4 71 5原创 2020-06-20 23:22:47 · 3322 阅读 · 0 评论 -
PTA练习题:旅游规划
有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中原创 2020-06-20 23:04:07 · 2979 阅读 · 0 评论 -
PTA练习题:路径判断
给定一个有N个顶点和E条边的无向图,请判断给定的两个顶点之间是否有路径存在。 假设顶点从0到N−1编号。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。最后一行给出两个顶点编号i,j(0≤i,j<N),i和j之间用空格分隔。输出格式:如果i和j之间存在路径,则输出"There is a path between i and j.",否则输出"There is no path betwe原创 2020-06-20 22:33:30 · 7340 阅读 · 0 评论 -
删除字符串中的子串(PTA练习题:JAVA)
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。输入样例:Tomcat is a male ccatatcat输出样例:Tom is a maleimport ja...原创 2020-01-14 09:53:51 · 2335 阅读 · 2 评论 -
十进制转十六进制
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形式。输入格式 输入包含一...原创 2020-01-15 21:07:51 · 1987 阅读 · 0 评论 -
十六进制转十进制
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535import java.util.Scanner;public class Main { public static void main(String[] args) ...原创 2020-01-15 21:08:40 · 1591 阅读 · 0 评论 -
PTA练习题:一元多项式求导
设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 0#include <stdio.h>int main...原创 2020-04-27 13:22:09 · 1901 阅读 · 0 评论 -
PTA练习题 : 一元多项式的乘法与加法运算
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 ...原创 2020-04-29 16:17:20 · 1796 阅读 · 0 评论 -
PTA练习题: 两个有序链表序列的合并
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例...原创 2020-04-29 16:19:05 · 2389 阅读 · 0 评论 -
PTA练习题: 两个有序链表序列的交集
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 2 5 -12 4 5 8 10 -1输出样例:2 ...原创 2020-04-29 16:20:10 · 3410 阅读 · 0 评论 -
PTA练习题:数组循环左移
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0 a1 ⋯an−1 )变换为(am ⋯an−1 a0 a1 ⋯am−1 )(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据...原创 2020-04-29 16:21:05 · 6278 阅读 · 1 评论 -
PTA练习题:链表去重
给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。输入格式:输入在第一行给出 L 的第一个结点的地址和一个正整数 N(≤105 ,为结点...原创 2020-05-07 14:49:01 · 5799 阅读 · 2 评论 -
算法训练 数字三角形
问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; 输入格式 文件中首先读到的是三角形的行数。接下来描述整个三角形输出格式 最大总和(整数)样例输入573 88 1 0...原创 2020-05-07 22:00:00 · 1455 阅读 · 0 评论 -
PTA练习题: 堆栈操作合法性
假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出格式:对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不是。输入样原创 2020-05-16 12:19:37 · 2498 阅读 · 0 评论 -
PTA练习题:括号匹配
给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。输入格式:输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。输出格式:如果括号配对,输出yes,否则输出no。输入样例1:sin(10+20)输出样例1:yes输入样例2:{[}]输出样例2:no#include<stdio.h>int main(){ char s1[101]; char原创 2020-05-16 12:20:38 · 4160 阅读 · 0 评论 -
PTA练习题:银行业务队列简单模拟
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务处理完成的顺序输出顾客原创 2020-05-16 12:22:24 · 1961 阅读 · 0 评论 -
PTA练习题:堆栈模拟队列
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0;int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素item压入堆栈S;ElementType Pop(Stack S ):删除并返回S的栈顶元素。实现队列的操作,即入队void AddQ(Elemen原创 2020-05-16 12:23:17 · 6660 阅读 · 1 评论 -
PTA练习题:求二叉树高度
本题要求给定二叉树的高度。函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ElementType Data;BinTree Left;BinTree Right;};要求函数返回给定二叉树BT的高度值。裁判测试程序样例:#include <stdio.h>#include <原创 2020-05-21 19:49:23 · 3836 阅读 · 0 评论 -
PTA练习题:二叉树的遍历
本题要求给定二叉树的4种遍历。函数接口定义:void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );void LevelorderTraversal( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;str原创 2020-05-21 20:13:18 · 2843 阅读 · 0 评论 -
PTA练习题:统计二叉树结点个数
本题要求实现一个函数,可统计二叉树的结点个数。函数接口定义:int NodeCount ( BiTree T);T是二叉树树根指针,函数NodeCount返回二叉树中结点个数,若树为空,返回0。裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct BiTNode{ElemType data;struct BiTNode *lchild,*rchild;原创 2020-05-21 20:17:20 · 5678 阅读 · 0 评论 -
PTA练习题:先序输出叶结点
本题要求按照先序遍历的顺序输出给定二叉树的叶结点。函数接口定义:void PreorderPrintLeaves( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ElementType Data;BinTree Left;BinTree Right;};函数PreorderPrintLeaves应按照先序遍历的顺序输出给定二叉树BT的叶结原创 2020-05-21 20:21:19 · 3015 阅读 · 0 评论 -
PTA练习题:还原二叉树
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5#include <stdio.h>#include <stdlib.h>typedef char ElementType;typede原创 2020-05-24 09:48:25 · 2292 阅读 · 0 评论