32 位機上根據下面的**,問哪些說法是正確的?
signed char a = 0xe0;
unsigned int b = a;
unsigned char c = a;
a. a>0 && c>0 為真 b. a == c 為真 c. b 的十六進製制表示是:0xffffffe0 d. 上面都不對
分析:坑爹丫,有木有!10 個人 9 個這個恐怕都不敢確定!
(敢肯定的要麼是高手,要麼就是錯的!) b me 認為是錯的,乙個 uchar 和乙個 schar 比較,真的就是乙個位元組在比較嗎?c me 認為是對的,將乙個 schar 賦值給乙個 uint,要不要符號擴充套件呢?
是絕對會還是可能會呢?細節到底是神馬?o__o"…a 貌似比較確定,肯定是錯的,肯定?
揭露真相:a 確實是錯的,b 也是錯的,c 是對的,所以 d 也是錯的。理由?
a 錯是因為,a 是負數,c 是正數,即使跟 0 比較要轉換到 int(後面暫不區分轉換和型別提公升,總之就是型別變了),也是一負一正,所以 a 錯。b 呢?是說一正一負不會相等,難道是因為這嗎?
難道不是嗎?首先說 a 和 c 的二進位制表示一模一樣,都是 0xe0,那麼比較就不相等?!是的,比較的時候全部轉換為 int,所以呢,a 還是作為乙個負數存在,c 作為乙個正數存在,於是就不相等了,所以 b 錯。
c 腫麼就對了?a 是乙個 schar,賦值給 uint 的 b,前若干個位元組不是補 0 嗎?首先 schar 轉換為 int,然後 int 轉換成 uint,所以最初是符號擴充套件,然後乙個 int 賦值給了 uint,c correct!
me 曾經要寫一篇關於c的型別以及指標的 blog,不過最後沒有完成,不過還是可以參考一下的。
下面哪些選項能編譯通過?
int i;
char a[10;
string f();
string g(string &str);
a. if(!!i) b. g(f()); c. a=a+1; d. g("abc");
分析:再次坑爹有木有!(其實 me 比較確信這道題,是坑別人的爹,o__o"…)a 絕對是正確的,c 絕對是錯的,d 基本肯定是錯的,那 b 呢?
要麼 error ,要嚒 warning!如果是 warning 但是沒有 error ,這算神馬情況呢?b 確實不應該選,至少語義上不該選!
f() 返回乙個臨時量,然後傳給 g 函式,而 g 的引數是非 const 引用,是不能引用臨時量的!為嘛,如果 g 中修改了傳進來的 string,那麼會是怎麼一回事呢?修改了乙個臨時量的值?
那這意義何在呢?但是如果將 g 的原型修改為 string g(const string&); 就是可以的,為麼可以?訪問(唯讀)臨時量就是正確的?
那必須的,比如 u 可能想知道 a+b 的結果是多少,然後輸出!a+b 的結果就是乙個臨時量。如果說修改 a+b 的結果,這是神馬個邏輯?!
真相:c 錯是以為 a 是乙個位址常量,不可能再被賦值。d 為嘛錯呢?
"abc" 的型別可是 const char* 呢,是個常量指標呢!(可以用來初始化 string。)
int a[10]; 問下面哪些不可以表示 a[1] 的位址?
a. a+sizeof(int) b. &a[0]+1 c. (int*)&a+1 d. (int*)((char*)&a+sizeof(int))
分析:奇葩丫!(其實並不奇葩!
)騰訊的題目有時候出的的確有水平丫,雖然出的太有水平了分就考不高了。me 想哭丫,想來想去還是在 a 和 b 中選錯了,%>_<%,當時還特意提醒自己來著的,o__o"…c++ 中的 sort 如何用來排序 a 陣列呢?sort(a, a+n); 或是 sort(a, a+sizeof(a)/sizeof(a[0])); 當時懵了,實際上 a+1,就是 a[1] 的位址呢!
a 的型別是 int[10],a+1 和乙個 int* 型別的 +1 效果一樣,都表示偏移 1 個元素,所以 a 不能表示。(選錯誤的!) c 能表示是因為取了首位址作為乙個 int* 然後 +1,就是偏移乙個元素,所以不選。
b 腫麼說呢,me 一直一位&a[0] 是乙個普普通通的位址,+1 就是 +1個位元組,實際上是 +1 個元素!d 也能表示?將 a 的首位址轉換為乙個 char* 指標,這個時候 +1 是偏移乙個 char,也就是乙個位元組,實際上應該偏移 sizeof(int) 個位元組才能到達 a[1],所以 d 可以表示(不選)。
不多說了。(如果是二維陣列是不是會更懵呢,o__o"…)
問下面的資料都存放在哪些儲存區?
int main()
a. ... b. ... c. 棧和常量區 d. 棧和堆
分析:"hello,world" 是常量,趕腳應該就是 c 吧,應該大家感覺都一樣。這裡不涉及什麼堆的事。
假設在乙個 32 位 little endian 的機器上執行下面的程式,結果是多少?
#include
int main()
a. ... b. ... c. ... d. ...
分析:貌似問題沒有想的那麼簡單。如果說執行結果,很簡單,有人是 1 0 2;有人是 1 2 3。
涉及到 little/big endian 和引數入棧的問題,me 表示現在有點無能為力,o__o"…
下面哪些函式呼叫必須進入核心才能完成?
a. fopen b. exit c. memcpy d. strlen
分析:有些無能為力。a 是要開啟檔案的,貌似設計很多核心操作丫;exit 是退出程序,結束程序,應該也要深入核心。
memcpy ,me 一直猶豫使用者區的資料拷貝要不要通過核心。strlen me 感覺關係不大。
記憶體管理中的 lru 方法是用來管理神馬的?
a. 虛擬記憶體的分配 b. 虛擬記憶體的釋放 c. 物理記憶體的分配 d. 物理記憶體的釋放
分析:貌似是用來關係物理塊的,後面的填空題正好有說,o__o"…
關於dma 的說法,哪些是錯誤的?
a. dma,direct memory acess 直接儲存器訪問,使得不同的速度的硬體裝置可以直接通訊,不通過 cpu 干預;
b. dma 訪問的時候需要從 cpu 那裡奪得匯流排控制權,然後...
c. dma 速度快;
d. dma 不需要中斷控制,cpu 管理不要它;
死鎖發生的必要條件?
a. 互斥條件 b. 請求和保持 c. 不可剝奪 d. 迴圈等待
分析:abcd 就是死鎖的四個必要條件,作業系統書上貌似說的很明確。
有兩個執行緒,最初 n=0,乙個執行緒執行 n++; n++; 另乙個執行 n+=2; 問,最後可能的 n 值?
a. 1 b. 2 c. 3 d. 4
分析:d 順序執行以下,就可以。b 的話,讓後面乙個執行到+2,但不要寫結果,然後前乙個執行完,然後寫結果,為 2。
c 3 的話,也好分析。a 不可能!腫麼可能呢?
腫麼可能結果只為 1 呢?兩個執行緒都會 +2,+1 何從談起?先 +1,然後讓後面的加法錯了,然後結果寫進去?
前乙個 ++n 都沒執行的話,後乙個又腫麼會執行呢?總之不可能是 1 !不可能!
o__o"…(堅決不相信它可以。)
下面哪些說法正確?
a. 陣列和鍊錶都可以隨機訪問
b. 陣列的插入和刪除可以 o(1)
c. 雜湊表麼法範圍檢查
d. ...
分析:總之 abd 給人的感覺是顯而易見的錯丫,有木有,所以排除法還是能用的!至於 hash 結構,確實也不可以範圍檢查,因為 key 對映為 value,完全將根據的 hash 函式,而這個函式一般不滿足原來的單調性,實際上就應該滿足!
因為 hash 函式的設計是要 value 的對映隨機、均勻!
基於比較的排序的時間複雜度下限是多少?
a. o(n) b. o(n^2) c. o(nlogn) d. ...
分析:貌似是資料結構上面的乙個結論,基於比較的排序的時間複雜度不能比 o(nlogn) 地。
下面圖的拓撲排序可能是?
a...
分析:對於知道拓撲排序的,應該很容易作答(me 有時候在懷疑自己理解的是否正確?!)。
求 n 個數中的最大值和最小值,最少的比較次數是?
a. 4n/3 b. 2n-2 c. n-1 d. 3n/2
分析:雖然 me 不知道很高深的演算法,但是 me 想丫,如果是 2 1 3 4 5 6 這樣的序列,u 認為最少是多少次呢?me 感覺是 n-1 。
但是,題目也許是另外乙個意思,也就是對於普通的序列,求最大值和最小值,能將比較次數降到多少?(me 貌似見到過一些方法,但是忘了,o__o"…)
一棵二叉樹的先序遍歷是 f b a c d e g h,中序遍歷是 a b d c e f g h,問後序遍歷是神馬?
a. ... b. ... c. ... d. ...
分析:構建二叉樹,然後看看後序遍歷是神馬?a d e c b h g f,o__o"…,突然感覺一不小心 g f 和 fg 就寫反了,me 應該沒有吧?!
網絡卡、交換機、路由器和 udp 分別工作網路的哪些層?
a. ...
b. ...
c. ...
d. ....
分析:值根據 udp 在傳輸層,me 就選出答案了:物理層、資料鏈路層、網路層和傳輸層。
子網掩碼 25..255.255.224 可以將網路 x.x.x.x 分成多少個子網?
a. ... b. ... c. 8 d. 32
分析:224 = 128+64+32 = 1110 0000 b,me 一看,後面 5 個 0 ,就是 2^5 = 32 吧?
tcp協議棧的定時器有哪些?
a. ... b. ... c. ... d. ...
分析:不會的路過。
高內聚和低耦合,下面哪個耦合度最高?
a. 通過函式引數傳遞...
b. 乙個函式修改另外乙個函式中的資料;
c. 通過全域性變數...
d. 通過指示器...
分析:一看全域性變數,就是它無疑了。o__o"…
關於訪問,下面哪些是後台絕對不會執行的?
a. 本地查查 dns,是否有 的 ip;
b. 通過 **. 查詢 ip;
c. 通過 ***. 查詢 ip;
d. 瀏覽器傳送 http get 請求;
d. 伺服器回送 ***.jpg;
2023年騰訊實習生招聘武漢站一面試題
智慧型裝置的猜想 2013年騰訊實習生招聘武漢站一面試題第六題 隨著2012年6月google glass正式面世,google glass掀起了智慧型裝置領域的以此革命,他可以辦到的事情包括錄製 傳送簡訊。翻譯文字 指示方向等。針對google glass i watch的出現,未來人們從頭到腳都...
2019浦發銀行實習生招聘簡章
浦發銀行實習生 一 任職資格 1 全日制統招本科以上學歷17屆18屆畢業生,985 211院校者優先。2 男女不限 3 形象好,氣質佳 4 熱愛金融行業 5 善於並樂於與人溝通 6 具有良好的自我調節能力 7 一周請至少保證四天以上實習時間 含週六周天 二 崗位職責 負責為客戶提供基礎業務諮詢 負責...
2019文思創新實習生招聘計畫
公司概況 文思創新成立於1995年,是第一家在紐約 交易所上市的中國軟體服務外包企業,從2007年起至今,一直蟬聯中國面向歐美服務外包提供商第一名。文思創新總部在北京,在中國上海 南京 深圳 杭州 大連 廣州 成都 武漢 西安 天津 香港,日本東京,馬來西亞,美國聖地牙哥 西雅圖 舊金山和英國倫敦設...