東軟CC++筆試題及參考答案_第1頁
東軟CC++筆試題及參考答案_第2頁
東軟CC++筆試題及參考答案_第3頁
東軟CC++筆試題及參考答案_第4頁
東軟CC++筆試題及參考答案_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

東軟CC++筆試題及參考答案一、選擇題1.以下關(guān)于C語言中變量聲明和定義的說法,正確的是()A.聲明變量時會為變量分配內(nèi)存空間B.定義變量時會為變量分配內(nèi)存空間C.聲明和定義變量沒有區(qū)別D.聲明變量只能在函數(shù)外部進(jìn)行答案:B解析:聲明變量只是告訴編譯器變量的類型和名稱,不會為變量分配內(nèi)存空間;而定義變量時會為變量分配內(nèi)存空間。聲明可以在函數(shù)內(nèi)外進(jìn)行,所以選項A、C、D錯誤,選項B正確。2.以下代碼的輸出結(jié)果是()```cinclude<stdio.h>intmain(){inta=5;intb=++a3;printf("%d\n",b);return0;}```A.15B.18C.21D.24答案:B解析:`++a`是前置自增運算符,先將`a`的值加1,此時`a`的值變?yōu)?,然后再進(jìn)行乘法運算`63=18`,所以`b`的值為18,選項B正確。3.以下關(guān)于C++中引用的說法,錯誤的是()A.引用必須在定義時初始化B.引用一旦初始化,就不能再引用其他對象C.引用可以為空D.引用是變量的別名答案:C解析:引用必須在定義時初始化,一旦初始化就不能再引用其他對象,它是變量的別名。引用不能為空,必須引用一個已存在的對象,所以選項C錯誤。4.以下代碼中,`sizeof(arr)`的值是()```cinclude<stdio.h>intmain(){intarr[5]={1,2,3,4,5};printf("%d\n",sizeof(arr));return0;}```A.5B.10C.15D.20答案:D解析:`sizeof`運算符用于計算數(shù)據(jù)類型或變量所占用的字節(jié)數(shù)。在32位或64位系統(tǒng)中,`int`類型通常占用4個字節(jié),數(shù)組`arr`有5個`int`類型的元素,所以`sizeof(arr)`的值為`54=20`,選項D正確。5.以下關(guān)于C++中類的構(gòu)造函數(shù)的說法,錯誤的是()A.構(gòu)造函數(shù)的名稱與類名相同B.構(gòu)造函數(shù)沒有返回值類型C.構(gòu)造函數(shù)可以有參數(shù)D.構(gòu)造函數(shù)不能被重載答案:D解析:構(gòu)造函數(shù)的名稱與類名相同,沒有返回值類型,可以有參數(shù)。構(gòu)造函數(shù)可以被重載,即可以定義多個不同參數(shù)列表的構(gòu)造函數(shù),以滿足不同的初始化需求,所以選項D錯誤。6.以下代碼的輸出結(jié)果是()```cinclude<stdio.h>intmain(){intx=10;inty=(x>5)?20:30;printf("%d\n",y);return0;}```A.10B.20C.30D.5答案:B解析:這是一個三目運算符`?:`的應(yīng)用。條件`x>5`為真,所以取`?`后面的值20賦給`y`,選項B正確。7.以下關(guān)于C語言中指針的說法,正確的是()A.指針只能指向整數(shù)類型的變量B.指針變量本身不占用內(nèi)存空間C.指針可以進(jìn)行加法和減法運算D.指針不能為`NULL`答案:C解析:指針可以指向各種數(shù)據(jù)類型的變量,指針變量本身也占用內(nèi)存空間,用于存儲所指向變量的地址。指針可以進(jìn)行加法和減法運算,通常用于遍歷數(shù)組等操作。指針可以為`NULL`,表示不指向任何有效的對象,所以選項A、B、D錯誤,選項C正確。8.以下代碼中,`strlen(str)`的值是()```cinclude<stdio.h>include<string.h>intmain(){charstr[]="Hello";printf("%d\n",strlen(str));return0;}```A.5B.6C.7D.8答案:A解析:`strlen`函數(shù)用于計算字符串的長度,不包括字符串結(jié)束符`'\0'`。字符串`"Hello"`的長度為5,所以`strlen(str)`的值為5,選項A正確。9.以下關(guān)于C++中虛函數(shù)的說法,正確的是()A.虛函數(shù)必須在基類中聲明為`virtual`B.虛函數(shù)不能在派生類中被重寫C.虛函數(shù)不能有函數(shù)體D.虛函數(shù)只能通過對象調(diào)用答案:A解析:虛函數(shù)必須在基類中聲明為`virtual`,這樣在派生類中重寫該函數(shù)時才能實現(xiàn)多態(tài)性。虛函數(shù)可以在派生類中被重寫,虛函數(shù)可以有函數(shù)體,虛函數(shù)可以通過指針或引用調(diào)用,以實現(xiàn)動態(tài)綁定,所以選項B、C、D錯誤,選項A正確。10.以下代碼的輸出結(jié)果是()```cinclude<stdio.h>voidfunc(intp){p=20;}intmain(){inta=10;func(&a);printf("%d\n",a);return0;}```A.10B.20C.30D.40答案:B解析:在`func`函數(shù)中,通過指針`p`修改了其所指向的變量的值。在`main`函數(shù)中,將`a`的地址傳遞給`func`函數(shù),所以`p`實際上就是`a`,將`p`的值修改為20后,`a`的值也變?yōu)?0,選項B正確。二、填空題1.若要定義一個指向`int`類型變量的指針`p`,并初始化為`NULL`,可以使用以下語句:`intp=______;`答案:`NULL`解析:`NULL`是一個空指針常量,用于初始化指針,表示該指針不指向任何有效的對象。2.在C++中,若要實現(xiàn)多態(tài)性,需要使用______函數(shù)。答案:虛解析:虛函數(shù)是實現(xiàn)C++多態(tài)性的關(guān)鍵,通過基類的指針或引用調(diào)用虛函數(shù)時,會根據(jù)實際對象的類型來決定調(diào)用哪個版本的函數(shù)。3.以下代碼中,`a`的值是______。```cinclude<stdio.h>intmain(){inta=5;a+=3;printf("%d\n",a);return0;}```答案:8解析:`a+=3`等價于`a=a+3`,初始`a`的值為5,加上3后`a`的值變?yōu)?。4.若要在C語言中打開一個名為`test.txt`的文件進(jìn)行只讀操作,可以使用以下代碼:`FILEfp=fopen("test.txt","______");`答案:`r`解析:`fopen`函數(shù)用于打開文件,第二個參數(shù)指定打開文件的模式,`"r"`表示以只讀模式打開文件。5.在C++中,類的成員默認(rèn)的訪問權(quán)限是______。答案:私有(`private`)解析:在C++中,類的成員默認(rèn)的訪問權(quán)限是私有,即只能在類的內(nèi)部訪問。三、簡答題1.請簡要解釋C語言中函數(shù)的傳值調(diào)用和傳址調(diào)用的區(qū)別。答案:-傳值調(diào)用:在傳值調(diào)用中,函數(shù)的參數(shù)是實際參數(shù)的副本。當(dāng)調(diào)用函數(shù)時,會將實際參數(shù)的值復(fù)制一份傳遞給形式參數(shù),函數(shù)內(nèi)部對形式參數(shù)的修改不會影響到實際參數(shù)。例如:```cinclude<stdio.h>voidfunc(inta){a=10;}intmain(){intx=5;func(x);printf("%d\n",x);//輸出5return0;}```-傳址調(diào)用:在傳址調(diào)用中,函數(shù)的參數(shù)是實際參數(shù)的地址。當(dāng)調(diào)用函數(shù)時,會將實際參數(shù)的地址傳遞給形式參數(shù),函數(shù)內(nèi)部可以通過地址來訪問和修改實際參數(shù)的值。例如:```cinclude<stdio.h>voidfunc(intp){p=10;}intmain(){intx=5;func(&x);printf("%d\n",x);//輸出10return0;}```2.請解釋C++中繼承的概念,并說明公有繼承、保護(hù)繼承和私有繼承的區(qū)別。答案:-繼承的概念:繼承是面向?qū)ο缶幊讨械囊环N重要機制,它允許一個類(派生類)繼承另一個類(基類)的屬性和方法。通過繼承,派生類可以復(fù)用基類的代碼,并且可以在此基礎(chǔ)上添加新的屬性和方法。-公有繼承:在公有繼承中,基類的公有成員和保護(hù)成員在派生類中仍然保持其原有的訪問權(quán)限,即公有成員在派生類外部可以訪問,保護(hù)成員只能在派生類內(nèi)部和派生類的子類中訪問?;惖乃接谐蓡T在派生類中不可直接訪問。-保護(hù)繼承:在保護(hù)繼承中,基類的公有成員和保護(hù)成員在派生類中都變?yōu)楸Wo(hù)成員,只能在派生類內(nèi)部和派生類的子類中訪問?;惖乃接谐蓡T在派生類中不可直接訪問。-私有繼承:在私有繼承中,基類的公有成員和保護(hù)成員在派生類中都變?yōu)樗接谐蓡T,只能在派生類內(nèi)部訪問?;惖乃接谐蓡T在派生類中不可直接訪問。3.請說明C語言中`static`關(guān)鍵字的作用。答案:-在函數(shù)內(nèi)部使用`static`修飾變量:這樣的變量被稱為靜態(tài)局部變量。靜態(tài)局部變量只在第一次調(diào)用函數(shù)時進(jìn)行初始化,之后再次調(diào)用函數(shù)時,該變量不會重新初始化,而是保留上一次調(diào)用結(jié)束時的值。例如:```cinclude<stdio.h>voidfunc(){staticinta=0;a++;printf("%d\n",a);}intmain(){func();//輸出1func();//輸出2return0;}```-在函數(shù)外部使用`static`修飾變量:這樣的變量被稱為靜態(tài)全局變量。靜態(tài)全局變量的作用域僅限于定義它的文件,其他文件無法訪問該變量。-在函數(shù)定義前使用`static`修飾函數(shù):這樣的函數(shù)被稱為靜態(tài)函數(shù)。靜態(tài)函數(shù)的作用域僅限于定義它的文件,其他文件無法調(diào)用該函數(shù)。四、編程題1.編寫一個C語言程序,計算并輸出1到100之間所有偶數(shù)的和。```cinclude<stdio.h>intmain(){intsum=0;for(inti=2;i<=100;i+=2){sum+=i;}printf("1到100之間所有偶數(shù)的和為:%d\n",sum);return0;}```2.編寫一個C++程序,定義一個`Rectangle`類,包含長和寬兩個屬性,以及計算面積和周長的方法。```cppinclude<iostream>classRectangle{private:doublelength;doublewidth;public:Rectangle(doublel,doublew):length(l),width(w){}doublegetArea(){returnlengthwidth;}doublegetPerimeter(){return2(length+width);}};intmain(){Rectanglerect(5.0,3.0);std::cout<<"面積:"<<rect.getArea()<<std::endl;std::cout<<"周長:"<<rect.getPerimeter()<<std::endl;return0;}```3.編寫一個C語言程序,實現(xiàn)字符串的反轉(zhuǎn)。```cinclude<stdio.h>include<string.h>voidreverseString(charstr){intlen=strlen(str);inti,j;for(i=0,j=len-1;i<j;i++,j--)

溫馨提示

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

最新文檔

評論

0/150

提交評論