正文之前
一大早醒來(lái)佑颇,外面淅淅瀝瀝的雨綿綿的下著挑胸,床鋪真的舒服茬贵,但是我也不能就在床上刷微博看小說(shuō)吧闷沥,所以想起了昨晚下載的庞咛樱客網(wǎng)的APP路狮,趕緊掏出我的大寶貝---升級(jí)到iOS11的腎(各位奄妨,真的建議升級(jí)到11砸抛,不是我說(shuō),速度快了很多景东,雖然還有不少的bug待修復(fù)斤吐,但是真的快了好多和措,而且感覺(jué)內(nèi)部的功耗設(shè)定都改了派阱,比較耐用了點(diǎn)了颁褂。雖然最大的悲劇是變丑了很多 PS:變丑觀點(diǎn)來(lái)自我的審美比較好的妹子)傀广,然后刷了一套C++的面試題伪冰,這些基礎(chǔ)知識(shí)好久沒(méi)看過(guò)了贮聂,最近沉迷于算法和數(shù)據(jù)結(jié)構(gòu),所以基本大腦大部分地區(qū)已經(jīng)被指針占領(lǐng)了歼冰,C++做的好勉強(qiáng)隔嫡,后面自己查查補(bǔ)補(bǔ)腮恩,總算寫(xiě)出一份攻略,歡迎品鑒武契,也請(qǐng)幫我糾正咒唆,畢竟我現(xiàn)在是個(gè)半吊子钧排。
正文
第一題解析:
alp是一個(gè)指針數(shù)組,含有三個(gè)指針符衔,分別指向三個(gè)字符串的內(nèi)存區(qū)躺盛,那么alp[1]
很自然的就是指向“DEF”這個(gè)內(nèi)存區(qū)形帮,然后puts
雖然不知道是啥辩撑,但是琢磨著應(yīng)該是把整個(gè)連續(xù)內(nèi)存區(qū)的都整出來(lái)的吧合冀!那么沒(méi)問(wèn)題君躺,就是D
第二題解析:
這個(gè)代碼其實(shí)寫(xiě)的不是很適合閱讀林螃,應(yīng)該要有比較好的代碼編寫(xiě)規(guī)范侮邀,先后,嵌套順序明顯才是優(yōu)秀的铝宵!本題的代碼嵌套關(guān)系如下圖所示鹏秋,在if(a>b)
與后面的printf("%d\n",d);
不存在主從關(guān)系侣夷,也就是說(shuō)不管你if(a>b)
是否能深入運(yùn)行百拓,都會(huì)有printf("%d\n",d);
的執(zhí)行晰甚,所以這時(shí)候就只要考慮if(a>b)
能否改變d的值蓖捶?并且自身有沒(méi)有輸出俊鱼?然后看了下 a>b 這很明顯是不可能的,所以if直接就跳出了,到了后面的printf("%d\n",d);
第三題解析:
這個(gè)我不知道啊H鞅Α宏浩!所以只好借用討論區(qū)的回答咯比庄。錯(cuò)了不怪我~~大文件表空間只能包含一個(gè)文件制恍,但是文件可以達(dá)到 4G 個(gè)數(shù)據(jù)塊大小净神。(只能包含一個(gè)文件鹃唯,但是一個(gè)文件里可以包含多個(gè)數(shù)據(jù)文件?洪橘?不知道是不是這樣理解)
第四題解析:
首先,第一行第二行是字符數(shù)組的復(fù)制岖寞,類(lèi)似于是一個(gè)字符串仗谆,然后再第三行進(jìn)行了一個(gè)字符串的操作函數(shù)隶垮,—strcpy
意思就是把字符串整個(gè)的復(fù)制給ccString1
狸吞,那么這個(gè)時(shí)候ccString1=”No“
,并未保留后續(xù)的 Page Fault指煎?蹋偏?
第四句是比較兩個(gè)字符串,相等輸出0至壤,不相等輸出1威始,那么很顯然的,strcmp
輸出的是1像街,不等于0黎棠,那么在if內(nèi)部的bool型變量就是0晋渺,那么就不會(huì)執(zhí)行cout<<ccString2;
,而是直接進(jìn)行
else
cout<<ccString1;
第五題解析(錯(cuò)題):
在 C/C++ 語(yǔ)言中木西,sizeof() 是一個(gè)判斷數(shù)據(jù)類(lèi)型或者表達(dá)式長(zhǎng)度的運(yùn)算符叼丑。在32位機(jī)上,所有指針類(lèi)型變量占用內(nèi)存字節(jié)數(shù)都為4因?yàn)?2位機(jī)就是 4字節(jié) * 8個(gè)二進(jìn)制位/字節(jié) 計(jì)算出來(lái)的.如果在64位機(jī)上,指針占用內(nèi)存大小就是:8個(gè)字節(jié).
那么接下來(lái)其實(shí)就是判斷括號(hào)內(nèi)的變量的類(lèi)型论寨,然后根據(jù)查表得出的結(jié)果找出各自的長(zhǎng)度火焰。對(duì)照表如下圖,對(duì)照之后就有
A:8
B:17
C:1
D:8
第六題解析:
這個(gè)沒(méi)多少好說(shuō)的念恍,我全憑感覺(jué)做的词爬,第一個(gè)的話,宏我并不記得有這么大的安全隱患,第三個(gè),宏就是為了程序的可讀性,可修改性做出的貢獻(xiàn),第四個(gè),宏定義對(duì)于提高運(yùn)行效率其實(shí)沒(méi)啥影響吧枢希,只是方便觀看以及方便修改吧为流!我不太清楚莲祸,還沒(méi)有精學(xué)缴阎,后面慢慢應(yīng)該還會(huì)講到吧!
第七題解析【錯(cuò)題】:
我記岔了艺配,以為公有繼承的派生類(lèi)的話不會(huì)把父類(lèi)的私有量繼承過(guò)來(lái),實(shí)際上會(huì)的期虾,但是只是不能訪問(wèn),所以說(shuō)最終B里面就是三個(gè)指針剃幌,不管能不能訪問(wèn)抖棘,sizeof(B)
是不會(huì)錯(cuò)的!8*3=24咯 ~
第八題解析【錯(cuò)題】:
這個(gè)相對(duì)來(lái)說(shuō)算是比較復(fù)雜了。我當(dāng)時(shí)是理清楚了的淘这,但是后面好像是判斷錯(cuò)誤曙聂,然后多讀了一個(gè)數(shù)的樣子榆苞,下面詳細(xì)解釋下躏筏,
int fun1(char s[], char a, int n)
{
int j;
j = n;
while (a < s[j] && j > 0) j--;
return j;
}
這個(gè)函數(shù)是要返回從s中的第七個(gè)開(kāi)始往下數(shù),第多少個(gè)能夠滿足不大于a的條件凡人,就是說(shuō)s是一個(gè)遞增的字符數(shù)組,a處于這個(gè)遞增數(shù)列的中間倒慧,從高處開(kāi)始找到第一個(gè)小于或等于a的字符的碼值返回,
這就是fun1
的作用发魄,fun2
的作用類(lèi)似,從低處開(kāi)始找嵌削,找到第一個(gè)大于等于a的字符的碼值返回,從主函數(shù)里面知道,s的碼值從1-7對(duì)應(yīng)著 D F H J L N P
那么很顯然的fun1
返回的是5骡技,fun2
的返回值為6,我是傻逼嗎?當(dāng)時(shí)數(shù)的時(shí)候fun1
數(shù)出來(lái)6!W队唷腹纳!
第九題解析:
這個(gè)題目我真的是靠感覺(jué)來(lái)的。首選驱犹,首先f(wàn)1要傳進(jìn)去的實(shí)參必須是一個(gè)指針嘲恍,所以C沒(méi)毛病,然后關(guān)于D的話雄驹,我當(dāng)時(shí)想的是佃牛,如果帶不帶括號(hào)有區(qū)別的話,那么當(dāng)然是要尊重初始定義的時(shí)候的帶括號(hào)的方法了医舆。所以毫不猶豫的選了D 現(xiàn)在想想吁脱,如果帶括號(hào)沒(méi)用桑涎,帶這個(gè)括號(hào)干嘛,閑的雞兒疼嗎兼贡??至于別的娃胆,同理遍希,A需要帶括號(hào),B里面?zhèn)魅胫羔樌锓常灰?code>*就好了凿蒜!
第十題解析【錯(cuò)題】:
老實(shí)說(shuō)這種題目我見(jiàn)所未見(jiàn),也就今天第一波判埠冢客見(jiàn)到了废封。以后慢慢來(lái)吧!
本題是16位機(jī)器丧蘸,char
型占1個(gè)字節(jié)漂洋,int型占2個(gè)字節(jié)。結(jié)構(gòu)體中字節(jié)對(duì)齊有兩條規(guī)則:
- 數(shù)據(jù)成員自對(duì)齊力喷,即數(shù)據(jù)成員起始地址為數(shù)據(jù)類(lèi)型長(zhǎng)度的整數(shù)倍刽漂,如該題
int
型b只能從0,2弟孟,4...等地址處開(kāi)始放贝咙; - 結(jié)構(gòu)體總長(zhǎng)度是結(jié)構(gòu)體中有效對(duì)齊值的整數(shù)倍,有效對(duì)齊值拂募,如該題沒(méi)明確指出庭猩,則為最長(zhǎng)數(shù)據(jù)成員
(int b)
長(zhǎng)度的整數(shù)倍;
根據(jù)上面兩條規(guī)則陈症,畫(huà)出內(nèi)存示意圖蔼水。根據(jù)規(guī)則1,int b
從2處開(kāi)始放爬凑,此時(shí)結(jié)構(gòu)體總長(zhǎng)度為(1 + 1 + 2 + 1 = 5)徙缴;再根據(jù)規(guī)則2,結(jié)構(gòu)體總長(zhǎng)度應(yīng)為2的整數(shù)倍嘁信,故應(yīng)為6.描紅的兩個(gè)字節(jié)表示被浪費(fèi)的于样。
正文之后
一抬頭,已經(jīng)十點(diǎn)半了潘靖。起床4┢省!不過(guò)我一直在糾結(jié)卦溢,我要不要繼續(xù)寫(xiě)下去寫(xiě)的這么細(xì)呢糊余?感覺(jué)挺浪費(fèi)時(shí)間的秀又,但是又是一次很好的總結(jié),而且對(duì)于以后復(fù)習(xí)有著莫大的好處贬芥。所以繼續(xù)堅(jiān)持下吧吐辙,如果熬不下去了。那再說(shuō)蘸劈!