
pat练习题
乘风xs
这个作者很懒,什么都没留下…
展开
-
实验9-7 找出总分最高的学生 (15 分)
给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。输入格式:输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。输出格式:在一行中输出总分最高学生的姓名、学号...原创 2019-07-29 11:24:40 · 1812 阅读 · 1 评论 -
习题3.6 一元多项式的乘法与加法运算 (20 分)+c语言链表实现
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2...原创 2019-09-03 22:10:30 · 585 阅读 · 0 评论 -
01-复杂度1 最大子列和问题 (20 分)+分治法C语言实现
给定K个整数组成的序列{N1,N2, ...,NK},“连续子列”被定义为{Ni,Ni+1, ...,Nj},其中1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子...原创 2019-09-03 19:36:18 · 1405 阅读 · 2 评论 -
练习7.1 排序 (25 分)+C语言
因为输入规模从10的0次方到10的5次方变化,所以最好根据规模选择不同的排序方法给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:数据1:只有1个元素; 数据2:11个不相同的整数,测试基本正确性; 数据3:103个随机整数; 数据4:104个随机整数; 数据5:105个随机整数...原创 2019-09-03 19:08:36 · 1633 阅读 · 0 评论 -
04-树7 二叉搜索树的操作集 (30 分)+C语言
本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST ...原创 2019-09-03 16:03:47 · 533 阅读 · 0 评论 -
练习6.1 邻接矩阵存储图的深度优先遍历 (20 分)
试实现邻接矩阵存储图的深度优先遍历。函数接口定义:void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) );其中MGraph是邻接矩阵存储的图,定义如下:typedef struct GNode *PtrToGNode;struct GNode{ int Nv; /* 顶点数 */ int Ne; ...原创 2019-09-02 21:16:48 · 4841 阅读 · 1 评论 -
实例6.1 六度空间 (30 分)+C语言实现
实例6.1六度空间(30分)“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终...原创 2019-09-02 20:55:20 · 2474 阅读 · 2 评论 -
习题4.3 是否二叉搜索树 (25 分)+C语言
本题要求实现函数,判断给定二叉树是否二叉搜索树。函数接口定义:bool IsBST ( BinTree T );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; B...原创 2019-09-01 22:24:02 · 2095 阅读 · 7 评论 -
练习4.3 堆中的路径 (25 分)
将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点...原创 2019-09-01 21:13:28 · 693 阅读 · 0 评论 -
练习4.2 平衡二叉树的根 (25 分)+C语言
练习4.2平衡二叉树的根(25分)将给定的一系列数字插入初始为空的AVL树,请你输出最后生成的AVL树的根结点的值。输入格式:输入的第一行给出一个正整数N(≤20),随后一行给出N个不同的整数,其间以空格分隔。输出格式:在一行中输出顺序插入上述整数到一棵初始为空的AVL树后,该树的根结点的值。输入样例1:588 70 61 96 120输出样例1:...原创 2019-09-01 20:44:25 · 1377 阅读 · 0 评论 -
习题3.4 最长连续递增子序列 (20 分)(时间复杂度O(n),空间复杂度O(1))
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。输入格式:输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。输出格式:在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。输入样例:151 9 ...原创 2019-08-13 00:21:46 · 6616 阅读 · 5 评论 -
习题2.5 两个有序链表序列的合并 (15 分)
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Ne...原创 2019-08-12 23:45:48 · 6293 阅读 · 9 评论 -
6-13 折半查找 (15 分)
给一个严格递增数列,函数int Search_Bin(SSTable T, KeyType k)用来二分地查找k在数列中的位置。函数接口定义:int Search_Bin(SSTable T, KeyType k)其中T是有序表,k是查找的值。裁判测试程序样例:#include <iostream>using namespace std;#defin...原创 2019-08-09 22:37:48 · 2736 阅读 · 1 评论 -
自测-4 Have Fun with Numbers (20 分)(思路及完整C代码)
自测-4Have Fun with Numbers(20分)Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happe...原创 2019-08-07 00:30:23 · 497 阅读 · 1 评论 -
自测-1 打印沙漏 (20 分)(C语言+思路版)
自测-1打印沙漏(20分)本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用...原创 2019-08-06 21:40:54 · 1014 阅读 · 0 评论 -
实验7-2-9 螺旋方阵 (20 分)
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。考虑:找坐标与值以及n的静态关系实在是太复杂了,所以就考虑按照螺旋的方式将一个二维数组动态填充满,这样就只需...原创 2019-07-27 19:14:20 · 4563 阅读 · 0 评论 -
C语言输入未知数目的若干个整数
因为输入个数未知,因此应该先准备一个足够大的整型数组;然后利用循环进行输入,判断条件即为是否输入换行符。PAT题集《浙大版<C语言程序设计(第3版)>题目集》练习3-8查询水果价格(15分)答案:#include<stdio.h>int main(){int choices[20];int i = 0;do...原创 2019-07-27 19:06:19 · 14294 阅读 · 1 评论 -
习题11-7 奇数值结点链表 (20 分)
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *getodd( struct ListNode **L ...原创 2019-07-29 23:54:41 · 1674 阅读 · 0 评论 -
01-复杂度2 Maximum Subsequence Sum (25 分)+C语言实现
Given a sequence ofKintegers {N1,N2, ...,NK}. A continuous subsequence is defined to be {Ni,Ni+1, ...,Nj} where1≤i≤j≤K. The Maximum Subsequence is the continuous subsequen...原创 2019-09-04 19:03:27 · 269 阅读 · 0 评论