1. 程式人生 > >20172327 2017-2018-2 《程序設計與數據結構》第二周學習總結

20172327 2017-2018-2 《程序設計與數據結構》第二周學習總結

在一起 ade mac head 機制 工程 異常 some ati

20172327 2017-2018-2 《程序設計與數據結構》第二周學習總結

教材學習內容總結

  • 字符串的拼接和轉義序列的使用
  • 變量的聲明和使用
  • 討論語法及表達式的處理
  • 定義數據轉換類型和實現類型轉換的機制
  • 創建Scanner類

教材學習中的問題和解決問題

  • 暫無

代碼學習中的問題和解決過程

  • 問題1:在提交過程中,突然遇到無法上傳的情況
    技術分享圖片

  • 問題2解決方案:通過上網查找,輸入git pull之後彈出一個編輯框,選擇關閉之後,再次用git push就成功了。
  • 問題2:在按照例題2.10打代碼時,Javac都成功了但是在Java運行時卻遇到提示說在類裏找不到main方法,就讓我很無奈。
    技術分享圖片
    技術分享圖片

  • 問題2解決方案:學長告訴我,我所編輯的是一個類,需要在有main函數的類中創建對象調用。要將類的那一章看一下,我大概看了一下,不過還是不太懂。
  • 問題3:在編程項目第pp2.12項目的編寫中遇到了下面問題。
    技術分享圖片

  • 翁提3解決方案:經過檢查,發現在最初定義時,將周長和面積分別定義成l,s;但後面卻代入的時L和S,所以出現錯誤。

上周考試錯題總結

  • 3.When executing a program, the processor reads each program instruction from (當執行一個程序時,處理器從___讀取每個程序指令)
    A .secondary memory (storage) (輔助存儲器(存儲))
    B .the Internet (互聯網)
    C .registers stored in the processor (儲存在處理器中的寄存器)
    D .main memory (主存儲器)
    E .could be any of these (可以是以上這些中的任何一個)
  • 當執行一個程序時,處理器從主存儲器讀取每個程序指令。
    解析:在執行程序之前,程序首先從輔助存儲器加載到主存儲器中,以便處理器不會因讀取每條指令而變慢。
  • 4.Which memory capacity is the largest? (哪個選項的存儲容量最大?)
    A .1,500,000,000,000 bytes (1,500,000,000,000個字節)
    B .100 gigabytes (100千兆字節)
    C .3,500,000 kilobytes (3,500,000千字節)
    D .10 terabyte (10太字節)
    E .12,000,000 megabytes (12,000,000百萬字節)
  • 解析:A.1.5兆字節,B.0.1兆字節,C.3.5億字節,D.10兆字節,E.12兆字節,所以選E
  • 7.The ability to directly obtain a stored item by referencing its address is known as (通過引用地址直接獲得存儲項的能力被稱為___)
    A .random access (隨機存取)
    B .sequential access (順序存取)
    C .read-only access (只讀訪問)
    D .fetch access (獲取訪問)
    E .volatility (易變性)
  • 解析:隨機存取(可以說成是直接存取)意味著任何項目都可以僅基於其地址進行檢索。隨機存取是RAM和ROM存儲器使用的訪問形式。磁帶使用順序訪問。
  • 11.Comments should (註釋應該)
    A .rephrase the code it explains in English (用英語復述它解釋的代碼)
    B .be insightful and explain what the instruction‘s intention is ( 有深刻見解並解釋指令的意圖是什麽)
    C .only be included in code that is difficult to understand (僅僅包含在難以理解的代碼中)
    D .be used to define variables whose names are not easy to understand (被用於解釋難以理解的變量名稱)
    E .all of the above (以上皆是)
  • 解析:註釋時程序員唯一可以隨意使用並獨立於代碼的語言特性。程序員通過註釋表達自己的想法及做出相關的解釋。註釋應當揭示程序員的初衷和意圖。
  • 14.The instruction: System.out.println("Hello World"); might best be commented as (這個指令最好被註釋為)
    A .// prints "Hello World" to the screen (將"Hello World"打印到屏幕上)
    B .// prints a message (打印一條信息)
    C .// used to demonstrate an output message (用來演示輸出信息)
    D .//
    E .// meaningless instruction (沒有意義的指令)
  • 解釋:A和B中的註釋是顯而易見的,而D和E的註釋是沒有意義的。C中的註釋解釋了為什麽指令出現在程序中。
  • 15.Which character below is not allowed in an identifier? (下面哪個字符不允許在標識符中使用?)
    A .$
    B ._
    C .0 (zero)(零)
    D .q
    E .^
  • 解釋:標識符是由仍何字母,數字,下劃線和美元符號組成的,沒有E中的符號。
  • 17.Which of the following is a legal Java identifier? (下面哪個是合法的Java標識符?)
    A .i
    B .class
    C .ilikeclass!
    D .idon‘tlikeclass
    E .i-like-class
  • 解釋:Java標識符不能有字符“!”在他們的回答中,C,D和E是錯誤的。“類”這個詞在Java中是一個保留的詞,不能用作標識符。標識符"i"是完全合法的盡管它不一定是go
  • 18.A unique aspect of Java that allows code compiled on one machine to be executed on a machine of a different hardware platform is Java‘s (Java的獨特之處在於其___,它允許在一臺機器上編譯的代碼在不同的硬件平臺上執行)
    A .bytecodes (字節碼)
    B .syntax (語法)
    C .use of objects (所使用的對象)
    D .use of exception handling (所使用的異常處理)
    E .all of the above (以上皆是)
  • 解釋:Java程序的翻譯過程是首先將它編譯成字節碼,它在體系結構上是中立的(也就是說,無論架構平臺是什麽,都可以使用它們)。要執行該程序,字節碼必須由Java編譯器進一步編譯或由Java虛擬機解釋。
  • 21.Following Java naming convention, which of the following would be the best name for a class about store customers? (下列Java命名規範中,哪個是關於“store customers”類的最佳命名?)
    A .StoreCustomer
    B .Store Customer
    C .storeCustomer
    D .STORE_CUSTOMER
    E .Store-Customer
  • 解析:Java命名約定表明,類應該以大寫字母開頭,多字名稱應該以大寫字母開頭,而其余字符為小寫字母。單詞應該連接在一起而沒有空格,或者與“_”字符連接。答案B和E不是合法的名稱,並且使用Java命名約定,C可以作為一個變量名,D是一個常量。
  • 22.Which of the following would be a good variable name for the current value of a stock? (下面哪個是關於變量“current value of a stock”的最佳命名?)
    A .curstoval
    B .theCurrentValueOfThisStockIs
    C .currentStockVal
    D .csv
    E .current
  • 解釋:Java允許長變量名但程序員必須找到一個好的折中過度長名稱(與B)和名稱太短,了解他們使用(a和D)。目前這個名字可能會合理如果沒有其他程序中被引用“當前”值。
  • 23.Which of the following is a legal Java identifier? (下面哪個是合法的Java標識符?)
    A .1ForAll
    B .oneForAll
    C .one/4/all
    D .1_4_all
    E .1forall
  • 解釋:Java標識符不能以數字開頭(因此,D和E中的答案是非法的),不能包含“/”字符,因此C中的答案是非法的。Java標識符不能以數字開頭(因此,D和E中的答案是非法的),不能包含“/”字符,因此C中的答案是非法的。
  • 29.Java byte codes are directly executable whereas Java source code is not. (Java字節碼是可以直接執行的,而Java源代碼則不是。)
    A .true
    B .false
  • 解釋:Java源代碼和Java字節碼都不是可執行的。兩者都必須被編譯或解釋為機器代碼。Java字節碼是有用的,但是它們是獨立於機器的但是半編譯的代碼,它允許您的Java代碼通過Internet傳輸並在另一臺計算機上執行,即使其他計算機是完全不同的類型。
  • 32.The word "Public" is a reserved word. ("Public"是一個保留字。)
    A .true
    B .false
  • 解釋:“public”是一個保留字,但由於Java是區分大小寫的,“public”與“public”不同,因此“public”不是一個保留字。
  • 33.Reserved words in Java can be redefined by the programmer to mean something other than their original intentions. (在Java中,保留字可以被程序員重新定義,去表示不同於它們最初意義的其他含義。)
    A .true
    B .false
  • 解釋:無法重新定義Java保留字。
  • 34.In a Java program, dividing by 0 is a syntax error. (在Java程序中,除以0是一個語法錯誤。)
    A .true
    B .false
  • 解釋:在編譯時沒有檢測到除以0,並且由於計算機不能除以0,這是一個運行時錯誤。

[代碼托管](https://gitee.com/CS-IMIS-23/20172327mrf)

技術分享圖片

其他(感悟、思考等,可選)

進入第二周,有點難,程序的樣子和上一周有所改變,但要打的代碼更多了,發現時間有點不夠用,感覺這一周學的狀態並不好,所以下一周會花更多的時間在Java的學習中。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 95/95 1/1 18/18
第二周 515/620 1/2 22/40
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計為什麽這麽難,軟件工程 估計方法

  • 計劃學習時間:25小時

  • 實際學習時間:22小時

  • 改進情況:沒有

(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)

參考資料

  • 《Java程序設計與數據結構教程(第二版)》

  • 《Java程序設計與數據結構教程(第二版)》學習指導
  • ...

20172327 2017-2018-2 《程序設計與數據結構》第二周學習總結