算法入门习题108道

更新时间:2023-11-24 05:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本题库来源:大榕树论坛www.mydrs.org 入门习题一百道。

字符串处理

1.读入N个字母的字,判断该字是否回文。

2.有N组数据,每组中有M个字串,找出所有符合下列条件的字串S,条件是:在每一组中,字串S都是其M个字串之一。

3.读入一个字串(长度不大于50),删去字串中相同的字符。

4.输入十个字符串,长度在20….50之间。检查每个字串,若遇到字母A,就在其后插一个空格,最后打印全部处理后的字串,并统计26个字母各出现多少次。

5.接受一个任意长度的字串(小于100个字符),将该字符串中的字符按照ASCII码表从小到大的顺序重新排列成一个新的字符串并打印出来。

6.有一段文字由若干字母组成。检查文字中每个字母出现的次数,输出时,按字母出现频率的降序排序,并按以下格式打印(不含未出现字母):

字母 频率 百分比% x x x

7.读入一行文本,包含若干个单词(以空格间隔,以%j结尾)。将其中以A开头的单词与以N结尾的单词,用头尾交换的方法予以置换。

8.求出一个子串在字符串中的位置。

9.在若干个字符串中,找出一个长度最长的公共字串。

10.’DOS’称为良序子串,因为他之中的字母是按ASCII码的顺序排列的,而’DATA’则不是良序字符。 先要求给出一个N*N的字母方阵,从中选出给定长度M的良序字符。

11.从键盘上读入一个字符串(称为原串),其长度不超过50个字符,并以字符 ’$’ 作为结束符。 当原串读入后,对原串进行编辑,其功能有(菜单选择): ① 在原串中制定的字符前面插入若干个字符(字串)。若在原串中有若干个指定的字符,则插入在第一个指定字符的前面。

例: 原串 ‘abcd dby’

在指定字符 ‘b’ 的前面插入 ‘umv’ ,此时字符串成为 ‘auwvbc dby’

② 在原串中,删除指定的子串,若原串中有多个相同的子串,则删除最后一个子串。 例: 原串 ‘abxyzw cdxyzh,uvxxyzh’ 删除子串’xyz’后得到: ‘abxyzw cdxyzh,uvxh’

③ 替换操作:在原串中,将某个子串用新的子串去替换。若原串中有多个被替换的子串,则应全部替换(但不递归替换)。

例: 原串 ‘abxyz ddxyzxyzhe’

将原串的’xyz’用’uvw’替换,替换后成为: ‘abuvw dduvwuvwhe’

数值计算

12.因式分解:对一个数进行因式分解。如:12= 2*2*3= 4*3 =6*2

13.任意给定一个自然数N,寻找一个M,要求M是N的倍数,且它的所有各位数字都是由0或1组成,并要求M尽可能小。

例:N=3 ? M = 3*37 = 111 , N=31 ? M= 31*3581 = 111011

14.已知:有正整数 K1+K2+K3 + ……+Kn=M

要求:找出一组最佳的分解,使得K1*K2*……*Kn为最大。 例如:N=2时,有 K1+K2 = 6 则当K1=3,K2=3时,K1*K2 =9为最大 即K1=3,K2=3为最佳分解 输入N,M,求最佳分解。

15.求某一个三位数ABC,要求满足下列条件: <1> A>B>C>0

<2> 交换A,C位置得到的新数比原数少495;

<3> 对ABC作全排列而得到的六个三位数之和为2886。

16.求出符合下面条件的5个正整数: (1) 5个数之和为23;

(2) 从这5个数中选取不同的数作加法,可得1~23中的所有自然数。 打印这五个数及选取数组成的1~23的加法式。

17.将数字65535分解成若干个素数的积。

18.由1..9这九个数字组成的九位数(无重复数字)能被11整除,求最大最小者。

19.输入N个学生的学号和一门功课的成绩:

1) 求出高于平均分的人数,并打印这些人的学号和成绩。 2) 按从低到高的顺序,列出学号和成绩(要求能处理同名次)。

统计各分数段的人数:69分以下为一段,60分以上则每隔5分为一段,95分以上为最后一段。用直方图形式打印输出

20.算术表达式求值:输入一个由数字、+、一、*、/与括号组成的算术表达式,求其值。

21.输入两个正整数X,Y,将X,Y化为两个二进制数,然后将这两个二进制数做二进制加法运算,再将结果化为十进制数输出。

22.输入一个十进制数,将其转换成N进制数( 0 < N <= 16 )。

23. 输入一个N进制数,将其转换成十进制数。

24.找出所有满足条件的三位数的素数。条件是:

它们的逆序数、数码和、数码积或是素数、或是1、或是0。

例如:113是素数,逆序数311也是素数,数码和是5,数码积是3,都是素数。所以113时满足条件的三位数。

25.一个整型变量只能用来存贮较小的N!的值,当N较大时,可将阶乘值中的每一个数 字存放在一个一维数组的一个元素中。使用这种方法,打印:

①N!的值;

②N !~M!(M>N); ③N!+M!

编程完成以下的高精度计算” ①多位数乘以一位数; ②多位数除以一位数;

③多位数乘以多位数(要求用尽可能少的存储单元); ④多位数除以多位数(要求用尽可能少的存储单元); ⑤N!,要求精确到P位(0

26.编程求解两个高精度正实数的除法,要求精确到小数点后20位,若20位内有循环节,请标出。

27.求输入的实数算术表达式的值,结果精确到小数点后第N位(0

数列和矩阵

28.由M个数构成一个圆环,找出四个相邻的数,使其和为最大、最小。

29.设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?

30.设有教列al=0,a2=1,a3=a1+2a2,……an=an-2+(n—1)an-1,……求出其前40项, 并用尽可能少的字节表示结果。

31.随机产生50个1….500的自然数。对每次产生的数,若是奇数,则加入队列,若是偶数,则从队首取出一个数据输出,要求显示队列变化情况。

32.用1……N这N个自然数顺序组合成一个多位数,现要求从中删除M个数字(M

33.将1,2,3,……20共20个数字排成一排,使相邻两个数字之和为素数,并且头尾两数之和也为素数。求出所有满足条件的排列。

34.1,2,4,7,……是二阶等差数列,因为它们后项减前项的差均组成等差数列1,2,3,……。找出5组,每组4个相邻的素数,其中每一组都构成二阶等差数列的4个相邻项。

35.设有序列b1,b2,b3,…..bm,且bi≠bj。

若存在: i1

36.设A1,A2,….An为1,2,…N 的一个排列。记Bi为这个排列中位于I左边但大于I的数字的个数( i=1,2,…N),则B1,B2,….Bn称为排列A1,A2,….An的反序表。

如:排列 598126473,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,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个数字(0~9),然后统计出这组数中相邻俩数字组成的数字对出现的次数 如:0,1,5,9,8,7,2,2,2,3,2,7,8,7,8,7,9,6,5,9中可得到 (7,8)数字对出现次数2次,(8,7)数字对出现次数为3次。

41.已知三元素的字母表(A,B,C)。生成一个该字母表上的含N个(N<50)个字符的序列,要求生成的序列中没有两个相邻的子序列相同。

例如:N=5时

‘ABCBA’是可接受的; 而’ABCBC’是不可接受的。

42.九宫图的特点是横竖对角上的数字之和相等,又称为幻方。请编写程序,调整九宫重的数字,使得横竖对角上的数字之和都不相等(称为反幻方)。

43.将M*N的矩阵,转置为N*M的矩阵输出

44.有一个M*N的矩阵,要求将1至M*N的自然数天入矩阵中并满足: <1> 同一行中,右边的数字比左边的大; <2> 同一列中,下面的数字比上面的大; 打印出所有的填法。

45.在一个矩阵(N*N)中,若上三角中的元素全为零,如下图所示:

100230 为了节省空间,可用一个一维数组来表示这个矩阵。 304如上图可表示为:(1 2 3 3 0 4),在此种表示方式下,编程完成两个矩阵的加法和乘法。

46.读入N,S两个自然数( 0 <=S, N <=9 ),打印相应的数字三角形。其中,S表示确定三角形的第一个数,N表示确定三角形的行数。

345例:N=4, S=3时打印:(首位数为奇数)

6789123

465N=4, S=4时打印:(首位数为偶数)

9874321

47.将1~9这九个数字,如下图排成一个环,请在某两个数字之间剪开,分别按顺时针和逆时针次序排列形成两个九位数,要求剪开后所得到的两个九位数的差能被396整除,共有几组剪法?

91758634 2

48.矩阵中填数,当给出n*n的矩阵,要求用程序填入下列形式的数:

本文来源:https://www.bwwdw.com/article/489t.html

Top