4.8 练习与作业

if语句练习

  1. 输入三个整数 x,y,z,请把这三个数由小到大输出。

  2. 输入一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位与千位相同。

  3. 输入一元二次方程 ax**2+bx+c=0 的 a,b,c,求两个根,如果判别式为负数给出error,如果判别式不为负数给出两个根(大的在前),保留两位小数。

  4. 四舍五入,输入一个 4 位以上的正整数,根据十位四舍五入到百位。

    例如:输入:3456,输出:3500

  5. 从键盘输入一个年份,判断此年份是闰年还是平年。

    例如:1987:平年;1984:闰年;1900:平年;2000:闰年

  6. 人机猜拳游戏,输入一个数字 0,1,2 代表剪刀石头布,使用随机数模块让程序也出一个数字,对人机猜拳进行结果判断。

    用到的模块:random,使用方法为:import random,然后在程序中使用random.randint(0, 2),生成随机数:0,1,2

  7. 输入三个数值作为三角形的三条边,确定这个三角形的特性。

    例如输入:1,2,3,则不是三角形;输入:3,3,4,则是等腰三角形;输入:4,4,4,则是等边三角形;输入:3,4,5,则是直角三角形;除此以外,则是普通三角形。

  8. 企业发放的奖金根据利润提成。利润(profit)低于或等于10万元时,奖金(bonus)可提10%;利润高于10万元,低于或等于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时,高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润profit,求应发放奖金总数。

循环语句练习

  1. 给定一个正整数,反转输出。例如输入:3568,输出:8653。提示:print函数中使用end='',可以使输出不换行。

  2. 打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: 153 是一个“水仙花数” ,因为 153 = 1的三次方 + 5的三次方 + 3的三次方。

  3. 一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 n 次落地时,共经过多少米?第 n 次反弹多高?输入 n,得出这两个值。

  4. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第 n 天早上剩下多少。

  5. 求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...,精确到小数点后第 6 位。

  6. 输入 20 个整数,统计其中正数、负数和零的个数。

  7. 打印九九乘法表。

  8. 百钱买百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何?

  9. 已知 XYZ + YZZ = 532,其中,X、Y、Z 为数字,编程求出 X、Y 和 Z 的值。

  10. 验证 10000 以内的“角谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进行下去,最终必然得到 4-2-1 的循环。

  11. 使用嵌套循环,打印平行四边形,输入平行四边形的底和高。例如:

    请输入平行四边形的底:6
    请输入平行四边形的高:3
        * * * * * *
      * * * * * *
    * * * * * *
    
  12. 使用嵌套循环,打印直角三角形,底和高相等。输入直角三角形的底。例如:

    请输入直角三角形的底:4
    *
    * *
    * * *
    * * * *
    
  13. 使用循环,打印菱形,对角线相等。输入菱形的对角线(奇数)。例如:

    请输入菱形的对角线(奇数):5
        *
      * * *
    * * * * *
      * * *
        *
    
  14. 使用循环打印钻石图形,对角线相等且为奇数,即用 * 包含空白的菱形。

    请输入钻石对角线长度: 9
    * * * * * * * * * * * 
    * * * * *   * * * * *
    * * * *       * * * *
    * * *           * * *
    * *               * *
    *                   *
    * *               * *
    * * *           * * *
    * * * *       * * * *
    * * * * *   * * * * *
    * * * * * * * * * * *
    

综合练习

  1. 给定一个正整数,判断是否是素数,素数是一个只能被 1 和自身整除的正整数。

  2. 将给定的一个正整数分解质因数,例如输入 90,输出 90=2*3*3*5。

  3. 输入数字n(n>2),输出斐波那契数列前n个数。斐波那契数列数列从第三个数开始,后面的数等于前面两个数相加:0,1,1,2,3,5,8

  4. 找出 10000 以内的完全数,完全数是除了自身之外,所有的因数相加等于自身。例如 6 的因数有1,2,3,6,除去 6 之外,6=1+2+3。

  5. 用循环改进猜拳游戏,输入 0,1,2 的时候,游戏反复进行;输入 3 的时候,游戏结束;输入其它数值,提示输入错误,请重新开始。

  6. 改进循环登录操作,用户名或密码累计输入错误三次,则结束循环。

  7. 一个正整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,求这个整数(一个即可)。

  8. 求两个数的最大公约数,欧几里德算法(辗转相除法),假如需要求 24 和 16 两个正整数的最大公约数,是这样进行的:求第一个数 24 对第二个数 16 的余数 8,当余数不为 0 时,将第二个数 16 作为第一个数,将余数 8 作为第二个数,再求余数,直到余数为 0,则第二个数为这两个数的最大公约数。

  9. 体操评分,依次输入 10 名评委所评分数,去除一个最高分和一个最低分,再算出平均分作为选手的得分。

  10. 编写一个帮助小学生学习加法的程序,一共 10 道题每题 10 分,随机产生 2 个 10 以内的数,让学生输入答案,判断是否正确,得出评分。

  11. 根据输入宽度打印田字格:

    请输入宽度:11
    + - - - - + - - - - + 
    |         |         |
    |         |         |
    |         |         |
    |         |         |
    + - - - - + - - - - +
    |         |         |
    |         |         |
    |         |         |
    |         |         |
    + - - - - + - - - - +