高级语言程序设计课程第四次个人作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx

这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14577

学号:102500336

姓名:林陈帅

  1. 运行以下程序给出程序结果(无需代码,截图程序输出结果,如有错误可自行修改)
    捕获
    捕获1

  2. 程序设计

  • 用while和do while分别设计程序实现:用公式π/4=1-1/3+1/5-1/7+1/9+...求π的近似值,直到某一项的绝对值小于10-4为止,对两个程序的不同之处进行讨论。
    联想截图_20251104142551
    联想截图_20251104142819
    联想截图_20251104142836
    不同之处:while是先判断再执行,do while是先执行再判断,do while循环至少会进行一次

  • 设计一个程序,实现功能:逻辑表达式中的运算符,只有会影响表达式求值时,才会执行。
    联想截图_20251104164529
    联想截图_20251104164545

  • 用for循环输出六行,第一行有FEDCBA,第二行是FEDCB,第三行是FEDC....,以此类推。
    联想截图_20251104143649
    联想截图_20251104143705

  • 编程输入n, 计算s=1+(1+2)+(1+2+3)+…+(1+2+3+4+…n)。
    联想截图_20251104144545
    联想截图_20251104144556

  • 用for循环给一组整型类型的数组进行赋值,输出,以及求和,数组长度为8。
    联想截图_20251104145402
    联想截图_20251104145423

  • 设计一个if和else的多分支程序(分支数目大于3),该多分支程序再用switch语句进行改写,同时设计一个使用条件运算符(?:)的双分支语句。
    联想截图_20251104150913
    联想截图_20251104150938
    联想截图_20251104151959
    联想截图_20251104152035

  • 设计一个循环程序,再循环中用break和continue语句,实现不同的程序效果,给出结果并讨论。
    image
    image
    break会使程序退出当前循环,continue会使程序直接进入下一个循环的条件判断

  • 设计一个程序求100~200间的全部素数,给出算法思想、传统流程图、程序NS流程图。
    算法思想
    1)定义一个函数,先判断数能否被2整除,再判断能否被其他不大于该数的开平方的奇数整除,上述两个条件满足其一就立即返回0,否则遍历因数结束后返回1
    2)用一个for循环遍历100到200的所有数
    3)将函数的返回值作为if的判断条件,如果返回值为真则输出该数,反之不输出
    传统流程图
    开始

    初始化:n=100

    n ≤ 200? → 否 → 结束
    ↓是
    n是偶数? → 是 → 函数返回0 → 不输出 → n++
    ↓否
    i = 3;i ≤ √n? → 否 → 判断结束 → 函数返回1 → 输出n → n++
    ↑ ↓是
    ↑ n能被i整除? → 是 → 函数返回0 → 不输出 → n++
    ↑ ↓否
    i=i+2
    NS流程图

+-----------------------+
|     judge(int n)      |
+-----------------------+
|       i = 3           |
+-----------------------+
|   if n % 2 == 0       |
|   +-----+-----------+ |
|   | 真  |    假     | |
|   +-----+-----------+ |
|   |return 0|继续执行 | |
|   +-----+-----------+ |
+-----------------------+
|   for i <= sqrt(n)    |
|   +-----------------+ |
|   |  if n % i == 0  | |
|   | +-----+-------+ | |
|   | | 真  |  假   | | |
|   | +-----+-------+ | |
|   | |return 0|i+=2 | | |
|   | +-----+-------+ | |
|   +-----------------+ |
+-----------------------+
|      return 1         |
+-----------------------+
+-----------------------+
|        main()         |
+-----------------------+
|      n = 100          |
+-----------------------+
|   for n <= 200        |
|   +-----------------+ |
|   |  调用 judge(n)   | |
|   +-----------------+ |
|   | if judge(n)==1  | |
|   | +-----+-------+ | |
|   | | 真  |  假   | | |
|   | +-----+-------+ | |
|   | |打印n|       | | |
|   | +-----+-------+ | |
|   +-----------------+ |
|        n++           |
+-----------------------+
|      return 0         |
+-----------------------+
  • 编写并运行书本第6章6.16编程练习题目中的第1,5,7,10,13,16,18题。
    6.16 - 1
    image
    image
    6.16 - 5
    image
    image
    6.16 - 7
    image
    image
    6.16 - 10
    image
    image
    6.16 - 13
    image
    image
    6.16 - 16
    image
    image
    6.16 - 18
    image
    image

  • 编写并运行书本第7章7.12编程练习题目中的第1,2,4~5,7题。
    7.12 - 1
    image
    image
    7.12 - 2
    image
    image
    7.12 - 4,5
    image
    image
    image
    7.12 - 7
    image
    image
    image
    总结: 本次作业让我巩固了分支结构(if-else/switch)和循环结构(while/for/do while)的运用,让我体会到了上述结构在具体运用过程中的细节和选择策略。
    思考: 对于这些控制语句在实际程序中的书写,例如循环和分支的嵌套,需要在设计程序时先精确把握程序的逻辑,再写出来就不至于逻辑混乱或者写到一半卡壳。

posted @ 2025-11-05 20:25  lyxy  阅读(6)  评论(0)    收藏  举报