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

下載本文檔

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

文檔簡介

清華c語言期末測試題第一部分單選題(50題)1、以下循環(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。2、do-while循環(huán)中,循環(huán)體至少執(zhí)行幾次?()

A.0次

B.1次

C.2次

D.不確定

【答案】:答案解析:do-while“先執(zhí)行后判斷”,無論條件是否滿足,循環(huán)體至少執(zhí)行一次,故選B。3、若intx=1;執(zhí)行switch(x){case1:printf("1");case2:printf("2");break;case3:printf("3");}輸出結果是?()

A.1

B.12

C.123

D.無輸出

【答案】:答案解析:x=1匹配case1,無break,穿透到case2(執(zhí)行后break),輸出12,故選B。4、執(zhí)行scanf("%d,%d",&a,&b);時,正確的輸入格式是?()

A.23

B.2;3

C.2,3

D.2和3

【答案】:答案解析:scanf格式串中含逗號分隔符,輸入需嚴格對應,故選C。5、若inta=1,b=2;則表達式(a==b)的結果是?()

A.1

B.0

C.2

D.真

【答案】:答案解析:==是等于判斷,a==b為假,C語言中假用0表示,故選B。6、以下函數(shù)調用時,實參為常量的是?()

A.fun(5);

B.fun(a);

C.fun(&a);

D.fun("abc");

【答案】:答案解析:A中5是常量,B是變量,C是變量地址,D是字符串常量,題目問“常量”,A正確,故選A。7、若inta=5,*p=&a;則&*p的值是?()

A.5

B.&a

C.p

D.無定義

【答案】:答案解析:&*p等價于p,即&a(a的地址),故選B。8、以下函數(shù)聲明正確的是?()

A.voidfun();

B.voidfun(inta);

C.intfun(int);

D.以上都正確

【答案】:答案解析:函數(shù)聲明可省略形參名(只留類型),A、B、C均符合語法,故選D。9、以下指針運算中,結果為值的是?()

A.*p

B.p+1

C.&a

D.p-2

【答案】:答案解析:*p是解引用,獲取指針指向變量的值,B、C、D結果均為指針,故選A。10、以下函數(shù)返回值類型為int的是?()

A.voidfun(){return;}

B.intfun(){return3.14;}

C.floatfun(){return5;}

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

【答案】:答案解析:A返回值類型void(不能return表達式),B返回類型int(3.14強制轉為3),C返回類型float,D返回類型char,故選B。11、若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。12、函數(shù)參數(shù)傳遞中,值傳遞適用于?()

A.簡單變量,無需修改實參

B.數(shù)組,需修改元素

C.指針,需修改實參

D.結構體,需修改成員

【答案】:答案解析:值傳遞用于簡單變量(不修改實參),地址傳遞用于需修改實參的場景,故選A。13、以下函數(shù)聲明中,返回類型為float的是?()

A.floatfun();

B.voidfun(floata);

C.intfun(floata);

D.charfun(floata);

【答案】:答案解析:A返回類型為float,B無返回值,C返回類型int,D返回類型char,故選A。14、以下if語句的語法正確的是?()

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

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

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

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

【答案】:答案解析:A缺少},C多},D多},B語法正確(else后{}可加可不加),故選B。15、若inta=10,p=&a;則p的值是?()

A.10

B.&a

C.p

D.無定義

【答案】:答案解析:*p是解引用,->用于結構體指針訪問成員,.用于結構體變量訪問成員,故選B。16、以下哪個運算符的優(yōu)先級最高?()

A.+

B.*

C.=

D.==

【答案】:答案解析:算術運算符中*(乘)優(yōu)先級高于+(加),賦值(=)和關系(==)優(yōu)先級更低,故選B。17、若inta[5];則數(shù)組a的元素個數(shù)是?()

A.4

B.5

C.6

D.不確定

【答案】:答案解析:數(shù)組a[5]定義5個元素(下標0-4),故選B。18、以下關于函數(shù)參數(shù)的說法正確的是?()

A.形參是局部變量

B.實參是局部變量

C.形參在函數(shù)調用后釋放

D.實參在函數(shù)調用后釋放

【答案】:答案解析:形參是函數(shù)內(nèi)局部變量(調用時分配內(nèi)存,調用結束釋放),實參是主調函數(shù)中的變量(生命周期與主調函數(shù)一致),故選A。19、以下switch語句中,case穿透的情況是?()

A.case后加break

B.case后不加break

C.有default

D.無default

【答案】:答案解析:case后不加break會繼續(xù)執(zhí)行下一個case的代碼(穿透),加break則跳出,故選B。20、若intx=3,y=5;執(zhí)行if(x>y)printf("x大");elseif(x==y)printf("相等");elseprintf("y大");輸出結果是?()

A.x大

B.相等

C.y大

D.無輸出

【答案】:答案解析:x=3<y=5,執(zhí)行else,輸出y大,故選C。21、以下函數(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ù)本質是指針,B是值參數(shù),故選D。22、若inta=6;執(zhí)行a/=3;后a的值是?()

A.2

B.3

C.6

D.18

【答案】:答案解析:a/=3等價于a=a/3=6/3=2,故選A。23、以下哪個賦值語句是正確的?()

A.inta=5;

B.a=5;

C.inta=b=5;

D.a=b=5;

【答案】:答案解析:B、D未定義變量,C不能連續(xù)賦值定義,A定義并賦值正確,故選A。24、若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。25、以下函數(shù)定義錯誤的是?()

A.voidfun(){}

B.voidfun(inta){}

C.intfun(){}

D.intfun(){return;}

【答案】:答案解析:D返回類型int(必須return表達式),return無表達式錯誤,A、B、C正確,故選D。26、邏輯表達式3&&0的結果是?()

A.0

B.1

C.3

D.真

【答案】:答案解析:邏輯與&&只要有一個operand為0則結果為0,3為真,0為假,故選A。27、數(shù)組名作為函數(shù)參數(shù)時,函數(shù)形參的正確寫法是?()

A.inta[]

B.int*a

C.inta[5]

D.以上都是

【答案】:答案解析:數(shù)組形參可寫為inta[]、int*a(指針)、inta[5](長度可忽略),本質均為指針,故選D。28、以下關于動態(tài)內(nèi)存分配的說法正確的是?()

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

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

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

D.以上都正確

【答案】:答案解析:A、B、C均是動態(tài)內(nèi)存分配的核心規(guī)則,故選D。29、若inti;執(zhí)行for(i=0;i<5;i++)printf("%d",i);輸出結果是?()

A.01234

B.12345

C.012345

D.無輸出

【答案】:答案解析:for循環(huán)初始化i=0,條件i<5(成立時執(zhí)行),每次循環(huán)后i++,執(zhí)行5次,輸出01234,故選A。30、遞歸函數(shù)的終止條件是?()

A.函數(shù)調用自身

B.函數(shù)返回值為0

C.不再調用自身的條件

D.無終止條件

【答案】:答案解析:遞歸函數(shù)必須有終止條件(否則無限遞歸棧溢出),終止條件是不再調用自身的判斷,故選C。31、以下關于數(shù)組的說法正確的是?()

A.數(shù)組長度可動態(tài)修改

B.數(shù)組元素可不同類型

C.數(shù)組在內(nèi)存中連續(xù)存儲

D.數(shù)組名可作為左值賦值

【答案】:答案解析:A數(shù)組長度定義后固定,B元素必須同類型,D數(shù)組名是常量(不可賦值),C正確,故選C。32、以下指針的算術運算中,單位是?()

A.1字節(jié)

B.指針指向類型的大小

C.4字節(jié)

D.8字節(jié)

【答案】:答案解析:指針算術運算(如p++)偏移量是指向類型的大小(如int指針+1偏移4字節(jié)),故選B。33、函數(shù)定義在main函數(shù)之后時,必須先?()

A.調用函數(shù)

B.聲明函數(shù)

C.定義函數(shù)

D.無要求

【答案】:答案解析:main函數(shù)調用其他函數(shù)時,若函數(shù)定義在main之后,需先聲明(否則編譯器找不到函數(shù)),故選B。34、若inti=0;執(zhí)行for(i=0;i<5;i++){printf("%d",i);if(i==2)break;}輸出結果是?()

A.012

B.01

C.01234

D.無輸出

【答案】:答案解析:i=2時break,輸出012,故選A。35、以下關于main函數(shù)的說法正確的是?()

A.main函數(shù)可無返回值

B.main函數(shù)可帶參數(shù)

C.main函數(shù)是程序入口

D.以上都正確

【答案】:答案解析:main函數(shù)可聲明為void(無返回值),可帶argc/argv參數(shù),是程序唯一入口,故選D。36、以下關于函數(shù)的說法正確的是?()

A.函數(shù)必須有返回值

B.函數(shù)可嵌套定義

C.函數(shù)可遞歸調用

D.函數(shù)名可重定義

【答案】:答案解析:A函數(shù)可無返回值(void),B不能嵌套定義(可嵌套調用),D函數(shù)名不能重定義,C遞歸調用正確,故選C。37、以下switch語句語法正確的是?()

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

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

C.switch(x){case1:printf("1");break;default:printf("0");}

D.以上都正確

【答案】:答案解析:switch語句case后可加break(跳出)或不加(穿透),default可選,A、B、C語法均正確,故選D。38、若intx=6;執(zhí)行以下代碼后輸出結果是?()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。39、若charstr="hello";則str[1]的值是?()

A.'h'

B.'e'

C.'l'

D.'\0'

【答案】:答案解析:str是字符串首地址,str[1]等價于(str+1),值為'e',故選B。40、若floatf=5.9;強制轉換為整型的表達式是?()

A.int(f)

B.(int)f

C.intf

D.(float)f

【答案】:答案解析:強制類型轉換格式為(目標類型)變量,(int)f結果為5(取整數(shù)部分),故選B。41、若intx=5;則表達式x+++x的結果是?()

A.10

B.11

C.12

D.9

【答案】:答案解析:結合性從左到右,x+++x等價于(x++)+x=5+6=11,故選B。42、以下數(shù)組初始化中,未賦值元素默認為0的是?()

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

B.charstr[5];

C.inta[5];

D.以上都是

【答案】:答案解析:全局數(shù)組未初始化默認為0,局部數(shù)組未初始化是隨機值,A初始化部分元素,未賦值默認為0,故選A。43、以下關于數(shù)組越界的說法正確的是?()

A.編譯時會報錯

B.運行時一定會崩潰

C.可能導致程序錯誤

D.無影響

【答案】:答案解析:數(shù)組越界屬于未定義行為,編譯時不報錯,運行時可能正常或崩潰,故選C。44、指針的核心優(yōu)勢是?()

A.間接訪問變量,靈活操作內(nèi)存

B.提高程序效率,減少內(nèi)存開銷

C.支持動態(tài)內(nèi)存分配和函數(shù)回調

D.以上都正確

【答案】:答案解析:指針的核心優(yōu)勢包括間接訪問、高效、動態(tài)內(nèi)存、回調等,故選D。45、函數(shù)定義的格式是?()

A.返回類型函數(shù)名(參數(shù)列表){函數(shù)體}

B.函數(shù)名(返回類型,參數(shù)列表){函數(shù)體}

C.函數(shù)名(參數(shù)列表)返回類型{函數(shù)體}

D.返回類型函數(shù)名{參數(shù)列表,函數(shù)

溫馨提示

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

評論

0/150

提交評論