高级语言程序设计课程第四次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14577
学号:102500323
姓名:黄铭昊
一、运行以下示例程序,给出程序结果
(1)

(2)

二、完成以下题目
1、
要求:用while和do while分别设计程序实现:用公式π/4=1-1/3+1/5-1/7+1/9+...求π的近似值,直到某一项的绝对值小于10-4为止,对两个程序的不同之处进行讨论。
讨论:while循环的逻辑是先判断再执行,do while循环的逻辑是先执行后判断,在本题中体现为当while判断出最后一项小于0.0001时循环已停止,不会把这一项加入总和,但do while是先把这一项加入总和,再因为判断出这一项小于0.0001而停止循环,do while会比while多加一项,但实际情况因为精度问题两个的计算结果相同。




2、
要求:设计一个程序,实现功能:逻辑表达式中的运算符,只有会影响表达式求值时,才会执行。
说明:定义了一个辅助函数func(),当func()被执行时会输出“func被执行”;此时if条件中a=0为假,func()返回值为1,为真,但&&需要两个条件均为真,a为假则&&不会去执行func()函数,此时&&的执行与否会影响表达式,因此&&需要执行。


3、
要求:用for循环输出六行,第一行有FEDCBA,第二行是FEDCB,第三行是FEDC....,以此类推。
思路:外循环表示行数,内循环用于倒序输出字母


4、
要求:编程输入n, 计算s=1+(1+2)+(1+2+3)+…+(1+2+3+4+…n)。
思路:内循环先进行每个数列的累加,再由外循环将累加后的数列再次累加


5、
要求:用for循环给一组整型类型的数组进行赋值,输出,以及求和,数组长度为8。
思路:循环次数为数组中数的个数,每次循环对应输入或输出数组中的一个项


6、
要求:设计一个if和else的多分支程序(分支数目大于3),该多分支程序再用switch语句进行改写,同时设计一个使用条件运算符(?:)的双分支语句。
说明:以成绩评级和是否及格为背景,10090为A,8980为B,7970为C,6960为D,60以下为E,每个等级都是一条分支,作为if括号中的条件,或case中的表达式;
同时以是否及格作为两个分支,使用( )?: 条件运算符表达




7、
要求:设计一个循环程序,再循环中用break和continue语句,实现不同的程序效果,给出结果并讨论。
说明:设计了一个从1输出到10的简单程序,其中i=3时的使用continue跳过了本次循环,不会输出3;在i=7时使用了break,停止循环,7及之后的数均不会被输出


8、
要求:设计一个程序求100~200间的全部素数,给出算法思想、传统流程图、程序NS流程图。
思路:外循环表示100-200之间,内循环使i从1除到i本身,若除某个数没有余数,这个数就是i的因数,n表示因数的个数,每找到一个因数n加一,只有两个因数的数(n=2)为素数


传统流程图:

NS流程图:

三、第六章编程练习
1、


5、


7、


10、


13、


16、


18、


四、第七章编程练习
1、


2、


4、


5、


7、


五、总结与思考
通过这次作业,我能够熟练运用while循环和for循环及嵌套循环,合理选择if else句式或switch句式,这使我的代码更加丰富,能处理更加复杂的情况。
同时学会了用传统流程图和NS流程图表示我的代码思路。
浙公网安备 33010602011771号