官术网_书友最值得收藏!

3.5 上機實踐

1. 完成本章中的例3.1~例3.23,熟悉Python語言的3種基本控制結構,即順序結構、選擇結構、循環結構。

2. 編寫程序,計算1+2+3+…+100之和。

3. 編寫程序,計算10+9+8+…+1之和。

4. 編寫程序,計算1+3+5+7…+99之和。

5. 編寫程序,計算2+4+6+8…+100之和。

6. 編寫程序,使用不同的實現方法輸出2000~3000的所有閏年,運行效果如圖3-10所示。

圖3-10 2000~3000的所有閏年

7. 編寫程序,計算Sn=1-3+5-7+9-11+…。

提示

可以使用if i%2==0的語句形式判斷i是否為偶數。

8. 編寫程序,計算Sn=1+1/2+1/3+…。

9. 編寫程序,打印九九乘法表。要求輸出九九乘法表的各種顯示效果(上三角、下三角、矩形塊等方式)。

10. 編寫程序,輸入三角形的3條邊,先判斷是否可以構成三角形,如果可以,則進一步求三角形的周長和面積,否則報錯“無法構成三角形!”。其運行效果如圖3-11所示(結果均保留一位小數)。

提示

(1)3個數可以構成三角形必須滿足如下條件:每條邊的邊長均大于0,并且任意兩邊之和大于第三邊。

(2)已知三角形的3條邊,,其中h為三角形周長的一半。

11. 編寫程序,輸入x,根據如下公式計算分段函數y的值。請分別利用單分支語句、雙分支結構以及條件運算語句等方法實現。其運行效果如圖3-12所示。

圖3-11 三角形周長和面積的運行效果

圖3-12 分段函數的運行效果

12. 編寫程序,輸入一元二次方程的3個系數a、b和c,求ax2+bx+c=0方程的解。其運行效果如圖3-13所示。

提示

(1)方程ax2+bx+c=0的解有以下幾種情況。

①a=0 and b=0,無解。

圖3-13 求解一元二次方程

②a=0 and b!=0,有一個實根:

③b2-4ac=0,有兩個相等實根:

④b2-4ac>0,有兩個不等實根:

⑤b2-4ac<0,有兩個共軛復根:

(2)可以利用“print(str.format("此方程有兩個不等虛根:{0}+{1}i和{0}-{1}i ",realPart,imagPart))”的語句形式輸出方程的兩個共軛復根。

13. 編寫程序,輸入整數n(n≥0),分別利用for循環和while循環求n!。其運行效果如圖3-14所示。

提示

(1)n!=n×(n-1)×(n-2)×…×2×1。例如5!=5×4×3×2×1=120,特別地,0!=1。

(2)一般情況下,累乘的初值為1,累加的初值為0。

(3)如果輸入的是負整數,則繼續提示輸入非負整數,直到n≥0。

14. 編寫程序,產生兩個0~100(包含0和100)的隨機整數a和b,求這兩個整數的最大公約數和最小公倍數。其運行效果如圖3-15所示。

圖3-14 階乘的運行效果

圖3-15 最大公約數和最小公倍數的運行效果

提示

(1)可以利用“random.randint(0,100)”的語句形式生成0~100(包含0和100)的隨機整數。

(2)利用“輾轉相除法”求最大公約數,具體算法如下。

①對于已知的兩個正整數m、n,使得m>n。

②m除以n得余數r。

③若r≠0,則令m←n,n←r,繼續相除得到新的余數r。若仍然r≠0,則重復此過程,直到r=0為止。最后的m就是最大公約數。

(3)求得了最大公約數,最小公倍數就是已知的兩個正整數之積除以最大公約數的商。

主站蜘蛛池模板: 平和县| 黑山县| 竹溪县| 阿克苏市| 武胜县| 日照市| 新闻| 拜城县| 广河县| 阿尔山市| 东明县| 金川县| 西平县| 青神县| 六枝特区| 汉寿县| 郯城县| 甘谷县| 铅山县| 启东市| 嘉义县| 加查县| 宣汉县| 土默特右旗| 邵武市| 岐山县| 安宁市| 松原市| 裕民县| 沈丘县| 靖宇县| 揭东县| 贺兰县| 汶上县| 霍州市| 施秉县| 镇平县| 丹寨县| 田林县| 淳化县| 衡水市|