程序基本结构计分作业
1两个分数求和
【问题描述】输入两个分数,输出两个分数之和,要求约分。
【输入形式】输入两个分数,格式为:x/y, m/n。
【输出形式】输出约分后的求和结果。
【样例输入】1/2 1/4
【样例输出】3/4
【样例输入】9/10 6/7
【样例输出】123/70
【样例输入】1/5 3/10
【样例输出】1/2(约分后的结果)
【样例说明】提示:约分时可以考虑求分子和分母两个数的最大公约数。
2整数正序输出各位
【问题描述】输入一个正整数 m,将该数按照位由高到低的顺序输出,如 1234,正序输出为1 2 3 4。
【输入形式】输入正整数 m。
【输出形式】正序输出 m 的各位,每位之间用一个空格分隔。
【样例输入】1234
【样例输出】1 2 3 4
【样例输入】100
【样例输出】1 0 0
【样例说明】不能使用字符串。
用循环实现斐波那契数列
3用循环实现斐波那契数列
【问题描述】已知斐波那契数列:1 1 2 3 5 8 13…;可以写成下列公式:F(1)=1,F(2)=1, 当 n > 2 时,F(n)=F(n-1)+F(n-2)。输入正整数 n,利用循环,不用列表和递归函数求该序列第 n 项的值。
【输入形式】输入正整数 n。
【输出形式】输出斐波那契数列第 n 项的值。
【样例输入】1
【样例输出】1
【样例输入】3
【样例输出】2
【样例输入】4
【样例输出】3
4.判断回文数
【问题描述】从键盘任意输入一个正整数,编程判断该数是否是回文数。所谓回文数就是从左到右读这个数和从右到左读一样,如12321。
【输入形式】输入一个正整数
【输出形式】输出正整数 + yes 或者 no
【样例输入】12321
【样例输出】12321 yes
【样例输入】1231
【样例输出】1231 no
5验证哥德巴赫猜想
【问题描述】验证哥德巴赫猜想:任意充分大的偶数,可以用两个素数之和表示。
【输入形式】一个大于 2 的偶数,以回车结束。
【输出形式】每行一对素数,小的素数在前,以空格隔开,多组用多行表示,小的素数在前。
【样例输入】10
【样例输出】3 7
【样例输入】20
【样例输出】
3 17
7 13
6两位正整数合并程序
【问题描述】将两个两位数的正整数 a、b 合并成一个整数放在 c 中。合并的方式是:将 a 的十位和个位依次放在 c 的千位和十位上,b 的十位和个位数依次放在 c 的百位和个位上。
【输入形式】输入 2 个 2 位的正整数,以空格隔开,以回车结束。
【输出形式】输出合并后的正整数。
【样例输入】12 34
【样例输出】1324
【样例输入】10 20
【样例输出】1200
7生肖判断
【问题描述】从键盘输入一个正整数代表年份,判断那一年是什么生肖,已知 2018 年是狗年,十二生肖顺序为:子鼠 rat、丑牛 ox、寅虎 tiger、卯兔 rabbit、辰龙 dragon、巳蛇 snake、午马 horse 、未羊 sheep、申猴 monkey、酉鸡 rooster 、戌狗 dog 、亥猪 pig。
【输入形式】输入一个正整数代表年份
【输出形式】输出这一年的生肖
【样例输入】2018
【样例输出】2018 dog
8比较价钱
【问题描述】假设购买大米时发现其有 50 斤、20 斤、10 斤和 5 斤装共四种包装。输入其中两种包装及其对应的价格,选择单价较低的输出。
【输入形式】输入两组包装规格和对应的价格。
【输出形式】输出单价较低的那一组。保留一位小数点。
【样例输入】
50 100
20 52.6
【样例输出】50 100.0
顺序和分支结构练习题
1判断整数被 3,5,7 整除情况
【问题描述】编一个程序,输入一个整数,判断它能否被 3,5,7 整除,若能同时被 3,5,7 整除则输出 a;不能被 3,5,7 整除输出 c;其它情况输出 b。
【输入形式】输入一个整数。
【输出形式】 输出对应字符和整数,它们之间有一个空格分隔。
【样例输入】2
【样例输出】c 2
【样例输入】7
【样例输出】b 7
【样例输入】105
【样例输出】a 105
2孔融让梨
【问题描述】输入三个正整数来表示梨的大小,从其中找出最小的、中号的和最大的梨,输出分配信息 ,最大的给爸爸,中号给妈妈,最小的留给自己。
【输入形式】输入三个正整数。
【输出形式】按照梨的大小输出梨的分配情况。
【样例输入】10 7 9
【样例输出】
7 me
9 mommy
10 daddy
3一元二次方程求解
【问题描述】一元二次方程 ax2+bx+c=0,Delta=b2 - 4ac,分别考虑 Delta 大于 0,等于 0,小于 0 三种情况,输出方程的根。
【输入形式】输入三个数 a b c,以空格隔开,以回车结束。
【输出形式】输出方程的根(保留小数点后2位)。
【样例输入】1.0 4.0 2.0
【样例输出】x1=-0.59 x2=-3.41
【样例输入】2.65 5.3 9.7
【样例输出】x1=-1.00+1.63j x2=-1.00-1.63j
【样例输入】1 2 1
【样例输出】x1=x2=-1.00
【样例说明】样例输出时,若 Delta 不等于 0,x2 前面有一个空格,其它地方均无空格;先输出“加+”根号 Delta 的根,再输出“减-”根号 Delta 的根。
4求三位正整数的百位、十位和个位的和
【问题描述】求一个三位正整数的百位、十位和个位的和。
【输入形式】输入一个 3 位的正整数,以回车结束。
【输出形式】输出一个正整数。
【样例输入】123
【样例输出】6
【样例输入】103
【样例输出】4
5两位正整数合并程序
【问题描述】将两个两位数的正整数 a、b 合并成一个整数放在 c 中。合并的方式是:将 a 的十位和个位依次放在 c 的千位和十位上,b 的十位和个位数依次放在 c 的百位和个位上。
【输入形式】输入 2 个 2 位的正整数,以空格隔开,以回车结束。
【输出形式】输出合并后的正整数。
【样例输入】12 34
【样例输出】1324
【样例输入】10 20
【样例输出】1200
6 时间单位变换
【问题描述】输入一个以秒为单位的时间长度,将其变换成小时、分和秒的形式。
【输入形式】输入一个时长,其单位是秒。
【输出形式】转换成小时、分和秒的形式输出。
【样例输入】3600
【样例输出】1:0:0
【样例说明】输出时数字和冒号之间无空格。
7速度单位变换
【问题描述】输入一个以 m/s 为单位的速度值,将其变换成 km/h 为单位的速度值,小数点后保留 2 位。
【输入形式】一个以 m/s 为单位的速度值
【输出形式】一个以 km/h 为单位的速度值
【样例输入】1.5
【样例输出】5.40
8求矩形中心点坐标
【问题描述】找出矩形中心点坐标,小数点保留 2 位,不考虑无法构成矩形的情况。
【输入形式】矩形的顶点坐标,第 1 组数表示左上角坐标;第 2 组数表示右下角坐标。
【输出形式】输出中心点坐标。
【样例输入】-3.8 2.0 0.0 0.0
【样例输出】-1.90 1.00
9水仙花数判断程序
【问题描述】判断一个三位正整数是否是“水仙花数”。水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
【输入形式】输入一个三位正整数
【输出形式】输出整数+ yes 或 no
【样例输入】153
【样例输出】153 yes
【样例输入】100
【样例输出】100 no
10求平面两点间的距离
【问题描述】输入两个点的坐标,计算两点之间的距离。
【输入形式】两个点的坐标,前两个数表示第一个点坐标,后两个数表示第二个点坐标。
【输出形式】两点间距离,结果保留小数点后2位
【样例输入】1.0 1.0 2.0 2.0
【样例输出】1.41
11三角形判断程序
【问题描述】输入三角形三条边 a, b, c, 判断是否能构成三角形。附注:三角形三边关系的定理:“三角形任何两边的和大于第三边”
【输入形式】输入三个正整数,以空格隔开,回车结束。
【输出形式】输出三个正整数 + yes 或 no。
【样例输入】1 2 4
【样例输出】1 2 4 no
【样例输入】3 4 5
【样例输出】3 4 5 yes
12计算平方根程序
【问题描述】从键盘输入一个小于 1000 的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分,四舍五入)。要求在输入数据后先对其进行检查是否是小于 1000 的正数。若不是,则输出错误提示信息。
【输入形式】从键盘输入一个小于 1000 的正数。
【输出形式】输出某个正数的平方根。
【样例输入】3
【样例输出】2
【样例输入】16
【样例输出】4
【样例输入】42224
【样例输出】42224 error
13判断某一天是这一年的第几天
【问题描述】输入某年某月某日,判断这一天是这一年的第几天。
【输入形式】输入三个正整数
【输出形式】 输出这一天是这一年的第几天
【样例输入】2010 3 4
【样例输出】63
【样例输入】2008 5 6
【样例输出】127
14计算圆柱体体积
【问题描述】输入圆柱体的底半径及高度,求体积,体积公式为pirrh。(pi取值3.14159)
【输入形式】从键盘输入圆柱体底的半径和高度,以空格隔开,以回车结束。
【输出形式】圆柱体体积(保留两位小数)
【样例输入】2.0 3.0
【样例输出】37.70
15计算球体体积
【问题描述】输入球体半径 r,求球的体积。(V = 4.0/3.0 * 3.14159 * rr*r )
【输入形式】输入球体的半径。
【输出形式】球体的体积(保留两位小数)。
【样例输入】2.34
【样例输出】53.67
16计算三角形面积
【问题描述】输入三角形的三边长,求三角形面积。 求三角形面积的公式为 area=sqrt(s(s-a)(s-b)(s-c)),其中 sqrt 是开平方,s=(a+b+c)/2。
【输入形式】输入三角形的三条边长,以空格隔开,以回车结束。
【输出形式】若构成三角形,输出三角形面积,否则输出错误信息
【样例输入】3.1 4.2 5.3
【样例输出】6.51
【样例输入】2.55 3.66 6.87
【样例输出】2.55 3.66 6.87 error
【样例说明】
(1) 三角形的任意两条边的和必须大于第三条边。
(2)输出结果保留小数点后2位。
17摄氏度和华氏度相互转换程序
【问题描述】根据下面摄氏度转换为华氏度的公式,根据输入完成摄氏度和华氏度相互转换并输出,结果保留小数点后两位。若输入的温度值后面跟着F,则输入的是摄氏度,转换为华氏度并输出;若输入的温度值后面跟着C,则输入的是华氏度,转换为摄氏度并输出。
F=1.8C+32
【输入形式】输入温度值和字符。
【输出形式】 输出转换结果。
【样例输入】10.0F
【样例输出】F=50.00
【样例输入】212.0C
【样例输出】C=100.00
18计算分段函数的值
【问题描述】有分段函数:当 x<-5时,y=x+10; 当 -5<=x<=5 时,y=x/2;当 x>5 时,y=2x-10,编一程序,输入x的值,输出y的值。
【输入形式】输入一个整数,以回车结束。
【输出形式】输出函数值,保留一位小数。
【样例输入】-6
【样例输出】4.0
【样例输入】5
【样例输出】2.5
【样例输入】6
【样例输出】2.0
19输出三个整数的最大值
【问题描述】有三个整数 a,b,c,由键盘输入,输出其中最大值。
【输入形式】输入三个整数,以空格隔开,以回车结束。
【输出形式】输出最大的那个整数。
【样例输入】1 2 3
【样例输出】3
20身高换算程序
【问题描述】输入英尺和英寸两个正整数,计算对应身高的米数(保留两位小数点,换算关系为:1英尺 = 12英寸 = 0.3048米),并根据身高输出对应的分类信息。分类信息:大于 2.25 米为高,1.7~2.25 米(含这两个边界值)为中等,小于 1.7 米为矮。
【输入形式】输入英尺和英寸两个正整数。
【输出形式】输出对应身高以及分类信息。
【样例输入】5 3
【样例输出】1.60 you are short
【样例输入】8 7
【样例输出】2.62 you are tall
【样例输入】6 6
【样例输出】1.98 you are middle
21计算任意时间的夹角
【问题描述】计算 0:00 到 11:59 之间任意一个时间的夹角。
【输入形式】输入两个数字:第一个数字代表小时 ( 大于 0 小于等于 11) ,第二个数字代表分 ( 在区间 [0, 59] 上 ),以回车结束
【输出形式】输出时针和分针间的最小夹角,精确到小数点后一位。
【样例输入】5 40
【样例输出】70.0
循环相关部分练习题
1共有多少种解决方案
【问题描述】从 3 个红球、5 个白球和 6 个黑球中任意取出 M 个球,其中必须至少有 1 个红球,输出共有多少种可能方案。
【输入形式】输入正整数 M(只考虑合法输入)
【输出形式】解决方案的数目。
【样例输入】8
【样例输出】17
【样例输入】1
【样例输出】1
2十进制转换成 N 进制
【问题描述】输入一个十进制整数,将其转换成 N 进制数(1<N<10)
【输入形式】输入一个十进制整数和整数 N
【输出形式】输出 N 进制数字
【样例输入】10 6
【样例输出】14
【样例输入】100 2
【样例输出】1100100
3元音字母统计程序
【问题描述】输入一个英文单词,统计其中的元音字母的个数。
【输入形式】一个英文单词
【输出形式】元音字母的个数
【样例输入】cat
【样例输出】1
【样例说明】a/e/i/o/u 这五个为元音字母。
4分数序列前n项求和
【问题描述】有一个分数序列2/1, 3/2, 5/3, 8/5, 13/8, 21/13, …输入一个正整数 n,求该序列前n项之和。
【输入形式】输入正整数 n。
【输出形式】输出该序列前 n 项之和,保留2位小数点。
【样例输入】10
【样例输出】16.48
【样例输入】20
【样例输出】32.66
5整数反序输出
【问题描述】输入一个正整数 m,将该数反序输出,如 1234,反序输出为 4321。
【输入形式】输入正整数 m。
【输出形式】反序输出 m。
【样例输入】1234
【样例输出】4321
【样例输入】100
【样例输出】1
6整数正序输出各位
【问题描述】输入一个正整数 m,将该数按照位由高到低的顺序输出,如 1234,正序输出为1 2 3 4。
【输入形式】输入正整数 m。
【输出形式】正序输出 m 的各位,每位之间用一个空格分隔。
【样例输入】1234
【样例输出】1 2 3 4
【样例输入】100
【样例输出】1 0 0
【样例说明】不能使用字符串。
7求表达式值1!+2!+…+n!
【问题描述】求表达式 1!+2!+3!+…+n! 的值。
【输入形式】一个正整数 n
【输出形式】输出求和结果
【样例输入】3
【样例输出】9
8不使用欧几里得算法求最大公约数和最小公倍数
【问题描述】输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
【输入形式】输入两个正整数 m 和 n。
【输出形式】输出 m 和 n 的最大公约数和最小公倍数,空格分隔。
【样例输入】2 6
【样例输出】2 6
【样例输入】3 5
【样例输出】1 15
【样例说明】不要使用欧几里得算法。
9完数判断程序
【问题描述】一个数如果恰好等于它的真因子之和,这个数就称为"完数"。例如,6 的真因子有 1、2、3,而 6=1+2+3,因此 6 是"完数"。从键盘输入一个正整数 m,判断其是否是完数,并按下面格式输出判断结果:
1、m 是完数:6=1+2+3
2、m 不是完数,真因子之和小于 m:4>1+2
2、m 不是完数,真因子之和大于 m:12<1+2+3+4+6
【输入形式】输入正整数 m。
【输出形式】判断 m 是否为完数并输出可能的结果。
【样例输入】6
【样例输出】6=1+2+3
【样例输入】4
【样例输出】4>1+2
【样例输入】12
【样例输出】12<1+2+3+4+6
10猴子吃桃
【问题描述】猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 n 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子。
【输入形式】一个正整数 n,表示第 n 天时只剩下一个桃子。
【输出形式】一个正整数,表示共摘了多少个桃子
【样例输入】10
【样例输出】1534
11统计一行字符中不同字符个数
【问题描述】输入一行字符,分别统计其中的英文字母、空格、数字和其它字符的个数。
【输入形式】一行字符,以回车结束
【输出形式】<字母数> <空格数> <数字数> <其它字符数>
【样例输入】hello world 2015!
【样例输出】10 2 4 1
12用循环实现斐波那契数列
【问题描述】已知斐波那契数列:1 1 2 3 5 8 13…;可以写成下列公式:F(1)=1,F(2)=1, 当 n > 2 时,F(n)=F(n-1)+F(n-2)。输入正整数 n,利用循环,不用列表和递归函数求该序列第 n 项的值。
【输入形式】输入正整数 n。
【输出形式】输出斐波那契数列第 n 项的值。
【样例输入】1
【样例输出】1
【样例输入】3
【样例输出】2
【样例输入】4
【样例输出】3
13采用Euclid(欧几里德)算法来求最大公约数和最小公倍数
【问题描述】采用Euclid(欧几里德)算法来求最大公因子,其算法是:
(1) 输入两个正整数 m 和 n;
(2) m 保存两个数中较大的数,n 保存较小的数;
(3) 用 m 除以 n,余数为 r,如果 r 等于 0,则 n 是最大公因子,算法结束,否则 (4);
(4) 把 n 赋给 m,把 r 赋给 n,转 (3)。
最小公倍数即 mn/最大公约数
【输入形式】输入两个正整数m和n,以空格隔开,以回车结束。
【输出形式】输出两个数最大公因子
【样例输入】15 10
【样例输出】5 30
14计算数列 ak = 1/(k(k+1)) 前n项的和
【问题描述】计算数列 ak = 1/(k*(k+1)) 前 n 项的和。
【输入形式】输入项数 n 的值,以回车结束。
【输出形式】输出前n项和。
【样例输入】10
【样例输出】 0.90909
【样例说明】保留小数后5位
15素数判断程序
【问题描述】输入一个正整数 m,判断它是否为素数。
【输入形式】从键盘输入一个正整数,以回车结束
【输出形式】输出m Yes 或者m No
【样例输入】2
【样例输出】2 Yes
【样例输入】4
【样例输出】4 No
【样例输入】17
【样例输出】17 Yes
16统计整数的位数
【问题描述】从键盘读入一个整数,统计该数的位数。
【输入形式】从键盘输入一个整数,以回车结束。
【输出形式】输出该整数的位数
【样例输入】1245
【样例输出】4
【样例输入】-12
【样例输出】2
【样例输入】9
【样例输出】1
17计算12+34+56+…+n(n+1)
【问题描述】计算12+34+56+…+n(n+1)。其中 n 为正奇数。
【输入形式】输入正的奇数 n,以回车结束。
【输出形式】输出函数值
【样例输入】3
【样例输出】14
18球的反弹高度
【问题描述】一个球从 100 米高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹,求它在第 n 次落地时,共经过多少米,反弹高度又是多少?
【输入形式】输入正整数 n。
【输出形式】输出共经过多少米和反弹高度(保留 2 位小数)。
【样例输入】1
【样例输出】100.00 50.00
【样例输入】4
【样例输出】275.00 6.25
19使用格里高利公式求π的近似值
【问题描述】使用格里高利公式求 π 的近似值,要求精确到最后一项的绝对值小于10的 -n 次幂。(π/4 = 1-1/3 + 1/5 - 1/7 + 1/9 +…)
【输入形式】从键盘输入 n 的值,以回车结束。
【输出形式】输出 π 的近似值,保留 5 位小数。
【样例输入】4
【样例输出】3.14139
20分数序列求和
【问题描述】编程实现 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+4+…+n) ,其中 n 由键盘输入。
【输入形式】输入一个正整数,以回车结束。
【输出形式】输出函数值(保留小数点后2位)
【样例输入】3
【样例输出】1.50
21统计字符串中特定字符出现次数
【问题描述】输入一串字符和单个字符,统计该字符在这串字符串中出现的次数
【输入形式】输入一串字符和单个字符,两者输入之间用回车分隔。
【输出形式】输出单个字符在字符串中出现次数。
【样例输入】ad dd dcd dd
d
【样例输出】7
【样例说明】尝试使用 count 和不使用count 两种做法来锻炼编程能力。
22在字符串中查找第一个不重复字符
【问题描述】输入一串字符,在该字符串中查找第一个不重复字符。
【输入形式】输入一串字符
【输出形式】第一个不重复字符或错误信息
【样例输入】abbccdefafgg
【样例输出】d
【样例输入】ababab
【样例输出】ababab error
23验证哥德巴赫猜想
【问题描述】验证哥德巴赫猜想:任意充分大的偶数,可以用两个素数之和表示。
【输入形式】一个大于 2 的偶数,以回车结束。
【输出形式】每行一对素数,小的素数在前,以空格隔开,多组用多行表示,小的素数在前。
【样例输入】10
【样例输出】3 7
【样例输入】20
【样例输出】
3 17
7 13
24判断回文数
【问题描述】从键盘任意输入一个正整数,编程判断该数是否是回文数。所谓回文数就是从左到右读这个数和从右到左读一样,如12321。
【输入形式】输入一个正整数
【输出形式】输出正整数 + yes 或者 no
【样例输入】12321
【样例输出】12321 yes
【样例输入】1231
【样例输出】1231 no
25两个分数求和
【问题描述】输入两个分数,输出两个分数之和,要求约分。
【输入形式】输入两个分数,格式为:x/y, m/n。
【输出形式】输出约分后的求和结果。
【样例输入】1/2 1/4
【样例输出】3/4
【样例输入】9/10 6/7
【样例输出】123/70
【样例输入】1/5 3/10
【样例输出】1/2(约分后的结果)
【样例说明】提示:约分时可以考虑求分子和分母两个数的最大公约数。
26小写字母转换为大写字母
【问题描述】输入一段字符,将其中的小写字母转化为大写字母,最后将转化后的字符串输出。
【输入形式】输入一串字符,回车作为结束。
【输出形式】输出不包含小写字母的字符串,其他字符不变。
【样例输入】aBc dEF g%&9
【样例输出】ABC DEF G%&9
函数部分练习题
1计算给定日期是该年的第几天(用函数完成)
【问题描述】给出年、月、日,计算该日是该年的第几天,其中年、月、日的输入和结果的输出在主函数完成。
【输入形式】年、月、日
【输出形式】第几天
【样例输入】2015 3 2
【样例输出】61
【样例说明】
【评分标准】不用函数实现零分。
2按公式完成计算(用函数完成)
【问题描述】p1(1).png计算上述公式,其中 n 和 k 的值是输入得到,计算过程用函数完成,n, k 的输入和结果的输出在主函数中完成。
【输入形式】输入两个正整数 n 和 k,中间用空格隔开。
【输出形式】输出计算结果。
【样例输入】2 2
【样例输出】5
3用递归函数实现斐波那契数列
【问题描述】已知斐波那契数列:1 1 2 3 5 8 13…;可以写成下列公式:F(1)=1,F(2)=1, 当 n > 2 时,F(n)=F(n-1)+F(n-2)。输入正整数 n,利用递归函数求该序列第 n 项的值。
【输入形式】输入正整数 n。
【输出形式】输出斐波那契数列第 n 项的值。
【样例输入】1
【样例输出】1
【样例输入】3
【样例输出】2
【样例输入】4
【样例输出】3
4判断坐标的位置(用函数实现)
【问题描述】输入一个二维坐标,判断该坐标与圆 x2+y2=4 的关系。用函数完成坐标与圆之间的关系。坐标的输入及关系结果的输出在主函数完成。
【输入形式】输入二维坐标值
【输出形式】在圆内输出 坐标 + “in”,在圆外输出 坐标 + “out”,在圆上输出坐标 + “on”
【样例输入】2.12 2.21
【样例输出】2.12 2.21 out
【样例输入】1.25 1.25
【样例输出】1.25 1.25 in
【样例说明】输出时保留两位小数点。
【评分标准】必须用函数完成否则不给分。
5求两个数的最大公约数
【问题描述】用递归方法求两个数的最大公约数。
【输入形式】输入两个正整数,用空格隔开。
【输出形式】两个正整数的最大公约数。
【样例输入】4 2
【样例输出】2
6求一个数各位之和
【问题描述】输入一个数,求这个数的各位数字之和。数字求和过程用递归函数完成。
【输入形式】输入一个整数,若是负整数,则求其绝对值后的各位数字和。
【输出形式】输出数字和
【样例输入】1234
【样例输出】10
【样例输入】-1234
【样例输出】10
7按公式计算函数值(用函数递归完成)
【问题描述】按下面的递归公式计算函数值。当n=0,f(n)=1;当n>=1,f(n)=f(n-1)+ 3。
【输入形式】输入整数n的值
【输出形式】输出计算得到的函数值
【样例输入】0
【样例输出】1
【样例输入】5
【样例输出】16
8完数的判断(用函数完成)
【问题描述】输入一个整数,判断其是否是完数。
要求:编写函数,判断一个正整数a是否为完数,如果是完数,函数返回值为 1,否则为 0。
概念普及:完数:一个数的所有因子之和等于该数本身。如,6、28 都是完数,6=1+2+3。
【输入形式】输入一个正整数
【输出形式】输出是否是完数的判断
【样例输入】6
【样例输出】6 yes
【样例输入】8
【样例输出】8 no
9n位数求n-1位(用函数实现)
【问题描述】输入整数 num,其中 num 是一个 n 位数,编写函数完成如下功能:求整数 num 的后 n-1 位,如果 num 是一位数或负数则返回 该数字 + wrong,要求输入输出在主函数中完成。
【输入形式】输入整数。
【输出形式】输出整数的后 n-1 位或错误信息。
【样例输入】9
【样例输出】9 wrong
【样例输入】-99
【样例输出】-99 wrong
【样例输入】6734
【样例输出】734
【样例输入】1000
【样例输出】0
【样例输入】10101
【样例输出】101
列表和元组部分练习题
1求二维数组中的最大元素
【问题描述】求二维数组中的最大元素及其所在的行和列。
【输入形式】输入二维数组的行和列值,然后输入二维数组中的数据。
【输出形式】输出最大值及该数据所在的行和列值。
【样例输入】
3 4
1 3 5 6
8 9 12 3
5 3 11 2
【样例输出】12 1 2
2折半查找
【问题描述】输入一组有序数和一个待查数据,用折半查找法查找待查数据是否在这有序数列中。
【输入形式】输入一组有序数和一个待查数据,最后输入的是待查数据。
【输出形式】如果查找成功,返回待查数据在数组中的下标,如果查找失败,待查数据 + no;
【样例输入】3 6 8 9 12 9
【样例输出】3
【样例输入】3 6 8 9 12 19 5
【样例输出】5 no
3筛选法求素数
【问题描述】输入正整数 n,输出小于等于 n 的所有素数。
【输入形式】输入正整数 n
【输出形式】输出满足要求的素数表,每行显示 5 个数,每行两个数之间用一个空格分隔,最后一行不足 5 个数的原样输出即可。
【样例输入】3
【样例输出】2 3
【样例输入】10
【样例输出】2 3 5 7
【样例输入】50
【样例输出】
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
4剔除数组中能被3或者5整除的元素
【问题描述】输入一组整数,剔除其中能被 3 或者 5 整除的元素,输出最后的数组。
【输入形式】一组整数
【输出形式】剔除数据后的结果,若全部剔除,则输出字符串 NULL。
【样例输入】1 2 3 4 5
【样例输出】1 2 4
【样例输入】12 6 3 9 5
【样例输出】NULL
5矩阵转置
【问题描述】输入一个 M*N 的矩阵,实现矩阵转置并输出。
【输入形式】
第1行:两个正整数 M,N
第2~M+1 行:分别表示一行的矩阵元素,以空格隔开。
【输出形式】转置矩阵
【样例输入】
2 3
1 2 3
4 5 6
【样例输出】
1 4
2 5
3 6
6冒泡排序
【问题描述】对输入的一组数据进行从小到大的冒泡排序。
【输入形式】输入一组数(数量不定)
【输出形式】排序好的数组
【样例输入】10 1 2 7 6 8 9 3 4 5
【样例输出】1 2 3 4 5 6 7 8 9 10
【样例输入】6 8 9 5
【样例输出】5 6 8 9
7有序数组插入
【问题描述】有一个长度为 N 的按升序排序的数组。输入一个数,按原来的排序规律将它插入数组中。
【输入形式】
<数组长度 N>
<N 个有序的整数>
<待插入的整数 k>
【输出形式】N+1 个排好序的整数
【样例输入】
7
1 2 3 4 6 7 8
5
【样例输出】
1 2 3 4 5 6 7 8
8评委打分
【问题描述】8 个评委对歌唱比赛进行打分,去掉最高分和最低分,输出其平均分。
【输入形式】输入 8 个小于等于 10 的数,代表评委打分。
【输出形式】输出最终得分,保留 2 位小数。
【样例输入】7.1 6.2 8.3 8.4 7.5 9.6 8.7 7.8
【样例输出】7.97
9选择排序
【问题描述】对输入的一组数据进行从小到大的选择排序。
【输入形式】输入一组数(数量不定)
【输出形式】排序好的数组
【样例输入】10 1 2 7 6 8 9 3 4 5
【样例输出】1 2 3 4 5 6 7 8 9 10
【样例输入】6 8 9 5
【样例输出】5 6 8 9
10求集合的交集
【问题描述】输入两个数组的元素值,每个数组的元素值是整数,且不重复,输出在两个数组中都出现的元素值(将每个数组看作一个集合,输出的是两个集合的交集,不考虑无交集情况)。
【输入形式】
<数组1的数据元素列表(以空格分隔)><回车>
<数组2的数据元素列表(以空格分隔)><回车>
【输出形式】
<交集后的数据元素列表(以空格分隔)>(注:交集输出的数据顺序按数组2出现的先后顺序为标准)
【样例输入】
12 23 5 17 81 42
4 8 5 23 16 81 90
【样例输出】
5 23 81
11用打擂法求最大值和最小值
【问题描述】任意输入一组整数,用打擂法求出其最大值和最小值并输出。
【输入形式】任意一组整数
【输出形式】最大数和最小数
【样例输入】1 2 3 -3 -4 -6 344 329 1000 -5
【样例输出】1000 -6
【样例说明】不允许使用max和min函数,否则该题无意义。
12学生成绩分数段统计
【问题描述】输入一组学生成绩,按照各个分数段进行人数统计,分数段包含 90<=N<=100,80<=N<90,70<=N<80,60<=N<70,0<=N<60。
【输入形式】输入一组学生成绩
【输出形式】按照“问题描述”中分数段划分的顺序输出每个分数段的人数
【样例输入】98 80 87 50 75 60 42 56 95 10
【样例输出】2 2 1 1 4
【样例说明】输入输出数据之间用单个空格隔开,按照分数段从高到低输出。
13顺序查找
【问题描述】输入一组整数和一个待查数据,在这组整数中查找待查数据是否存在。
【输入形式】输入一组整数和一个待查数据
【输出形式】如果查找成功,返回该数据在数组中的下标,如果查找失败,输出待查数据 + no。
【样例输入】34 23 12 14 76 12
【样例输出】2
【样例输入】4 2 32 41 47 61 81 90
【样例输出】90 no
14用列表实现斐波那契序列
【问题描述】已知斐波那契数列:1 1 2 3 5 8 13…;可以写成下列公式:F(1)=1,F(2)=1, 当 n > 2 时,F(n)=F(n-1)+F(n-2)。输入正整数 n,利用列表求该序列第 n 项的值。
【输入形式】输入正整数 n。
【输出形式】输出斐波那契数列第 n 项的值。
【样例输入】1
【样例输出】1
【样例输入】3
【样例输出】2
【样例输入】4
【样例输出】3
15掐头去尾法求平均数
【问题描述】输入若干正整数,将该组数据排序后去掉最大的两个数和最小的两个数后再求平均值,即掐头
去尾法求平均值。
【输入形式】输入一组正整数(输入数据的数量都大于 4 个)。
【输出形式】输出平均值,保留 2 位小数点。
【样例输入】1 2 3 4 5 6
【样例输出】3.50
【样例输入】12 56 85 75 62
【样例输出】62.00
【样例输入】98 75 87 62 66 81 59 78
【样例输出】75.00
16求集合的并集
【问题描述】输入两个数组的元素值,每个数组的元素值是整数,将每个数组看作一个集合(数组元素不重复),输出两个集合的并集。
【输入形式】
<数组1的数据元素列表(以空格分隔)><回车>
<数组2的数据元素列表(以空格分隔)><回车>
【输出形式】
<并集后的数据元素列表(以空格分隔)>(注:输出数据顺序,先输出数组1,之后输出数组2中有数组1中没有的数据)
【样例输入】
12 23 5 17 81 42
4 8 5 23 16 81 90
【样例输出】
12 23 5 17 81 42 4 8 16 90
17去除数组中相同元素
【问题描述】把整数数组中值相同的元素删除得只剩一个,并把剩余元素依次向前移动。
【输入形式】输入数组元素。
【输出形式】去除数组中相同元素后的新数组。
【样例输入】
1 2 3 1 4
【样例输出】
1 2 3 4
【样例输入】
1 2 3 1 1
【样例输出】
1 2 3
Python序列、字典和集合计分作业
1剔除数组中能被3或者5整除的元素
【问题描述】输入一组整数,剔除其中能被 3 或者 5 整除的元素,输出最后的数组。
【输入形式】一组整数
【输出形式】剔除数据后的结果,若全部剔除,则输出字符串 NULL。
【样例输入】1 2 3 4 5
【样例输出】1 2 4
【样例输入】12 6 3 9 5
【样例输出】NULL
2筛选法求素数
【问题描述】输入正整数 n,输出小于等于 n 的所有素数。
【输入形式】输入正整数 n
【输出形式】输出满足要求的素数表,每行显示 5 个数,每行两个数之间用一个空格分隔,最后一行不足 5 个数的原样输出即可。
【样例输入】3
【样例输出】2 3
【样例输入】10
【样例输出】2 3 5 7
【样例输入】50
【样例输出】
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
3判断列表有序
【问题描述】从键盘读取一组整数,判断该组数据是否升序排列,返回提示信息。
【输入形式】输入一组整数,数量未知。
【输出形式】输出判断结果。
【样例输入】1 2 3 2 1
【样例输出】list [1 2 3 2 1] is not sorted
【样例输入】1 2 3
【样例输出】list [1 2 3] is already sorted
4 统计数字个数
【问题描述】从键盘读取一些正整数,统计每个正整数出现的次数。
【输入形式】输入一组正整数,数量未知。
【输出形式】输出统计结果,按照数字大小排序。(test:两个数字之间用 tab 键分隔)
【样例输入】2 5 6 5 4 3 2
【样例输出】
2 2
3 1
4 1
5 2
6 1
8字母数字转换
【问题描述】某手机键盘如图所示,输入一个字符串,判断字符串上的字符是否都在图示手机键盘上,若有不在手机键盘上的字符,则提示字符串非法;若是合法的字符串,将字符串中的字母根据手机键盘上的对应关系转换为数字,其它字符不变,输出转换后的字符串。不论判断字符串是否合法还是转换,均不考虑字母大小写。
手机键盘.jpg
【输入形式】输入一个字符串。
【输出形式】输出转换后的字符串或者字符串非法提示。
【样例输入】130024ktrfa
【样例输出】13002458732
【样例输入】139-0242-WNes
【样例输出】139-0242-9637
【样例输入】-523145$6
【样例输出】-523145$6 invalid
9在字符串中查找第一个不重复字符
【问题描述】输入一串字符,在该字符串中查找第一个不重复字符。
【输入形式】输入一串字符
【输出形式】第一个不重复字符或错误信息
【样例输入】abbccdefafgg
【样例输出】d
【样例输入】ababab
【样例输出】ababab error
10去除数组中相同元素
【问题描述】把整数数组中值相同的元素删除得只剩一个,并把剩余元素依次向前移动。
【输入形式】输入数组元素。
【输出形式】去除数组中相同元素后的新数组。
【样例输入】
1 2 3 1 4
【样例输出】
1 2 3 4
【样例输入】
1 2 3 1 1
【样例输出】
1 2 3