C和C++經(jīng)典筆試題及答案 軟件測(cè)試筆試題及答案_第1頁(yè)
C和C++經(jīng)典筆試題及答案 軟件測(cè)試筆試題及答案_第2頁(yè)
C和C++經(jīng)典筆試題及答案 軟件測(cè)試筆試題及答案_第3頁(yè)
C和C++經(jīng)典筆試題及答案 軟件測(cè)試筆試題及答案_第4頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本文格式為word版,下載可任意編輯c和c+經(jīng)典筆試題及答案 軟件測(cè)試筆試題及答案 在c語(yǔ)言中,兩個(gè)函數(shù)的名稱不能相同,否則會(huì)導(dǎo)致編譯錯(cuò)誤。而在c+中,函數(shù)名相同而參數(shù)數(shù)據(jù)類型不同或參數(shù)個(gè)數(shù)不同或二者皆不同的兩個(gè)函數(shù)被解釋為重載。下面就由我為大家介紹一下c和c+經(jīng)典筆試題及答案的文章,歡迎閱讀。 c和c+經(jīng)典筆試題及答案篇1 1. 用預(yù)處理指令#define聲明一個(gè)常數(shù),用以表明1年中有多少秒(忽視閏年問題)。 答案:#define seconds_per_year(60*60*24*365)ul 應(yīng)當(dāng)意識(shí)到表達(dá)式將使一個(gè)16位機(jī)的整形數(shù)溢出,因此要用到長(zhǎng)整型符號(hào)l,表達(dá)式中ul表示無(wú)符號(hào)長(zhǎng)整

2、型。 2. 寫一個(gè)"標(biāo)準(zhǔn)'宏min,這個(gè)宏輸入連個(gè)參數(shù)并返回較小的一個(gè)。 答案:#define min(a,b) (a)=(b)?(a):(b);懂得在宏中當(dāng)心的吧參數(shù)用括號(hào)擴(kuò)起來(lái) 3. sizeof 的一些考察 char* ss1='0123456789' char ss2='0123456789' char ss3100='0123456789' int ss4100; char q1='abc' char q2='an' char* q3='an' 答案:ss1是一個(gè)字符指針

3、,指針的大小是一個(gè)確定的值,就是4,sizeof(ss1)=4; ss2是一個(gè)字符數(shù)組,這個(gè)數(shù)組最初的大小未定,填充值是"0123456789',一個(gè)字符占一位,再加上隱含的"0'一共是11位。 ss3是一個(gè)字符數(shù)組,這個(gè)數(shù)組開頭預(yù)安排100,所以它的大小是100位。 ss4是一個(gè)整型數(shù)組,但是每個(gè)整型變量所占空間是4,所以它的大小一共是400位。 q1與ss2類似,占4位。q2里面有一個(gè)"n',"n'算作一位,加上隱含的,大小一共是3位。q3是一個(gè)字符指針,指針得大小是一個(gè)定值,就是4. 4. what is the o

4、utput of the following code? #include using namespace std; class a ; class a2 char d,e; struct b; struct c char x,y; struct dint x,y; main() cout cout a *p1=new a(); a p2; a*p3; cout cout cout cout cout cout return 0; 答案:對(duì)于一個(gè)類而言,即便它是一個(gè)空的類,編譯器仍舊要要給它一個(gè)空間,所以類a即便什么也沒有,它的空間大小依舊為1,而類a2大小是類中連個(gè)字符d,e之和,所以它的空

5、間大小依舊是2,至于p1,p2,p3,p1和p3是指針,大小是全都的,而且是定值,為4,p2是a的對(duì)象,所以它的大小和類a相等,為1,b和c得解釋同a和a2,至于d,它和c不同點(diǎn)在于,結(jié)構(gòu)體有兩個(gè)整型變量,每個(gè)整型變量所占空間為4,所以d所占空間大小為8。 最終結(jié)果是 1, 2,4, 1,4,1,2,8 5. what is the output the following code? #include using namespace std; class a1 public: int a; static int b;a1(); a1(); 4 class a2 public: int a;

6、char c; a2(); a2(); 8 class a3 public: float a; char c; a3(); a3(); 8 class a4 public: float a; int b; char c; a4(); a4(); 12 class a5 public: double d; float a; int b; char c; a5(); a5(); 24 int main() cout 答案:由于靜態(tài)變量是存放在全局?jǐn)?shù)據(jù)區(qū)的,sizeof計(jì)算棧中安排的大小,是不會(huì)計(jì)算在內(nèi)的,所以sizeof(a1)是4;為了照看數(shù)據(jù)對(duì)其,int大小為4,char大小為1,所以size

7、of(a2)是8;為了照看數(shù)據(jù)對(duì)其,float大小為4,char大小為1,所以sizeof(a3)為8;為了照看數(shù)據(jù)對(duì)其,float大小為4,int大小為4,char大小為1,所以sizeof(a4)為12;為了照看數(shù)據(jù)對(duì)其,double大小為8,float大小為4,int大小為4,char大小為1,所以sizeof(a5)為24。 6. 以下代碼的輸出結(jié)果是() char var int test(char var) retrun sizeof(var); 答案:由于var等價(jià)于*var,已經(jīng)退化成一個(gè)指針了,所以大小是4. 7. 以下代碼的輸出結(jié)果是() class b float f;

8、char p; int asf3; cout 答案:float f占了4個(gè)字節(jié),char p占了一個(gè)字節(jié),int adf3占了12個(gè)字節(jié),總共是17個(gè),依據(jù)內(nèi)存的對(duì)齊原則,要選擇4的倍數(shù),是20個(gè)字節(jié)。 8. 以下代碼的輸出結(jié)果是() class b double d; char p; int asf4; cout 答案:double d占了8個(gè)字節(jié),char p占了一個(gè)字節(jié),int adf4占了16個(gè)字節(jié),總共是25個(gè),依據(jù)內(nèi)存的對(duì)齊原則,要選擇8的倍數(shù),是32個(gè)字節(jié)。 9. 一個(gè)空類所占空間為1,多重繼承的空類所占的空間還是1,但是虛繼承涉及到虛表(虛指針),所以虛繼承的空類占的空間為4

9、10. this指針是在實(shí)例化一個(gè)對(duì)象后產(chǎn)生的,并且指向?qū)ο蟊旧?比照實(shí)例化一個(gè)對(duì)象pt,那么this=pt;用''取地址符來(lái)取對(duì)象的地址.同樣,假如定義對(duì)象pt這個(gè)類中,有一個(gè)public變量x,那么就可以用this-x=0來(lái)定義x的值,等同于pt.x=0. c和c+經(jīng)典筆試題及答案篇2 1. #include using namespace std; void getmemory(int *z) *z=5; int main() int v; getmemory(v); cout getmory把v的地址傳了過來(lái),*z是地址里的值,是v的副本.通過直接修改地址里的值,不需要

10、有返回值,也把v給修改了,由于v所指向地址的值發(fā)生了轉(zhuǎn)變,最終程序會(huì)崩潰. 2. 下面的數(shù)據(jù)聲明都代表什么意思? (1)float(*def)10 def是一個(gè)二級(jí)指針,它指向的是一個(gè)一維數(shù)組的指針,數(shù)組的元素都是float。 (2)double*(*gh)10 gh是一個(gè)指針,它指向一個(gè)一維數(shù)組,該數(shù)組元素都是double* (3) double(*f10)() f是一個(gè)數(shù)組,f有十個(gè)元素,元素都是函數(shù)的指針,指向的函數(shù)類型是沒有參數(shù)且返回double的函數(shù) (4)int*(*b)10) 就跟"int*(b)10'是一樣的,b是一維數(shù)組的指針 (5)long(*fun)(i

11、nt) 函數(shù)指針 (6)int(*(*f)(int,int)(int) f是一個(gè)函數(shù)的指針,指向的函數(shù)的類型是有兩個(gè)int參數(shù)并且返回一個(gè)函數(shù)指針的函數(shù),返回的函數(shù)指針指向一個(gè)int參數(shù)且返回int的函數(shù)。 3. 指針數(shù)組與數(shù)組指針 指針數(shù)組,是指一個(gè)數(shù)組里面裝著指針,數(shù)組指針,代表它是指針,指向真?zhèn)€數(shù)組 一個(gè)指向整型數(shù)組的指針定義為() a. int(*ptr) b.int *ptr c.int*(ptr) d.int ptr int(*ptr)是以一個(gè)指向整型數(shù)組的指針 int *ptr是指針數(shù)組,ptr里面存的的是地址。它指向位置的值就是*ptr0,*ptr1,*ptr2,不要存*ptr

12、0=5,*ptr1=6,由于里面沒有相應(yīng)的地址 int*(ptr)與b相同 4. 用變量a給出下面的定義 (1)一個(gè)整型數(shù) (2)一個(gè)指向整形數(shù)的指針 (3)一個(gè)指向指針的指針,它指向的指針是一個(gè)整型數(shù) (4)一個(gè)有10個(gè)整型數(shù)的數(shù)組 (5)一個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù)的 (6)一個(gè)指向有10個(gè)整型數(shù)組的指針 (7)一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù) (8)一個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整數(shù) itn a; int *a; int *a; int a10; int *a10; int (*a)10; int (*

13、a)(int); int (*a10)(int) 5.c+中的空類默認(rèn)產(chǎn)生那些類成員函數(shù)? class empty public: ; 答案:對(duì)于一個(gè)空類,編譯器默認(rèn)產(chǎn)生4個(gè)成員函數(shù):默認(rèn)構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù)和賦值函數(shù) c和c+經(jīng)典筆試題及答案篇3 1.那一種成員變量可以在同一個(gè)類的實(shí)例之間共享? 答案:必需使用靜態(tài)成員變量在一個(gè)類的全部實(shí)例間共享數(shù)據(jù).假如想限制對(duì)靜態(tài)成員變量的訪問,則必需把他們聲明成愛護(hù)型或私有型.不允許使用靜態(tài)成員變量去存放一個(gè)對(duì)象的數(shù)據(jù)。靜態(tài)成員數(shù)據(jù)是在這個(gè)類的全部對(duì)象間共享的。 靜態(tài)數(shù)據(jù)成員:靜態(tài)成員可以實(shí)現(xiàn)多個(gè)對(duì)象之間的數(shù)據(jù)共享,并且使用靜態(tài)數(shù)據(jù)成員還不

14、會(huì)破壞隱蔽的原則,即保證了平安性。節(jié)約內(nèi)存;提高時(shí)間效率。使用靜態(tài)數(shù)據(jù)成員可以由于它是全部對(duì)象所公有的,因此,對(duì)多個(gè)對(duì)象來(lái)說,靜態(tài)數(shù)據(jù)成員只存儲(chǔ)一處,供全部對(duì)象共用。靜態(tài)數(shù)據(jù)成員的值對(duì)每個(gè)對(duì)象都是一樣,但它的值是可以更新的。只要對(duì)靜態(tài)數(shù)據(jù)成員的值更新一次,保證全部對(duì)象存取更新后的相同的值, 1、靜態(tài)數(shù)據(jù)成員在定義或說明時(shí)前面加關(guān)鍵字static。 2、靜態(tài)成員初始化與一般數(shù)據(jù)成員初始化不同。靜態(tài)數(shù)據(jù)成員初始化的格式如下: 數(shù)據(jù)類型類名:靜態(tài)數(shù)據(jù)成員名=值 這表明: (1) 初始化在類體外進(jìn)行,而前面不加static,以免與一般靜態(tài)變量或?qū)ο笙嗷煜?(2) 初始化時(shí)不加該成員的訪問權(quán)限掌握符p

15、rivate,public等。 (3) 初始化時(shí)使用作用域運(yùn)算符來(lái)標(biāo)明它所屬類,靜態(tài)數(shù)據(jù)成員是類的成員,而不是對(duì)象的成員。 3、靜態(tài)數(shù)據(jù)成員是靜態(tài)存儲(chǔ)的,它是靜態(tài)生存期,必需對(duì)它進(jìn)行初始化。 4、引用靜態(tài)數(shù)據(jù)成員時(shí),采納如下格式: 類名:靜態(tài)成員名 靜態(tài)數(shù)據(jù)成員的訪問權(quán)限允許的話(即public的成員),可在程序中,按上述格式來(lái)引用靜態(tài)數(shù)據(jù)成員。 下面舉一例子,說明靜態(tài)數(shù)據(jù)成員的應(yīng)用: #include class myclass public: myclass(int a, int b, int c); void getnumber(); void getsum(); private: in

16、t a, b, c; static int sum; ; int myclass:sum = 0; myclass:myclass(int a, int b, int c) a = a; b = b; c = c; sum += a+b+c; void myclass:getnumber() cout'number=' void myclass:getsum() cout'sum=' void main() myclass m(3, 7, 10),n(14, 9, 11); m.getnumber(); n.getnumber(); m.getsum(); n.

17、getsum(); 從輸出結(jié)果可以看到sum的值對(duì)m對(duì)象和對(duì)n對(duì)象都是相等的。這是由于在初始化m對(duì)象時(shí),將m對(duì)象的三個(gè)int型數(shù)據(jù)成員的值求和后賦給了sum,于是sum保存了該值。在初始化n對(duì)象時(shí),對(duì)將n對(duì)象的三個(gè)int型數(shù)據(jù)成員的值求和后又加到sum已有的值上,于是sum將保存另后的值。所以,不論是通過對(duì)象m還是通過對(duì)象n來(lái)引用的值都是一樣的,即為54。 靜態(tài)成員函數(shù) 靜態(tài)成員函數(shù)和靜態(tài)數(shù)據(jù)成員一樣,它們都屬于類的靜態(tài)成員,它們都不是對(duì)象成員。因此,對(duì)靜態(tài)成員的引用不需要用對(duì)象名。 在靜態(tài)成員函數(shù)的實(shí)現(xiàn)中不能直接引用類中說明的非靜態(tài)成員,可以引用類中說明的靜態(tài)成員。假如靜態(tài)成員函數(shù)中要引用非

18、靜態(tài)成員時(shí),可通過對(duì)象來(lái)引用。下面通過例子來(lái)說明這一點(diǎn)。 #include class m public: m(int a) a=a; b+=a; static void f1(m m); private: int a; static int b; ; void m:f1(m m) cout'a=' cout'b=' int m:b=0; void main() m p(5),q(10); m:f1(p); file:/調(diào)用時(shí)不用對(duì)象名 m:f1(q); 讀者可以自行分析其結(jié)果。從中可看出,調(diào)用靜態(tài)成員函數(shù)使用如下格式: 類名:靜態(tài)成員函數(shù)名(參數(shù)表); 2.推

19、斷選擇 1. c+語(yǔ)言沒有可移植性。 b不正確 2. 定義數(shù)組時(shí)可以不確定元素個(gè)數(shù)。 b不正確 3. 指針是一種特別的變量,只能用來(lái)保存地址。 a正確 4. 通過引用或者指針調(diào)用對(duì)象的成員函數(shù)時(shí),假如引用或者指針的類型跟對(duì)象的類型不全都時(shí),能自動(dòng)正確調(diào)用對(duì)象所屬的類中對(duì)這個(gè)函數(shù)的定義。 b不正確 5.類myclass,為myclass類對(duì)象以成員函數(shù)形式重載后+運(yùn)算符的聲明應(yīng)當(dāng)為 c myclass operator+( int ); a. myclass operator+(); b. myclass operator+(); c. d. myclass operator+( int ); 5. 父類和子類各自定義一個(gè)成員函數(shù),函數(shù)名相同,參數(shù)表不同,那么 c子類中的函數(shù)會(huì)掩蓋父類中的函數(shù)。 函數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論