1. 程式人生 > >20172330 《程序設計與數據結構》第二周學習總結

20172330 《程序設計與數據結構》第二周學習總結

復習 should info 不能 screen 程序 個數 tokenize $2

20172330 2017-2018-1 《Java程序設計》第二周學習總結

教材學習內容總結

第二章的內容相較於第一周是對計算機系統部件等一系列的概括,這一章講的則更加專業性,讓我們對Java程序中一些基本數據類型和計算表達式有了掌握,以及對交互式輸入有了講解,可以說這一章的內容算是對我們Java學習的初步引導吧。
比如說,這章我們學習的字符串的拼接啊,還有後面的賦值變量,以及看上去雲裏霧裏的Scanner,這章就開始專業了。

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

  • 問題1:剛開始看2.6交互式程序的時候,我有點沒看懂,對於Scanner的使用不太理解
  • 問題1解決方案:然後我百度了一下,上面顯示
    “Java 5添加了java.util.Scanner類,這是一個用於掃描輸入文本的新的實用程序。它是以前的StringTokenizer和Matcher類之間的某種結合。由於任何數據都必須通過同一模式的捕獲組檢索或通過使用一個索引來檢索文本的各個部分。於是可以結合使用正則表達式和從輸入流中檢索特定類型數據項的方法。這樣,除了能使用正則表達式之外,Scanner類還可以任意地對字符串和基本類型(如int和double)的數據進行分析。借助於Scanner,可以針對任何要處理的文本內容編寫自定義的語法分析器。”
    技術分享圖片

  • 問題2:自增和自減運算符那裏,前後綴的區別,他前文剛說完是等價的,後面又說結果可能不同,有毛病吧,我就百度了一下
    技術分享圖片

  • 問題2解決方案:百度嘍,

    代碼調試中的問題和解決過程

  • 問題1:int 和double的應用,當時它顯示會出現丟失然後不能運行
    技術分享圖片

  • 問題1解決方案:我百度了一下,告訴我因為小數點的存在,使得int和double輸入轉換會使得小數點後面的內容丟失,所以在更改之後得以運行。
    技術分享圖片

  • 問題2:我老是忘記輸入;在一句命令之後就直接回車進入下一行,導致最後無法運行
    技術分享圖片

  • 問題2解決方案:我開始有意識的去糾正,告訴自己就像你寫作文的時候肯定要寫句號啊,要不那麽長的句子不斷開還不說到沒氣了哈哈哈QAQ

代碼托管

技術分享圖片

上周考試錯題總結

-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百萬字節)
這道題當時在比較完前四個之後是10太字節最大,所以也就沒看e直接選了d,結果e是百萬字節,比10太字節要大。
ps:1MB(兆字節)=1024KB(千字節)=1024*1024B(字節)=1048576B(字節);
8bit(比特位)=1Byte(字節);
1024Byte(字節)=1KB(千字節);
1024KB(千字節)=1MB(兆字節);
1024MB=1GB;
1024GB=1TB;

  • 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 (易變性)
    直接存取和隨機存取這兩個術語是可以互換使用的
  • It is important to dissect a problem into manageable pieces before trying to solve the problem because (試圖解決問題之前,把一個問題分解成可控制的幾部分是很重要的,因為)
    A。most problems are too complex to be solved as a single, large activity (大多數問題太復雜,以至於不能作為一個單獨大型的活動來解決)
    B。most problems are solved by multiple people and it is easy to assign each piece to a separate person (大多數問題都是由很多人解決的而且把每一部分分配給不同的人是很容易的)
    C。it is easier to integrate small pieces of a program into one program than it is to integrate one big chunk of code into one program (將程序的小部分整合到一個程序中比將一大塊代碼整合到一個程序中更容易)
    D。our first solution may not solve the problem correctly (我們的第一個方案可能無法正確解決問題)
    E。all of the above (以上皆是)
    任何有趣的問題都太復雜,不能簡單地作為單一的活動來解決。通過分解問題,我們可以為每一塊構建一個小的解決方案,然後整合各個部分。

Java is an example of a(n) (Java是一個___的例子)
A machine language (機器語言)
B assembly language (匯編語言)
C high-level language (高級語言)
D fourth generation language (第四代語言)
E both C and D (C和D都是)
第四代語言是包在程序內部的工具,這樣用戶就可以靈活地編寫從程序中執行的代碼。所以Java也應該是第四代語言

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 (以上皆是)
註釋不應該用英語重新表達一個指令的意思,而是應該解釋這個指令與程序的關系。所以b是正確的。

The main method for a Java program is defined by (Java程序中的主方法是由___定義的)
A public static main( )
B public static main(String[ ] args);
C public static main(String[ ] args)
D private static main(String[ ] args)
E the main method could be defined as in A, C or D but not B (主方法可以定義為A,C或者D,但不是B)
在A中,參數丟失了。這些參數稍後在文本中定義,但實際上,它們允許用戶運行該程序,並在程序調用時包含一些初始參數。在B中,語句末尾的分號是不允許的。在D中,“private”而不是“public”將使程序不
可執行,從而使定義變得毫無意義。我當時沒有看到d中private,就選了e

The line of Java code "// System.out.println("Hello");" will (Java的這行代碼將會)
A do nothing (什麽都不做)
B cause "Hello" to be output (輸出"Hello")
C cause a syntax error (造成語法錯誤)
D cause "(Hello)" to be output (輸出"(Hello)")
E there is no way to know without executing this line of code (不執行這行代碼就無法知道)
字符“//”表示註釋的開始。該註釋沒有被編譯,因此在執行此代碼時不會發生任何事情。

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中的註釋解釋了為什麽該指令出現在程序中。但當時我覺著可能a比較恰當,就選了a

Which of the following is not syntactically legal in Java? (在Java中,下列哪一條語法不合法?)
A public class Foo
B System.out.println("Hi");
C { }
D s t a t i c main(String[ ] args)
E only B is legally valid, all of the rest are illegal (只有B是合法的,其余都不合法)
Java編譯器將空白(空格)作為實體之間的分隔符,所以Java編譯器不會識別“static。當時覺著c{}中間有個空格,就以為是錯的。。。

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”是完全合法的,盡管它不一定是一個好的標識符,因為它不是描述它的使用。因為在敲代碼時候見過class ,而i是一個單獨字母覺著應該是錯的。

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虛擬機解釋。這道題,錯了不應該。

An error in a program that results in the program outputting $100 instead of the correct answer, $250 is (程序中的一個錯誤導致程序輸出結果是$100而不是正確答案$250,這是)
A a programmer error (程序錯誤)
B a syntax error (語法錯誤)
C a run-time error (運行時錯誤)
D a logical error (邏輯錯誤)
E a snafu (混亂)
語法錯誤被編譯器捕獲,程序不能在不修復所有語法錯誤的情況下運行。運行時錯誤出現在程序執行過程中,並導致程序停止運行。邏輯錯誤是程序可以運行到完成的錯誤,但是給出了錯誤的答案。如果結果應該是250美元,那麽這個程序的邏輯就錯了,因為它輸出了100美元。snafu是一個術語,它表達了戰鬥中混亂的情況,不應該被尊敬的程序員使用!
當時我覺著應該是語法錯誤,現在想想有語法錯誤他肯定會顯示給我並讓我去修改而不能運行的。

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是一個常量。這題我做的時候因為在練得時候一直有空格,所以就想命名時是不是也有空格。

A color image is broken down into individual pixels (points), each of which is represented by (一個彩色圖像被分解成單個像素(點),其中每個像素表示)
A a 1 for white and a 0 for black (白色的1和黑色的0)
B 3 values denoting the intensity of red, green, and blue in the image (3個表示圖像中紅、綠和藍色的亮度值)
C a single number indicating the intensity of color between white and black (一個單獨的數字,它表示白色和黑色之間的顏色亮度)
D two numbers, a value that denotes where between white and black the color is, and a brightness (兩個數字,一個表示白色和黑色之間的顏色,另一個表示亮度)
E none of the above, it is not possible to represent a color image (以上都不是,不可能表示一個彩色圖像)
黑白圖像是用0和1存儲的,而彩色圖像是用三個值存儲的,一個是紅色的程度,一個是藍色的程度,一個是綠色的程度。這題,是真不會。

Mistyping "println" as "printn" will result in (將“println”打印為“printn”將會導致)
A a syntax error (語法錯誤)
B a run-time error (運行時錯誤)
C a logical error (邏輯錯誤)
D no error at all (根本沒有錯誤)
E converting the statement into a comment (該語句轉換成註釋)
如果Java編譯器不能理解命令,編譯器就不能轉換它,並使用語法錯誤進行響應。雖然“println”被認為是一個命令,但“printn”不是,因此編譯器提供了一個語法錯誤。沒有分清邏輯錯誤和語法錯誤。

Java byte codes are directly executable whereas Java source code is not. (Java字節碼是可以直接執行的,而Java源代碼則不是。)
A true
B false
Java源代碼和Java字節碼都不是可執行的。兩者都必須被編譯或解釋為機器代碼。Java字節碼是有用的,但是它們是獨立於機器的但是半編譯的代碼,它允許您的Java代碼通過Internet傳輸並在另一臺計算機上執行,即使其他計算機是完全不同的類型。

Reserved words in Java can be redefined by the programmer to mean something other than their original intentions. (在Java中,保留字可以被程序員重新定義,去表示不同於它們最初意義的其他含義。)
A true
B false
無法重新定義Java保留字。我以為保留字是可以重新定義的。

ps(中間來了一波十連錯直接嚶嚶嚶啊哈哈哈)
技術分享圖片

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

這周題目錯的太多,主要是因為一直想著先慢慢練著敲代碼,然後就把課本上知識看了一遍就放過了,沒有多去復習著看,所以導致好多題目都是看著好像對又好像不對,這一周一定要多花點時間去看課本,然後也要抓緊時間去好好練習敲代碼。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 180/180 1/2 25/25
第二周 312/414 2/4 20/45
  • 計劃學習時間:20小時

  • 實際學習時間:20小時

參考資料

  • [https://jingyan.baidu.com/article/e73e26c0c74a1f24adb6a7fb.html)

  • [(https://zhidao.baidu.com/question/1948632186996645428.html)
  • (http://blog.csdn.net/zx13525079024/article/details/52947549)
  • (https://my.oschina.net/0x0001/blog/168968)

20172330 《程序設計與數據結構》第二周學習總結