高级语言程序设计课程第四次个人作业
这个作业属于https://edu.cnblogs.com/campus/fzu/gjyycx
这个作业要求在https://edu.cnblogs.com/campus/fzu/gjyycx/homework/14577
学号:102500430
姓名:黄华烨
运行以下程序给出程序结果(无需代码,截图程序输出结果,如有错误可自行修改)。
(1)

(2)

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

do while

两个程序输出结果一样,但while循环是先判断再运行,有可能一次都没循环就结束,而do while是先运行再判断,至少会循环一次
设计一个程序,实现功能:逻辑表达式中的运算符,只有会影响表达式求值时,才会执行。

用for循环输出六行,第一行有FEDCBA,第二行是FEDCB,第三行是FEDC....,以此类推。

编程输入n, 计算s=1+(1+2)+(1+2+3)+…+(1+2+3+4+…n)。

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

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


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

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

算法思想
- 遍历100~200的每个整数(候选数n);
- 对每个候选数n,判断其是否为素数:
判断条件:
用2~√n(根号n)之间的整数依次整除n;
若存在能整除n的数,说明n不是素数,直接跳过;
若遍历完2~√n都不能整除n,说明n是素数,输出n; - 重复步骤1~2,直到遍历完所有候选数。
传统流程图
graph TD
A[开始] --> B[n=100]
B --> C{n ≤ 200?}
C -- 是 --> D[i=2, flag=1]
D --> E{i ≤ sqrt(n)?}
E -- 是 --> F{n%i0?}
F -- 是 --> G[flag=0, break]
F -- 否 --> E
E -- 否 --> H{flag1?}
H -- 是 --> I[输出n]
H -- 否 --> J[n++]
I --> J
J --> C
C -- 否 --> K[结束]
NS流程图
graph LR
A[开始] --> B[初始化n=100]
B --> C{循环条件: n≤200}
C -- 是 --> D[初始化i=2, flag=1]
D --> E{内层循环: i≤sqrt(n)}
E -- 是 --> F{n%i0?}
F -- 是 --> G[flag=0, 跳出内层循环]
F -- 否 --> H[i++]
H --> E
E -- 否 --> I{flag1?}
I -- 是 --> J[打印素数n]
I -- 否 --> K[n++]
J --> K
K --> C
C -- 否 --> L[结束]
编写并运行书本第6章6.16编程练习题目中的第1,5,7,10,13,16,18题。
1.编写一个程序,创建一个包含26个元素的数组,并在其中存储26个小写字母。然后打印数组的所有内容。
![6.16编程练习1]()
5.编写一个程序,提示用户输入大写字母。使用嵌套循环以下面金字塔型的格式打印字母:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
打印这样的图形,要根据用户输入的字母来决定。例如,上面的图形是在用户输入 E 后的打印结果。
提示:用外层循环处理行,每行使用3个内层循环,分别处理空格、以升序打印字母、以降序打印字母。如果系统不使用 ASCII 或其他以数字顺序编码的代码,请参照练习3的解决方案。
![6.16编程练习5]()
7.编写一个程序把一个单词读入一个字符数组中,然后倒序打印这个单词。提示: strlen ()函数(第4章介绍过)可用于计算数组最后一个字符的下标。
![6.16编程练习7]()
10.编写一个程序,要求用户输入一个上限整数和一个下限整数,计算从上限到下限范围内所有整数
的平方和,并显示计算结果。然后程序继续提示用户输入上限和下限整数,并显示结果,直到用户输入的上限整数等于或小于下限整数为止。程序的运行示例如下:
Enter lower and upper integer limits :59
The sums of the squares from 25 to 81 is 255
Enter next set of limits :325
The sums of the squares from 9 to 625 is 5520
Enter next set of limits :5 5
Done
![6.16编程练习10]()
13.编写一个程序,创建一个包含8个元素的 int 类型数组,分别把数组元素设置为2的前8次幂。使用 for 循环设置数组元素的值,使用 do while 循环显示数组元素的值。
![6.16编程练习13]()
16.Daphne以10%的单利息投资了100美元(也就是说,每年投资获利相当于原始投资的10%)。Deirdre以5%的复合利息投资了100美元(也就是说,利息是当前余额的5%,包含之前的利息)。编写一个程序,计算需要多少年Deirdre的投资额才会超过Daphne ,并显示那时两人的投资额。
![6.16编程练习16]()
18.Rabnud 博士加入了一个社交圈。起初他有5个朋友。他注意到他的朋友数量以下面的方式增长。第1周少了1个朋友,剩下的朋友数量翻倍;第2周少了2个朋友,剩下的朋友数量翻倍。一般而言,第 n 周少了 n 个朋友,剩下的朋友数量翻倍。编写一个程序,计算并显示 Rabnud 博士每周的朋友数量。该程序一直运行,直到超过邓巴数( Dunbar ' s number )。邓巴数是粗略估算一个人在社交圈中有稳定关系的成员的最大值,该值大约是150。
![6.16编程练习18]()
编写并运行书本第7章7.12编程练习题目中的第1,2,4~5,7题。
1.编写一个程序读取输入,读到#字符停止,然后报告读取的空格数、换行符数和所有其他字符的数量。
![7.12编程练习1]()
2.编写一个程序读取输入,读到#字符停止。程序要打印每个输入的字符以及对应的 ASCII 码(十进制)。每行打印8个"字符﹣ ASCII 码"组合。建议:使用字符计数和求模运算符(%)在每8个循环周期时打印一个换行符。
![7.12编程练习2]()
4.使用 if else 语句编写一个程序读取输入,读到#停止。用感叹号替换句号,用两个感叹号替换原来的感叹号,最后报告进行了多少次替换。
![7.12编程练习4]()
5.使用 switch 重写练习4。
![7.12编程练习5]()
7.编写一个程序,提示用户输入一周工作的小时数,然后打印工资总额、税金和净收入。做如下假设: a .基本工资=10.00美元/小时
b .加班(超过40小时)=1.5倍的时间
c .税率:前300美元为15%
续150美元为20%
余下的为25%
用# define 定义符号常量。不用在意是否符合当前的税法。
![7.12编程练习7]()
总结&思考
本次作业要求进一步熟悉while,do while,for,switch,if else等循环的用法,不同循环有各自的优缺点,根据要求灵活使用,方能事半功倍












浙公网安备 33010602011771号