清華c語言期末測試題及答案(名師系列)_第1頁
清華c語言期末測試題及答案(名師系列)_第2頁
清華c語言期末測試題及答案(名師系列)_第3頁
清華c語言期末測試題及答案(名師系列)_第4頁
清華c語言期末測試題及答案(名師系列)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

清華c語言期末測試題第一部分單選題(50題)1、以下switch語句中,case后的常量可以是?()

A.整數(shù)

B.字符

C.枚舉常量

D.以上都可以

【答案】:答案解析:switch的case后必須是整型常量(整數(shù)、字符、枚舉常量,字符本質(zhì)是ASCII碼整數(shù)),故選D。2、以下if語句中,賦值表達(dá)式作為條件的是?()

A.if(x==3)

B.if(x=3)

C.if(x>3)

D.if(x!=3)

【答案】:答案解析:x=3是賦值表達(dá)式,結(jié)果為3(非0,真),其余是判斷表達(dá)式,故選B。3、以下數(shù)組定義錯(cuò)誤的是?()

A.inta[0];

B.inta[5];

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

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

【答案】:答案解析:數(shù)組長度不能為0,編譯報(bào)錯(cuò),其余正確,故選A。4、C語言中,語句結(jié)束的標(biāo)志是?()

A.逗號

B.分號

C.冒號

D.句號

【答案】:答案解析:C語言單條語句以分號(;)結(jié)尾,復(fù)合語句用{}包裹,故選B。5、以下數(shù)組初始化中,未賦值元素默認(rèn)為0的是?()

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

B.charstr[5];

C.inta[5];

D.以上都是

【答案】:答案解析:全局?jǐn)?shù)組未初始化默認(rèn)為0,局部數(shù)組未初始化是隨機(jī)值,A初始化部分元素,未賦值默認(rèn)為0,故選A。6、以下哪個(gè)表達(dá)式可訪問數(shù)組a的第i個(gè)元素(i從1開始)?()

A.a[i]

B.a[i-1]

C.*(a+i)

D.*(a+i-1)

【答案】:答案解析:數(shù)組下標(biāo)從0開始,第i個(gè)元素對應(yīng)下標(biāo)i-1,a[i-1]正確,C、D是指針訪問(對應(yīng)下標(biāo)i),故選B。7、以下switch語句中,default的位置可以在?()

A.所有case之前

B.所有case之后

C.兩個(gè)case之間

D.以上都可以

【答案】:答案解析:default位置靈活,可在case前、后或中間,不影響執(zhí)行邏輯,故選D。8、以下關(guān)于指針數(shù)組和數(shù)組指針的說法正確的是?()

A.指針數(shù)組是數(shù)組,元素為指針

B.數(shù)組指針是指針,指向數(shù)組

C.int*arr[5]是指針數(shù)組,int(*arr)[5]是數(shù)組指針

D.以上都正確

【答案】:答案解析:A、B、C均準(zhǔn)確區(qū)分了指針數(shù)組和數(shù)組指針,故選D。9、函數(shù)指針的作用是?()

A.存儲(chǔ)函數(shù)的地址

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

C.實(shí)現(xiàn)回調(diào)函數(shù)

D.以上都正確

【答案】:答案解析:函數(shù)指針存儲(chǔ)函數(shù)地址,可通過指針調(diào)用函數(shù),常用于回調(diào)函數(shù),故選D。10、以下if-elseif語句的執(zhí)行邏輯是?()if(x<0)printf("負(fù)");elseif(x==0)printf("零");elseprintf("正");

A.多個(gè)條件可同時(shí)滿足

B.僅執(zhí)行第一個(gè)滿足的條件分支

C.所有滿足的條件分支都執(zhí)行

D.無滿足條件則不執(zhí)行

【答案】:答案解析:if-elseif是互斥分支,僅執(zhí)行第一個(gè)滿足條件的分支,故選B。11、以下二維數(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個(gè)(補(bǔ)0),C標(biāo)準(zhǔn)初始化,D元素超6個(gè),故選C。12、邏輯表達(dá)式!5的結(jié)果是?()

A.0

B.1

C.5

D.真

【答案】:答案解析:5為真,!是邏輯非,真變假(0),故選A。13、若inta=3;執(zhí)行if(++a>3)printf("A");elseprintf("B");輸出結(jié)果是?()

A.A

B.B

C.AB

D.無輸出

【答案】:答案解析:++a是前置自增,a變?yōu)?>3,條件為真,輸出A,故選A。14、以下函數(shù)定義中,參數(shù)為指針的是?()

A.voidfun(int*a){printf("%d",*a);}

B.voidfun(inta){printf("%d",a);}

C.voidfun(inta[]){printf("%d",a[0]);}

D.A和C

【答案】:答案解析:A是指針參數(shù),C數(shù)組名參數(shù)本質(zhì)是指針,B是值參數(shù),故選D。15、以下switch語句語法錯(cuò)誤的是?()

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是浮點(diǎn)型,語法錯(cuò)誤,故選C。16、若intx=9;執(zhí)行以下代碼后輸出結(jié)果是?()if(x>10)printf("A");elseif(x>8)printf("B");elseif(x>6)printf("C");elseprintf("D");

A.A

B.B

C.C

D.

【答案】:答案解析:x=9>8,執(zhí)行第二個(gè)分支,輸出B,故選B。17、do-while循環(huán)的語法格式正確的是?()

A.do語句;while(條件);

B.do{語句}while(條件)

C.do語句while(條件);

D.do;語句;while(條件);

【答案】:答案解析:do-while格式為“do循環(huán)體;while(條件);”,循環(huán)體可是單條語句或代碼塊,B缺少分號,C缺少分號,D循環(huán)體為空,故選A。18、以下函數(shù)無返回值的是?()

A.intfun(){return0;}

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

C.floatfun(){return3.14;}

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

【答案】:答案解析:void類型函數(shù)無返回值,A、C、D均有返回值,故選B。19、以下if語句中,賦值語句和判斷語句混淆的是?()

A.if(x==5)

B.if(x=5)

C.if(x!=5)

D.if(x>5)

【答案】:答案解析:x=5是賦值(將5賦給x),x==5是判斷(x是否等于5),B混淆了兩者,故選B。20、以下循環(huán)中,無限循環(huán)的是?()

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

B.while(i=5)

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

D.for(i=5;i>0;i--)

【答案】:答案解析:while(i=5)是賦值(i=5,非0,條件恒真),無限循環(huán);A執(zhí)行5次,C(i初始0)執(zhí)行5次,D執(zhí)行5次,故選B。21、以下指針定義正確的是?()

A.int*p;

B.char*q;

C.float*r;

D.以上都正確

【答案】:答案解析:A指向int,B指向char,C指向float,均符合指針定義語法,故選D。22、以下for循環(huán)中,用于計(jì)算1到5的平方和的是?()

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

B.s=0;for(i=1;i<=5;i++)s+=i2;

C.s=1;for(i=1;i<=5;i++)s*=i;

D.s=0;for(i=1;i<=5;i++)s+=i+i;

【答案】:答案解析:平方和是12+22+32+42+52=1+4+9+16+25=55,A的邏輯正確,故選A。23、以下循環(huán)中,用于計(jì)算1到10的乘積的是?()

A.s=0;for(i=1;i<=10;i++)s+=i;

B.s=1;for(i=1;i<=10;i++)s*=i;

C.s=0;while(i<=10){s*=i;i++;}

D.s=1;do{s+=i;i++;}while(i<=10);

【答案】:答案解析:乘積初始值為1,累加初始值為0,B的邏輯是12...*10,正確,故選B。24、函數(shù)返回值通過______語句返回?()

A.printf

B.scanf

C.return

D.break

【答案】:答案解析:return語句用于函數(shù)返回值,printf輸出,scanf輸入,break跳出循環(huán)/switch,故選C。25、函數(shù)參數(shù)的默認(rèn)值在______指定?()

A.函數(shù)定義時(shí)

B.函數(shù)聲明時(shí)

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

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

【答案】:答案解析:標(biāo)準(zhǔn)C語言不支持函數(shù)參數(shù)默認(rèn)值(C++支持),故選D。26、數(shù)組名作為函數(shù)參數(shù)時(shí),函數(shù)形參的正確寫法是?()

A.inta[]

B.int*a

C.inta[5]

D.以上都是

【答案】:答案解析:數(shù)組形參可寫為inta[]、int*a(指針)、inta[5](長度可忽略),本質(zhì)均為指針,故選D。27、以下哪個(gè)函數(shù)用于讀取字符?()

A.putchar()

B.gets()

C.getchar()

D.printf()

【答案】:答案解析:getchar()讀取單個(gè)字符,puts()輸出字符串,gets()讀取字符串(已淘汰),故選C。28、以下函數(shù)定義錯(cuò)誤的是?()

A.intfun(inta,intb){returna+b;}

B.voidfun(){inta=5;printf("%d",a);}

C.intfun(){inta=3;returna;}

D.voidfun(inta){returna;}

【答案】:答案解析:D返回值類型void,不能return表達(dá)式a,語法錯(cuò)誤,故選D。29、若inti=5,s=0;執(zhí)行while(i>0){s+=i;i--;}后s的值是?()

A.15

B.10

C.5

D.0

【答案】:答案解析:累加5+4+3+2+1=15,s=15,故選A。30、指針變量的大小取決于?()

A.指向變量的類型

B.編譯器和系統(tǒng)(32位4字節(jié),64位8字節(jié))

C.指針變量的名稱

D.變量的值

【答案】:答案解析:指針大小與指向類型無關(guān),取決于系統(tǒng)位數(shù)(32位4B,64位8B),故選B。31、若inti=0;執(zhí)行for(;;){if(i==4)break;printf("%d",i);i++;}輸出結(jié)果是?()

A.0123

B.01234

C.無限循環(huán)

D.無輸出

【答案】:答案解析:for(;;)是無限循環(huán),i=4時(shí)break,輸出0123,故選A。32、若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í)行第三個(gè)分支,輸出C,故選C。33、遞歸函數(shù)的優(yōu)點(diǎn)是?()

A.代碼簡潔,邏輯清晰

B.效率高,占用內(nèi)存少

C.避免棧溢出

D.適合所有問題

【答案】:答案解析:遞歸優(yōu)點(diǎn)是代碼簡潔(如階乘、斐波那契數(shù)列),缺點(diǎn)是效率低、占用棧空間多(可能溢出),故選A。34、若inta[5]={1,2,3,4,5},p=a;執(zhí)行p+=2;后p的值是?()

A.2

B.3

C.4

D.5

【答案】:答案解析:p+=2使p指向a[2],*p=3,故選B。35、以下if語句中,邏輯非運(yùn)算符使用正確的是?()

A.if(!x)printf("yes");

B.if(!x==0)printf("yes");

C.if(!(x>0))printf("yes");

D.A和C

【答案】:答案解析:!x表示“x為假(0)”,!(x>0)表示“x不大于0”,均正確;B中!x==0等價(jià)于x!=0,邏輯不同,故選D。36、若inta=5,b=3;執(zhí)行if(a>b){a--;b++;}后a和b的值分別是?()

A.4,4

B.5,3

C.4,3

D.5,4

【答案】:答案解析:a>b為真,執(zhí)行代碼塊,a=5-1=4,b=3+1=4,故選A。37、以下if-else語句中,代碼塊執(zhí)行順序正確的是?()

A.先執(zhí)行if條件,滿足則執(zhí)行if代碼塊,否則執(zhí)行else代碼塊

B.先執(zhí)行else代碼塊,再執(zhí)行if條件

C.同時(shí)執(zhí)行if和else代碼塊

D.僅執(zhí)行else代碼塊

【答案】:答案解析:if-else邏輯為“條件判斷→滿足執(zhí)行if,否則執(zhí)行else”,互斥執(zhí)行,故選A。38、以下switch語句語法錯(cuò)誤的是?()

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

B.switch(x){case1:printf("1");case2:printf("2");}

C.switch(x){case1:;break;case2:printf("2");}

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

【答案】:答案解析:case后常量不能重復(fù),D中case1重復(fù),編譯報(bào)錯(cuò),故選D。39、若inta=4;執(zhí)行a-=2;后a的值是?()

A.2

B.4

C.6

D.0

【答案】:答案解析:a-=2等價(jià)于a=a-2,4-2=2,故選A。40、若inta=4,b=6;則表達(dá)式a<b?a+b:a-b的結(jié)果是?()

A.10

B.-2

C.4

D.6

【答案】:答案解析:a<b為真,取a+b=4+6=10,故選A。41、以下關(guān)于動(dòng)態(tài)內(nèi)存分配的說法正確的是?()

A.malloc函數(shù)用于動(dòng)態(tài)分配內(nèi)存,返回void*

B.free函數(shù)用于釋放動(dòng)態(tài)分配的內(nèi)存

C.動(dòng)態(tài)分配的內(nèi)存需手動(dòng)釋放,避免內(nèi)存泄漏

D.以上都正確

【答案】:答案解析:A、B、C均是動(dòng)態(tài)內(nèi)存分配的核心規(guī)則,故選D。42、以下函數(shù)參數(shù)為指針的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指針參數(shù),C數(shù)組名參數(shù)本質(zhì)是指針,B是值參數(shù),故選D。43、以下關(guān)于指針的說法錯(cuò)誤的是?()

A.指針可指向變量、數(shù)組、函數(shù)

B.指針可進(jìn)行算術(shù)運(yùn)算(如++、--)

C.指針可指向自身

D.指針可用于動(dòng)態(tài)內(nèi)存分配

【答案】:答案解析:指針不能指向自身(類型不匹配),A、B、D說法正確,故選C。44、若int*p=(int)malloc(sizeof(int));則p的值是?()

A.0

B.隨機(jī)值

C.1

D.無定義

【答案】:答案解析:malloc分配的內(nèi)存未初始化,值為隨機(jī)值,故選B。45、若inti=0;執(zhí)行for(i=0;i<5;i++){if(i==2)continue;print

溫馨提示

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

最新文檔

評論

0/150

提交評論