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

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14577
学号:102500402
姓名:林睿滢


运行以下程序给出程序结果

T1
image
//只要输入的不是数字程序就结束了,不一定是读到'q'才结束
T2
image
//π精确到小数后4位


编写并运行书本第6章6.16编程练习题目中的第1,5,7,10,13,16,18题

T1 26个小写字母
image
T5 字母金字塔
image
T7 单词倒序
image
T10 平方和
image
T13 2的前8次幂
image
T16 投资额
image
T18 邓巴数
image


编写并运行书本第7章7.12编程练习题目中的第1,2,4~5,7题

T1 读入字符并判断类型
image
T2 字符-ASCII码
image
//如果我读入了一个回车呢(?
//好像会打乱一行八个的格式吧(挠头)
//需要写一个(getchar()!='\n')来去掉回车咩 题目没有具体要求
T4 字符替换 if-else
image
T5 字符替换 switch
image
T7 算工资、税金、净收入
image


程序设计

T1 用while和do while分别设计程序实现:用公式π/4=1-1/3+1/5-1/7+1/9+...求π的近似值,直到某一项的绝对值小于10-4为止,对两个程序的不同之处进行讨论
image

  • 思考:
    while是先判断后执行,语句至少执行0次
    而do-while是先执行后判断,语句至少执行1次
    但是两个写法得到的答案是一样的,说明循环的执行次数相同,但是条件语句的执行次数不一样(在程序加入了计数器进行验证)

T2 设计一个程序,实现功能:逻辑表达式中的运算符,只有会影响表达式求值时,才会执行
image

  • 思考:
    我们已知&&遇到表达式值为0将会停止,||遇到表达式值为1将会停止
    第一条和第二条都停止在d==1而结果并不一样,因为后者d==1的语句前计数器多加了一次
    我们凭直觉会认为第三条和第四条都会停在b==1,而实际上两条都停在了第一个++cnt,因为这个语句的返回值是1,所以得到的结果都是1

T3 用for循环输出六行,第一行有FEDCBA,第二行是FEDCB,第三行是FEDC....,以此类推
image
T4 编程输入n, 计算s=1+(1+2)+(1+2+3)+…+(1+2+3+4+…n)
image
T5 用for循环给一组整型类型的数组进行赋值,输出,以及求和,数组长度为8
image
//我不知道赋值是要赋什么值(要我输入数字还是程序内赋值

T6 设计一个if和else的多分支程序(分支数目大于3),该多分支程序再用switch语句进行改写,同时设计一个使用条件运算符(?:)的双分支语句
image

T7 设计一个循环程序,再循环中用break和continue语句,实现不同的程序效果,给出结果并讨论
image

  • 思考:
    break:遇到5直接终止循环 效果为输出1~4
    continue:遇到5直接跳过 效果为输出1~10除了5以外的数

T8 设计一个程序求100~200间的全部素数,给出算法思想、传统流程图、程序NS流程图
image

  • 算法思想:使用两层for循环

    • 外层循环i遍历100~200
      (优化了一下,因为除了2以外的偶数一定不会是质数,所以只遍历了100~200的奇数)
    • 内层循环j遍历因数
      (理论范围是2~i-1 ,这里将范围优化为3~根号i取整即sqrt(i),排除2是因为偶数已经被排除,上界改为sqrt(i)可以去重减少计算量)
    • 使用一个标记fl来记录是否出现因数,若出现,将fl的值改为1并跳出循环,如果没有出现因数则fl的值为0,用if-else语句通过判断fl的值来确定i是否为质数(注意:内层循环开始前fl要清零)
  • 传统流程图
    3480e633e97baf49789363da87384848

  • 程序NS流程图
    322b26576e6afb688e0161731220de87


总结
本次作业主要练习了循环结构,练习了break和continue的使用,同时加入了之前学习的判断语句。涉及内容较多,我将多加巩固。

posted @ 2025-11-10 13:40  STYN  阅读(6)  评论(0)    收藏  举报