C語言II—做業01

這個做業屬於哪一個課程 https://edu.cnblogs.com/campus/zswxy/SE2020-1/
這個做業要求在哪裏 https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11778
這個做業的目標 <學習文件和測試程序>
學號 <20209089>

1、本週教學內容&目標

第6章 回顧數據類型和表達式,第12章 文件算法

2、本週做業(總分:50分)

2.1 題目:給定一個十進制正整數N,寫下從1開始,到N的全部整數,而後數一下其中出現的全部「1」的個數。
例如:緩存

N=2,寫下1,2。這樣只出現了1個」1「。函數

N=12,咱們會寫下1,2,3,4,5,6,7,8,9,10,11,12。這樣,1的個數是5。學習

問題是:
1.寫出一個函數f(N),返回1到N之間出現的」1「的個數,好比f(12)=5;
2.知足條件」f(N)=N「的最大的N是多少?
N最大的數爲1111111110
要求:測試

1.貼出代碼圖片,寫出解題思路,列出測試數據(5分)
3d

思路:定義函數f(n),令計算1數量的變量爲num,則num=f(n);函數f(n)中用for(i=1;i<=n;i++)的循環來用i表示1到n的全部數值;再用while的循環%10取餘 即爲個位數,判斷是否爲一;再\10去掉已經判斷過的個位,依次計數,整合,最後獲得全部的1的數量。blog

測試數據:
圖片

2.給出不一樣測試數據的運算時間,若是你的運算時間不變,說明你的測試數據不夠大(5分)
內存

3.思考針對足夠大的數據,如何減小運算時間,並給出在原有算法基礎上的改進算法和改進思路。(10分)
(1).把定義的整形變量改用雙精度浮點型的變量;
(2).取消定義函數,直接由兩個循環的嵌套,定義一個變量來實現1的數量計數。get

2.2 將上題中多組測試數據寫入文件,並給出測試程序以檢測你的代碼有沒有問題,貼出你的代碼、運行結果和文件內容。(5分)



2.3 用本身的語言回答兩個問題,並給出所查閱資料的引用(10分)

1.什麼是文件緩衝系統?工做原理如何?
文件緩衝區是用以暫時存放讀寫期間的文件數據而在內存區預留的必定空間。經過磁盤緩存來實現,磁盤緩存自己並非一種實際存在的存儲介質,它依託於固定磁盤,提供對主存儲器存儲空間的擴充,即利用主存中的存儲空間, 來暫存從磁盤中讀出(或寫入)的信息。 主存也能夠看作是輔存的高速緩存, 由於,輔存中的數據必須複製到主存方能使用;反之,數據也必須先存在主存中,才能輸出到輔存。

2.什麼是文本文件和二進制文件?
1.文本文件是一種計算機文件,它是一種典型的順序文件,其文件的邏輯結構又屬於流式文件。
特別的是,文本文件是指以ASCII碼方式(也稱文本方式)存儲的文件,更確切地說,英文、數字等字符存儲的是ASCII碼,而漢字存儲的是機內碼。文本文件中除了存儲文件有效字符信息(包括能用ASCII碼字符表示的回車、換行等信息)外,不能存儲其餘任何信息.
2.包含在 ASCII及擴展 ASCII 字符中編寫的數據或程序指令的文件。計算機文件基本上分爲二種:二進制文件和 ASCII(也稱純文本文件),圖形文件及文字處理程序等計算機程序都屬於二進制文件。這些文件含有特殊的格式及計算機代碼。ASCII 則是能夠用任何文字處理程序閱讀的簡單文本文件。

2.4 請給出本週學習總結(15分)

1 學習進度條(5分)

2 累積代碼行和博客字數(5分)

3 學習內容總結和感悟(5分)
1.新的學期對上學期所學的忘記的差很少了,須要本身去好好回顧一下 2.對於這一週學的文件還有好多弄不明白,作起題目來感到很是吃力 3.新學期,但願本身能夠好好學好C語言這門功課

相關文章
相關標籤/搜索