
PTA
题
Colin Snell
CCPigSnail
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第6章函数-6 缩写词(20分)
第6章函数-6 缩写词(20分)缩写词是由一个短语中每个单词的第一个字母组成,均为大写。例如,CPU是短语“central processing unit”的缩写。函数接口定义:acronym(phrase);phrase是短语参数,返回短语的缩写词裁判测试程序样例:/* 请在这里填写答案 */phrase=input()print(acronym(phrase))输入样例:central processing unit输出样例:CPU方法一用split()函数原创 2021-01-24 13:19:39 · 1867 阅读 · 0 评论 -
第6章函数-5 使用函数求余弦函数的近似值(20分)
第6章函数-5 使用函数求余弦函数的近似值(20分)本题要求实现一个函数,用下列公式求cos(x)近似值,精确到最后一项的绝对值小于eps(绝对值小于eps的项不要加):cos (x) = x^0 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ?函数接口定义:funcos(eps,x ),其中用户传入的参数为eps和x;函数funcos应返回用给定公式计算出来,保留小数4位。函数接口定义:函数接口:funcos(eps,x ),返回cos(x)的值。裁原创 2021-01-24 12:38:05 · 419 阅读 · 0 评论 -
第6章函数-4 使用函数输出指定范围内Fibonacci数的个数 (20分)
第6章函数-4 使用函数输出指定范围内Fibonacci数的个数 (20分)本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m<n≤100000)之间的所有Fibonacci数的数目。 所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,fib(0)=fib(1)=1。其中函数fib(n)须返回第n项Fibonacci数;函数PrintFN(m,n)用列表返回[m, n]中的所有Fibonacci数。函数原创 2021-01-24 11:35:29 · 485 阅读 · 0 评论 -
第6章函数-3 使用函数统计指定数字的个数 (20分)
第6章函数-3 使用函数统计指定数字的个数 (20分)本题要求实现一个统计整数中指定数字的个数的简单函数。CountDigit(number,digit )其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。函数接口定义:在这里描述函数接口。例如:CountDigit(number,digit ),返回digit出现的次数裁判测试程序样例:/* 请在这里填写答案 */number,digit=input(原创 2021-01-23 21:04:12 · 595 阅读 · 0 评论 -
第6章函数-2 使用函数求素数和 (20分)
第6章函数-2 使用函数求素数和 (20分)使用函数求素数和prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False. PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。函数接口定义:在这里描述函数接口:prime(p),返回True表示p是素数,返回False表示p不是素数PrimeSum(m,n),函数返回素数和裁判测试程序样例:/* 请在这里填写答案 */m,原创 2021-01-23 18:06:33 · 1033 阅读 · 0 评论 -
第6章函数-1 使用函数求特殊a串数列和 (10分)
第6章函数-1 使用函数求特殊a串数列和 (10分)给定两个均不超过9的正整数a和n,要求编写函数fn(a,n) 求a+aa+aaa++⋯+aa⋯aa(n个a)之和,fn须返回的是数列和函数接口定义:fn(a,n)其中 a 和 n 都是用户传入的参数。 a 的值在[1, 9]范围;n 是[1, 9]区间内的个位数。函数须返回级数和裁判测试程序样例:/* 请在这里填写答案 */a,b=input().split()s=fn(int(a),int(b))print(s)输入样例:在原创 2021-01-23 16:49:23 · 1338 阅读 · 0 评论 -
输出杨辉三角
11 11 2 11 3 3 11 4 6 4 1根据它的性质,每行行首是1,每行行尾也是1,除此外其余数都为其上一列的数加上上一列的数的前面那个数。可以写出程序。#include <stdio.h>int main(void){ int n = 0; printf("请输入你想输入的行数\n"); scanf("%d", &n); int array[n][n]; for (int .原创 2020-07-03 16:20:39 · 511 阅读 · 1 评论 -
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;#define MAXSIZE 50typedef int KeyType;typedef struct原创 2020-07-02 21:00:34 · 460 阅读 · 0 评论 -
习题3.5 求链表的倒数第m个元素 (20分)
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。函数接口定义:ElementType Find( List L, int m );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode L原创 2020-06-30 18:22:53 · 1231 阅读 · 0 评论 -
6-10 阶乘计算升级版 (20分)
本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。裁判测试程序样例:#include <stdio.h>void Print_Factorial ( const int N );int main(){ int N; scanf("%d", &原创 2020-06-28 10:44:39 · 398 阅读 · 0 评论 -
习题3.14 另类堆栈 (15分)
在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满?函数接口定义:bool Push( Stack S, ElementType X );ElementType Pop( Stack S );其中Stack结构定义如下:typedef int Position;typedef struct SNode *PtrToSNode;struct SNode { ElementType *Data; /*原创 2020-06-10 21:09:47 · 1840 阅读 · 1 评论 -
7-3 树的同构 (25分)
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个英文大写字母、其左孩子结.原创 2020-06-04 18:24:28 · 2577 阅读 · 0 评论 -
7-2 一元多项式的乘法与加法运算 (20分)
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例:15 24 -25 22 30 21 -原创 2020-06-03 18:34:33 · 937 阅读 · 0 评论 -
7-1 最大子列和问题 (20分)
给定K个整数组成的序列{ N1, N2, …, NK},“连续子列”被定义为{ Ni, Ni+1 , …, Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下:数据1:与样例等价,测试基本正确性;数据2:102个随机原创 2020-06-02 11:52:52 · 410 阅读 · 0 评论 -
6-12 二叉搜索树的操作集 (30分)
本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST );Position FindMax( BinTree BST );其中BinTree结构定义如下:typed原创 2020-06-01 19:18:01 · 321 阅读 · 0 评论 -
6-11 先序输出叶结点 (15分)
本题要求按照先序遍历的顺序输出给定二叉树的叶结点。函数接口定义:void PreorderPrintLeaves( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};函数PreorderPrintLeaves应按照先序遍历原创 2020-06-01 15:14:22 · 1067 阅读 · 0 评论 -
6-10 二分查找 (20分)
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中ElementType元素可以原创 2020-06-01 14:51:55 · 811 阅读 · 0 评论 -
6-9 二叉树的遍历 (25分)
本题要求给定二叉树的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;st原创 2020-06-01 13:41:24 · 2607 阅读 · 0 评论 -
6-8 求二叉树高度 (20分)
本题要求给定二叉树的高度。函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};要求函数返回给定二叉树BT的高度值。裁判测试程序样例:#include <stdio.h>原创 2020-05-31 13:35:25 · 1172 阅读 · 0 评论 -
6-7 在一个数组中实现两个堆栈 (20分)
本题要求在一个数组中实现两个堆栈。函数接口定义:Stack CreateStack( int MaxSize );bool Push( Stack S, ElementType X, int Tag );ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2;MaxSize堆栈数组的规模;Stack结构定义如下:typedef int Position;struct SNode { ElementType *Data; Posi原创 2020-05-30 14:06:52 · 289 阅读 · 0 评论 -
6-6 带头结点的链式表操作集 (20分)
本题要求实现带头结点的链式表操作集。函数接口定义:List MakeEmpty();Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data;原创 2020-05-30 08:36:42 · 248 阅读 · 0 评论 -
6-5 链式表操作集 (20分)
本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;}原创 2020-05-29 16:46:30 · 293 阅读 · 0 评论 -
6-4 链式表的按序号查找 (10分)
本题要求实现一个函数,找到并返回链式表的第K个元素。函数接口定义:ElementType FindKth( List L, int K );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;L是给定单链表,函数FindKth要返回链式表的第K个元素。如果该元素不存在,则返回ERRO原创 2020-05-29 16:03:59 · 1243 阅读 · 0 评论 -
6-3 求链式表的表长 (10分)
本题要求实现一个函数,求链式表的表长。函数接口定义:int Length( List L );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;L是给定单链表,函数Length要返回链式表的长度。裁判测试程序样例:#include <stdio.h>#include原创 2020-05-29 10:53:24 · 316 阅读 · 0 评论 -
6-2 顺序表操作集 (20分)
本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { Eleme原创 2020-05-29 10:08:12 · 225 阅读 · 0 评论 -
6-1 单链表逆转 (20分)
本题要求实现一个函数,将给定的单链表逆转。函数接口定义:List Reverse( List L );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */L是给定单链表,函数Reverse要返回被逆转后的原创 2020-05-28 13:38:08 · 747 阅读 · 0 评论 -
习题7-8 字符串转换成十进制整数 (15分)
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:输入在一行中给出一个以#结束的非空字符串。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入样例:±P-xf4±1!#输出样例:-3905#include <stdio.h> #include<math.h>i原创 2020-05-27 22:36:17 · 696 阅读 · 0 评论 -
习题9-5 通讯录排序 (20分)
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang 19850403原创 2020-05-27 21:05:18 · 536 阅读 · 0 评论 -
习题9-4 查找书籍 (20分)
给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。输出格式:在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。输入样例:3Programming in C21.5Programming in VB18.5Programming in De原创 2020-05-27 16:01:18 · 271 阅读 · 0 评论 -
习题9-1 时间换算 (15分)
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。输入格式:输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。输出格式:输出在一行中给出hh:mm:ss格式的结果时间。输入样例:11:59:4030输出样例:12:00:10#include<stdio.h>int main(void){ int h,m,s; scanf("%d:%d:原创 2020-05-27 11:37:03 · 583 阅读 · 0 评论 -
习题8-10 输出学生成绩 (20分)
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。输入格式:输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。输出格式:按照以下格式输出:average = 平均成绩max = 最高成绩min = 最低成绩结果均保留两位小数。输入样例:385 90 95输出样例:average = 90.00max = 95.00min = 85.00#include&l原创 2020-05-27 10:54:05 · 409 阅读 · 3 评论 -
习题8-7 字符串排序 (20分)
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。输出格式:按照以下格式输出排序后的结果:After sorted:每行一个字符串输入样例:red yellow blue green white输出样例:After sorted:bluegreenredwhiteyellow#include<stdio.h>#include<st原创 2020-05-26 22:44:50 · 1023 阅读 · 0 评论 -
习题7-7 字符串替换 (15分)
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母对应字母AZBYCXDW……XCYBZA输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出替换完成后的字符串。输入样例:Only the 11 CAPItaL LeTtERS are replaced.输出样例:Lnly the 11 XZKRtaO OeGtVIH are re原创 2020-05-26 15:11:23 · 749 阅读 · 0 评论 -
习题7-6 统计大写辅音字母 (15分)
英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出字符串中大写辅音字母的个数。输入样例:HELLO World!输出样例:4#include<stdio.h>#include<ctype.h>//要用到issupper()函数int main(void){ char ch; int原创 2020-05-26 14:58:05 · 392 阅读 · 0 评论 -
习题7-5 找鞍点 (20分)
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。输入样例1:41 7 4 14 8 3 61 6 1 20 7 8 9输出样例1:2 1输入样例2:原创 2020-05-26 13:38:48 · 1073 阅读 · 0 评论 -
习题7-4 求矩阵各行元素之和 (15分)
本题要求编写程序,求一个给定的m×n矩阵各行元素之和。输入格式:输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。输出格式:每行输出对应矩阵行元素之和。输入样例:3 26 31 -83 12输出样例:9-715#include<stdio.h>int main(void){ int m,n; scanf("%d %d",&m,&n); int array[m][n原创 2020-05-26 10:49:55 · 2987 阅读 · 3 评论 -
习题7-3 判断上三角矩阵 (15分)
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。输入样例:231 2 30 4 50 0 621 0-8 2.原创 2020-05-25 16:56:40 · 2265 阅读 · 0 评论 -
习题7-2 求一批整数中出现最多的个位数字 (20分)
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。输入样例:31234 2345 3456原创 2020-05-25 15:30:45 · 542 阅读 · 0 评论 -
习题7-1 选择法排序 (20分)
本题要求将给定的n个整数从大到小排序后输出。输入格式:输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。输出格式:在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。输入样例:45 1 7 6输出样例:7 6 5 1方法1#include<stdio.h>int main(void){ int num; scanf("%d",&num); int array[num];原创 2020-05-24 13:12:21 · 3408 阅读 · 0 评论 -
练习7-11 字符串逆序 (15分)
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH#include<stdio.h>int main(void){ char array[80]; char ch; int i=0; while((ch=getchar())!='\n'原创 2020-05-24 10:55:05 · 452 阅读 · 0 评论