C語言考試題庫及答案(名師系列)_第1頁
C語言考試題庫及答案(名師系列)_第2頁
C語言考試題庫及答案(名師系列)_第3頁
C語言考試題庫及答案(名師系列)_第4頁
C語言考試題庫及答案(名師系列)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言考試題庫第一部分單選題(50題)1、以下哪個數(shù)據(jù)類型用于存儲單個字符?()

A.int

B.char

C.float

D.double

【答案】:答案解析:char用于存儲單個字符(ASCII碼),int存儲整數(shù),float/double存儲浮點數(shù),故選B。2、以下函數(shù)返回值類型為int的是?()

A.voidfun(){return;}

B.intfun(){return3.14;}

C.floatfun(){return5;}

D.charfun(){return'a';}

【答案】:答案解析:A返回值類型void(不能return表達式),B返回類型int(3.14強制轉(zhuǎn)為3),C返回類型float,D返回類型char,故選B。3、若inta=2;執(zhí)行a*=a+3;后a的值是?()

A.7

B.10

C.14

D.5

【答案】:答案解析:a*=a+3等價于a=a*(a+3)=2*(2+3)=10,故選B。4、以下字符串常量定義正確的是?()

A.charstr[]="C";

B.charstr[1]='C';

C.charstr[]={'C'};

D.charstr[2]={'C','\0'};

【答案】:答案解析:A用雙引號定義字符串(自動加\0),B單引號用于字符常量,C無\0,D長度2正確但A更簡潔,故選A。5、以下函數(shù)聲明正確的是?()

A.voidfun();

B.voidfun(inta);

C.intfun(int);

D.以上都正確

【答案】:答案解析:函數(shù)聲明可省略形參名(只留類型),A、B、C均符合語法,故選D。6、若inta[5]={10,20,30,40,50},p=a+3;則p的值是?()

A.30

B.40

C.50

D.無定義

【答案】:答案解析:a+3指向a[3],*p=40,故選B。7、若charstr="hello";則str[1]的值是?()

A.'h'

B.'e'

C.'l'

D.'\0'

【答案】:答案解析:str是字符串首地址,str[1]等價于(str+1),值為'e',故選B。8、函數(shù)調(diào)用時,實參的順序必須與形參的順序?()

A.一致

B.相反

C.無關(guān)

D.部分一致

【答案】:答案解析:實參和形參需按順序一一對應(類型、個數(shù)、順序匹配),否則可能導致邏輯錯誤,故選A。9、以下if語句中,條件表達式正確的是?()

A.if(x=5)printf("yes");

B.if(x==5)printf("yes");

C.if(x=5;)printf("yes");

D.if(x==5;)printf("yes");

【答案】:答案解析:if條件需是判斷表達式(==),A是賦值,C、D多加分號,故選B。10、以下二維數(shù)組初始化正確的是?()

A.inta[2][3]={{1},{2},{3}};

B.inta[2][3]={1,2,3,4,5};

C.inta[2][3]={{1,2,3},{4,5,6}};

D.inta[2][3]={1,2,3,4,5,6,7};

【答案】:答案解析:A行數(shù)超2,B元素不足6個(補0),C標準初始化,D元素超6個,故選C。11、若charstr="abcde";則(str+4)的值是?()

A.'d'

B.'e'

C.'\0'

D.無定義

【答案】:答案解析:str+4指向第5個字符,值為'e',故選B。12、若intx=3;執(zhí)行以下代碼后a的值是?()inta;if(x>5)a=10;elseif(x>2)a=20;elsea=30;

A.10

B.20

C.30

D.無定義

【答案】:答案解析:x=3>2,執(zhí)行第二個分支,a=20,故選B。13、若inti=0,s=0;執(zhí)行for(i=0;i<4;i++)s+=i;后s的值是?()

A.6

B.10

C.4

D.0

【答案】:答案解析:累加0+1+2+3=6,s=6,故選A。14、以下循環(huán)語句中,執(zhí)行次數(shù)為5次的是?()

A.for(i=0;i<5;i++)

B.while(i<5){i++;}

C.do{i++;}while(i<5);

D.for(i=1;i<=5;i--)

【答案】:答案解析:A執(zhí)行5次(0-4),B、C未初始化i(若i初始0則5次,否則不確定),D初始i=1>0,執(zhí)行0次,故選A。15、函數(shù)參數(shù)的默認值在______指定?()

A.函數(shù)定義時

B.函數(shù)聲明時

C.函數(shù)調(diào)用時

D.C語言不支持默認參數(shù)

【答案】:答案解析:標準C語言不支持函數(shù)參數(shù)默認值(C++支持),故選D。16、C語言程序編譯的正確順序是?()

A.預處理→編譯→匯編→鏈接

B.編譯→預處理→匯編→鏈接

C.預處理→匯編→編譯→鏈接

D.鏈接→編譯→匯編→預處理

【答案】:答案解析:C程序編譯流程為預處理(處理#命令)→編譯(生成匯編代碼)→匯編(生成目標文件)→鏈接(生成可執(zhí)行文件),故選A。17、以下函數(shù)聲明中,返回類型為float的是?()

A.floatfun();

B.voidfun(floata);

C.intfun(floata);

D.charfun(floata);

【答案】:答案解析:A返回類型為float,B無返回值,C返回類型int,D返回類型char,故選A。18、以下哪個操作會導致野指針?()

A.指針未初始化

B.指針指向的內(nèi)存被釋放后未置空

C.指針越界訪問

D.以上都是

【答案】:答案解析:野指針是指向無效地址的指針,A、B、C均會導致野指針,故選D。19、若inti=0;執(zhí)行while(1){printf("%d",i);i++;if(i==3)break;}輸出結(jié)果是?()

A.012

B.0123

C.無限循環(huán)

D.無輸出

【答案】:答案解析:while(1)無限循環(huán),i=3時break,輸出012,故選A。20、邏輯表達式!5的結(jié)果是?()

A.0

B.1

C.5

D.真

【答案】:答案解析:5為真,!是邏輯非,真變假(0),故選A。21、以下關(guān)于數(shù)組初始化的說法正確的是?()

A.數(shù)組必須初始化

B.數(shù)組初始化時元素個數(shù)不能少于長度

C.數(shù)組初始化時可部分賦值

D.數(shù)組初始化后不能修改

【答案】:答案解析:數(shù)組可部分賦值(未賦值元素默認0),A數(shù)組可不用初始化,B可少于長度,D數(shù)組元素可修改,故選C。22、以下哪個函數(shù)用于讀取字符?()

A.putchar()

B.gets()

C.getchar()

D.printf()

【答案】:答案解析:getchar()讀取單個字符,puts()輸出字符串,gets()讀取字符串(已淘汰),故選C。23、二維數(shù)組a[2][3]在內(nèi)存中存儲的順序是?()

A.a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]

B.a[0][0],a[1][0],a[0][1],a[1][1],a[0][2],a[1][2]

C.隨機順序

D.按列存儲

【答案】:答案解析:二維數(shù)組按行優(yōu)先連續(xù)存儲,順序為第一行所有元素,再第二行,故選A。24、以下switch語句語法錯誤的是?()

A.switch(x){case1:printf("1");break;}

B.switch(x){case'a':printf("a");break;}

C.switch(x){case1.5:printf("1.5");break;}

D.switch(x){default:printf("0");}

【答案】:答案解析:case后必須是整型常量,1.5是浮點型,語法錯誤,故選C。25、以下指針運算錯誤的是?()

A.inta=5,*p=&a;p++;

B.inta=5,*p=&a;*p++;

C.inta=5,*p=&a;p=&a+1;

D.inta=5,*p=&a;p=p+2;

【答案】:答案解析:&a是地址常量,不能進行算術(shù)運算(&a+1錯誤),A、B、D均正確,故選C。26、若inta[4]={1,2,3,4},p=a;執(zhí)行p++后,*p的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:*p++先解引用(值為1),再p自增(指向a[1]),*p=2,故選B。27、指針與結(jié)構(gòu)體的關(guān)系,以下說法正確的是?()

A.結(jié)構(gòu)體指針通過->訪問成員

B.結(jié)構(gòu)體變量通過。訪問成員

C.結(jié)構(gòu)體指針可指向結(jié)構(gòu)體變量

D.以上都正確

【答案】:答案解析:A、B、C均是結(jié)構(gòu)體與指針的基本規(guī)則,故選D。28、若charstr[10];執(zhí)行strcpy(str,"hello");后str的長度是?()

A.5

B.6

C.10

D.不確定

【答案】:答案解析:strcpy復制字符串"hello"(含\0),長度為5(不含\0),故選A。29、若intx=6;執(zhí)行以下代碼后輸出結(jié)果是?()if(x<5){printf("A");}elseif(x<8){printf("B");}else{printf("C");}

A.A

B.B

C.C

D.無輸出

【答案】:答案解析:x=6<8,執(zhí)行第二個分支,輸出B,故選B。30、以下函數(shù)無返回值的是?()

A.intfun(){return0;}

B.voidfun(){printf("hello");}

C.floatfun(){return3.14;}

D.charfun(){return'b';}

【答案】:答案解析:void類型函數(shù)無返回值,A、C、D均有返回值,故選B。31、continue語句只能用于以下哪種結(jié)構(gòu)?()

A.循環(huán)語句

B.switch語句

C.if語句

D.所有結(jié)構(gòu)

【答案】:答案解析:continue僅用于循環(huán)語句(for/while/do-while),用于跳過本次循環(huán),故選A。32、若floatf=5.9;強制轉(zhuǎn)換為整型的表達式是?()

A.int(f)

B.(int)f

C.intf

D.(float)f

【答案】:答案解析:強制類型轉(zhuǎn)換格式為(目標類型)變量,(int)f結(jié)果為5(取整數(shù)部分),故選B。33、以下關(guān)于數(shù)組越界的說法正確的是?()

A.編譯時會報錯

B.運行時一定會崩潰

C.可能導致程序錯誤

D.無影響

【答案】:答案解析:數(shù)組越界屬于未定義行為,編譯時不報錯,運行時可能正?;虮罎ⅲ蔬xC。34、以下switch語句中,break語句的作用是?()

A.終止當前case

B.終止switch語句

C.跳過下一個case

D.無作用

【答案】:答案解析:break在switch中用于跳出整個switch語句,避免case穿透,故選B。35、若inta=5;執(zhí)行if(a>10);elsea=20;后a的值是?()

A.5

B.20

C.10

D.無定義

【答案】:答案解析:if后分號表示空語句,else執(zhí)行a=20,故選B。36、若floatx=3.14;則表達式(int)x的結(jié)果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:強制轉(zhuǎn)換為int取整數(shù)部分,3.14→3,故選A。37、若inta[5]={10,20,30,40,50};則a[2]的值是?()

A.10

B.20

C.30

D.40

【答案】:答案解析:數(shù)組下標從0開始,a[2]是第三個元素30,故選C。38、以下if-else語句中,代碼塊正確的是?()

A.if(x>0)printf("a");printf("b");elseprintf("c");

B.if(x>0){printf("a");printf("b");}elseprintf("c");

C.if(x>0)printf("a");{printf("b");}elseprintf("c");

D.if(x>0)printf("a");printf("b");else{printf("c");}

【答案】:答案解析:else需與最近的if匹配,A、C、D中else前有獨立printf,語法錯誤,B用{}包裹代碼塊正確,故選B。39、若inta[3][4]={{1,2},{3,4,5},{6}};則a[0][1]的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:a[0][1]是第一行第二列,值為2,故選B。40、若inta=4;執(zhí)行a-=2;后a的值是?()

A.2

B.4

C.6

D.0

【答案】:答案解析:a-=2等價于a=a-2,4-2=2,故選A。41、以下switch語句中,break語句的位置正確的是?()

A.case后任意位置

B.必須在case代碼最后

C.必須在default后

D.不能在default后

【答案】:答案解析:break可在case代碼任意位置(執(zhí)行到break即跳出),不一定在最后,default后也可加break,故選A。42、以下關(guān)于函數(shù)參數(shù)的說法正確的是?()

A.形參是函數(shù)定義時的變量

B.實參是函數(shù)調(diào)用時的變量/常量

C.形參和實參類型需匹配

D.以上都正確

【答案】:答案解析:A、B、C均是函數(shù)參數(shù)的基本規(guī)則,故選D。43、若intx=5;執(zhí)行以下代碼后輸出結(jié)果是?()if(x>10)printf("A");elseif(x>6)printf("B");elseif(x>3)printf("C");elseprintf("D");

A.A

B.B

C.C

D.

【答案】:答案解析:x=5>3,執(zhí)行第三個分支,輸出C,故選C。44、若inti=0;執(zhí)行for(i=0;i<5;i++){if(i==2)continue;printf("%d",i);}輸出結(jié)果是?()

A.0134

B.01234

C.01

D.無限循環(huán)

【答案】:答案解析:i=2時執(zhí)行continue,跳過printf,輸出0134,故選A。45、若intx=3,y=5;則表達式x>y?x:y的結(jié)果是?()

A.3

B.5

C.true

D.false

【答案】:答案解析:三元運算符格式“條件?值1:值2”,x>y為假,取y=5,故選B。

溫馨提示

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

評論

0/150

提交評論