2000
1. 输入 n,求 y1=1!+3!+...m!(m 是小于等于 n 的最大奇数)、 y2=2!+4!+...p!(p 是小于等于 n 的最大偶数)
2。输入一个 5×5 的矩阵,判断是否对称
3。建立一个升序链表并遍历
2001
【保研】
1.统计一字符串字符重复的个数;
例如:输入 q3s4sa1aa
输出 s,3; s,5
a,6; a,8; a,9
2,输入一个 5 行 4 列的的矩阵,输出每列最大两个元素
3.建立一个链表,以输入 0 为结束,删除其中数值最大的元素,并输出后删除元素后的链
表(不能用数组)
2002
1、编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个
字符。(凡是以一个或多个空格隔开的部分就为一个单词)
2、守形数是这样一种整数,它的平方的低位部分等于它本身。比如 25 的平方是 625,低位部分是 25,因此 25 是
一个守形数。编一个程序,找出 2--100 之间所有的守形数。
3、编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如
下的先序遍历字符串:
ABC##DE#G##F###
其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。
2005
第一题:对给定的一个字符串,找出有重复的字符,并给出其位置,如:
输入:abcaaAB12ab12
输出:a,1;a,4;a,5;a,10
b,2;b,11
1,8;1,12
Tutub整理(CSDN nineqblot)
2,9;2,13
第二题:输入一个四行五列的矩阵,找出每列最大的两个数,如:
输入:1 2 3 4 9
-1 4 9 8 8
12 9 8 7 0
7 8 9 7 0
输出:12 9 9 8 9
7 8 9 7 8
第三题:输入一个字符串,建立一个二叉排序树,并中序遍历输出;
2006
1.输入一个数列以 0 位结束标志,建立链式线性表,查找其中最大的数并输出删除释放节点,然后对剩余的进行
排序,并输出释放节点
2.输入一个数列以 0 位结束标志,建立二叉遍历数,并对其进行逆中序遍历,释放空间
第一题是 对输入的 5 个数排序,输出的结果到文件里。
第二题是 用链表去对上面的 5 个数字排序。
第三题是 输入一个 ip 地址串,判断是否合法。
【外校保送】
(1)输入一个十进制数,将其先转化为八进制数,然后再输出
(2)用户输入一个文本名,编程实现输出文本中最长的一行和最短的一行。如果最长和最短的不止一行,请全部输出。
(3)输入学生信息:学号,三门课程的成绩,学号为 0 时结束,将其存储在链表 A 中,从中找出分数大于平均分的学
生,并将该学生信息按平均分降序排列存入到链表 B 中,最后输出链表 B。
【本校保送】
(1)采用命令行方式复制任意多个文件内容到一个文件中,如下所示:
命令行形式:mycopy 1.txt 2.txt 3.txt 4.txt ...
功能:复制 2.txt 3.txt 4.txt …的内容到 1.txt 中
(2)判定一个 C 语言变量的命名是否正确
(3)建立一种数据结构,可以存储任意个、任意长度的整数,利用这个数据结构,输入一串数,排序,求累加和
2008
一.
1、狼过河问题(运用到回溯)
2、统计文件中单词数目
3、N 阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(递归)
4、链表操作
二.
第一个是一个上楼梯的种数的统计,本来是一个用递归可以解决的问题,但是题目偏偏要求编写快速算法,言
下之意就是要求你把递归转化成非递归。
第二个题是链表的,要求依照给出的结构体依次实现输入链表,保存链表,删除链表,从磁盘读取链表,显示链
表这几个操作。做这个题,如果不记得保存文件的函数,很可能做不全或者做不出来。
第三个是要求根据 - | \ / 四个字符来实现题目所规定的一个长方体。并能使这个长方体适当的放大。这
个是一个递归问题,但是我想了半天也没有做出来。
Tutub整理(CSDN nineqblot)
【外校保研】
(1)输入一个十进制数,将其先转化为八进制数,然后再输出
(2)用户输入一个文本名,编程实现输出文本中最长的一行和最短的一行。如果最长和最短的不止一行,请全部输出。
(3)输入学生信息:学号,三门课程的成绩,学号为 0 时结束,将其存储在链表 A 中,从中找出分数大于平均分的学
生,并将该学生信息按平均分降序排列存入到链表 B 中,最后输出链表 B。
【本校保研】
(1)采用命令行方式复制任意多个文件内容到一个文件中,如下所示:
命令行形式:mycopy 1.txt 2.txt 3.txt 4.txt ...
功能:复制 2.txt 3.txt 4.txt …的内容到 1.txt 中
(2)判定一个 C 语言变量的命名是否正确
(3)建立一种数据结构,可以存储任意个、任意长度的整数,利用这个数据结构,输入一串数,排序,求累加和
2009
1.输入一串数,然后,建立链表,排序输出。
2.计算 26 个字母的输入次数,好像不区分大小写。
3.用一维数组存储学号和成绩,然后,按成绩排序输出。
【系统结构上机】
1.输入四个数,分别创建四个链表 A,B,C,D. 打印四个链表
2.A 按升序排列,D 按降序排列
3.把 B 中第一个数插入 A 中,保持 A 的升序排列,把 C 中第一个数插入 D 中,保持 D 的降序排列
4.把链表 A 中每个数的个位数打印出来
5.合并链表 A\D,保持升序排列。
2010
【保研】
1、不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。
这一题比较简单
2、输入一串数,要求建平衡二叉排序树,然后先序遍历。
3、有 4 个小问,是超长整数的存储、计算、输出。要把超长整数存在一个单向循环链表中,是每四位一个节点。
a、 输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数!(如‘3’,输出:10110011);
b、 设计 8 个任务函数 task0()-task8()只输出一句话:如 task0()输出“task0 is called!”;设计一个调度函数
schedule()输入一个字符串如"012345"然后返回一个函数指针数组和字符串的长度作为执行函数 execute()的
参数进行调度任务函数。主函数只有调度函数。
c、 实现一个加法器,保证两个加数是任意长的整数。
参考答案:http://bbs.csdn.net/topics/340180351
2011
1. (1)从键盘输入一个文本(ASC2 码文件),并将该文本输出到 D 盘根目录下的 abc0.txt 文件中,再关闭该文件,以
Ctrl+Z(即 eof)结束。
(2)打开 D 盘根目录下的 abc0.txt 文件,将单词之间两个以上的空格都压缩为一个空格,输出处理后的文本,同
时将处理后的文本输出到 D 盘根目录下的 abc1.txt 文件中,并关闭该文件。
(3)打开 D 盘根目录下的 abc1.txt 文件,统计文件中字符的个数,单词的个数,以及句子的个数-,并输出统计结
Tutub整理(CSDN nineqblot)
果。
2. (1)输入任意 n 个整数,并将其无冗余的放入数组中(n 值不得事先确定,否则 0 分),然后输出这数组中的 n 个
数。
(2)对该数组中的 n 个数进行排序并输出结果。
3. (1)无冗余的接受键盘输入的 n 个字符串,并将其无冗余的放入对应的字符数组中,再按照每行一串的格式输出这
些字符串。
(2)以单个字符串为数据域,按字典顺序将 n 个字符串生成为一棵二叉搜索树,并且规定左子树(数据域)小于
右子树(数据域)。
(3)先序遍历该二叉树,并输出结果。
2012
1.(1)输入一个长整数,将最高字节与最低字节互换,然后再输出。
(2)将这个长整数中间两个字节循环左移 n 位(n 要输入),然后再输出。
(3)将长整数按照二进制输出,每 8 位输出一个空格
2.(1)输入 n 个字符串,字符串只能是纯字母或者纯数字,不能事先指定字符串个数,最后将输入字符串倒序输出
(2)将纯字母的字符串按照字典顺序排序,纯数字的字符串按照数值大小排序,最后在输出。
3. 一个有关城市间的公路建设,是一个带权值的无向图,不过其中的边和顶点都有编号。有两问,第一问是将所有
的边按权值排序输出,第二问是就是求最小生成树,求出具体路径,和最小代价。
2013
1. 孪生素数(30 分)
如果 n 和 n+2 都是素数,则称它们是孪生素数。输入 m(5
2014
1、(本题 30 分)编程找出所有的 4 位超级素数。每行输出 6 个数,两个数之间空格分隔。超级素数:一个 n 位超级
素数是指一个 n 位正整数,它的前 1 位,前 2 位,……,前 n 位均为素数,例如,2333 是个 4 位超级素数,因为 2,
23, 233, 2333 均为素数。
2、(本题 30 分)以二进制方式输入两个正整数(即 0 和 1 组成的字符串),然后输入一个 4 则运算符(+、-、*、/)按
short 型计算这两个数的运算结果,并将结果按二进制输出(高位 0 可不输出)。
例如,输入 101 100
输出 10100 (或 00000000000010100)
输入 101 100
输出 1001
3、(本题 40 分)编写一个程序,判断给定的字符串是否是法的 C 整型常量,是,输出 Yes;不是,输出 No。C 整型
常量的语法图如下图所示(图中 0 是数字零)。要求程序能循环接受用户的输入,每行输入 1 个字符串给出判定结果,
再输入 1 个字符串,给出判定结果,直至输入 CTRIL+Z 结束。例如:
123 yes 078 no 100h no ^Z
2015
2016
1. 七个评委给选手打分,去掉最高分和最低分,输出平均分,保留一位小数
2. 输入字符串,共三问,去除前面的空格,中间多个空格只保留一个空格,数字字母中间加上_
Tutub整理(CSDN nineqblot)
3. 检测输入的 IP 地址是否合法
2017
2018
1、(本题 40 分)从键盘输入一行英文句子,句子中只有英文单词和空格,每个单词之间由若干个空格隔开,英文单
词由大小写字母组成,编程完成下列任务:
(1)统计并输出此句子中英文字母的个数(10 分)
(2)统计并输出此句子中单词的个数:(10 分)
(3)查找此句子中出现次数最多的字母(不区分大小写,大小写字母是相同的)和次数,当出现最多的字符不只一个时,
都能找到,并输出找到的所有字母及次数。(输出字母时大小写均可) (20 分)
例如,输入句子: This Is An Pencil Case
则输出为:
字母个数: 18
单词个数: 5
最多的字母: i, s
出现的次数: 3
2、(本题 30 分)十二进制是数学中一种以 12 为底数的记数系统,它由 0~9,a, b 组成。与十进制的对应关系是: 0~9
对应 0^9, a 对应 10, b 对应 11.例如,十二进制的 a2, 十进制是 122.输入一个仅含十二进制数字的字符串(字母
一律小写, 不超过 8 个字符),编程完成下列任务:
(1)输出该十二进制数每一位对应的十进制数 (从高位到低位顺序输出,空格隔开) (10 分)
(2)实现“十二进制”转“十进制”算法,输出该十二进制数对应的十进制数 (10 分)
(3)输出转换后的十进制数在内存中的每个二进制位(共 4 字节,字节之间空格隔开)。(10 分)
例如,输入十二进制数: a2
则输出为:
10 2
122
00000000 0000000 0000000 01111010
3、(本题 30 分)编写程序,接受 3 个以 ND 形式输入的分数,其中 N (0<=N<=65535)为分子,D(0<=D<=655) 为分
母,输出它们的小数形式。如果小数形式存在循环节,如用括号括起来。如 1/3=.33333…/表示为 .(3)。
Tutub整理(CSDN nineqblot)
例如,输入: 8/5 1/3 11/13
则输出为:
8/5= 1.6
1/3= .(3)
11/13= .(846153)
2019
第一题(40 分)
输入一个长整型 数字 输出所有 小于等于这个数字的梅森素数
梅森数,是指形如 2p-1 的一类数,其中指数 p 是大于等于 2 的正整数,常记为 M(p) 。如果梅森数是素数,就称
为梅森素数。
例
输入 100
输出
M(2)=3
M(3)=7
还有一个记不清了
第二题(30 分)
打开第一题的代码源文件 .c/ .cpp 要求原文件里含//和/* xxxxx */
输出该文件 共有三小问
1、给每行代码加上序号,表明这是第几行
2、对于// 字符 不予输出//及该行之后的文本
3、同上 要求不输出/* */ 及其之内的文本
第三题(30 分)
输入一个字符串 长度小于 80
要求
1、对于字符串加密输出 加密方法为 对于字母字符输出其 ASCII 码值右移 2(就是+2)后的字母,但是对于字母 y,z
加密后输出 a,b(加密后字母大小写不变)
2、奇偶校验 对于加密后的字符串 判断每个 ASCII 码值(2 进制)中 1 的个数 如果不是奇数个 1 那么最高位
取 1
3、输出第二问奇偶校验后的数值 十进制表示
举例
输入 aD
输出
cF
c 11100011 227
F 01000110 70
不知名年份
(1)输入一个数列以 0 位结束标志,建立链式线性表,查找其中最大的数并输出删除释放节点,然后对剩余的进行排
序,并输出释放节点。
(2)输入一个数列以 0 位结束标志,建立二叉遍历数,并对其进行逆中序遍历,释放空间。
(3)给出年分 m 和一年中的第 n 天,算出第 n 天是几月几号(提示中给出了判断闰年的方法),按 yyyy-mm-dd 的
格式打印出来。(07 应用)
Tutub整理(CSDN nineqblot)
2.约瑟夫环(07 应用)
3.关于链表(07 应用)
建立一个关于职工信息,如年龄,性别,要求输入至少 5 个职工信息,并输出其中年龄最大的三个职工信息
(4)职工有职工号,姓名,年龄.输入 n 个职工的信息,找出 3 个年龄最小的职工打印出来,n 可以取 6。
(5)n 个人排一圈 123 报数,报到 3 的人退到圈外,直到剩最后一个人为止。
(6)冒泡排序。(07 软件)
(7)建立二叉树,并中序遍历。(07 软件)
(8)生成一个长度为 21 的数组,依次存入 1 到 21;建立一个长度为 21 的单向链表,将上述数组中的数字依次存入
链表每个结点中;将上述链表变为单向封闭(循环)链表;从头结点开始数,将第 17 个结点删除,将它的下一个结点
作为新的头结点;重复上述过程,直到该链表中只剩一个结点,显示该结点中存入的数字。
第一题是对输入的 5 个数排序,输出的结果到文件里。
第二题是用链表去对上面的 5 个数字排序。
第三题是输入一个 ip 地址串,判断是否合法。
1.统计一字符串字符重复的个数;
例如:输入 q3s4sa1aa
输出 s,3; s,5
a,6; a,8; a,9
2,输入一个 5 行 4 列的的矩阵,输出每列最大两个元素
3.建立一个链表,以输入 0 为结束,删除其中数值最大的元素,并输出后删除元素后的链
表(不能用数组)
2000 年
1. 输入 n,
求 y1=1!+3!+...m!(m 是小于等于 n 的最大奇数)
y2=2!+4!+...p!(p 是小于等于 n 的最大偶数)
2。输入一个 5×5 的矩阵,判断是否对称
3。建立一个升序链表并遍历
2002 年
1、编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个
字符。(凡是以一个或多个空格隔开的部分就为一个单词)
2、守形数是这样一种整数,它的平方的低位部分等于它本身。比如 25 的平方是 625,低位部分是 25,因此 25 是
一个守形数。编一个程序,找出 2--100 之间所有的守形数。
3、编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如
下的先序遍历字符串:
ABC##DE#G##F###
其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。
屏幕的格式化输出:给出一幅图形,用程序实现。如下所示。
AA AA
AB BA AB BA
ABC CBA AA
AB BA (输入字符 B)
AA
(输入字符 C)
指针构建链表结构:输入一组数据,构建一个升序链表,完成插入,删除,遍历功能。
例如,输入 1 8 5 4 3;
构建 head->1->3->4->5->8->NULL;
遍历 1 3 4 5 8;
Tutub整理(CSDN nineqblot)