全國計算機二級c語言題庫單選題100道及答案_第1頁
全國計算機二級c語言題庫單選題100道及答案_第2頁
全國計算機二級c語言題庫單選題100道及答案_第3頁
全國計算機二級c語言題庫單選題100道及答案_第4頁
全國計算機二級c語言題庫單選題100道及答案_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

全國計算機二級c語言題庫單選題100道及答案1.以下哪個是正確的C語言標識符?A.2variableB.variable_2C.variable-2D.if答案:B解析:C語言標識符只能由字母、數(shù)字和下劃線組成,且不能以數(shù)字開頭,同時不能是C語言的關(guān)鍵字。選項A以數(shù)字開頭,選項C包含非法字符“-”,選項D是關(guān)鍵字,所以選B。2.若有定義inta=5;,則執(zhí)行語句a+=a-=a*a;后,a的值是?A.-40B.-50C.40D.50答案:B解析:根據(jù)運算符優(yōu)先級,先計算a*a=25,然后a-=25,即a=5-25=-20,最后a+=-20,即a=-20+(-20)=-50,所以選B。3.以下關(guān)于for循環(huán)的說法,正確的是?A.for循環(huán)只能用于已知循環(huán)次數(shù)的情況B.for循環(huán)的三個表達式都可以省略C.for循環(huán)的循環(huán)體必須用花括號括起來D.for循環(huán)不能嵌套使用答案:B解析:for循環(huán)的三個表達式都可以省略,例如for(;;)是一個無限循環(huán)。for循環(huán)也可用于未知循環(huán)次數(shù)的情況,循環(huán)體只有一條語句時可以不用花括號,for循環(huán)可以嵌套使用,所以選B。4.以下哪種情況可以用break語句跳出?A.只能跳出switch語句B.只能跳出循環(huán)語句C.可以跳出switch語句和循環(huán)語句D.可以跳出任何語句塊答案:C解析:break語句可以用于跳出switch語句和循環(huán)語句(如for、while、do-while),但不能跳出任意語句塊,所以選C。5.若有定義intarr[5]={1,2,3,4,5};,則arr[3]的值是?A.1B.2C.3D.4答案:D解析:數(shù)組下標從0開始,arr[3]表示數(shù)組中第4個元素,值為4,所以選D。6.以下關(guān)于函數(shù)調(diào)用的說法,錯誤的是?A.函數(shù)調(diào)用時實參和形參可以同名B.函數(shù)調(diào)用時實參和形參的類型必須一致C.函數(shù)調(diào)用時可以不傳遞實參D.函數(shù)調(diào)用時實參和形參的個數(shù)必須相同答案:C解析:函數(shù)調(diào)用時如果函數(shù)定義有參數(shù),必須傳遞相應(yīng)數(shù)量和類型的實參。實參和形參可以同名,類型一般要一致,個數(shù)也要相同,所以選C。7.若有定義charch='A';,則執(zhí)行語句ch=ch+32;后,ch的值是?A.'A'B.'a'C.'B'D.'b'答案:B解析:在ASCII碼中,大寫字母和小寫字母相差32,'A'的ASCII碼值加上32得到'a'的ASCII碼值,所以選B。8.以下關(guān)于指針的說法,正確的是?A.指針只能指向變量B.指針變量必須初始化C.指針的大小與所指向的數(shù)據(jù)類型有關(guān)D.可以對指針進行加減運算答案:D解析:指針可以指向變量、數(shù)組、函數(shù)等;指針變量不一定要初始化;指針的大小在同一系統(tǒng)中是固定的,與所指向的數(shù)據(jù)類型無關(guān);可以對指針進行加減運算,所以選D。9.以下哪個是正確的結(jié)構(gòu)體定義形式?A.struct{inta;charb;}s;B.structs{inta;charb;};s;C.struct{inta;charb;}s[10];D.structs{inta;charb;}s;答案:A解析:選項A是正確的匿名結(jié)構(gòu)體定義并聲明變量的形式;選項B語法錯誤;選項C定義了一個結(jié)構(gòu)體數(shù)組;選項D重復(fù)使用了變量名s,不符合語法,所以選A。10.若有定義inta=10,b=20;,則執(zhí)行語句inttemp=a;a=b;b=temp;后,a和b的值分別是?A.10,20B.20,10C.10,10D.20,20答案:B解析:該語句通過臨時變量temp交換了a和b的值,所以a變?yōu)?0,b變?yōu)?0,選B。11.以下關(guān)于do-while循環(huán)的說法,正確的是?A.do-while循環(huán)至少執(zhí)行一次循環(huán)體B.do-while循環(huán)的條件判斷在循環(huán)體執(zhí)行之前C.do-while循環(huán)不能嵌套使用D.do-while循環(huán)的循環(huán)體只能有一條語句答案:A解析:do-while循環(huán)先執(zhí)行循環(huán)體,再進行條件判斷,所以至少執(zhí)行一次循環(huán)體。它可以嵌套使用,循環(huán)體可以有多條語句,所以選A。12.若有定義intarr[][3]={{1,2,3},{4,5,6}};,則arr[1][2]的值是?A.4B.5C.6D.3答案:C解析:二維數(shù)組arr中,arr[1][2]表示第二行第三列的元素,值為6,所以選C。13.以下關(guān)于函數(shù)返回值的說法,錯誤的是?A.函數(shù)可以沒有返回值B.函數(shù)的返回值類型可以是結(jié)構(gòu)體類型C.函數(shù)的返回值只能通過return語句返回D.函數(shù)的返回值類型必須與函數(shù)定義時指定的類型一致答案:C解析:函數(shù)可以沒有返回值(用void類型),返回值類型可以是結(jié)構(gòu)體類型等。函數(shù)一般通過return語句返回值,但也可以通過指針等方式間接返回信息,返回值類型通常要與函數(shù)定義時指定的類型一致,所以選C。14.若有定義charstr[]="hello";,則str的長度是?A.5B.6C.4D.不確定答案:B解析:字符串"hello"包含5個字符,但在C語言中字符串以'\0'結(jié)尾,所以數(shù)組str的長度是6,選B。15.以下關(guān)于文件操作的說法,正確的是?A.打開文件時必須指定文件的打開模式B.文件操作只能對文本文件進行C.關(guān)閉文件可以不調(diào)用fclose函數(shù)D.讀取文件時不需要檢查文件是否打開成功答案:A解析:打開文件時必須指定打開模式,如"r"(只讀)、"w"(只寫)等。文件操作可以對二進制文件等進行,關(guān)閉文件必須調(diào)用fclose函數(shù),讀取文件前要檢查文件是否打開成功,所以選A。16.若有定義inta=3,b=4;,則表達式a<b?a:b的值是?A.3B.4C.0D.1答案:A解析:這是一個三目運算符表達式,因為a<b為真,所以返回a的值3,選A。17.以下關(guān)于數(shù)組名的說法,正確的是?A.數(shù)組名是一個常量指針,指向數(shù)組的首元素B.數(shù)組名可以像指針一樣進行自增自減運算C.數(shù)組名可以作為函數(shù)的返回值D.數(shù)組名可以直接賦值給另一個數(shù)組名答案:A解析:數(shù)組名是一個常量指針,指向數(shù)組的首元素。數(shù)組名不能進行自增自減運算,不能作為函數(shù)的返回值,也不能直接賦值給另一個數(shù)組名,所以選A。18.若有定義voidfunc(int*p);,則以下調(diào)用正確的是?A.inta=5;func(a);B.inta=5;func(&a);C.intarr[5];func(arr[0]);D.intarr[5];func(&arr[0]);答案:B解析:函數(shù)func的參數(shù)是一個指針,需要傳遞變量的地址。選項A傳遞的是變量值,選項C傳遞的也是數(shù)組元素的值,選項D雖然是數(shù)組首元素地址,但不如選項B簡潔準確,所以選B。19.以下關(guān)于遞歸函數(shù)的說法,錯誤的是?A.遞歸函數(shù)必須有終止條件B.遞歸函數(shù)的效率一定比迭代函數(shù)高C.遞歸函數(shù)會占用較多的棧空間D.遞歸函數(shù)是自己調(diào)用自己的函數(shù)答案:B解析:遞歸函數(shù)必須有終止條件,否則會陷入無限遞歸。遞歸函數(shù)會占用較多的??臻g,它是自己調(diào)用自己的函數(shù)。但遞歸函數(shù)的效率不一定比迭代函數(shù)高,有時會有較多的重復(fù)計算,所以選B。20.若有定義floatf=3.14;,則表達式(int)f的值是?A.3.14B.3C.4D.不確定答案:B解析:(int)f是強制類型轉(zhuǎn)換,將float類型的f轉(zhuǎn)換為int類型,會直接舍去小數(shù)部分,所以值為3,選B。21.以下關(guān)于while循環(huán)的說法,正確的是?A.while循環(huán)的循環(huán)體可以為空B.while循環(huán)的條件表達式只能是關(guān)系表達式C.while循環(huán)不能嵌套使用D.while循環(huán)的循環(huán)體執(zhí)行次數(shù)一定大于0答案:A解析:while循環(huán)的循環(huán)體可以為空,條件表達式可以是各種表達式,while循環(huán)可以嵌套使用,while循環(huán)的循環(huán)體執(zhí)行次數(shù)可能為0(當條件一開始就不滿足時),所以選A。22.若有定義intarr[5]={0};,則數(shù)組arr的所有元素的值是?A.都為0B.都為隨機值C.第一個元素為0,其余為隨機值D.第一個元素為隨機值,其余為0答案:A解析:這種初始化方式會將數(shù)組的所有元素初始化為0,所以選A。23.以下關(guān)于函數(shù)重載的說法,在C語言中?A.可以實現(xiàn)函數(shù)重載B.不可以實現(xiàn)函數(shù)重載C.函數(shù)名相同但參數(shù)不同就是函數(shù)重載D.函數(shù)名相同但返回值不同就是函數(shù)重載答案:B解析:C語言不支持函數(shù)重載,函數(shù)重載是C++的特性,所以選B。24.若有定義charch;,則以下輸入語句正確的是?A.scanf("%c",ch);B.scanf("%c",&ch);C.scanf("%s",&ch);D.scanf("%s",ch);答案:B解析:scanf函數(shù)輸入字符時,需要傳遞變量的地址,所以選B。選項C和D用于輸入字符串,這里不適用。25.以下關(guān)于動態(tài)內(nèi)存分配的說法,正確的是?A.動態(tài)內(nèi)存分配使用的函數(shù)是malloc,不需要包含頭文件B.動態(tài)內(nèi)存分配的內(nèi)存空間在棧上C.動態(tài)內(nèi)存分配的內(nèi)存空間使用完后不需要釋放D.動態(tài)內(nèi)存分配可以根據(jù)需要調(diào)整分配的內(nèi)存大小答案:D解析:動態(tài)內(nèi)存分配使用malloc等函數(shù),需要包含頭文件<stdlib.h>。動態(tài)內(nèi)存分配的內(nèi)存空間在堆上,使用完后需要用free函數(shù)釋放。可以使用realloc函數(shù)根據(jù)需要調(diào)整分配的內(nèi)存大小,所以選D。26.若有定義inta=7,b=3;,則表達式a%b的值是?A.2B.0C.1D.3答案:A解析:%是取余運算符,7%3的結(jié)果是2,所以選A。27.以下關(guān)于數(shù)組作為函數(shù)參數(shù)的說法,正確的是?A.數(shù)組作為函數(shù)參數(shù)時,傳遞的是數(shù)組的副本B.數(shù)組作為函數(shù)參數(shù)時,函數(shù)內(nèi)對數(shù)組元素的修改不會影響原數(shù)組C.數(shù)組作為函數(shù)參數(shù)時,必須指定數(shù)組的大小D.數(shù)組作為函數(shù)參數(shù)時,傳遞的是數(shù)組的首地址答案:D解析:數(shù)組作為函數(shù)參數(shù)時,傳遞的是數(shù)組的首地址,函數(shù)內(nèi)對數(shù)組元素的修改會影響原數(shù)組,不一定要指定數(shù)組的大小,所以選D。28.若有定義void(*p)(int);,則p是?A.一個函數(shù),返回值是void,參數(shù)是intB.一個指向函數(shù)的指針,該函數(shù)返回值是void,參數(shù)是intC.一個整型變量D.一個指向整型變量的指針答案:B解析:void(*p)(int)定義了一個指向函數(shù)的指針p,該函數(shù)返回值是void,參數(shù)是int,所以選B。29.以下關(guān)于枚舉類型的說法,正確的是?A.枚舉類型的元素默認從1開始編號B.枚舉類型的元素可以是不同的數(shù)據(jù)類型C.枚舉類型的元素可以在定義后重新賦值D.枚舉類型可以提高程序的可讀性答案:D解析:枚舉類型的元素默認從0開始編號,元素必須是同一數(shù)據(jù)類型(整型),枚舉類型的元素在定義后不能重新賦值,它可以提高程序的可讀性,所以選D。30.若有定義inta=10;,則執(zhí)行語句a<<=2;后,a的值是?A.20B.40C.12D.8答案:B解析:<<是左移運算符,a<<=2相當于a=a<<2,10的二進制左移2位,相當于乘以4,結(jié)果是40,所以選B。31.以下關(guān)于switch語句的說法,正確的是?A.switch語句的表達式只能是整型或字符型B.switch語句的case后面必須是常量表達式C.switch語句的default子句必須放在最后D.switch語句的每個case后面都必須有break語句答案:B解析:switch語句的表達式可以是整型、字符型、枚舉類型等。case后面必須是常量表達式,default子句可以放在任意位置,case后面不一定要有break語句,所以選B。32.若有定義intarr[3][4];,則對數(shù)組元素arr[1][2]的正確引用是?A.*(arr+1)[2]B.*(*(arr+1)+2)C.(*(arr+1))[2]D.*(arr[1]+2)答案:B解析:二維數(shù)組可以通過指針的方式引用元素,*(arr+1)指向第二行,*(arr+1)+2指向第二行第三列元素的地址,*(*(arr+1)+2)就是該元素的值,所以選B。33.以下關(guān)于函數(shù)參數(shù)傳遞方式的說法,正確的是?A.C語言只有值傳遞一種參數(shù)傳遞方式B.指針作為函數(shù)參數(shù)時是引用傳遞C.數(shù)組作為函數(shù)參數(shù)時是引用傳遞D.結(jié)構(gòu)體作為函數(shù)參數(shù)時是引用傳遞答案:A解析:C語言只有值傳遞一種參數(shù)傳遞方式,指針、數(shù)組、結(jié)構(gòu)體作為函數(shù)參數(shù)時,傳遞的也是它們的值(地址或副本),不是真正意義上的引用傳遞,所以選A。34.若有定義charstr1[10]="hello",str2[10];,則以下復(fù)制字符串的操作正確的是?A.str2=str1;B.for(inti=0;i<10;i++)str2[i]=str1[i];C.strcpy(str2,str1);D.以上都不對答案:C解析:數(shù)組名不能直接賦值,選項A錯誤。選項B沒有考慮字符串結(jié)束符'\0'。使用strcpy函數(shù)可以正確復(fù)制字符串,所以選C。35.以下關(guān)于文件指針的說法,正確的是?A.文件指針指向文件的內(nèi)容B.文件指針是一個普通的指針變量C.文件指針在使用前不需要初始化D.文件指針可以同時指向多個文件答案:B解析:文件指針是一個普通的指針變量,指向一個文件信息區(qū)。它指向的不是文件內(nèi)容,使用前需要初始化,一個文件指針同一時間只能指向一個文件,所以選B。36.若有定義inta=5,b=6;,則表達式a>b?a++:b++的值是?A.5B.6C.7D.不確定答案:B解析:因為a>b為假,所以返回b++的值,先返回b的值6,然后b自增為7,所以選B。37.以下關(guān)于數(shù)組越界的說法,正確的是?A.數(shù)組越界一定會導(dǎo)致程序崩潰B.數(shù)組越界不會影響程序的正常運行C.數(shù)組越界可能會導(dǎo)致不可預(yù)期的結(jié)果D.數(shù)組越界只會訪問到相鄰的數(shù)組元素答案:C解析:數(shù)組越界不一定會導(dǎo)致程序崩潰,也可能會影響程序正常運行,它可能會訪問到其他內(nèi)存區(qū)域,導(dǎo)致不可預(yù)期的結(jié)果,不一定只是相鄰的數(shù)組元素,所以選C。38.若有定義voidfunc(inta[]);,則以下調(diào)用正確的是?A.intarr[5];func(arr);B.intarr[5];func(&arr);C.inta=5;func(a);D.intarr[5];func(arr[0]);答案:A解析:函數(shù)func的參數(shù)是一個整型數(shù)組,在C語言中數(shù)組名代表數(shù)組首地址,所以可以直接將數(shù)組名作為實參傳遞給函數(shù)。選項B傳遞的是數(shù)組的地址的地址;選項C傳遞的是一個整型變量;選項D傳遞的是數(shù)組的第一個元素,均不符合函數(shù)參數(shù)要求,所以選A。39.若有定義typedefstruct{intx;inty;}Point;,則以下聲明變量正確的是?A.structPointp;B.Pointp;C.struct{intx;inty;}p;D.typedefPointp;答案:B解析:通過typedef為結(jié)構(gòu)體類型定義了別名Point,之后可以直接使用Point來聲明變量。選項A錯誤地使用了structPoint;選項C沒有使用定義的別名;選項D語法錯誤,所以選B。40.若有定義inta=8;,則執(zhí)行語句a|=2;后,a的值是?A.2B.8C.10D.6答案:C解析:|=是按位或賦值運算符,8的二進制是1000,2的二進制是0010,按位或運算后結(jié)果為1010,即十進制的10,所以選C。41.以下關(guān)于continue語句的說法,正確的是?A.continue語句只能用于循環(huán)語句中B.continue語句會結(jié)束整個循環(huán)C.continue語句可以用于switch語句中D.continue語句之后的語句不會被執(zhí)行答案:A解析:continue語句只能用于循環(huán)語句中,它的作用是跳過本次循環(huán)中continue語句之后的語句,直接進入下一次循環(huán),不會結(jié)束整個循環(huán),也不能用于switch語句,所以選A。42.若有定義intarr[4]={1,2,3};,則arr[3]的值是?A.1B.2C.3D.0答案:D解析:數(shù)組初始化時,如果提供的初始值個數(shù)少于數(shù)組元素個數(shù),剩余元素會被初始化為0,所以arr[3]的值為0,選D。43.以下關(guān)于函數(shù)嵌套調(diào)用的說法,正確的是?A.函數(shù)不能嵌套調(diào)用B.函數(shù)嵌套調(diào)用會導(dǎo)致程序出錯C.函數(shù)嵌套調(diào)用可以實現(xiàn)復(fù)雜的功能D.函數(shù)嵌套調(diào)用的層數(shù)不能超過3層答案:C解析:函數(shù)可以嵌套調(diào)用,通過函數(shù)嵌套調(diào)用可以將復(fù)雜的任務(wù)分解成多個小任務(wù),實現(xiàn)復(fù)雜的功能,嵌套調(diào)用不會必然導(dǎo)致程序出錯,嵌套層數(shù)也沒有嚴格限制,所以選C。44.若有定義charch='9';,則表達式ch-'0'的值是?A.'9'B.9C.0D.不確定答案:B解析:在ASCII碼中,字符'0'-'9'是連續(xù)的,字符減去字符'0'可以得到對應(yīng)的數(shù)字值,所以'9'-'0'的值是9,選B。45.以下關(guān)于靜態(tài)變量的說法,正確的是?A.靜態(tài)變量只能在函數(shù)內(nèi)部定義B.靜態(tài)變量在程序運行期間只初始化一次C.靜態(tài)變量的作用域是整個程序D.靜態(tài)變量的生命周期和自動變量一樣答案:B解析:靜態(tài)變量可以在函數(shù)內(nèi)部或外部定義。它在程序運行期間只初始化一次,之后再次進入函數(shù)時不會重新初始化。靜態(tài)變量的作用域根據(jù)定義位置有所不同,不一定是整個程序。靜態(tài)變量的生命周期是整個程序運行期間,和自動變量不同,所以選B。46.若有定義inta=1,b=2,c;,則執(zhí)行語句c=(a>b)?a:b;后,c的值是?A.1B.2C.0D.3答案:B解析:因為a>b為假,所以三目運算符返回b的值,即2,所以選B。47.以下關(guān)于數(shù)組和指針的關(guān)系,錯誤的是?A.數(shù)組名可以隱式轉(zhuǎn)換為指向數(shù)組首元素的指針B.可以通過指針來訪問數(shù)組元素C.指針和數(shù)組是完全相同的概念D.指針可以指向數(shù)組的任意元素答案:C解析:數(shù)組名在很多情況下可以隱式轉(zhuǎn)換為指向數(shù)組首元素的指針,通過指針可以方便地訪問數(shù)組元素,指針也可以指向數(shù)組的任意元素。但指針和數(shù)組不是完全相同的概念,數(shù)組有自己的大小和存儲方式等,所以選C。48.若有定義void(*p)(int,int);,則以下賦值正確的是?A.voidfunc(int,int);p=func;B.voidfunc(inta,intb);p=&func;C.intfunc(int,int);p=func;D.voidfunc(int);p=func;答案:A解析:p是一個指向函數(shù)的指針,該函數(shù)返回值為void,有兩個int類型的參數(shù)。選項A中函數(shù)func的類型和p指向的函數(shù)類型匹配,可以直接將函數(shù)名賦值給p;選項B中取函數(shù)地址的操作在C語言中是多余的;選項C中函數(shù)返回值類型不匹配;選項D中函數(shù)參數(shù)個數(shù)不匹配,所以選A。49.以下關(guān)于宏定義的說法,正確的是?A.宏定義只能定義常量B.宏定義在編譯時進行替換C.宏定義的作用域是整個程序D.宏定義可以嵌套,但不能遞歸答案:B解析:宏定義不僅可以定義常量,還可以定義帶參數(shù)的宏等。宏定義在編譯時進行簡單的文本替換。宏定義的作用域從定義處到文件結(jié)束或遇到#undef指令。宏定義可以遞歸,所以選B。50.若有定義inta=15;,則執(zhí)行語句a&=7;后,a的值是?A.7B.15C.8D.0答案:A解析:&=是按位與賦值運算符,15的二進制是1111,7的二進制是0111,按位與運算后結(jié)果為0111,即十進制的7,所以選A。51.以下關(guān)于for循環(huán)嵌套的說法,正確的是?A.for循環(huán)只能嵌套兩層B.嵌套的for循環(huán)的循環(huán)變量必須不同C.嵌套的for循環(huán)的執(zhí)行順序是外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)執(zhí)行完所有次數(shù)D.嵌套的for循環(huán)會導(dǎo)致程序效率降低答案:C解析:for循環(huán)可以嵌套多層,嵌套的for循環(huán)的循環(huán)變量可以相同(但可能會引起混淆)。嵌套的for循環(huán)執(zhí)行順序是外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)執(zhí)行完所有次數(shù)。嵌套的for循環(huán)不一定會導(dǎo)致程序效率降低,合理使用可以實現(xiàn)復(fù)雜功能,所以選C。52.若有定義intarr[2][3]={{1,2},{3,4,5}};,則arr[0][2]的值是?A.1B.2C.0D.3答案:C解析:在初始化二維數(shù)組時,未提供初始值的元素會被初始化為0,所以arr[0][2]的值為0,選C。53.以下關(guān)于函數(shù)的參數(shù)默認值,在C語言中?A.可以為函數(shù)參數(shù)設(shè)置默認值B.不可以為函數(shù)參數(shù)設(shè)置默認值C.只有在函數(shù)聲明時可以設(shè)置參數(shù)默認值D.只有在函數(shù)定義時可以設(shè)置參數(shù)默認值答案:B解析:C語言不支持為函數(shù)參數(shù)設(shè)置默認值,這是C++的特性,所以選B。54.若有定義charstr[]="abc\0def";,則strlen(str)的值是?A.7B.3C.4D.不確定答案:B解析:strlen函數(shù)計算字符串的長度,遇到'\0'就停止,所以"abc\0def"的長度是3,選B。55.以下關(guān)于內(nèi)存泄漏的說法,正確的是?A.內(nèi)存泄漏只會發(fā)生在動態(tài)內(nèi)存分配中B.內(nèi)存泄漏不會影響程序的正常運行C.內(nèi)存泄漏是指程序使用了未分配的內(nèi)存D.只要使用了動態(tài)內(nèi)存分配就一定會發(fā)生內(nèi)存泄漏答案:A解析:內(nèi)存泄漏主要是指在動態(tài)內(nèi)存分配中,分配的內(nèi)存使用完后沒有釋放,導(dǎo)致這部分內(nèi)存無法再被使用。內(nèi)存泄漏會影響程序的性能甚至導(dǎo)致程序崩潰。它不是使用了未分配的內(nèi)存。使用動態(tài)內(nèi)存分配不一定會發(fā)生內(nèi)存泄漏,只要正確釋放內(nèi)存即可,所以選A。56.若有定義inta=3,b=5;,則表達式a^b的值是?A.2B.8C.6D.0答案:A解析:^是按位異或運算符,3的二進制是0011,5的二進制是0101,按位異或運算后結(jié)果為0110,即十進制的2,所以選A。57.以下關(guān)于數(shù)組初始化的說法,錯誤的是?A.可以只初始化部分數(shù)組元素B.數(shù)組初始化時元素個數(shù)可以超過數(shù)組定義的大小C.字符數(shù)組可以用字符串常量初始化D.數(shù)組初始化時可以不指定數(shù)組大小答案:B解析:數(shù)組初始化時可以只初始化部分元素,剩余元素會被初始化為0。字符數(shù)組可以用字符串常量初始化。數(shù)組初始化時如果提供了初始值,可以不指定數(shù)組大小。但數(shù)組初始化時元素個數(shù)不能超過數(shù)組定義的大小,所以選B。58.若有定義voidfunc(int*a,int*b);,則以下調(diào)用正確的是?A.intx=1,y=2;func(x,y);B.intx=1,y=2;func(&x,&y);C.intarr[2]={1,2};func(arr[0],arr[1]);D.intarr[2]={1,2};func(&arr[0],&arr[1]);答案:B解析:函數(shù)func的參數(shù)是兩個指針,需要傳遞變量的地址。選項A傳遞的是變量值;選項C傳遞的也是數(shù)組元素的值;選項D雖然傳遞的是地址,但不如選項B簡潔明了,所以選B。59.以下關(guān)于枚舉常量的說法,正確的是?A.枚舉常量可以在程序中重新賦值B.枚舉常量的值只能是整數(shù)C.枚舉常量的作用域是整個程序D.枚舉常量可以和其他類型的數(shù)據(jù)進行運算答案:B解析:枚舉常量在定義后不能重新賦值,其值只能是整數(shù)。枚舉常量的作用域根據(jù)定義位置而定,不一定是整個程序。枚舉常量可以和同類型的數(shù)據(jù)進行運算,與其他類型運算需要進行類型轉(zhuǎn)換,所以選B。60.若有定義inta=4;,則執(zhí)行語句a>>=1;后,a的值是?A.2B.4C.8D.1答案:A解析:>>=是右移賦值運算符,4的二進制是0100,右移1位后是0010,即十進制的2,所以選A。61.以下關(guān)于switch語句中break的作用,正確的是?A.跳出整個switch語句B.跳出當前的case分支C.結(jié)束本次循環(huán)D.結(jié)束整個程序答案:A解析:在switch語句中,break語句的作用是跳出整個switch語句,而不是只跳出當前case分支。它和循環(huán)無關(guān),也不會結(jié)束整個程序,所以選A。62.若有定義intarr[3][2]={1,2,3,4,5,6};,則arr[2][1]的值是?A.5B.6C.4D.3答案:B解析:二維數(shù)組按行存儲,arr[2][1]表示第三行第二列的元素,值為6,所以選B。63.以下關(guān)于函數(shù)的返回值類型,說法錯誤的是?A.函數(shù)的返回值類型可以是自定義類型B.函數(shù)的返回值類型可以是指針類型C.函數(shù)的返回值類型可以和參數(shù)類型不同D.函數(shù)必須有返回值答案:D解析:函數(shù)的返回值類型可以是自定義類型、指針類型等,也可以和參數(shù)類型不同。但函數(shù)不一定必須有返回值,當返回值類型為void時表示沒有返回值,所以選D。64.若有定義charstr1[10],str2[]="world";,則以下連接字符串的操作正確的是?A.str1=str1+str2;B.strcat(str1,str2);C.for(inti=0;i<strlen(str2);i++)str1[strlen(str1)+i]=str2[i];D.以上都不對答案:B解析:數(shù)組名不能進行加法運算,選項A錯誤。選項C沒有考慮字符串結(jié)束符。使用strcat函數(shù)可以正確連接字符串,所以選B。65.以下關(guān)于文件讀寫的說法,正確的是?A.以"r"模式打開文件時,如果文件不存在會創(chuàng)建文件B.以"w"模式打開文件時,如果文件已存在會清空文件內(nèi)容C.以"a"模式打開文件時,只能從文件開頭寫入數(shù)據(jù)D.以"rb"模式打開文件時,可以進行文本文件的讀取答案:B解析:以"r"模式打開文件時,如果文件不存在會打開失?。灰?w"模式打開文件時,如果文件已存在會清空文件內(nèi)容;以"a"模式打開文件時,是從文件末尾追加數(shù)據(jù);以"rb"模式打開文件是用于二進制文件的讀取,所以選B。66.若有定義inta=7,b=2;,則表達式a/b的值是?A.3.5B.3C.4D.不確定答案:B解析:兩個整數(shù)相除,結(jié)果會舍去小數(shù)部分,所以7/2的值是3,選B。67.以下關(guān)于數(shù)組名作為函數(shù)參數(shù)傳遞的特點,正確的是?A.函數(shù)內(nèi)部無法修改數(shù)組元素的值B.傳遞的是數(shù)組的副本,函數(shù)內(nèi)外數(shù)組互不影響C.函數(shù)可以獲取數(shù)組的真實長度D.傳遞的是數(shù)組的首地址,函數(shù)內(nèi)部可以修改數(shù)組元素的值答案:D解析:數(shù)組名作為函數(shù)參數(shù)傳遞時,傳遞的是數(shù)組的首地址,函數(shù)內(nèi)部可以通過這個地址修改數(shù)組元素的值。函數(shù)無法直接獲取數(shù)組的真實長度,因為只傳遞了首地址,所以選D。68.若有定義void(*p)(void);,則p可以指向以下哪個函數(shù)?A.intfunc(void);B.voidfunc(int);C.voidfunc(void);D.charfunc(void);答案:C解析:p是一個指向函數(shù)的指針,該函數(shù)返回值為void,無參數(shù)。選項A和D返回值類型不匹配;選項B參數(shù)類型不匹配;只有選項C符合要求,所以選C。69.以下關(guān)于結(jié)構(gòu)體嵌套的說法,正確的是?A.結(jié)構(gòu)體不能嵌套B.結(jié)構(gòu)體嵌套時,內(nèi)部結(jié)構(gòu)體不能有自己的成員C.結(jié)構(gòu)體嵌套可以實現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)D.結(jié)構(gòu)體嵌套會導(dǎo)致程序出錯答案:C解析:結(jié)構(gòu)體可以嵌套,內(nèi)部結(jié)構(gòu)體可以有自己的成員。通過結(jié)構(gòu)體嵌套可以實現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),合理使用不會導(dǎo)致程序出錯,所以選C。70.若有定義inta=9;,則執(zhí)行語句a&=~(1<<2);后,a的值是?A.9B.5C.13D.0答案:B解析:1<<2得到4(二進制0100),~(1<<2)是對其取反得到1011,9的二進制是1001,按位與運算后結(jié)果為0101,即十進制的5,所以選B。71.以下關(guān)于while循環(huán)和do-while循環(huán)的區(qū)別,正確的是?A.while循環(huán)先判斷條件,do-while循環(huán)后判斷條件B.while循環(huán)至少執(zhí)行一次循環(huán)體,do-while循環(huán)不一定C.while循環(huán)的循環(huán)體只能有一條語句,do-while循環(huán)可以有多條語句D.while循環(huán)不能嵌套,do-while循環(huán)可以嵌套答案:A解析:while循環(huán)先判斷條件,條件為真才執(zhí)行循環(huán)體;do-while循環(huán)先執(zhí)行循環(huán)體,再判斷條件。while循環(huán)不一定執(zhí)行循環(huán)體,do-while循環(huán)至少執(zhí)行一次。兩種循環(huán)的循環(huán)體都可以有多條語句,也都可以嵌套,所以選A。72.若有定義intarr[5]={1,3,5,7,9};,則*(arr+3)的值是?A.1B.3C.5D.7答案:D解析:數(shù)組名arr可以看作指向數(shù)組首元素的指針,arr+3指向數(shù)組的第四個元素(下標為3),*(arr+3)就是取該元素的值,為7,所以選D。73.以下關(guān)于函數(shù)的存儲類別,說法錯誤的是?A.函數(shù)默認的存儲類別是externB.用static修飾的函數(shù)只能在本文件中被調(diào)用C.函數(shù)可以有auto存儲類別D.函數(shù)的存儲類別影響其作用域和鏈接屬性答案:C解析:函數(shù)默認的存儲類別是extern,表示可以在其他文件中被調(diào)用。用static修飾的函數(shù)具有內(nèi)部鏈接屬性,只能在本文件中被調(diào)用。函數(shù)沒有auto存儲類別,auto一般用于局部變量。函數(shù)的存儲類別確實會影響其作用域和鏈接屬性,所以選C。74.若有定義charch='B';,則表達式ch+3的值是?A.'E'B.'D'C.'C'D.'F'答案:A解析:在ASCII碼中,字符'B'的ASCII值加上3,得到字符'E'的ASCII值,所以表達式的值是'E',選A。75.以下關(guān)于動態(tài)數(shù)組的說法,正確的是?A.動態(tài)數(shù)組在編譯時確定大小B.動態(tài)數(shù)組使用完后不需要釋放內(nèi)存C.動態(tài)數(shù)組可以根據(jù)需要調(diào)整大小D.動態(tài)數(shù)組只能是一維的答案:C解析:動態(tài)數(shù)組是在程序運行時通過動態(tài)內(nèi)存分配函數(shù)(如malloc、realloc)來確定大小的,不是在編譯時。動態(tài)數(shù)組使用完后需要用free函數(shù)釋放內(nèi)存。動態(tài)數(shù)組可以使用realloc函數(shù)根據(jù)需要調(diào)整大小,也可以是多維的,所以選C。76.若有定義inta=4,b=5;,則表達式a&&b的值是?A.0B.1C.4D.5答案:B解析:&&是邏輯與運算符,只要兩個操作數(shù)都為非零值,結(jié)果就為1。這里a和b都不為0,所以a&&b的值是1,選B。77.以下關(guān)于數(shù)組和字符串的關(guān)系,說法正確的是?A.字符串一定是數(shù)組,但數(shù)組不一定是字符串B.數(shù)組一定是字符串,但字符串不一定是數(shù)組C.數(shù)組和字符串是完全相同的概念D.字符串和數(shù)組沒有任何關(guān)系答案:A解析:字符串是由字符組成的以'\0'結(jié)尾的數(shù)組,所以字符串一定是數(shù)組,但數(shù)組不一定是以'\0'結(jié)尾的,不一定是字符串,它們不是完全相同的概念,所以選A。78.若有定義void(*p)(float);,以下哪個函數(shù)可以賦值給p?A.voidfunc(int);B.voidfunc(float);C.intfunc(float);D.voidfunc(double);答案:B解析:p是一個指向函數(shù)的指針,該函數(shù)返回值為void,參數(shù)為float類型。選項A參數(shù)類型不匹配;選項C返回值類型不匹配;選項D參數(shù)類型不匹配;只有選項B符合要求,所以選B。79.以下關(guān)于枚舉類型的定義和使用,說法錯誤的是?A.枚舉類型定義時可以指定元素的值B.枚舉類型的元素可以作為常量使用C.枚舉類型的元素可以進行自增自減運算D.枚舉類型的元素可以和整數(shù)進行比較答案:C解析:枚舉類型定義時可以指定元素的值,元素可以作為常量使用,也可以和整數(shù)進行比較。但枚舉類型的元素不可以進行自增自減運算,因為它們是常量,所以選C。80.若有定義inta=12;,則執(zhí)行語句a|=(1<<1);后,a的值是?A.12B.14C.10D.8答案:B解析:1<<1得到2(二進制0010),12的二進制是1100,按位或運算后結(jié)果為1110,即十進制的14,所以選B。81.以下關(guān)于for循環(huán)的執(zhí)行流程,說法正確的是?A.先執(zhí)行循環(huán)體,再判斷條件,最后更新循環(huán)變量B.先判斷條件,條件為真則執(zhí)行循環(huán)體,然后更新循環(huán)變量C.先更新循環(huán)變量,再判斷條件,條件為真則執(zhí)行循環(huán)體D.先執(zhí)行循環(huán)體,再更新循環(huán)變量,最后判斷條件答案:B解析:for循環(huán)的執(zhí)行流程是先執(zhí)行初始化表達式,然后判斷條件表達式,條件為真則執(zhí)行循環(huán)體,最后執(zhí)行更新表達式,所以選B。82.若有定義intarr[2][3]={{1,2},{3}};,則arr[1][2]的值是?A.1B.2C.3D.0答案:D解析:在初始化二維數(shù)組時,未提供初始值的元素會被初始化為0,所以arr[1][2]的值為0,選D。83.以下關(guān)于函數(shù)的參數(shù)傳遞,說法錯誤的是?A.實參和形參的類型要一致B.實參和形參的個數(shù)要相同C.傳遞數(shù)組時,傳遞的是數(shù)組的副本D.傳遞指針時,傳遞的是指針的值答案:C解析:函數(shù)參數(shù)傳遞時,實參和形參的類型和個數(shù)一般要一致。傳遞數(shù)組時,傳遞的是數(shù)組的首地址,不是數(shù)組的副本;傳遞指針時,傳遞的是指針的值(即地址),所以選C。84.若有定義charstr[]="abc";,則sizeof(str)的值是?A.3B.4C.不確定D.以上都不對答案:B解析:sizeof運算符計算的是數(shù)組所占的內(nèi)存空間大小,字符串"abc"包含3個字符,但還有一個字符串結(jié)束符'\0',所以數(shù)組str的大小是4,選B。85.以下關(guān)于文件操作的錯誤處理,說法正確的是?A.打開文件失敗時不需要進行錯誤處理B.讀取文件時不需要檢查文件指針是否為空C.關(guān)閉文件失敗不會影響程序的運行D.進行文件操作時應(yīng)該檢查函數(shù)的返回值以進行錯誤處理答案:D解析:打開文件失敗、讀取文件時文件指針為空、關(guān)閉文件失敗等情況都可能影響程序的正常運行,進行文件操作時應(yīng)該檢查函數(shù)的返回值以進行錯誤處理,所以選D。86.若有定義inta=6,b=3;,則表達式a%=b;后,a的值是?A.2B.0C.3D.6答案:B解析:%=是取余賦值運算符,6%3的結(jié)果是0,所以執(zhí)行語句后a的值為0,選B。87.以下關(guān)于數(shù)組的初始化方式,說法正確的是?A.只能在定義數(shù)組時進行初始化B.可以在定義后通過賦值語句對整個數(shù)組進行初始化C.可以在函數(shù)內(nèi)部對全局數(shù)組進行初始化D.可以使用循環(huán)對數(shù)組元素進行初始化答案:D解析:數(shù)組可以在定義時初始化,也可以在定義后使用循環(huán)對數(shù)組元素進行初始化。不能通過賦值語句對整個數(shù)組進行初始化,全局數(shù)組的初始化在程序開始時進行,不是在函數(shù)內(nèi)部,所以選D。88.若有定義voidfunc(int**p);,則以下調(diào)用正確的是?A.inta=5;func(&a);B.inta=5;int*pa=&a;func(pa);C.inta=5;int*pa=&a;func(&pa);D.inta=5;func(a);答案:C解析:函數(shù)func的參數(shù)是一個二級指針,需要傳遞一個指針的地址。選項A傳遞的是變量的地址;選項B傳遞的是一級指針;選項D傳遞的是變量值;只有選項C傳遞的是一級指針的地址,符合要求,所以選C。89.以下關(guān)于結(jié)構(gòu)體變量的賦值,說法正確的是?A.結(jié)構(gòu)體變量不能直接賦值B.結(jié)構(gòu)體變量可以直接賦值,只要類型相同C.結(jié)構(gòu)體變量賦值時,成員變量的順序可以不同D.結(jié)構(gòu)體變量賦值時,成員變量的類型可以不同答案:B解析:只要結(jié)構(gòu)體類型相同,結(jié)構(gòu)體變量可以直接賦值。賦值時成員變量的順序和類型都要一致,所以選B。90.若有定義inta=8;,則執(zhí)行語句a^=2;后,a的值是?A.10B.6C.8D.2答案:A解析:^=是按位異或賦值運算符,8的二進制是1000,2的二進制是0010,按位異或運算后結(jié)果為1010,即十進制的10,所以選A。91.以下關(guān)于continue語句

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論