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

下載本文檔

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

文檔簡介

全國計算機二級考試c語言考試題庫100道及答案1.以下關(guān)于C語言變量聲明的說法,正確的是()A.變量聲明后可以不賦值就使用B.變量聲明時必須指定數(shù)據(jù)類型C.變量聲明只能在函數(shù)開頭進行D.變量聲明后不能改變其數(shù)據(jù)類型答案:B解析:C語言中變量聲明時必須指定數(shù)據(jù)類型,A選項未賦值使用可能得到隨機值;C選項變量聲明可在函數(shù)內(nèi)任意位置;D選項在某些情況下可通過強制類型轉(zhuǎn)換改變使用時的類型,但本質(zhì)類型聲明后固定。2.若有定義inta=5,b=3;則表達式a/b的值是()A.1B.1.666667C.2D.1.5答案:A解析:兩個整數(shù)相除,結(jié)果為整數(shù),舍去小數(shù)部分,5/3結(jié)果為1。3.以下哪種循環(huán)結(jié)構(gòu)一定會至少執(zhí)行一次循環(huán)體()A.for循環(huán)B.while循環(huán)C.do-while循環(huán)D.以上都不是答案:C解析:do-while循環(huán)是先執(zhí)行循環(huán)體,再判斷條件,所以至少執(zhí)行一次。4.以下關(guān)于數(shù)組的說法錯誤的是()A.數(shù)組的下標(biāo)從0開始B.數(shù)組在內(nèi)存中是連續(xù)存儲的C.數(shù)組定義時可以不指定大小D.可以通過下標(biāo)訪問數(shù)組元素答案:C解析:數(shù)組定義時必須指定大小,A、B、D選項關(guān)于數(shù)組的描述都是正確的。5.若有函數(shù)定義voidfunc(int*p),以下調(diào)用方式正確的是()A.inta=10;func(a);B.inta=10;func(&a);C.int*p;func(p);D.inta=10;func(*a);答案:B解析:函數(shù)參數(shù)為指針類型,調(diào)用時要傳入變量的地址,A傳入變量值錯誤;C指針未初始化;D*a寫法錯誤。6.以下關(guān)于字符數(shù)組和字符串的說法,正確的是()A.字符數(shù)組一定是字符串B.字符串一定是字符數(shù)組C.字符數(shù)組長度和字符串長度一定相等D.字符串結(jié)束標(biāo)志是'0'答案:B解析:字符串是字符數(shù)組的一種特殊形式,以'\0'結(jié)尾,A字符數(shù)組不一定以'\0'結(jié)尾就不是字符串;C字符數(shù)組長度包含'\0',可能大于字符串長度;D字符串結(jié)束標(biāo)志是'\0'。7.若有inta[3][4];則a[1]表示的是()A.第1行第0列元素的地址B.第1行元素的首地址C.第2行第0列元素的值D.第2行元素的首地址答案:B解析:二維數(shù)組中a[i]表示第i行元素的首地址,數(shù)組下標(biāo)從0開始,所以a[1]是第1行元素首地址。8.以下關(guān)于函數(shù)返回值的說法,錯誤的是()A.函數(shù)可以沒有返回值B.函數(shù)返回值類型必須與定義時一致C.函數(shù)可以返回數(shù)組D.函數(shù)可以返回指針答案:C解析:C語言中函數(shù)不能直接返回數(shù)組,但可以返回指向數(shù)組的指針,A、B、D選項說法正確。9.若有定義inta=10,b=20;執(zhí)行語句a^=b;b^=a;a^=b;后,a和b的值分別是()A.10,20B.20,10C.10,10D.20,20答案:B解析:這是利用異或運算交換兩個變量的值,經(jīng)過三次異或操作后,a和b的值交換。10.以下關(guān)于預(yù)處理指令的說法,正確的是()A.預(yù)處理指令是在編譯時執(zhí)行的B.#define只能定義常量C.#include只能包含標(biāo)準(zhǔn)庫頭文件D.預(yù)處理指令可以出現(xiàn)在程序的任意位置答案:A解析:預(yù)處理指令在編譯前執(zhí)行,B選項#define可定義宏;C選項#include可包含自定義頭文件;D選項預(yù)處理指令一般放在文件開頭。11.若有定義charstr[]="hello";則strlen(str)的值是()A.5B.6C.7D.不確定答案:A解析:strlen函數(shù)計算字符串長度,不包含'\0',"hello"長度為5。12.以下關(guān)于結(jié)構(gòu)體的說法,錯誤的是()A.結(jié)構(gòu)體可以包含不同類型的成員B.結(jié)構(gòu)體變量定義后可以直接使用成員C.結(jié)構(gòu)體可以嵌套定義D.結(jié)構(gòu)體的成員不能是數(shù)組答案:D解析:結(jié)構(gòu)體的成員可以是數(shù)組,A、B、C選項關(guān)于結(jié)構(gòu)體的描述都是正確的。13.若有函數(shù)定義intfunc(intx,inty){returnx>y?x:y;}調(diào)用func(3,5)的返回值是()A.3B.5C.8D.2答案:B解析:函數(shù)功能是返回兩個數(shù)中較大的數(shù),3和5中5較大,所以返回5。14.以下關(guān)于指針運算的說法,正確的是()A.指針可以進行加法和減法運算B.指針可以進行乘法和除法運算C.指針可以和整數(shù)進行除法運算D.指針之間可以進行除法運算答案:A解析:指針可以和整數(shù)進行加法和減法運算,用于移動指針位置,B、C、D選項中指針的乘法、除法運算一般不合法。15.若有定義inta[5]={1,2,3,4,5};則a[3]的值是()A.1B.2C.3D.4答案:D解析:數(shù)組下標(biāo)從0開始,a[3]是數(shù)組第4個元素,值為4。16.以下關(guān)于循環(huán)嵌套的說法,錯誤的是()A.循環(huán)嵌套可以有多層B.內(nèi)層循環(huán)執(zhí)行次數(shù)等于外層循環(huán)執(zhí)行次數(shù)乘以每層內(nèi)層循環(huán)的執(zhí)行次數(shù)C.外層循環(huán)和內(nèi)層循環(huán)的控制變量可以相同D.循環(huán)嵌套時內(nèi)層循環(huán)先執(zhí)行完再執(zhí)行外層循環(huán)的下一次迭代答案:C解析:外層循環(huán)和內(nèi)層循環(huán)的控制變量不能相同,否則會造成混淆,A、B、D選項關(guān)于循環(huán)嵌套的描述正確。17.若有定義floatx=3.14;則(int)x的值是()A.3B.3.14C.4D.3.0答案:A解析:(int)x是強制類型轉(zhuǎn)換,將float類型轉(zhuǎn)換為int類型,舍去小數(shù)部分,結(jié)果為3。18.以下關(guān)于位運算的說法,正確的是()A.位運算只能用于整數(shù)類型B.位運算的優(yōu)先級都比算術(shù)運算高C.按位與運算符是|D.按位異或運算符是&答案:A解析:位運算主要用于整數(shù)類型,B位運算優(yōu)先級不一定比算術(shù)運算高;C按位或運算符是|;D按位異或運算符是^,按位與運算符是&。19.若有函數(shù)定義voidswap(int*a,int*b){intt=*a;*a=*b;*b=t;}調(diào)用該函數(shù)交換兩個變量的值,以下調(diào)用方式正確的是()A.intx=10,y=20;swap(x,y);B.intx=10,y=20;swap(&x,&y);C.intx=10,y=20;swap(*x,*y);D.intx=10,y=20;swap(&x,y);答案:B解析:函數(shù)參數(shù)為指針類型,調(diào)用時要傳入變量的地址,A傳入變量值錯誤;C*x寫法錯誤;D參數(shù)類型不匹配。20.以下關(guān)于文件操作的說法,錯誤的是()A.文件打開后必須關(guān)閉B.fopen函數(shù)用于打開文件C.fread函數(shù)用于向文件寫入數(shù)據(jù)D.文件操作可能會出現(xiàn)錯誤,需要檢查返回值答案:C解析:fread函數(shù)用于從文件讀取數(shù)據(jù),fwrite函數(shù)用于向文件寫入數(shù)據(jù),A、B、D選項關(guān)于文件操作的描述正確。21.若有定義intarr[10];則數(shù)組arr占用的內(nèi)存空間大小是()A.10字節(jié)B.20字節(jié)C.40字節(jié)D.80字節(jié)答案:C解析:假設(shè)int類型占4字節(jié),數(shù)組arr有10個元素,占用內(nèi)存空間為10*4=40字節(jié)。22.以下關(guān)于條件運算符(?:)的說法,正確的是()A.條件運算符是三元運算符B.條件運算符的優(yōu)先級比賦值運算符低C.條件運算符只能用于整數(shù)類型D.條件運算符的兩個分支表達式類型必須相同答案:A解析:條件運算符是三元運算符,B優(yōu)先級比賦值運算符高;C可用于多種類型;D兩個分支表達式類型可不同,但會進行類型轉(zhuǎn)換。23.若有定義charch='A';則ch+32的值是()A.'a'B.'A'C.97D.65答案:A解析:在ASCII碼中,大寫字母和小寫字母相差32,'A'+32得到'a'。24.以下關(guān)于遞歸函數(shù)的說法,錯誤的是()A.遞歸函數(shù)必須有終止條件B.遞歸函數(shù)的調(diào)用會消耗大量棧空間C.遞歸函數(shù)可以替代所有循環(huán)結(jié)構(gòu)D.遞歸函數(shù)在調(diào)用自身時參數(shù)會發(fā)生變化答案:C解析:遞歸函數(shù)不能替代所有循環(huán)結(jié)構(gòu),有些循環(huán)用遞歸實現(xiàn)可能效率低或復(fù)雜度高,A、B、D選項關(guān)于遞歸函數(shù)的描述正確。25.若有定義inta=5;則表達式++a的值是()A.5B.6C.4D.不確定答案:B解析:++a是前置自增運算符,先將a的值加1,再使用a的值,所以結(jié)果為6。26.以下關(guān)于函數(shù)重載的說法,在C語言中()A.支持函數(shù)重載B.不支持函數(shù)重載C.部分編譯器支持函數(shù)重載D.函數(shù)名相同但參數(shù)不同就是函數(shù)重載答案:B解析:C語言不支持函數(shù)重載,函數(shù)名必須唯一,C++支持函數(shù)重載。27.若有定義inta[2][3]={{1,2,3},{4,5,6}};則a[1][2]的值是()A.3B.4C.5D.6答案:D解析:二維數(shù)組a[1][2]表示第2行第3列元素(下標(biāo)從0開始),值為6。28.以下關(guān)于宏定義的說法,正確的是()A.宏定義可以帶參數(shù)B.宏定義的作用域是整個程序C.宏定義在編譯時進行替換D.宏定義不能嵌套答案:A解析:宏定義可以帶參數(shù),B作用域從定義處到文件結(jié)束;C在預(yù)處理時進行替換;D宏定義可以嵌套。29.若有定義int*p;inta=10;p=&a;則*p的值是()A.10B.變量a的地址C.指針p的地址D.不確定答案:A解析:*p是指針p所指向變量的值,p指向a,所以*p的值是10。30.以下關(guān)于break語句的說法,正確的是()A.break語句只能用于循環(huán)語句B.break語句可以用于switch語句C.break語句在循環(huán)中使用會結(jié)束本次循環(huán)D.break語句在循環(huán)嵌套中會結(jié)束所有循環(huán)答案:B解析:break語句可用于循環(huán)語句和switch語句,A錯誤;在循環(huán)中使用結(jié)束整個循環(huán),C錯誤;在循環(huán)嵌套中只結(jié)束當(dāng)前所在循環(huán),D錯誤。31.若有定義floatf=3.14f;inti;i=(int)f;則i的值是()A.3B.3.14C.4D.不確定答案:A解析:強制類型轉(zhuǎn)換將float類型的f轉(zhuǎn)換為int類型,舍去小數(shù)部分,i的值為3。32.以下關(guān)于數(shù)組名作為函數(shù)參數(shù)的說法,正確的是()A.數(shù)組名作為函數(shù)參數(shù)會傳遞整個數(shù)組B.數(shù)組名作為函數(shù)參數(shù)傳遞的是數(shù)組首元素的地址C.數(shù)組名作為函數(shù)參數(shù)時,函數(shù)內(nèi)不能修改數(shù)組元素的值D.數(shù)組名作為函數(shù)參數(shù)時,函數(shù)必須知道數(shù)組的長度答案:B解析:數(shù)組名作為函數(shù)參數(shù)傳遞的是數(shù)組首元素的地址,A錯誤;函數(shù)內(nèi)可修改數(shù)組元素值,C錯誤;函數(shù)不一定要知道數(shù)組長度,D錯誤。33.若有定義charstr1[]="hello";charstr2[10];strcpy(str2,str1);則str2的值是()A."hello"B."h"C.不確定D.空字符串答案:A解析:strcpy函數(shù)用于將字符串str1復(fù)制到str2中,所以str2的值是"hello"。34.以下關(guān)于邏輯運算符的說法,正確的是()A.邏輯與運算符是||B.邏輯或運算符是&&C.邏輯非運算符是!D.邏輯運算符的操作數(shù)只能是整數(shù)答案:C解析:邏輯與運算符是&&,邏輯或運算符是||,邏輯非運算符是!,邏輯運算符操作數(shù)可為多種類型,非0為真,0為假。35.若有定義inta=10,b=20;intc=a>b?a:b;則c的值是()A.10B.20C.30D.0答案:B解析:條件運算符判斷a>b為假,取冒號后面的值,所以c的值是20。36.以下關(guān)于枚舉類型的說法,錯誤的是()A.枚舉類型是一種用戶自定義類型B.枚舉常量默認(rèn)從0開始賦值C.枚舉常量可以在定義時指定值D.枚舉類型的變量可以直接和整數(shù)進行比較答案:D解析:枚舉類型變量和整數(shù)比較需要進行強制類型轉(zhuǎn)換,A、B、C選項關(guān)于枚舉類型的描述正確。37.若有定義inta[5]={1,2,3};則a[4]的值是()A.1B.2C.3D.0答案:D解析:數(shù)組初始化時未完全賦值,剩余元素自動初始化為0,所以a[4]的值是0。38.以下關(guān)于continue語句的說法,正確的是()A.continue語句只能用于循環(huán)語句B.continue語句會結(jié)束整個循環(huán)C.continue語句在循環(huán)嵌套中會結(jié)束所有循環(huán)D.continue語句在switch語句中也可以使用答案:A解析:continue語句只能用于循環(huán)語句,作用是結(jié)束本次循環(huán),進入下一次循環(huán),B、C、D選項描述錯誤。39.若有定義int*p;p=(int*)malloc(sizeof(int));則以下說法正確的是()A.p指向一個整型變量B.p指向一個整型數(shù)組C.p的值是一個隨機地址D.p沒有分配內(nèi)存答案:A解析:malloc函數(shù)分配一個整型大小的內(nèi)存空間,p指向該內(nèi)存空間,即一個整型變量,B錯誤;p指向分配的內(nèi)存地址,不是隨機地址,C錯誤;已經(jīng)分配內(nèi)存,D錯誤。40.以下關(guān)于二維數(shù)組初始化的說法,正確的是()A.二維數(shù)組初始化時可以省略第一維的大小B.二維數(shù)組初始化時可以省略第二維的大小C.二維數(shù)組初始化時必須指定所有元素的值D.二維數(shù)組初始化時不能只初始化部分元素答案:A解析:二維數(shù)組初始化時可以省略第一維的大小,但不能省略第二維的大小,可只初始化部分元素,B、C、D選項錯誤。41.若有定義inta=3,b=5;則表達式a&b的值是()A.1B.2C.3D.5答案:A解析:按位與運算,將3和5轉(zhuǎn)換為二進制,3的二進制是0011,5的二進制是0101,按位與后結(jié)果為0001,即十進制的1。42.以下關(guān)于函數(shù)調(diào)用的說法,錯誤的是()A.函數(shù)調(diào)用時實參和形參的類型要匹配B.函數(shù)調(diào)用可以出現(xiàn)在表達式中C.函數(shù)調(diào)用時可以不傳遞參數(shù)D.函數(shù)調(diào)用時實參和形參的個數(shù)可以不同答案:D解析:函數(shù)調(diào)用時實參和形參的個數(shù)必須相同,A、B、C選項關(guān)于函數(shù)調(diào)用的描述正確。43.若有定義charch='9';則ch-'0'的值是()A.'9'B.9C.57D.不確定答案:B解析:在ASCII碼中,字符'0'-'9'是連續(xù)的,'9'-'0'得到數(shù)字9。44.以下關(guān)于指針數(shù)組的說法,正確的是()A.指針數(shù)組的元素是指針B.指針數(shù)組只能存儲整數(shù)指針C.指針數(shù)組的大小必須在定義時確定D.指針數(shù)組不能進行初始化答案:A解析:指針數(shù)組的元素是指針,可存儲不同類型指針,B錯誤;大小可在定義時確定也可通過動態(tài)分配,C錯誤;可以進行初始化,D錯誤。45.若有定義inta[3]={1,2,3};int*p=a;則*(p+2)的值是()A.1B.2C.3D.不確定答案:C解析:p指向數(shù)組a的首元素,p+2指向數(shù)組a的第3個元素,*(p+2)就是第3個元素的值3。46.以下關(guān)于while循環(huán)和do-while循環(huán)的區(qū)別,正確的是()A.while循環(huán)先判斷條件再執(zhí)行循環(huán)體,do-while循環(huán)先執(zhí)行循環(huán)體再判斷條件B.while循環(huán)至少執(zhí)行一次循環(huán)體,do-while循環(huán)不一定執(zhí)行循環(huán)體C.while循環(huán)的循環(huán)體必須用花括號括起來,do-while循環(huán)的循環(huán)體可以不用花括號D.while循環(huán)和do-while循環(huán)的條件判斷方式不同答案:A解析:while循環(huán)先判斷條件,條件為真執(zhí)行循環(huán)體;do-while循環(huán)先執(zhí)行循環(huán)體,再判斷條件,B選項說反了;C選項兩種循環(huán)體是否用花括號取決于語句數(shù)量;D選項條件判斷方式相同。47.若有定義inta=10;int*p=&a;則p++后p指向的地址是()A.變量a的地址B.變量a后面一個int類型大小的地址C.隨機地址D.不確定答案:B解析:指針p++會讓指針指向下一個int類型大小的地址。48.以下關(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)體變量初始化時可以只初始化部分成員,未初始化的成員會按默認(rèn)規(guī)則初始化,A錯誤;成員順序要和定義時一致,C錯誤;初始化要用花括號,D錯誤。49.若有函數(shù)定義intmax(intx,inty){returnx>y?x:y;}調(diào)用max(10,max(20,30))的返回值是()A.10B.20C.30D.不確定答案:C解析:先計算max(20,30)返回30,再計算max(10,30)返回30。50.以下關(guān)于文件指針的說法,錯誤的是()A.文件指針指向一個文件B.文件指針在文件打開時創(chuàng)建C.文件指針在文件關(guān)閉時銷毀D.文件指針可以直接操作文件內(nèi)容答案:D解析:文件指針不能直接操作文件內(nèi)容,需要通過相關(guān)的文件操作函數(shù),A、B、C選項關(guān)于文件指針的描述正確。51.若有定義intarr[4]={1,3,5,7};int*p=arr+2;則*p的值是()A.1B.3C.5D.7答案:C解析:p指向arr[2],所以*p的值是5。52.以下關(guān)于逗號運算符的說法,正確的是()A.逗號運算符的優(yōu)先級是所有運算符中最低的B.逗號運算符的結(jié)果是最后一個表達式的值C.逗號運算符可以用于連接多個不同類型的表達式D.以上說法都正確答案:D解析:逗號運算符優(yōu)先級最低,結(jié)果是最后一個表達式的值,可連接不同類型表達式。53.若有定義charstr[]="abc\0def";則strlen(str)的值是()A.3B.7C.4D.不確定答案:A解析:strlen計算字符串長度遇到'\0'結(jié)束,所以結(jié)果是3。54.以下關(guān)于函數(shù)的存儲類別,說法錯誤的是()A.函數(shù)默認(rèn)的存儲類別是externB.static修飾的函數(shù)只能在本文件中調(diào)用C.extern修飾的函數(shù)可以在其他文件中調(diào)用D.函數(shù)不能使用auto存儲類別答案:D解析:函數(shù)沒有auto存儲類別,A、B、C選項關(guān)于函數(shù)存儲類別的描述正確。55.若有定義inta=5,b=3;則表達式a%b的值是()A.1B.2C.3D.5答案:B解析:%是取余運算符,5%3結(jié)果為2。56.以下關(guān)于for循環(huán)的說法,正確的是()A.for循環(huán)的初始化部分只能初始化一個變量B.for循環(huán)的條件判斷部分可以省略C.for循環(huán)的循環(huán)體必須用花括號括起來D.for循環(huán)不能嵌套使用答案:B解析:for循環(huán)條件判斷部分可省略,省略后條件恒為真,A可初始化多個變量;C循環(huán)體只有一條語句時可不加花括號;Dfor循環(huán)可以嵌套。57.若有定義int*p;inta[5]={1,2,3,4,5};p=a;則p[3]的值是()A.1B.2C.3D.4答案:D解析:p指向數(shù)組a首元素,p[3]等價于*(p+3),即數(shù)組a第4個元素,值為4。58.以下關(guān)于位左移運算符(<<)的說法,正確的是()A.位左移運算符將操作數(shù)的二進制位向左移動指定的位數(shù),右邊補0B.位左移運算符將操作數(shù)的二進制位向左移動指定的位數(shù),左邊補0C.位左移運算符將操作數(shù)的二進制位向右移動指定的位數(shù),右邊補0D.位左移運算符將操作數(shù)的二進制位向右移動指定的位數(shù),左邊補0答案:A解析:位左移運算符將操作數(shù)二進制位左移,右邊補0。59.若有函數(shù)定義voidprint(int*arr,intn){for(inti=0;i<n;i++)printf("%d",arr[i]);}調(diào)用該函數(shù)打印數(shù)組元素,以下調(diào)用方式正確的是()A.inta[5]={1,2,3,4,5};print(a,5);B.inta[5]={1,2,3,4,5};print(*a,5);C.inta[5]={1,2,3,4,5};print(a[0],5);D.inta[5]={1,2,3,4,5};print(&a,5);答案:A解析:函數(shù)參數(shù)要求數(shù)組首地址和數(shù)組長度,A選項傳入數(shù)組名(即首地址)和長度正確,B、C傳入元素值錯誤,D傳入數(shù)組的地址(二級指針相關(guān)概念)錯誤。60.以下關(guān)于字符串處理函數(shù)strcmp的說法,正確的是()A.strcmp函數(shù)用于比較兩個字符串的長度B.strcmp函數(shù)返回值為0表示兩個字符串相等C.strcmp函數(shù)返回值大于0表示第一個字符串長度大于第二個字符串D.strcmp函數(shù)返回值小于0表示第一個字符串長度小于第二個字符串答案:B解析:strcmp函數(shù)比較兩個字符串的字典序,返回0表示相等,大于0表示第一個字符串字典序大,小于0表示第一個字符串字典序小,不是比較長度。61.若有定義inta=2;則表達式a*=2+3的值是()A.2B.5C.10D.不確定答案:C解析:先計算2+3得5,再計算a*=5,即a=a*5,a原來為2,結(jié)果為10。62.以下關(guān)于switch語句的說法,錯誤的是()A.switch語句的表達式只能是整型或字符型B.case后面的常量表達式值必須唯一C.switch語句中可以沒有default分支D.switch語句中每個case分支必須有break語句答案:D解析:switch語句中每個case分支不一定要有break語句,沒有break會繼續(xù)執(zhí)行下一個case分支,A、B、C選項關(guān)于switch語句的描述正確。63.若有定義intarr[2][3]={{1,2,3},{4,5,6}};int(*p)[3]=arr;則(*p)[2]的值是()A.1B.2C.3D.4答案:C解析:p是指向包含3個元素的一維數(shù)組的指針,p指向arr的第一行,(*p)[2]就是第一行第3個元素,值為3。64.以下關(guān)于函數(shù)的返回語句return的說法,正確的是()A.return語句只能返回一個值B.return語句可以返回多個值C.return語句后面可以不跟任何表達式D.return語句只能在函數(shù)結(jié)尾使用答案:A解析:return語句只能返回一個值,B錯誤;無返回值函數(shù)(void類型)return后可不跟表達式,有返回值函數(shù)必須跟,C錯誤;return語句可在函數(shù)中任意位置提前結(jié)束函數(shù),D錯誤。65.若有定義inta=10;intb=a++;則b的值是()A.10B.11C.9D.不確定答案:A解析:a++是后置自增運算符,先使用a的值再自增,所以b的值是10。66.以下關(guān)于typedef的說法,正確的是()A.typedef用于定義新的數(shù)據(jù)類型B.typedef只是給已有的數(shù)據(jù)類型取別名C.typedef定義的類型名不能和已有類型名重復(fù)D.typedef不能用于結(jié)構(gòu)體類型答案:B解析:typedef只是給已有數(shù)據(jù)類型取別名,不是定義新類型,A錯誤;可以和已有類型名重復(fù)但不建議,C錯誤;可用于結(jié)構(gòu)體類型,D錯誤。67.若有定義inta[5]={1,2,3,4,5};int*p=&a[2];則p-a的值是()A.1B.2C.3D.4答案:B解析:指針相減得到的是兩個指針之間元素的個數(shù),p指向a[2],a指向a[0],相差2個元素。68.以下關(guān)于條件判斷的說法,正確的是()A.0表示假,非0表示真B.空字符串表示假,非空字符串表示真C.空指針表示假,非空指針表示真D.以上說法都正確答案:D解析:在C語言中,0、空字符串、空指針表示假,非0、非空字符串、非空指針表示真。69.若有定義inta=5,b=2;則表達式a/b+a%b的值是()A.2B.3C.4D.5答案:C解析:先計算a/b得2,a%b得1,相加結(jié)果為3。70.以下關(guān)于動態(tài)內(nèi)存分配的說法,錯誤的是()A.malloc函數(shù)用于分配內(nèi)存B.free函數(shù)用于釋放內(nèi)存C.動態(tài)分配的內(nèi)存使用完后必須釋放D.動態(tài)分配的內(nèi)存大小可以在程序運行時改變答案:D解析:動態(tài)分配的內(nèi)存大小在分配后不能直接改變,若要改變需重新分配,A、B、C選項關(guān)于動態(tài)內(nèi)存分配的描述正確。71.若有定義charstr[]="abc";則sizeof(str)的值是()A.3B.4C.不確定D.取決于編譯器答案:B解析:sizeof計算數(shù)組所占內(nèi)存大小,包含字符串結(jié)束符'\0',所以是4。72.以下關(guān)于函數(shù)參數(shù)傳遞的說法,正確的是()A.函數(shù)參數(shù)傳遞分為值傳遞和地址傳遞B.值傳遞會改變實參的值C.地址傳遞不會改變實參的值D.函數(shù)參數(shù)傳遞只能是值傳遞答案:A解析:函數(shù)參數(shù)傳遞分值傳遞和地址傳遞,值傳遞不改變實參值,地址傳遞可通過指針改變實參所指內(nèi)容,B、C、D選項錯誤。73.若有定義inta=3;intb=++a+a++;則b的值是()A.7B.8C.9D.10答案:B解析:先計算++a,a變?yōu)?,此時表達式為4+a++,再計算a++,先使用a的值4相加得8,然后a變?yōu)?。74.以下關(guān)于數(shù)組越界的說法,正確的是()A.數(shù)組越界不會導(dǎo)致程序出錯B.數(shù)組越界可能會導(dǎo)致程序崩潰C.數(shù)組越界只會訪問到無效數(shù)據(jù)D.數(shù)組越界時編譯器會報錯答案:B解析:數(shù)組越界可能會訪問到其他內(nèi)存區(qū)域的數(shù)據(jù),可能導(dǎo)致程序崩潰,A、C選項錯誤;編譯器不一定能檢測到數(shù)組越界,D錯誤。75.若有定義intarr[3][2]={{1,2},{3,4},{5,6}};int*p=&arr[1][0];則*(p+2)的值是()A.3B.4C.5D.6答案:C解析:p指向arr[1][0],p+2指向arr[2][0],*(p+2)的值是5。76.以下關(guān)于邏輯表達式短路特性的說法,正確的是()A.邏輯與表達式中,若第一個操作數(shù)為假,則不再計算第二個操作數(shù)B.邏輯或表達式中,若第一個操作數(shù)為真,則不再計算第二個操作數(shù)C.短路特性可以提高程序的執(zhí)行效率D.以上說法都正確答案:D解析:邏輯與和或表達式都有短路特性,利用短路特性可提高程序執(zhí)行效率。77.若有定義inta=4;intb=a<<2;則b的值是()A.4B.8C.16D.32答案:C解析:左移2位相當(dāng)于乘以2的2次方,4左移2位為16。78.以下關(guān)于函數(shù)原型聲明的說法,錯誤的是()A.函數(shù)原型聲明可以在函數(shù)調(diào)用之前進行B.函數(shù)原型聲明可以省略參數(shù)名C.函數(shù)原型聲明的目的是讓編譯器知道函數(shù)的返回類型和參數(shù)類型D.函數(shù)原型聲明只能在文件開頭進行答案:D解析:函數(shù)原型聲明可在函數(shù)調(diào)用前任意位置,不一定要在文件開頭,A、B、C選項關(guān)于函數(shù)原型聲明的描述正確。79.若有定義inta=10;int*p=&a;int**q=&p;則**q的值是()A.變量a的地址B.變量p的地址C.10D.不確定答案:C解析:q是指向指針p的指針,*q是p,**q是a的值10。80.以下關(guān)于字符輸入輸出函數(shù)的說法,正確的是()A.getchar函數(shù)只能讀取一個字符B.putchar函數(shù)可以輸出字符串C.gets函數(shù)不會存在緩沖區(qū)溢出問題D.puts函數(shù)輸出字符串后不會自動換行答案:A解析:getchar函數(shù)一次只能讀取一個字符;putchar函數(shù)只能輸出單個字符,不能輸出字符串;gets函數(shù)由于不檢查輸入長度,存在緩沖區(qū)溢出問題;puts函數(shù)輸出字符串后會自動換行。81.若有定義inta[4]={1,3,5,7};表達式a[1]+*(a+2)的值是()A.6B.8C.9D.10答案:B解析:a[1]的值為3,*(a+2)等價于a[2],值為5,兩者相加結(jié)果為8。82.以下關(guān)于復(fù)合賦值運算符的說法,錯誤的是()A.復(fù)合賦值運算符可以簡化代碼B.a+=2等價于a=a+2C.復(fù)合賦值運算符的優(yōu)先級高于算術(shù)運算符D.復(fù)合賦值運算符是右結(jié)合性答案:C解析:復(fù)合賦值運算符優(yōu)先級低于算術(shù)運算符,A、B、D選項關(guān)于復(fù)合賦值運算符的描述正確。83.若有定義charch='B';則ch+=3的值對應(yīng)的字符是()A.'C'B.'D'C.'E'D.'F'答案:C解析:'B'的ASCII碼值加3后為'E'的ASCII碼值,所以結(jié)果對應(yīng)的字符是'E'。84.以下關(guān)于函數(shù)遞歸調(diào)用的終止條件,說法正確的是()A.終止條件必須在遞歸函數(shù)的開頭判斷B.終止條件可以沒有C.終止條件的作用是防止遞歸無限進行D.終止條件只能是一個簡單的表達式答案:C解析:終止條件的作用是防止遞歸無限進行,不一定在開頭判斷,必須要有終止條件,也可以是復(fù)雜的條件判斷,A、B、D選項錯誤。85.若有定義intarr[2][3]={0};則arr[1][2]的值是()A.0B.1C.不確定D.取決于編譯器答案:A解析:數(shù)組初始化時全部元素初始化為0,所以arr[1][2]的值為0。86.以下關(guān)于for循環(huán)的三個表達式,說法錯誤的是()A.初始化表達式只執(zhí)行一次B.條件判斷表達式每次循環(huán)都要執(zhí)行C.循環(huán)控制表達式每次循環(huán)結(jié)束后執(zhí)行D.三個表達式都不能省略答案:D解析:for循環(huán)的三個表達式都可以省略,省略條件判斷表達式時條件恒為真,A、B、C選項關(guān)于for循環(huán)表達式的描述正確。87.若有定義int*p;inta=5;p=&a;表達式*p+1的值是()A.5B.6C.變量a的地址加1D.不確定答案:B解析:*p的值是a的值5,*p+1為6。88.以下關(guān)于結(jié)構(gòu)體指針的說法,正確的是()A.結(jié)構(gòu)體指針可以直接訪問結(jié)構(gòu)體成員B.結(jié)構(gòu)體指針訪問成員要用.運算符C.結(jié)構(gòu)體指針需要先分配內(nèi)存才能使用D.結(jié)構(gòu)體指針不能作為函數(shù)參數(shù)答案:C解析:結(jié)構(gòu)體指針需要先分配內(nèi)存才能使用,訪問成員要用->運算符,可作為函數(shù)參數(shù),A、B、D選項錯誤。89.若有函數(shù)定義intadd(intx,inty){returnx+y;}調(diào)用add(2,add(3,4))的返回值是()A.5B.7C.9D.10答案:C解析:先計算add(3,4)得7,再計算add(2,7)得9。90.以下關(guān)于文件讀寫模式的說法,錯誤的是()A."r"模式用于只讀打開文件B."w"模式用于只寫打開文件,若文件不存在會創(chuàng)建C."a"模式用于追加寫打開文件,若文件不存在會報錯D."r+"模式用于讀寫打開文件答案:C解析:"a"模式用于追加寫打開文件,若文件不存在會創(chuàng)建,A、B、D選項關(guān)于文件讀寫模式的描述正確。91.若有定義inta[5]={2,4,6,8,10};int*p=a+1;則*(p+3)的

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論