![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
专硕编程题
某校历年专硕编程题,有问题可以交流QQ WX 958689695
图图是只猫
文章如有错还请指出
QQ 微信 958689695
展开
-
某校2016专硕算法设计
题目给定一个n个元素的整数数组A。A中连续相等的元素所形成的数据区域成为“块"。请设计算法,求A中最大长度的块。Java实现 public static void test06(){ int[] a = new int[]{1,1,3,3,3,3,3,6,6,6,6,2,0}; int len = 1; int newLen = 1; for (int i = 1; i < a.length; i++) {原创 2020-12-04 16:58:11 · 2187 阅读 · 2 评论 -
某校2019专硕编程题-队列
题目在循环队列中设置一个循环队列flag,当flag=rear且flag=0时为队空,当flag=1,flag=rear时队满。请编写相应的入队和出队算法。(假设队头元素指向队头位置的前一个元素)。 static int QueueSize = 100; static class CirQueue{ int[] data = new int[QueueSize]; int front,rear; //队头队尾指针 int flag;原创 2020-11-12 17:25:34 · 2954 阅读 · 6 评论 -
某校2019专硕编程题-查找数字字符
题目输入一行字符(个数<=100)查找其中的数字字符,输出数字字符组成的字符之和。数字之和可能组成2位或2位以上的数字。例如:输入a11b22c3 输出 36分析对于一组序列 a11b22c3设置一个截取开始位index如果遇到数字 截取位标记index,如上述序列中遇到数字1其下标为1,将index 设置为 1 ,当下一次遇到字母的时候就是b ,对b的下标和index中间的数字截取出来即可。最后进行边界检测。Java实现 public static void test07()原创 2020-11-12 16:02:06 · 1976 阅读 · 1 评论 -
某校2019专硕编程题-素数和
题目输入正整数,输出比n大的5个最小素数之和。素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因素。例如,输入1,则输出28.Java实现 public static void test05(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int i = 0,sum = 0; while (i < 5){ n++;原创 2020-11-11 17:57:33 · 2033 阅读 · 0 评论 -
某校2019专硕编程题-含3的数字
题目输入两个正整数a和b,输出整数区间[a,b]中任意含位3的数字。例如输入 39 49,则输出 39 43 。分析取出整数的每一位与3比对39%10 -> 930/10 -> 33%10 -> 3Java实现 public static void test02(){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt原创 2020-11-11 15:45:43 · 2033 阅读 · 10 评论 -
某校2019专硕编程题-逆序输出奇数
题目输入8个正整数,逆序输出其中的奇数。例如:输入1 2 3 4 5 6 7 8,应输出 7 5 3 1Java实现 public static void test01(){ Scanner sc = new Scanner(System.in); StringBuffer sb = new StringBuffer(); for (int i = 0; i < 8; i++) { int n = sc.nextInt();原创 2020-11-11 15:36:59 · 2081 阅读 · 2 评论 -
某校2020专硕编程题-计算器
题目计算器,输入正整数n,然后循环n次依次输入正数a运算符,正数b(这两个数可能是浮点数!),中间无空格,然后输出结果。例如:输入 31+8输出9.03*7输出 21.04/1输出 4.0Java实现public static void test08(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int i = 0; while (i <原创 2020-08-18 17:03:08 · 2139 阅读 · 6 评论 -
某校2020专硕编程题-前n项和
题目输入n,输出前n项和,数列:1 1 2 3 5 8 13(提示 an = an-1 + an-2)Java实现public static void test07(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if (n == 1){ System.out.println(1); return; }原创 2020-08-18 16:15:00 · 1795 阅读 · 0 评论 -
某校2020专硕编程题-奇数排序
题目输入n个数(n<=100),将其中的奇数从小到大排列,然后输出Java实现这里用的是快速排序,可自行选择其他排序 public static void test06(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if (n > 100 || n < 1) return; int[] a = new int[n]; fo原创 2020-08-17 21:16:23 · 1841 阅读 · 2 评论 -
某校2020专硕编程题-杨辉三角
题目输入正整数n,输出n行杨辉三角如:n=411 11 2 11 3 3 1Java实现public static void test05(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if (n < 1) return; int[][] a = new int[n][n]; a[0][0] = 1; for (i原创 2020-08-17 18:45:55 · 1846 阅读 · 0 评论 -
某校2020专硕编程题-读取文件
题目读取文件1.txt,每行不超过100个字符,找到每行中最长的单词,输出单词长度单词的文本应该是多行Java实现题目实现public static void test04() throws IOException { InputStream is = new FileInputStream("1.txt"); StringBuffer sb = new StringBuffer(); for (int i = 0; i < is.availa原创 2020-08-14 20:26:52 · 2101 阅读 · 1 评论 -
某校2020专硕编程题-递归逆序输出
题目输入一个正整数,用递归算法将此数逆序输出。Java实现 public static void reverse(int a){ if (a == 0) return; System.out.print(a%10); reverse(a/10); } public static void test03(){ Scanner sc = new Scanner(System.in); reverse(原创 2020-08-13 19:01:47 · 1888 阅读 · 0 评论 -
某校2020专硕编程题-回文素数
题目输出正整数a,b之间的回文素数(即一个整数既是素数有事回文数,回文数是指一个数正读反读都一样)。Java实现public static void test02(){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); if (a < 1 || b < 1) return; if (a > b)原创 2020-08-12 16:58:23 · 1973 阅读 · 0 评论 -
某校2020专硕编程题-最大值和平均值
题目输入10个数,输出最大值和平均值。Java实现 public static void test01(){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int sum = a; int max = a; for (int i = 0; i < 9; i++) { int input = sc.nextInt();原创 2020-08-12 16:17:45 · 1757 阅读 · 0 评论 -
某校2019专硕编程题-简易计算器
题目编写一个简易计算器,要求具备加减乘除和退出的功能。分析进入界面根据不同的指令调用加减乘除方法输出结果Java实现计算类,其中包含加减乘除4个功能static class Calculator{ public static Double add(Double num1,Double num2){ return num1 + num2; } public static Double cut(Double num1,D原创 2020-08-11 17:41:33 · 1842 阅读 · 0 评论 -
某校2019专硕编程题-完全数
题目一个数如果恰好等于它的因子之和,这个数被称为“完全数”。例如6的因子为1,2,3 而6 = 1+2+3.编写程序找出1000内的所有完全数,并按照以下格式输出:6 its factors are 1 2 3Java实现public static void test08(){ for (int i = 2; i <= 1000; i++) { int sum = 1; StringBuffer sb = new StringBu原创 2020-08-10 17:29:23 · 1698 阅读 · 0 评论 -
某校2019专硕编程题-公约数公倍数
问题输入两个数,要求输入最大公约数和最小公倍数Java实现public static void test07(){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int m = a; int n = b; int r; while (true){ r =原创 2020-08-10 17:03:32 · 1684 阅读 · 0 评论 -
某校2019专硕编程题-平方根
问题从键盘上输入一个小于1000的整数,要求输出它的平方根(如果平方根不是正数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是则要求重新输入。Java实现public static void test06(){ Scanner sc = new Scanner(System.in); int input ; while (true){ input = sc.nextInt();原创 2020-08-09 19:07:58 · 1751 阅读 · 0 评论 -
某校2019专硕编程题-前10名学生成绩
问题输入学生成绩,并按输入顺序编号,再按成绩进行降序排序,输出前10名的学生成绩,如果学生人数不足十人则只输出仅有的学生成绩。例如 输入20 30 40 50 70 -1(结束),输出:X号,XX分Java实现static class Student{ Integer num,score; Student(Integer num,Integer score){ this.num = num; this.score = s原创 2020-08-08 19:39:15 · 2276 阅读 · 4 评论 -
某校2019专硕编程题-找出连续数字
问题输入一串字符串,要去找出其中的连续数字并输出。例如: 输入 ab123cd4f56,输出123 4 56Java实现public static void test04(){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); char[] a = s.toCharArray(); for (int i = 0; i < a.length-1; i++)原创 2020-08-06 17:43:36 · 1831 阅读 · 0 评论 -
某校2019专硕编程题-排序
问题任意输入四个数,要求将该四个数进行由大到小排序并输出。Java实现冒泡排序public static void test03(){ Scanner sc = new Scanner(System.in); int[] a = new int[4]; for (int i = 0; i < 4; i++) { a[i] = sc.nextInt(); } int length = a.le原创 2020-08-06 17:07:19 · 1777 阅读 · 0 评论 -
某校2019专硕编程题-递归求和
问题用一种递归算法求1到100的和并输出Java实现public static int sum(int i,int sum){ if (i > 100) return sum; sum += i; return sum(++i,sum);}public static void test02(){ System.out.println(sum(1,0));}...原创 2020-08-06 16:39:17 · 1794 阅读 · 0 评论 -
某校2019专硕编程题-学生成绩评级
问题学生成绩根据不同的分数段可以对应不同的分数等级,例如90 - 100 分为 A;80 - 90 分为B;70 - 79分为C;60 - 69分为D;60分以下为E。要求输入百分制的学生成绩,且输出学生成绩对应的分数等级。(例如输入95,输出A)Java实现public static void test01(){ Scanner sc = new Scanner(System.in); float n = sc.nextFloat(); if (100原创 2020-08-05 17:47:56 · 1869 阅读 · 0 评论 -
某校2018专硕编程题-蛇形矩阵
问题编程题:输入正整数(n<30),输出1到n的蛇形矩阵。例如(1) n 为 10 时1 2 6 73 5 84 910(2) n 为 8 时1 2 6 73 5 84分析找矩阵规律:以对角线找规律:奇数对角线从斜下向斜上走,偶数对角线由斜上向斜下走。...原创 2020-08-04 17:11:07 · 2207 阅读 · 9 评论 -
某校2018专硕编程题-汉诺塔
问题编程题:汉诺塔问题。游戏中有三根柱子,第一根柱子上摞着n片圆盘,小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘,如何将圆盘全部移动到第三根柱子上呢?输入汉诺塔的层数,输出解决该问题的输出步骤。三根柱子从左到右依次称为A柱,B柱,C柱。例如:输入2,则输出结果为:A柱 -> B柱A柱 -> C柱B柱 -> C柱Java实现 public static void test08(){ Scanner sc = new Scanner(Syst原创 2020-08-01 21:36:01 · 1889 阅读 · 0 评论 -
某校2018专硕编程题-班级同学的出生日期排序
问题编程题:班级共有50位同学,依次输入每位同学的姓名和生日。姓名中不含有空格,生日的输入格式yyyy/mm/dd(yyyy代表出生年,mm代表出生月,dd代表出生日)。按照年龄从大到小的顺序输出每位同学的姓名,每个名字占一行。例如:输入“李强 1995/08/15”,输出“李强…”。分析考察字符串的分割,可以考虑使用HashMap,对50位同学的出生日期进行key存储,姓名进行value存储,对key比较即可。利用面向对象设计Student类Java实现解法由于生日相同会造成key被覆原创 2020-07-31 20:05:54 · 2593 阅读 · 0 评论 -
某校2018专硕编程题-出生经历2月29日
问题编程题:输入小李的出生日期,计算他从出生到今天共经历了多少个2月29日,输出计算结果。不需要考虑输入的日期不合法或不在要求范围之内的情况。例如:输入 2012 3 1,则输出结果为1 (2018年12月)分析判断出生年和今年是否经历了2月29中间年闰年计算Java实现因为考研日都是12月,所以没有进行本年未经历2月的判断public static void test06(){ Scanner sc = new Scanner(System.in); i原创 2020-07-30 17:52:52 · 2129 阅读 · 5 评论 -
某校2018专硕编程题-9进制转10进制
问题编程题:输入1个9进制数字串,将其转化为19进制并输出。依次使用小写字母a…i表示数字10…18。假设将该数字转化为10进制时,存储于int型变量不溢出。例如:输入40,则输出结果为1h。分析9进制 -> 2进制2进制转19进制9 - >...原创 2020-07-29 22:13:14 · 2320 阅读 · 0 评论 -
某校2018专硕编程题-方阵求和
问题编程题:输入整数N(N<=2<=10),再输入N*N方阵中的全部数据,计算方正每列元素的最大值之和,并输出。例如:4*4的方阵数据如下:1 2 3 45 6 7 26 7 8 87 6 4 1则各列的最大值分别为 7 7 8 8,则输出的结果为30分析二维数组存储,取出每列的最大值Java实现public static void test04(){ Scanner sc = new Scanner(System.in); int[][原创 2020-07-28 19:12:10 · 1939 阅读 · 0 评论 -
某校2018专硕编程题-单词个数
问题编程题:输入一个长度不大于100的字符串(由字母和空格组成),输出串中包含的单词个数。如不存在单词则输出0.例如:字符串“hello world”,则输出结果为2。Java实现字符串分割public static void test03(){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); if (s.length() > 100) return;原创 2020-07-28 17:23:44 · 1882 阅读 · 2 评论 -
某校2018专硕编程题-回文数
问题编程题:输入一组正整数,判断输入的数字是否为回文数,是则输出该数。输入-1时结束。提示:若一个正整数(首位不为0),从左向右读与从右向左读是一样的,则称作回文数,例如1,11,121,,1221,12321 等都是回文数。例如:输入 121 1212 22 2,则输出结果为 121 22 2提示:不需要输入全部数据之后再统一处理,例如输入1212时,121以已输出。分析转字符串倒序和原数相等Java实现方法1public static void test02(){ whi原创 2020-07-27 19:29:04 · 1898 阅读 · 0 评论 -
某校2018专硕编程题-a和b之间的素数
问题编程题:素数又称质数,是指大于1的自然数。且除了1和他本身以外不再有其他因子。输入两个正整数a和b,输出a与b之间的全部素数,每五个数换一行。假设2<=a<=b。例如 输入10和15输出,则输出结果为11 13Java实现public static void test01(){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt();原创 2020-07-26 17:18:00 · 2741 阅读 · 0 评论 -
某校2017专硕编程题-约瑟夫环
问题有n个人围成一圈,顺序排号。从现在第i个人开始,由1至k不断报数,凡报到k的人出列。重复报数的过程,直到所有人都出列为止。请编写程序模仿这n个人的出列顺序。分析先理解题目 :n个人围成一个圈,每个人排序,从位置i(手动输入)开始从1开始报数,报到k(手动输入)的时候这个人就退出去,然后这个时候接着重新从退出去的位置从1开始报数,接着找下一个报数到k的人出去,依次往复。这里有的关键问题:就是将K控制在1圈内执行,比如n为5 k为18 ,正常需要转3圈之后才退出去,而通过求余数 18 % 5 = 3原创 2020-07-19 23:47:46 · 1873 阅读 · 0 评论 -
某校2017专硕编程题-将2个序列合并成一个有序序列
问题输入一个有序数列,设计算法将2个序列合并成一个有序序列分析我的思路是先找到 a 序列中元素正确的索引位置,比如 a序列的 元素a1 在新序列中的位置是 3 那么就先将 a1 放到 3的位置上,这样依次将a序列全部放到正确的位置上,接着把空白的部分按顺序将b序列放上去。下面拿2个序列举例说一下如何将a序列正确的放到索引上:序列a : 1 3 5 7 9 序列b: 2 4 6 8 10 如:a中元素1的当前位置是0,然后和b序列的值比较,新序列的位置还是0a中元素2的当前位置原创 2020-07-18 19:46:28 · 2532 阅读 · 0 评论 -
某校2017专硕编程题-出国留学的天数
问题学者A去国外求学,假定离开祖国的日子为公园A年B月C日,返回的日子为公元X年Y月Z日。请计算A出国留学的总天数(含离开和返回当天)。分析本质上是计算2个日期之间的天数我的思路就是:计算出出国的那天到回来那天的总天数,然后通过日期比对欠缺的日期或者是多计算的日期。Java实现实现方式可能是比较笨重的。public static int day(int A,int B,int C,int X,int Y,int Z) { int n = 0; for (int原创 2020-07-17 20:25:59 · 2321 阅读 · 8 评论 -
某校2017专硕编程题-递归反序输出字符串
问题编写一个采用递归方式实现的程序,其功能是对输入的一个以“.”结束的字符串,进行反序输出。分析定义一个模拟指针进行递归Java实现递归函数的实现 public static void reverse(String str,int length){ if (str.charAt(length) == '.') return; reverse(str,++length); System.out.print(str.charAt(--length)); }测试代码原创 2020-07-16 20:03:35 · 2016 阅读 · 1 评论 -
某校2017专硕编程题-统计英文字符串个数
问题定义一个计算字符串有效长度的函数int myStrlen(char *str),其功能是统计字符串中英文字符的个数。分析一个一个测试一下就行Java实现 public static int myStrlen(String str) { if (str == null || str.length() == 0 ) return 0; char[] s = str.toCharArray(); int n = 0; int k = 0原创 2020-07-15 17:56:26 · 1964 阅读 · 0 评论 -
某校2017专硕编程题-数列前n项和
问题有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…请编写程序,根据用户的输入N,求出这个数列的前n项之和。分析分子分母分别+前一项Java实现 public static void sum(){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int a = 2; //分子初项 int b = 1; //分母初项 //原创 2020-07-14 20:09:38 · 1936 阅读 · 0 评论 -
某校2017专硕编程题-输出素数
问题编写一个程序,输入自然数 a ,和。输出a和b之间的素数。分析素数就是质数,对a和b之间的数进行(2-本身)是否含有因子进行测试。Java实现public static void primeNumber(){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); if (a <= 0 || b <= 0) {原创 2020-07-13 18:36:58 · 1830 阅读 · 0 评论 -
某校2017专硕编程题-最大公约数和最小公倍数
问题编写一个程序,输入m和n两个整数,计算并输出m与n的绝对值的最大公约数及最小公倍数。分析这里有2种求法:不知道公约数和公倍数怎么求,只知道最大公约数是最大的共同因子,最大公倍数是最小的公共倍数(这个都不知道那就GG)。提供的思路:先找出m和n所有的因子然后找出m和n相等的因子(公因子),最后找到其中最大因子,公倍数类似。利用最大公因数和最小公倍数的的算法。辗转相除法计算最大公因数:1997 % 615 = 152615 % 152 = 7152 % 7 = 57 % 5原创 2020-07-12 20:02:49 · 1952 阅读 · 0 评论