2020-04-07

1. 以下程序經(jīng)編譯連接生成可執(zhí)行文件?tt.exe,若運(yùn)行以下命令行?tt 12 345 678,?則程序的輸出結(jié)果是()

int main(int argc, char ** argv)

{ int n = 0,i;

for(i=1;i<argc;i++)

? n = n*10+*argv[i]-'0';

print(‘“%n”,n)

return 0;

}

解析:本題考查main函數(shù)默認(rèn)參數(shù)argc和argv的意義 main函數(shù)的第一個(gè)參數(shù)argc為整型參數(shù)致讥,記下從命令行輸入?yún)?shù)的個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組舆瘪,它的每一個(gè)元素分別指向命令行輸入的各字符串。在本例中argc的值為4,argv[0]指向字符串“tt”瘪吏,argv[1]指向字符串“12”卓研,argv[2]指向字符串“345”趴俘, argv[3]指向字符串“678”睹簇。程序中,通過(guò)一個(gè)for循環(huán)寥闪,遍歷了后面的三個(gè)參數(shù)字符串太惠,每次將n自乘10,然后累加argv[i]-‘0’疲憋,即 第i個(gè)參數(shù)字符串的首字符減去‘0’凿渊。? 一個(gè)數(shù)字字符減去‘0’字符,即可得到這個(gè)數(shù)字字符的實(shí)際數(shù)值柜某,因此三次循環(huán)之后n的值為136嗽元。

2.C++ 指針常量、常量指針和常指針常量

1喂击、指針常量

如果在定義指針變量時(shí)候剂癌,指針變量前用const修飾,被定義的指針變量就變成了一個(gè)指針類(lèi)型的常變量翰绊,指針類(lèi)型的常變量簡(jiǎn)稱(chēng)為指針常量佩谷。

格式如下

數(shù)據(jù)類(lèi)型? *? const? 指針變量=變量名;

修飾符const與指針變量緊鄰监嗜,說(shuō)明指針變量不允許修改谐檀,既然指針變量的值不能修改,所以一定要在定義的時(shí)候給定初值(指向一個(gè)確定存在的地方)


2裁奇、常量指針

如果在定義指針變量的時(shí)候桐猬,數(shù)據(jù)類(lèi)型前用const修飾,被定義的指針變量就是指向常量的指針變量刽肠,指向常量的指針變量稱(chēng)為常量指針溃肪,格式如下

const 數(shù)據(jù)類(lèi)型? *指針變量=變量名;

或者? ? 數(shù)據(jù)類(lèi)型? const? * 指針變量=變量名音五;

定義一個(gè)常量指針后惫撰,指針指向的值就不能被改變,即不能通過(guò)指針變量直接更改指針指向的值

3躺涝、常指針常量

? ?格式為

? const ? 數(shù)據(jù)類(lèi)型 * const 指針變量=變量名厨钻;

數(shù)據(jù)類(lèi)型 const ?*const 指針變量=變量名;

指針不能改變坚嗜,指針指向的值也不能改變


請(qǐng)聲明一個(gè)指針夯膀,其所指向的內(nèi)存地址不能改變,但內(nèi)存中的值可以被改變苍蔬。

正確答案:B?

A const int const *x = &y;


B int * const x = &y;

C const int *x = &y;

D int const *x = &y;

E const int * const x = &y;

若const限定符在*之前棍郎,則const限定的是*ptr而不限定ptr。也就是說(shuō)银室,ptr可以改變其所指向的對(duì)象涂佃,但不能通過(guò)該指針修改其所指向?qū)ο蟮闹怠?

? 若const限定符在*之后励翼,則const限定的是ptr而不限定*ptr。也就是說(shuō)辜荠,ptr不可以改變其所指向的對(duì)象汽抚,但能通過(guò)該指針修改其所指向?qū)ο蟮闹怠?/p>

? 若在*之前有const限定符且在*之后也有const限定符,則ptr與*ptr都被限定伯病。也就是說(shuō)造烁,ptr既不可以改變其所指向的對(duì)象,也不能通過(guò)該指針修改其所指向?qū)ο蟮闹怠?/p>

另外:只要在*之后有const限定符午笛,則該指針在聲明時(shí)必須初始化

const 的含義是“只讀的”惭蟋,可以采用記錄口訣,“左定值药磺, 右定向”(const位于*左 指向的值不變告组,const位于*右側(cè),指針指向不可改變)

3. 以下字符中不是轉(zhuǎn)義字符的是()癌佩。

正確答案:C??你的答案:D(錯(cuò)誤)

A '\a'

B '\b'

C '\c'

D '\\'


4 多態(tài)虛函數(shù)機(jī)制

#include<iostream>

using namespace std;

class Base

{ public:

??? virtual int foo(int x)

??? {

??? ? ? return x * 10;

??? }

??? int foo(char x[14])

??? {

??? ? ? return sizeof(x) + 10;

??? }

};


class Derived: public Base

{

??? int foo(int x)

??? {

??? ? ? return x * 20;

??? }


??? virtual int foo(char x[10])

??? {

??? ? ? return sizeof(x) + 20;

??? }

} ;

int main()

{

??? Derived stDerived;

??? Base *pstBase = &stDerived;

??? charx[10];

??? printf("%d\n", pstBase->foo(100) + pstBase->foo(x));

??? return0;

}

在32位環(huán)境下木缝,以上程序的輸出結(jié)果是?

正確答案:C??你的答案:D(錯(cuò)誤)

2000

2004

2014

2024

用父類(lèi)指針指向子類(lèi)指針時(shí)围辙,如父類(lèi)函數(shù)定義了虛函數(shù)我碟,則調(diào)用時(shí)自動(dòng)調(diào)用子類(lèi)函數(shù),否則姚建,則調(diào)用父類(lèi)函數(shù)矫俺。

sizeof一個(gè)數(shù)組名稱(chēng)的時(shí)候是計(jì)算的變量所具有的實(shí)際的字節(jié)數(shù)!掸冤!

當(dāng)你在函數(shù)A中定義一個(gè)數(shù)組(比如厘托,char str[15];),然后在該函數(shù)A中直接使用sizeof(str),那么輸出結(jié)果肯定是15;但是當(dāng)你把這個(gè)數(shù)組當(dāng)成參數(shù)傳遞給另一個(gè)函數(shù)B(假如函數(shù)B為void funB(char newstr[])贩虾,在函數(shù)B中,再次使用sizeof(newstr)沥阱,輸出的結(jié)果則為4缎罢,那么這是為什么啊考杉?策精?

原因是把數(shù)組作為函數(shù)實(shí)參傳遞時(shí),是傳地址崇棠,或者叫傳引用咽袜,這樣只是把函數(shù)A中數(shù)組str的首地址傳遞到函數(shù)B,賦值給newstr枕稀,此時(shí)newstr僅僅是一個(gè)指針询刹,保存的是數(shù)組str的首地址谜嫉,所以newstr這個(gè)指針變量就是占4個(gè)字節(jié)的內(nèi)存

5.?

正確答案:A??你的答案:B(錯(cuò)誤)

1

0

-1

-2

解析:無(wú)符號(hào)號(hào)整數(shù)和有符號(hào)整數(shù)相加,有符號(hào)整數(shù)轉(zhuǎn)化為無(wú)符號(hào)整數(shù)凹联,signed int b 變成了一個(gè)很大的數(shù)沐兰,所以a + b是>0的,選A

6.

正確答案:D??你的答案:B(錯(cuò)誤)

1蔽挠,1住闯,4,4澳淑,8比原,8

0,0杠巡,4量窘,4,4忽孽,4

0绑改,0,4,4,8磷箕,8

1菱肖,1,4或颊,4,4,4

解析:?C++標(biāo)準(zhǔn)規(guī)定類(lèi)的大小不為0耳璧,空類(lèi)的大小為1,當(dāng)類(lèi)不包含虛函數(shù)和非靜態(tài)數(shù)據(jù)成員時(shí)展箱,其對(duì)象大小也為1旨枯,所以nLenA和nLenAObject的值為1;?

? 如果在類(lèi)中聲明了虛函數(shù)(不管是1個(gè)還是多個(gè))混驰,那么在實(shí)例化對(duì)象時(shí)攀隔,編譯器會(huì)自動(dòng)在對(duì)象里安插一個(gè)指針指向虛函數(shù)表VTable,在32位機(jī)器上栖榨,一個(gè)對(duì)象會(huì)增加4個(gè)字節(jié)來(lái)存儲(chǔ)此指針昆汹,它是實(shí)現(xiàn)面向?qū)ο笾卸鄳B(tài)的關(guān)鍵。因此婴栽,LenB和nLenBObject的值為4满粗;

? ?對(duì)于普通繼承,派生類(lèi)和基類(lèi)共享虛函數(shù)指針愚争,派生類(lèi)對(duì)象的存儲(chǔ)空間=基類(lèi)存儲(chǔ)空間+派生類(lèi)特有的非static數(shù)據(jù)成員的空間映皆,由于t_classA為空類(lèi)挤聘,t_classB和t_classC共享虛函數(shù)指針,因此LenC和nLenCObject的值為4劫扒;?

7.什么函數(shù)不能聲明為虛函數(shù)檬洞?

正確答案:ABC??你的答案:C(錯(cuò)誤)

靜態(tài)成員函數(shù)

內(nèi)聯(lián)函數(shù)

構(gòu)造函數(shù)

析構(gòu)函數(shù)

解析:

1.普通函數(shù)(不能被覆蓋)?

2.友元函數(shù)(C++不支持友元函數(shù)繼承)

3.內(nèi)聯(lián)函數(shù)(編譯期間展開(kāi),虛函數(shù)是在運(yùn)行期間綁定)

4.構(gòu)造函數(shù)(沒(méi)有對(duì)象不能使用構(gòu)造函數(shù)沟饥,先有構(gòu)造函數(shù)后有虛函數(shù)添怔,虛函數(shù)是對(duì)對(duì)象的動(dòng)作)?

5.靜態(tài)成員函數(shù)(只有一份大家共享)

只需要記住可以聲明成虛函數(shù)的就行!(普通的成員函數(shù)或析構(gòu)函數(shù))

虛函數(shù)的使用原則:可以把public或protected的部分成員函數(shù)聲明為虛函數(shù)贤旷;

? ? ? ? ? ? ? ? ?C++中的析構(gòu)函數(shù)通常是虛析構(gòu)函數(shù)广料;

? ? ? ? ? ? ? ? ?構(gòu)造函數(shù)不能聲明為虛函數(shù);

? ? ? ? ? ? ? ? ?虛函數(shù)不能聲明為靜態(tài)的幼驶、全局的艾杏、友元的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盅藻,一起剝皮案震驚了整個(gè)濱河市购桑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌氏淑,老刑警劉巖勃蜘,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異假残,居然都是意外死亡缭贡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)辉懒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)阳惹,“玉大人,你說(shuō)我怎么就攤上這事眶俩∮ㄌ溃” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵颠印,是天一觀(guān)的道長(zhǎng)纲岭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)嗽仪,這世上最難降的妖魔是什么荒勇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任柒莉,我火速辦了婚禮闻坚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兢孝。我一直安慰自己窿凤,他們只是感情好仅偎,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雳殊,像睡著了一般橘沥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夯秃,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天座咆,我揣著相機(jī)與錄音,去河邊找鬼仓洼。 笑死介陶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的色建。 我是一名探鬼主播哺呜,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼箕戳!你這毒婦竟也來(lái)了某残?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤陵吸,失蹤者是張志新(化名)和其女友劉穎玻墅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體走越,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椭豫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旨指。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赏酥。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谆构,靈堂內(nèi)的尸體忽然破棺而出裸扶,到底是詐尸還是另有隱情,我是刑警寧澤搬素,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布呵晨,位于F島的核電站,受9級(jí)特大地震影響熬尺,放射性物質(zhì)發(fā)生泄漏摸屠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一粱哼、第九天 我趴在偏房一處隱蔽的房頂上張望季二。 院中可真熱鬧,春花似錦、人聲如沸胯舷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桑嘶。三九已至炊汹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逃顶,已是汗流浹背讨便。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留以政,地道東北人器钟。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像妙蔗,于是被迫代替她去往敵國(guó)和親傲霸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容