ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:62.02KB ,
资源ID:11575848      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11575848.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法入门习题108道.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法入门习题108道.docx

1、算法入门习题108道本题库来源:大榕树论坛www.mydrs.org 入门习题一百道。字符串处理1.读入N个字母的字,判断该字是否回文。2.有N组数据,每组中有M个字串,找出所有符合下列条件的字串S,条件是:在每一组中,字串S都是其M个字串之一。3.读入一个字串(长度不大于50),删去字串中相同的字符。4.输入十个字符串,长度在20.50之间。检查每个字串,若遇到字母A,就在其后插一个空格,最后打印全部处理后的字串,并统计26个字母各出现多少次。5.接受一个任意长度的字串(小于100个字符),将该字符串中的字符按照ASCII码表从小到大的顺序重新排列成一个新的字符串并打印出来。6.有一段文字由

2、若干字母组成。检查文字中每个字母出现的次数,输出时,按字母出现频率的降序排序,并按以下格式打印(不含未出现字母): 字母 频率 百分比% x x x7.读入一行文本,包含若干个单词(以空格间隔,以%j结尾)。将其中以A开头的单词与以N结尾的单词,用头尾交换的方法予以置换。8.求出一个子串在字符串中的位置。9.在若干个字符串中,找出一个长度最长的公共字串。10.DOS称为良序子串,因为他之中的字母是按ASCII码的顺序排列的,而DATA则不是良序字符。先要求给出一个N*N的字母方阵,从中选出给定长度M的良序字符。11.从键盘上读入一个字符串(称为原串),其长度不超过50个字符,并以字符 $ 作为

3、结束符。当原串读入后,对原串进行编辑,其功能有(菜单选择):在原串中制定的字符前面插入若干个字符(字串)。若在原串中有若干个指定的字符,则插入在第一个指定字符的前面。 例: 原串 abcd dby 在指定字符 b 的前面插入 umv ,此时字符串成为 auwvbc dby在原串中,删除指定的子串,若原串中有多个相同的子串,则删除最后一个子串。 例: 原串 abxyzw cdxyzh,uvxxyzh 删除子串xyz后得到: abxyzw cdxyzh,uvxh替换操作:在原串中,将某个子串用新的子串去替换。若原串中有多个被替换的子串,则应全部替换(但不递归替换)。 例: 原串 abxyz ddx

4、yzxyzhe 将原串的xyz用uvw替换,替换后成为: abuvw dduvwuvwhe数值计算12.因式分解:对一个数进行因式分解。如:12= 2*2*3= 4*3 =6*213.任意给定一个自然数N,寻找一个M,要求M是N的倍数,且它的所有各位数字都是由0或1组成,并要求M尽可能小。例:N=3 M = 3*37 = 111 , N=31 M= 31*3581 = 11101114.已知:有正整数 K1+K2+K3 + +Kn=M 要求:找出一组最佳的分解,使得K1*K2*Kn为最大。例如:N=2时,有 K1+K2 = 6 则当K1=3,K2=3时,K1*K2 =9为最大 即K1=3,K2

5、=3为最佳分解输入N,M,求最佳分解。15.求某一个三位数ABC,要求满足下列条件: ABC0 交换A,C位置得到的新数比原数少495; 对ABC作全排列而得到的六个三位数之和为2886。16.求出符合下面条件的5个正整数:(1) 5个数之和为23;(2) 从这5个数中选取不同的数作加法,可得123中的所有自然数。打印这五个数及选取数组成的123的加法式。17.将数字65535分解成若干个素数的积。18.由1.9这九个数字组成的九位数(无重复数字)能被11整除,求最大最小者。19.输入N个学生的学号和一门功课的成绩:1) 求出高于平均分的人数,并打印这些人的学号和成绩。2) 按从低到高的顺序,

6、列出学号和成绩(要求能处理同名次)。统计各分数段的人数:69分以下为一段,60分以上则每隔5分为一段,95分以上为最后一段。用直方图形式打印输出20.算术表达式求值:输入一个由数字、+、一、*、与括号组成的算术表达式,求其值。21.输入两个正整数X,Y,将X,Y化为两个二进制数,然后将这两个二进制数做二进制加法运算,再将结果化为十进制数输出。22.输入一个十进制数,将其转换成N进制数( 0 N N); N!+M!编程完成以下的高精度计算” 多位数乘以一位数; 多位数除以一位数;多位数乘以多位数(要求用尽可能少的存储单元); 多位数除以多位数(要求用尽可能少的存储单元); N!,要求精确到P位(

7、0P1000)。26.编程求解两个高精度正实数的除法,要求精确到小数点后20位,若20位内有循环节,请标出。27.求输入的实数算术表达式的值,结果精确到小数点后第N位(0N=30)。 其中:表达式中出现的运算符为:*,+,-,操作数不多于5个 不出现括号,但必须考虑运算优先级顺序。数列和矩阵28.由M个数构成一个圆环,找出四个相邻的数,使其和为最大、最小。29.设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?30.设有教列al=0,a2=1,a3=a1+2a2,an=an-2+(n1)an-1,求出其前40项, 并用尽可能少的字节表示结果。31.随机产生50个1.

8、500的自然数。对每次产生的数,若是奇数,则加入队列,若是偶数,则从队首取出一个数据输出,要求显示队列变化情况。32.用1N这N个自然数顺序组合成一个多位数,现要求从中删除M个数字(MN),使得剩下的数为最大。33.将1,2,3,20共20个数字排成一排,使相邻两个数字之和为素数,并且头尾两数之和也为素数。求出所有满足条件的排列。34.1,2,4,7,是二阶等差数列,因为它们后项减前项的差均组成等差数列1,2,3,。找出5组,每组4个相邻的素数,其中每一组都构成二阶等差数列的4个相邻项。35.设有序列b1,b2,b3,.bm,且bibj。若存在: i1i2i3.in,且bi1bi2bi3bin

9、,则称:在b1,b2,b3,bm中有长度为N的不下降序列。求:序列b1,b2,b3bm中长度最长的不下降序列。36.设A1,A2,.An为1,2,N 的一个排列。记Bi为这个排列中位于I左边但大于I的数字的个数( i=1,2,N),则B1,B2,.Bn称为排列A1,A2,.An的反序表。如:排列 3,1的左边且大于1的数字有:5,9,8三个,故B1 =3。排列与它的反序表之间具有一一对应的性质。编程实现排列与反序表之间的转换( 1=N 10 )。37.给定一串整数数列,求出所有的递增和递减子序列的数目和转换元素。如:数列 7,2,6,9,8,3,5,2,1可分为(7,2),(2,6,9),(9

10、,8,3),(3,5),(5,2,1)五个子序列,称2,9,3,5,为转换元素。38.在已知数列中(长度为N),相邻若干个数之和能被11整除的有多少组,分别打印出来,表现形式为从哪个数到哪个数来描述一种组合。例:在数列1,4,8,10,16,19,21,25,30,43中,有:(4,8,10)= 22,(10,16,19,21)= 66,即为其中两种组合。39.用 1,2,3,9九个数(不能重复),组成下列式子:96求出各种可能方案40.输入N个数字(09),然后统计出这组数中相邻俩数字组成的数字对出现的次数如:0,1,5,9,8,7,2,2,2,3,2,7,8,7,8,7,9,6,5,9中可

11、得到(7,8)数字对出现次数2次,(8,7)数字对出现次数为3次。41.已知三元素的字母表(A,B,C)。生成一个该字母表上的含N个(N50)个字符的序列,要求生成的序列中没有两个相邻的子序列相同。例如:N=5时 ABCBA是可接受的; 而ABCBC是不可接受的。42.九宫图的特点是横竖对角上的数字之和相等,又称为幻方。请编写程序,调整九宫重的数字,使得横竖对角上的数字之和都不相等(称为反幻方)。43.将M*N的矩阵,转置为N*M的矩阵输出44.有一个M*N的矩阵,要求将1至M*N的自然数天入矩阵中并满足: 同一行中,右边的数字比左边的大; 同一列中,下面的数字比上面的大;打印出所有的填法。4

12、5.在一个矩阵(N*N)中,若上三角中的元素全为零,如下图所示: 为了节省空间,可用一个一维数组来表示这个矩阵。如上图可表示为:(1 2 3 3 0 4),在此种表示方式下,编程完成两个矩阵的加法和乘法。46.读入N,S两个自然数( 0 =S, N =9 ),打印相应的数字三角形。其中,S表示确定三角形的第一个数,N表示确定三角形的行数。例:N=4, S=3时打印:(首位数为奇数) N=4, S=4时打印:(首位数为偶数) 47.将19这九个数字,如下图排成一个环,请在某两个数字之间剪开,分别按顺时针和逆时针次序排列形成两个九位数,要求剪开后所得到的两个九位数的差能被396整除,共有几组剪法?

13、48.矩阵中填数,当给出n*n的矩阵,要求用程序填入下列形式的数:1) 倒填 例如 n=5 2) 蛇型填数 3) 回转填数 49.如图所示的9*9矩阵中,除了10个格是空的外,其余的都填上了字符 * ,这十个空的格子组成了一个五角星图案的10 格交叉点: 空矩阵 输入(1,5)的情况: 编写程序,由键盘输入这10个点中的任一个(如,输入(1,5)是指五角星顶上的那个点,则计算机从这个点开始,给这10个点依次正确赋值(0,1,2,9)最后打印出这个矩阵,正确的赋值规则如下:1) d=0;2) 将d的值填入当前的点;3) 如果 d 9 则 d=d+1,否则结束;4) 由当前的点沿五角星边的直线(不

14、能打折),跨过另一点(可以是已填上数字的点,到达未被填上数的第三个点,此时这个点称为当前点,返回2。50.有一个四阶方阵,随机产生116这16个自然数(不重复),依次填人每个方格中。 要求用最少的对调整次数,使每一行、每一列以及对角线上的四个数之和均相等。 打印每一次对调的过程。例如:随机产生得如下数字方阵: 16 2 8 13 5 15 10 3 7 9 6 12 lI 4 11 1 对调过程表现为- step1: 16 2 3 13 S 15 10 8 7 9 6 12 14 4 11 lStep 2:51.从键盘输入一个自然数N,然后将1 3N+2的自然数填入下图,使得用线段相连的两数之

15、差的绝对值能产生数列 1,2,3N+252.最长连线:设有一个NN的方格图形,且N为3的倍数。要求在图形中存放0或者l,相邻的1可以连成一条连线,连接的方法可以是行,也可以是列;同时约定一条连线只能有一个起点和一个终点,图形上的点最多只能访同一次。例如N=6时,有下图:在该圈中包含有如下的一些连线:等等。但如下形状不是一条连线:在以上的连线中,最长的连线为:表示方法:最长连线长度:LMAX=9连线:(1,6)(2,6) (3,6) (4,6) (4,5) (4,4) (3,4) (2,4) (2,5)连线的表示不是唯一的,仅给出一种即可。数据输入:首先输人N 然后输人N组,每组N3个8进制数。

16、一个8进制数相当于3个2进制数。如上例的输入过程: N=6 7 1 6 7 0 5 6 7 2 0 7 4程序要求: 读入N,并检查合法性(Nb-c方式排列输出79.利用两个栈Sl,S2模拟一个队列,写出用栈的运算来实现队列的插入与删除运算的算法和程序。80.最小生成树:求出一个图的最小生成树,即该图的所有生成树中,树权最小的那棵生成树。81.求出一个二叉树的深度与最大宽度。82.设有数2、3、5、7、13,运算符号 +-* 且运算符无优先级之分。如:2+3*5=25 3*5+2=17现给出任意一个整数N,要求用以上的书和运算符以最少的运算次数产生出N。例如:N=7, 7=7 0次运算N=93

17、 93=13*7+2 2次运算83.给出一个字符串表达式,首先进行语法检查,然后表示成一个树的形式输出。84.建立二叉树的链表存储结构后: 写出计算二叉树中叶子结点数目的递归算法; 编写复制这棵二叉树的非递归程序。85.以下方法称为-最小代价的字母树: 给定一个正整数的序列,例如:4,1,2,3不改变数的位置把他们相加,并且用括号来标记每一次加法所得到的和。例如:(4+1)+(2+3)=(5)+(5)=10 除去原数4,l,2,3之外,其余都为中间结果,如:5,5,l0 将中间结果相加,得到:5+5+10=20 数20成为此数列的一个代价。若得到另一种算法:(4+(1+2)+3)=(4+(3)

18、+3)=(4+(6)=10 数列的另一个代价为:3+6+10 =19若给出N个数,可加N-1对括号,求出此数列的最小代价。(给出过程)86.对一个圈进行拓扑排序,方法如下: (1) 在有向图中选一个没有前趋的结点且输出之; (2) 从图中删去该结点和所有与之相连的边。 重复以上过程,直至全部结点均已输出或者图中没有无前趋的结点为止,后一种情况则说明有向图中存在环,无法进行拓扑排序。87.设有N门课程(10=Nb-c-d 若学生一次可学习任意多门课程,表示形式如下: (a,b)-(c,e,d)-(g) 问:一个学生至少要几次学习才能学完全部课程。88.正方形矩阵染色:有一个nn的正方形矩阵,划分为nn个边长为l的正方形,用黑、白两种颜色对这些小正方形涂色,求所有涂色方案(不包括旋转后重复的方案)。89.设有一个字符串,长度小于100,且全部以英文字母组成。对字串中的每个字母可用0,1,2三个数宇进行编码,且数字可以重复使用。 程序要求: 输入字符串,并能判断输入是否有错; 输出对应的编码表及码长,要求字串的编码长度为最短; 根据上述编码表,给出一些编码,然后求出其原字符串。 例如:输入的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1