著考試周復習周的不斷進行,
不知道大家復習和刷題進行得怎么樣了呢,
為了給繁忙中的小伙伴們減減負,
力扣(LeetCode)為大家準備了一份程序員期末考試模擬試卷(這明顯是增負啊喂)
希望大家做得開心,做得愉快~
程序員歷史卷
注意事項:
1.本卷分基礎題、提高題和加分題三大部分,第一、二卷滿分 100 分,第三卷滿分30分。考試時間 20 分鐘。
2.考生答題前,請先思考一下自己今年要刷多少道力扣 。
3.考試結束,考生可至文中指定區域查看答案。
1. 第一個程序員叫什么名字?(10分)
A. 愛達·勒芙蕾絲
B. 查爾斯·巴貝奇
C. 洛夫萊斯伯爵
D. 達拉崩吧斑得貝迪卜多比魯翁
2. 'Hello, World' 最先在哪本書中被提及?(10分)
A.《A 語言從入門到放棄》(A Language from Zero to Hero Quit)
B.《B 語言編程指南》(A Tutorial Introduction to the Language B)
C.《C 語言程序設計》(The C Programming Language)
D.《Python 從復制到粘貼》(Python Cut, Copy, and Paste)
3. 于 1996 年設立的圖靈獎為了紀念誰而命名?(10分)
A. 圖圖
B. 女媧后裔趙靈兒
C. 艾倫·麥席森.圖靈(Alan Mathison Turing)
D. 丘奇·圖靈(Church Turing)
4. 誰是萬維網的發明者?(10分)
A. 斯坦·李
B. 布魯斯·李
C. 詹姆斯·李
D. 伯納斯·李
5. 從歷史角度考慮,JavaScript 在命名上和 Java 有什么關系?(10分)
A. 有一點關系
B. 如同周杰和周杰倫的關系
C. 如同雷鋒和雷峰塔的關系
D. 如同卡巴斯基和大巴司機的關系
6. 圖靈獎對提名人有什么要求?(10分)
A. 必須是刷力扣刷得比較 6 的人
B. 必須是每天晚上 9 點以后才下班的人
C. 必須是計算機領域突出貢獻者
D. 以上都可以
7. 21 世紀上半葉,曾于中國互聯網圈流傳的「996」是指什么意思(選擇最貼切的一項)?(10分)
A. 最后一個人趕緊倒立的意思
B. 666 的隱晦表達
C. 加班吧,朋友
D. 247的另一種表達
8.在中國近現代歷史上,以下哪個中國作家擁有不俗的編程水平?(多選)(20分)
A. 劉慈欣
B. 王小波
C. 力扣編輯們
D. 魯迅
9. 在 2019 年,9 號以后是幾號?(10分)
A. 10 號
B. a 號
C. 差不多該還花唄的日子
D. 我想這是一道哲學題,哲學永遠沒有答案
1.本題選A。世界上第一個程序員是愛達·勒芙蕾絲(也譯作埃達·洛夫萊斯),是一位女性。她是英國大詩人拜倫的唯一婚生子,出生于 1815 年,此生從未見過其父親。
在 1842 年與 1843 年期間,埃達翻譯了意大利數學家路易吉·米那比亞講述查爾斯·巴貝奇計算機分析機的論文,并增加注記詳細說明用該機器計算伯努利數的方法,被認為是世界上第一個計算機程序。
B 選項查爾斯·巴貝奇是她的好友,被譽為“計算機之父”。C 選項是她老公,D 選項是B站一首鬼畜洗腦歌曲的歌詞。
2.本題選B。 'Hello, World' 最先出現于布萊恩·柯林漢(Brian Kernighan)與 1972 年編寫的內部技術文件《B 語言編程指南》。當時,他使用 B 語言撰寫了第一個使用參數的 Hello World 相關程序,并于 2 年后在《C 語言程序設計》中沿用了這一寫法。
A 和 D 選項是瞎編的,但 A 語言真實存在。
3.本題選 C。艾倫·麥席森.圖靈是計算機人工智能之父,圖靈獎為紀念他而命名。選項 A 為電視動畫《大耳朵圖圖》中的主人公,選項 B 為《仙劍奇俠傳》主人公之一。選項D,1937年,圖靈發表的文章 “可計算性與λ可定義性”則拓廣了丘奇(Church)提出的“丘奇論點”,形成“丘奇-圖靈論點”。
4.本題選D。蒂姆·伯納斯·李于 1990 年 12 月 25 日第一次實現超文本傳輸協議客戶端與服務端的通訊。他也是萬維網聯盟主席,麻省理工學院計算機科學及人工智能實驗室創辦主席及高級研究員等。
選項 A 為漫威之父,選項 B 為李小龍英文名,選項 C 是路人。
5.本題選A。Java 與 1990 年由詹姆斯·高斯林等人創建雛形,于 1995 年由 Sun 公司正式發布。JavaScript 于 1995 年由布蘭登·艾克在網景公司設計。這兩門語言的創造者,公司,年份都完全不同,但命名上確實有一點淵源。
JavaScript 原先有一個很可愛的名字:Mocha,當時網景公司為了搭上 Java 這個熱門編程語言,就是如今所說的想蹭熱點,于是跟 Sun 公司協議,在公開發布時把名字臨時改成了 JavaScript,日后這成為大眾對這門語言有諸多誤解的原因之一。
6.本題選 D。任何人。這道題的題干里藏了一個陷阱。「提名人」不是「候選人」也不是「獲獎人」,圖靈獎大多數獲獎者是計算機科學家,但提名人可以是任何人,只需附一份 200 到 500 字的文章,說明被提名者為什么應獲此獎即可。
7.本題選 C。996 原意指早上9點上班,晚上9點下班,周六加班,后成為互聯網企業加班的代名詞。247是指一天24小時,上七天班。
8.本題選 A、B、C。
選項 A :劉慈欣是中國著名的科幻作家,其實他也是一個計算機工程師,曾編寫一個自動寫詩的計算機程序,含五個程序模塊,六個詞庫,一個語法庫,僅 125K。
選項 B :王小波是中國最早期的程序員之一,曾編寫自己的中文輸入法(拼音字典參考他人),掌握 Fortran、匯編語言和 C 語言,C++ 等,并在人民大學負責一個計算機室。
王小波的編程思維也體現在他獨一無二的文學想象力中,在《紅拂夜奔》里,主人公李靖發明過一個巨大的開跟號機器,這臺機器在戰場上揮舞著杠桿一邊開根號一邊攻擊敵人,有的人死在根號 3 下,有的人倒在根號 5 下。
選項 C :力扣編輯均熟練掌握編程技術。
選項 D :魯迅是我國著名的文學家、思想家,不會編程。
9. 本題答案不限。選項B:在16進制中,9號后面為a號。
10. 你心目中當代優秀程序員應該是什么樣的?(30分)
(本題為開放性試題,請在留言中回答,參考點贊數給分,內容包含“刷 力扣(LeetCode)” 等字樣加分。)
作者:宮業奇
聲明:本文版權歸力扣 LeetCode 所有,未經允許禁止轉載。
必很多人在剛接觸和認識Java的時候,都好奇它與JavaScript之間的關系,長得這么像,難道是出自同門的升級版?嗯,他們的發明者確實頗具淵源,而且客觀來說,JS確實相較Java更加簡潔大眾,但它們本質上卻仍然是兩種完全不同的語言,那區別在哪呢?千鋒武漢Java培訓專家給大家詳細說說他們之間的區別。
這就得從他們誕生時開始說起:
1994年的時候,網景公司(Netscape)發布了Navigator瀏覽器0.9版。這是歷史上第一個比較成熟的網絡瀏覽器,轟動一時。但是,這個版本的瀏覽器只能用來瀏覽,不具備與訪問者互動的能力。因此,網景公司急需一種網頁腳本語言,使得瀏覽器可以與網頁互動。1995年Sun公司將Oak語言改名為Java,正式向市場推出,并且打出了“一次編寫,到處運行(Write once,run anywhere)”的宣傳口號。網景公司非常看好Java,決定與Sun公司結成聯盟。僅一個月后,網景公司做出決定,未來的網頁腳本語言,必須看上去與Java足夠相似,但是比Java簡單。程序員Brendan Eich被指定為這種“簡化版Java語言”的設計師。
但是Brendan Eich對Java絲毫沒有興趣,用了10天時間就設計出了JavaScript。總體的設計思路是:
借鑒C語言的基本語法;
借鑒Java語言的數據類型和內存管理;
借鑒Scheme語言,將函數提升到“第一等公民”(first class)的地位;
借鑒Self語言,使用基于原型(prototype)的繼承機制。
也就是說,Java Script在設計時所參考的對象不包括 Java,而包括了像 Self 和 Scheme 這樣的語言,它實際上是函數式編程和面向對象編程兩種語言風格的混合產物。并且javascript最初的名字并不是javascript,而是LiveScript,名字中的“Java”是經過SUN Microsystems公司授權的。
簡單說java和JavaScript是兩個不同的語言。
1 語言特點:
1.1 弱類型:
JavaScript在變量聲明的時候并不嚴格區分數據類型,(var 變量名),不像java那樣嚴格(類型:變量名)。也就說,Javascript面前一切平等,在他眼里大家都是人,而在java就有所不同,男人、女人、什么的……
基于這個特性,javascript在很多時候會都可以寫的比java簡潔,比如函數的聲明等。
1.2 動態語言:
java在定義了一個數組的長度以后就不能再改變了,但是javascript卻可以。并且java一個數組只能放同一種類型,但javascript可以在一個數組內加不同數據類型的數據。可以說Java比較死心眼,javascript則比較靈活。
1.3 腳本語言:
Java等后臺語言都是編譯后執行的,但是javascript卻是邊編譯邊執行。
2 數據類型
2.1 基礎數據類型:
Java有八大數據類型:byte,short,intlong,float,double,char,Boolean。感覺javascript把上面的整理成了三種原始類型:number,string,boolean。另外還有兩個特殊的原始類型是:null和undefined。
2.2 變量
Java:數據類型 變量名=值;
Javascript:var 變量名=值;數組
Java:
類型[] 數組名=new 類型[數量];
類型[] 數組名=new 類型[]{元素1,元素2…};
Javascript:
var 數組名=[];
var 數組名=new Array();
3 函數
Java:返回值類型 函數名(類型 參數1,類型 參數2…){}
Javascript:function 函數名(參數1,參數2…){}
兩者用途
java廣泛應用于個人PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網等。
Javascript的用途是:1.嵌入動態文本于HTML頁面;2.對瀏覽器事件做出響應; 3.讀寫HTML元素;4.在數據被提交到服務器之前驗證數據;5.檢測訪客的瀏覽器信息; 6.控制cookies,包括創建和修改等。
最后,千鋒武漢Java培訓專家想說,Java和JavaScript各有所長各有專精,Java的舞臺在編程領域,而JavaScript的得心之處是在Web頁面中,它幾乎無所不能。
記得剛開始學習編程時,我就在想:“Java和JavaScript是同一種語言嗎?”。就是因為看到它們名稱中都帶“java”,所以才會誤以為它們有關系。實際上,它們并沒有太大的聯系。
這兩者的關系,就和英語與斯瓦希里語「非洲語言使用人口最多的語言之一,簡稱斯語」類似。兩者都是語言,但是語法、用詞甚至語音都完全不同。與英語和斯語相比,Java和JavaScript的區別其實更大。英語和斯語是大部分人日常互相交流溝通的語言。但是,java和JavaScript是計算機語言,具有不同的交流方式。
>>不同之處
1、命名
JavaScript是由Netscape公司設計實現而成的。JavaScript最初被稱為Mocha,然后更名為LiveScript。Netscape公司與Sun公司合作,Netscape高層希望它看上去能夠像Java,因此才取名為JavaScript。其實JavaScript走的一直是依靠大IP普及的營銷策略,正如一開始我們所疑惑的地方一樣,JavaScript就是依靠類似java的名稱才被大眾所熟知。就是靠著這一點,現在JavaScript已經是世界上第三流行的語言,并且人氣還在不斷上升。
Java是由Oracle公司(以前由Sun Microsystems)提供支持。而Java最初被稱為Oak,然后更名為Green,后來才改成當前的名稱Java。而java雖說是使用最廣泛的語言之一,但近年來人氣卻在緩慢下降。
2、應用范圍
Java具有極廣的通用性,幾乎在任何地方都可以使用;而JavaScript主要用于帶有一些牽引服務器端「Node」,移動端「React Native」和桌面端「Electron」的前端Web開發。
3、語言特性
JavaScript是一種腳本語言,很多知名的瀏覽器都對Js有非常良好的本地支持,所以它成為了最受歡迎的前端語言之一;而Java是一種面向對象的高級編程語言,不適合做前端開發。
4、基于對象和面向對象
Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序。它是一種真正的面向對象(Object Oriented)的語言,即便是開發簡單的程序,也必須設計對象。
JavaScript是一種網絡腳本語言,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。它可以使網頁具有交互性;并提供及時反饋節省用戶時間;還可以根據用戶的操作,動態的創建頁面。它是一種基于對象(Object Based)和事件驅動(Event Driver)的編程語言。
5、解釋和編譯
Java是一種編譯語言,即Java代碼被轉換為在語言虛擬機中執行字節碼。Java的源代碼在執行之前,必須經過編譯。
JavaScript是一種解釋性編程語言,其源代碼不需經過編譯,由瀏覽器解釋執行。(目前的瀏覽器幾乎都使用了JIT(即時編譯)技術來提升JavaScript的運行效率)
6、檢測代碼
Java是強類型的靜態語言,每個變量必須預先指定其類型。JavaScript是弱類型的動態語言,其變量可以根據賦值而改變類型,如:var s=10;那么s為int型。JavaScript使用動態類型檢查,即它是在執行JavaScript代碼時檢查變量的類型。這樣做有一個好處就是可以使程序員更容易編碼。而Java使用靜態類型檢查,即它是在編譯時驗證變量的類型。也就是說,它要檢測的錯誤代碼更少!
7、代碼格式
JavaScript與Java代碼格式不一樣。JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動態裝載。Java是一種與HTML無關的格式,必須通過像HTML中引用外媒體那樣進行裝載,其代碼以字節代碼的形式保存在獨立的文檔中,其獨立文件的格式為*.class。
8、線程
JavaScript不支持多線程,因為瀏覽器中的JavaScript解釋器是單線程的。而Java則支持多線程。
9、圖文操作
Java可以直接對文本和圖形進行操作。而JavaScript是通過在Web頁面中與HTML元素組合來發揮作用的,但JaveScrit可以控制瀏覽器,讓瀏覽器直接對文本和圖形進行處理。
10.工作機會
Java比JavaScript有更多的工作機會。根據數據,在中國Java開發發布了21094個職位,而JavaScript開發只發布了8486個職位。相比較而言,Java更適合你尋找工作。
了解java和JavaScript的不同之處,其實并沒有其他的意義,重要的是要通過清楚他們不同之處,明白什么時候更適合用JavaScript,而哪些情況下則使用java。
那么,什么時候使用JavaScript和Java?
舉個例子來說,如何用java和JavaScript的方法實現讓孩子跳躍的操作?
按Java的方法:因為孩子聽不懂“跳”,所以你要在他大腦的部分區域插入了一個控制跳躍功能的電極裝置。當電極沖擊大腦時,他就會不由自主地跳動。機器可以將你的指令轉化為腦信號,你只需要將其安裝在他身上,不需要借助其他的東西,就可以控制他完成“跳躍”動作。
按JavaScript的方法:實現“跳躍”,其實只要教孩子如何跳躍。教完以后,當你說“跳”時,他便知道要開始跳了。所以在JavaScript中,主要的還是你需要教他如何理解“跳”一詞。畢竟程序必須先知道如何解釋命令才能執行。
回到我們的示例當中,除了本身無法在大腦中插入電極裝置以外,將機器安裝在人身上,讓他遵循命令的行為是非常不可取的。而如果你教他理解命令,這樣的話,下次他一聽到這個命令,就能在沒有其他東西輔助的情況下工作。
人是如此,計算機亦是。為什么一直在強調解釋型的重要性,主要還是因為這樣相比較而言更容易編寫,但并不是所有時間都要使用JavaScript。
平日里遇到要用java或JavaScript進行編寫時,我個人的建議是,JavaScript固然十分好用,但一定要是自律性很高的人才更適用,因為,當你需要維護混亂無規則的JavaScript代碼時,就會發現,那簡直是一場噩夢。所以,我還是建議你優先使用java來編寫程序。因為,日常工作當中,你大可使用java編寫不受限的程序瀏覽器。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。