![](https://img-blog.csdnimg.cn/0a6b0f31560e477292df22e96f64c889.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PTA
以前做的一些题
懒回顾,半缘君
音视频开发,AIGC, AIOT方向
展开
-
第2章_14 输出菱形 (5 分)
这里用的方法不算好,如果有更好的代码我会改进的。输出菱形图案。输入格式:无输入。输出格式:输出菱形图案。输入样例:#无输入。#结尾无空行输出样例: * ******** *** *#结尾无空行代码:print(' '*2+'*'*1)print(' '*1+'*'*3)print(' '*0+'*'*5)print(' '*1+'*'*3)print(' '*2+'*'*1)...原创 2021-10-05 07:00:01 · 372 阅读 · 0 评论 -
第2章_13 判断素数。 (12 分)
判断输入的整数是否是素数,如果是则输出"1",否则输出"0."输入格式:输入一个整数。输出格式:按照要求输出1或者0,最后换行。输入样例1:17#结尾无空行输出样例1:1#结尾无空行输入样例2:2488#结尾无空行输出样例2:0#结尾无空行代码:num = int(input())if num > 1: #质数大于1 for i in range(2,num): if (num % i) == 0: print(0) break e原创 2021-10-05 06:58:31 · 482 阅读 · 0 评论 -
第2章_10 三角形判定 (10 分)
给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。输入格式:一行包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。输出格式:如果能构成三角形,则输出“yes” ,否则输出“no”。输入样例:样例13 4 5#结尾无空行样例23 3 6#结尾无空行输出样例:样例1yes#结尾无空行样例2no#结尾无空行代码:a,b,c = map(int,input().split())if a + b > c and a +原创 2021-10-05 06:56:47 · 507 阅读 · 0 评论 -
第2章_9 python-回文判断 (10 分)
判断一个字符串是否是回文。“回文”是正读和反读都是一样的。输入格式:输入一个字符串。输出格式:对每一组输入,输出yes或no。输入样例:abccba#结尾无空行输出样例:yes#结尾无空行输入样例:abcdba#结尾无空行输出样例:no#结尾无空行代码:def rev(str1): if str1[::-1] ==str1: #判断正负是否相同 print("yes") else: print("no")原创 2021-10-05 06:54:59 · 1242 阅读 · 0 评论 -
第2章_8 正整数的奇偶性判定 (10 分)
本题目要求读入1个正整数n,然后输出它的奇偶性。输入格式:输入在一行中给出1个大于0的正整数n。输出格式:对每一组输入,在一行中输出"n是奇数"或"n是偶数"。输入样例:35#结尾无空行输出样例:在这里给出相应的输出。例如:35是奇数#结尾无空行代码:num = int(input())if (num% 2)==0: print("{0}是偶数".format(num))else: print("{0}是奇数".format(num))...原创 2021-10-05 06:53:39 · 1252 阅读 · 0 评论 -
第2章_12 求1-n的奇数和 (10 分)
本题目要求读入一个整数n,计算[1,n]之间奇数和。例如,输入9,计算1+3+5+7+9的和输入格式:输入在一行内给出一个正整数值输出格式:对每一组输入,输出在一行内1-n之间奇数和。输入样例:在这里给出一组输入。例如:5#结尾无空行输出样例:在这里给出相应的输出。例如:9#结尾无空行输入样例:在这里给出一组输入。例如:100#结尾无空行输出样例:在这里给出相应的输出。例如:2500#结尾无空行代码:sum=0n=int(input())nn=n+1原创 2021-10-05 06:52:31 · 3984 阅读 · 0 评论 -
第2章_7 判断某整数是正整数、负整数还是零 (10 分)
输入一个整数,判断该数是正整数、负整数还是零。输入格式:输入一个整数。。输出格式:如果是正整数,输出’+’;如果是负整数,输出’-’;如果是零,输出’0’。输入样例:在这里给出一组输入。例如:1#结尾无空行输出样例:在这里给出相应的输出。例如:+#结尾无空行代码:num = int(input())if num==0: print(0) if num<0: print('-') if num>0: print('+')原创 2021-10-05 06:49:57 · 3880 阅读 · 0 评论 -
第2章_11 从键盘输入两个数,求它们的和并输出 (10 分)
本题目要求读入2个整数A和B,然后输出它们的和。输入格式:在一行中给出一个被加数在另一行中给出一个加数输出格式:在一行中输出和值。输入样例:在这里给出一组输入。例如:18-48#结尾无空行输出样例:在这里给出相应的输出。例如:-30#结尾无空行代码:a=input()b=input()print(int(a)+int(b))...原创 2021-10-05 06:48:57 · 715 阅读 · 0 评论 -
第2章_5 字符串平移 (10 分)
接收用户输入的一个字符串,将字符串中的每个字符的位置向后移动一位,再将最后一个字符放到字符串的开头位置,将产生的新字符串进行输出。输入格式:用户输入一个字符串。如:abcdefg输出格式:将字符串中的每个字符的位置向后移动一位,再将最后一个字符放到字符串的开头位置,将产生的新字符串进行输出。如:gabcdef输入样例1:在这里给出一组输入。例如:abcdefg#结尾无空行输出样例1:在这里给出相应的输出。例如:gabcdef#结尾无空行输入样例2:在这里给出一组输入。例如:原创 2021-10-04 18:39:09 · 2330 阅读 · 0 评论 -
第2章_4 字符串合成 (10 分)
用户输入一个字符串,将下标为偶数的字符串提出来合并成一个新的字符串A,再将下标为奇数的字符串提出来合并成一个新的字符串B,再将字符串A和B连接起来输出。输入格式:输入一行字符串,如:abcdefg输出格式:将下标为偶数的字符串提出来合并成一个新的字符串A,再将下标为奇数的字符串提出来合并成一个新的字符串B,再将字符串A和B连接起来输出。如: aceg bdf acegbdf输入样例1:在这里给出一组输入。例如:abcdefg#结尾无空行输出样例1:在这里给出相应的输出。例如:aceg原创 2021-10-04 18:36:20 · 1098 阅读 · 0 评论 -
统计字符串中子串出现的次数 (10 分)
编写一个程序,计算字符串中子串出现的次数。输入格式:从键盘输入字符串和子串。第一行输入字符串,第2行输入子串。输出格式:输出子串出现了多少次输入样例:在这里给出一组输入。例如:你好,很高兴见到你,你贵姓?我们交个朋友吧!你#结尾无空行输出样例:在这里给出相应的输出。例如:3#结尾无空行代码:if __name__ == '__main__': str1 = input() str2 = input() ncount = str1.count(str2原创 2021-10-04 18:33:28 · 2569 阅读 · 0 评论 -
列表排序、逆序 (10 分)
已知列表元素为[12,3,48,6,79,63,89,7],对列表进行逆序输出、升序排序输出、逆序排序输出。输入格式:无输出格式:列表逆序结果为:[7, 89, 63, 79, 6, 48, 3, 12] 列表升序排序结果为:[3, 6, 7, 12, 48, 63, 79, 89] 列表降序排序结果为:[89, 79, 63, 48, 12, 7, 6, 3]输入样例:在这里给出一组输入。例如:#结尾无空行输出样例:在这里给出相应的输出。例如:列表逆序结果为:[7, 89, 63,转载 2021-10-04 18:31:56 · 3593 阅读 · 0 评论 -
输入姓名,问好,字符切片 (10 分)
从键盘输入姓名,对姓和名切片,然后输出输入格式:从键盘输入姓名,输出格式:你好,**同学。 *同学,很高兴认识你。 *同学,我们交个朋友吧!输入样例:在这里给出一组输入。例如:黄小燕#结尾无空行输出样例:在这里给出相应的输出。例如:你好,黄小燕同学。黄同学,很高兴认识你。小燕同学,我们交个朋友吧!#结尾无空行代码:#有复姓的咋办?欧阳、太史、端木、上官、司马、东方、独孤、南宫、万俟、闻人、夏侯、诸葛、尉迟、公羊、赫连、澹台、皇甫、宗政、濮阳、公冶等def count原创 2021-10-04 18:31:03 · 3817 阅读 · 0 评论 -
PTA Python编程练习题之 统计数字个数 (10 分)
接收输入的一行字符,统计出字符串中包含数字的个数。输入格式:输入一行任意的字符串,可以包含包含数字、字母和特殊字符,也可以不包括输出格式:输出输入字符串中数字的个数输入样例1:在这里给出一组输入。例如:hello#结尾无空行输出样例1:在这里给出相应的输出。例如:0#结尾无空行输入样例2:在这里给出一组输入。例如:a123b*4_5#结尾无空行输出样例2:在这里给出相应的输出。例如:5#结尾无空行代码:str= input()sum= 0for ke原创 2021-10-04 18:29:35 · 1543 阅读 · 0 评论 -
6-3 批量求和(*)
请编写函数,从一个文件中读取实数求和,并将结果写入另一个文件。函数原型void BatchAdd(FILE *in, FILE *out);说明:参数 in 和 out 为指示两个文件的指针。函数从 in 所指文件中的读出数据,将结果写入 out 所指的文件中。要求:in 所指文件中有很多行,每行包含两个实数,以空格间隔。函数求出这两个实数的和,写入 out 文件中,每行一个结果。要求:输出结果保留 2 位小数。裁判程序#include <stdio.h>#include &l原创 2021-04-08 10:00:57 · 2487 阅读 · 0 评论 -
6-1 读文章(*)
请编写函数,从文件中读出文章,将其输出到屏幕上。函数原型void ReadArticle(FILE *f);说明:参数 f 为文件指针。函数读出 f 所指示文件中的文章,将其输出到屏幕上。裁判程序#include <stdio.h>#include <stdlib.h>void ReadArticle(FILE *f);int main(){ FILE *f; f = fopen("Article.txt", "r"); if (!f)原创 2021-04-08 10:00:42 · 3797 阅读 · 4 评论 -
PTA第十章题目集合
2-1The value of expression *((int *)(p+1)+2) is D.static struct { int x, y[3];} a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p;p = a+1;(2分)A.3B.7C.10D.11实现代码:#include <stdio.h>#include <stdlib.h>#include<string.h> stati原创 2021-04-08 10:00:15 · 4075 阅读 · 1 评论 -
7-2 最大公约数和最小公倍数系列
有一系列正整数,求它们的最大公约数和最小公倍数,原始正整数和最终结果都在32位正整数范围内。输入格式:数据有多组,每组数据占一行,第1个数代表本组数据正整数个数,正整数个数至少为1。输出格式:针对每组输入数据,输出数据占一行,含最大公约数和最小公倍数,中间以一个空格分隔。输入样例:2 6 84 6 8 12 201 156 5 12 12 30 46 10输出样例:2 242 12015 151 1380示例:#include<stdio.h>#includ原创 2021-04-07 11:03:30 · 2498 阅读 · 2 评论 -
7-1 判断两个数是否互质
编写判断两个大于1的正整数m和n是否互质(即是否有公共的因子)的函数并写出相应的主函数。判断方法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能同时被某个数除尽,则m和n不互质;否则它们互质。输入格式:输入两个整数。输出格式:若两个数互质,输出"Yes.",不互质则输出"No.",最后换行。输入样例1:187 85输出样例1:No.输入样例2:187 89输出样例2:Yes.示例:#include <stdio.h>int g原创 2021-04-07 11:02:24 · 6667 阅读 · 4 评论 -
辗转相除法求最大公约数
两个正整数的最大公约数(Greatest Common Divisor,GCD)是能够整除这两个整数的最大整数。请实现函数,用欧几里得算法(又叫辗转相除法)计算两个数的最大公约数。欧几里得算法:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。例如,求252和105的最大公约数:因为 252 % 105 = 147 ,所以252和105的最大公约数也就是147和105的最大公约数。因为147 % 105 = 42,所以252和105的最大公约数,也就是147和105的最大公约数,也就是原创 2021-04-07 11:01:13 · 1096 阅读 · 0 评论 -
6-5 求矩阵不靠边元素之和
求矩阵的所有不靠边元素之和,矩阵行的值m从键盘读入(2<=m<=10),调用自定义函数Input实现矩阵元素从键盘输入,调用Sum函数实现求和。(只考虑float型,且不需考虑求和的结果可能超出float型能表示的范围)。函数接口定义:void Input (float a[][N], int m );float Sum ( float a[][N], int m ); Input函数完成从键盘矩阵元素的功能, Sum函数完成求和并将结果返回。 m 代表矩阵的行。裁判测试程序样例:原创 2021-04-07 10:58:58 · 3267 阅读 · 0 评论 -
6-4 使用函数求Fibonacci数
本题要求实现求Fabonacci数列项的函数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );函数fib应返回第n项Fibonacci数。题目保证输入输出在长整型范围内。裁判测试程序样例:#include <stdio.h>int fib( int n );int main(){ int n; scanf("%d", &n); printf("%d\n"原创 2021-04-07 10:57:36 · 10731 阅读 · 0 评论 -
6-3 简单阶乘计算
本题要求实现一个计算非负整数阶乘的简单函数。函数接口定义:int Factorial( const int N );其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。裁判测试程序样例:#include <stdio.h>int Factorial( const int N );int main(){ int N, NF; scanf("%d", &N); NF = Factorial(N);原创 2021-04-07 10:56:39 · 770 阅读 · 0 评论 -
6-2 实现两个整数的交换
本题要求实现一个函数swap,实现两个整数的交换。函数接口定义:void swap ( int *a, int *b );其中 a 和 b 是用户传入的参数。裁判测试程序样例:#include <stdio.h>void swap ( int *a, int *b );int main(){ int x, y; scanf("%d %d", &x, &y); swap(&x, &y); printf(原创 2021-04-07 10:55:29 · 2333 阅读 · 0 评论 -
6-1 圆的面积
请编写函数,根据半径计算圆的面积。函数原型double CircleArea(double radius);说明:参数 radius 为圆的半径,函数值为圆的面积。裁判程序#include <stdio.h>const double pi = 3.1415926535897932384626;double CircleArea(double radius);int main(){ double r, a; scanf("%lg", &r);原创 2021-04-07 10:54:32 · 2669 阅读 · 0 评论 -
PTA第八章错题
1-10The data type for return value of a function is the type of function determined when the function is defined.T1-19为了便于计算机存储管理,C语言把保存所有变量的数据区,分成动态存储区和静态存储区,静态局部变量被存放在动态存储区。F2-6以下关于函数叙述中,错误的是(C )。(1分)A.函数未被调用时,系统将不为形参分配内存单元B.实参与形参的个数必须相等,且实参与形参的原创 2021-04-07 10:51:25 · 6323 阅读 · 5 评论 -
PTA第七章错题
判断题:1-1int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。错!1-3关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减。错!1-12语句 int *p[5]; 定义了一个指针数组p,用于指向一个有5个元素的数组。错!2-4设变量定义为 int a[2]={1,3}, p=&a[0]+1;,则p的值是( B)。(2分)A.2B.3C.4D.&a[0]+12-12有说明语句int原创 2021-04-04 17:54:49 · 2344 阅读 · 0 评论 -
7-6 装箱问题
假设有N项物品,大小分别为s1 、s2 、…、si 、…、sN ,其中si 为满足1≤si ≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输入格式:输入第一行给出物品个数N(≤1000);第二行给出N个正整数si (1≤si ≤100,表示第i项物品的大小)。原创 2021-04-04 17:49:32 · 238 阅读 · 0 评论 -
7-5 数组循环左移
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0 a1 ⋯an−1 )变换为(am= ⋯an−1 a0 a1 ⋯am−1 )(除了a之外都是下标)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整原创 2021-04-04 17:46:10 · 312 阅读 · 0 评论 -
四叶玫瑰数
四叶玫瑰数是指四位数各位上的数字的四次方之和等于本身的数。之前也介绍过三位数的那种。看我以前的发文。中文名:四叶玫瑰数对应:4位的自幂数数量:共有3个对象:1634,8208,9474示例:(比较好懂的一个算法)#include "stdio.h"//也可以#include<stdio.h>int main(int argc,char *argv[]){int n,t;n=999;while(++n<10000)baiif(n==(t=n/1000)*t*t原创 2021-03-06 19:22:25 · 3495 阅读 · 0 评论 -
7-4 将数组中的数逆序存放
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2输出样例:2 1 8 10示例:#include<stdio.h>int main(){ int n; scanf("%d",&n);原创 2021-03-05 08:09:39 · 3371 阅读 · 2 评论 -
7-3 输出学生成绩
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。输入格式:输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。输出格式:按照以下格式输出:average = 平均成绩max = 最高成绩min = 最低成绩结果均保留两位小数。输入样例:385 90 95输出样例:average = 90.00max = 95.00min = 85.00示例:#include&l原创 2021-03-04 15:18:14 · 1315 阅读 · 1 评论 -
7-2 求矩阵每行元素的和
本题要求编写程序,使用指针方式求一个给定的m×n矩阵各行元素之和。输入格式:输入第一行给出两个正整数m和n(1≤m,n≤6),再输入m行数据,每行n个整数,每个整数之间用空格分隔。输出格式:输出m个整数,每行1个数。输入样例:2 31 2 34 5 6输出样例:615示例:#include<stdio.h>#define N 6int main(){ int i,j,sum=0,m,n; int a[N][N]; int原创 2021-02-21 11:44:56 · 5391 阅读 · 5 评论 -
7-9 组合数的和
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出格式:输出所有可能组合出来的2位数字的和。输入样例:3 2 8 5输出样例:330示例:#include<stdio.h>原创 2021-02-17 16:10:17 · 423 阅读 · 0 评论 -
7-8 猴子选大王
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。输出格式:在一行中输出当选猴王的编号。输入样例:11输出样例:7示例:#include<stdio.h>int main(){ int n,sum=0原创 2021-02-10 07:51:26 · 247 阅读 · 0 评论 -
7-7 螺旋方阵
所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9示例:#include <stdio原创 2021-02-09 09:54:43 · 1226 阅读 · 0 评论 -
7-6 打印杨辉三角(众多三角中的一种)
本题要求按照规定格式打印前N行杨辉三角。输入格式:输入在一行中给出N(1≤N≤10)。输出格式:以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。输入样例:6输出样例: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1示例:#include<stdio.h>int main(){ int a[12][12原创 2021-02-08 09:03:18 · 862 阅读 · 0 评论 -
7-5 求整数序列中出现次数最多的数
本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式:输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。输出格式:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。输入样例:10 3 2 -1 5 3 4 3 0 3 2输出样例:3 4示例:#include <stdio.h>int main() { int i, j, n, max, a[2000], b[200原创 2021-02-07 08:46:53 · 2942 阅读 · 0 评论 -
7-4 找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的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:21 7原创 2021-02-05 07:51:48 · 491 阅读 · 0 评论 -
7-3 选择法排序
本题要求将给定的n个整数从大到小排序后输出。输入格式:输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。输出格式:在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。输入样例:45 1 7 6输出样例:7 6 5 1示例:#include<stdio.h>int main(){ int i, j, k, n, temp; int a[10]; scanf("%d", &n); for(i=0; i<原创 2021-02-04 09:33:50 · 1728 阅读 · 0 评论