期末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、break語句在循環(huán)中的作用是?()

A.跳過本次循環(huán),繼續(xù)下一次

B.終止整個循環(huán)

C.終止當前語句

D.無作用

【答案】:答案解析:break在循環(huán)中用于終止整個循環(huán)(跳出循環(huán)體),continue是跳過本次循環(huán),故選B。2、以下if語句語法正確的是?()

A.if(x>0)printf("yes");

B.ifx>0printf("yes");

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

D.if(x>0){printf("yes")}

【答案】:答案解析:if后條件需加括號,B缺少括號,C分號導致語句結(jié)束,D缺少分號,故選A。3、若inti=0,s=0;執(zhí)行for(i=1;i<=4;i++)s+=i;后s的值是?()

A.10

B.9

C.8

D.7

【答案】:答案解析:累加1+2+3+4=10,s=10,故選A。4、以下關(guān)于指針數(shù)組的定義正確的是?()

A.int*arr[5];

B.int(*arr)[5];

C.intarr[5];

D.intarr[];

【答案】:答案解析:A是指針數(shù)組(5個int指針),B是指向數(shù)組的指針,C是普通數(shù)組,D缺少長度,故選A。5、以下函數(shù)參數(shù)傳遞方式中,能修改實參值的是?()

A.值傳遞

B.地址傳遞

C.都能

D.都不能

【答案】:答案解析:值傳遞修改的是形參(副本),不影響實參;地址傳遞通過指針修改實參值,故選B。6、數(shù)組名的本質(zhì)是?()

A.數(shù)組第一個元素的地址

B.數(shù)組最后一個元素的地址

C.數(shù)組元素的個數(shù)

D.數(shù)組的大小

【答案】:答案解析:數(shù)組名是首元素地址(常量,不可修改),故選A。7、continue語句在循環(huán)中的作用是?()

A.終止整個循環(huán)

B.跳過本次循環(huán)剩余部分,繼續(xù)下一次

C.暫停循環(huán)

D.無作用

【答案】:答案解析:continue跳過本次循環(huán)剩余代碼,直接進入下一次循環(huán)條件判斷,故選B。8、若inta=4;執(zhí)行if(a--<4)printf("A");elseprintf("B");輸出結(jié)果是?()

A.A

B.B

C.AB

D.無輸出

【答案】:答案解析:a--是后置自減,條件判斷時a=4,4<4為假,執(zhí)行else(輸出B),后a變?yōu)?,故選B。9、以下哪個表達式可訪問數(shù)組a的第i個元素(i從1開始)?()

A.a[i]

B.a[i-1]

C.*(a+i)

D.*(a+i-1)

【答案】:答案解析:數(shù)組下標從0開始,第i個元素對應下標i-1,a[i-1]正確,C、D是指針訪問(對應下標i),故選B。10、若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。11、以下關(guān)于main函數(shù)的說法錯誤的是?()

A.程序從main開始執(zhí)行

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

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

D.main函數(shù)可調(diào)用其他函數(shù)

【答案】:答案解析:main函數(shù)可聲明為void(無返回值),C說法錯誤,A、B、D正確,故選C。12、以下字符串常量定義正確的是?()

A.charstr[]="C";

B.charstr[1]='C';

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

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

【答案】:答案解析:A用雙引號定義字符串(自動加\0),B單引號用于字符常量,C無\0,D長度2正確但A更簡潔,故選A。13、若inti=0;執(zhí)行do{i++;printf("%d",i);}while(i<=2);輸出結(jié)果是?()

A.123

B.012

C.12

D.無輸出

【答案】:答案解析:do-while執(zhí)行3次,i=1、2、3,輸出123,故選A。14、若inta=1,b=2;則表達式(a==b)的結(jié)果是?()

A.1

B.0

C.2

D.真

【答案】:答案解析:==是等于判斷,a==b為假,C語言中假用0表示,故選B。15、函數(shù)參數(shù)傳遞中,值傳遞適用于?()

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

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

C.指針,需修改實參

D.結(jié)構(gòu)體,需修改成員

【答案】:答案解析:值傳遞用于簡單變量(不修改實參),地址傳遞用于需修改實參的場景,故選A。16、數(shù)組作為函數(shù)參數(shù)時,函數(shù)形參不能是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通變量,不能接收數(shù)組名(地址),A、B、C均可作為數(shù)組形參,故選D。17、以下哪個是C語言中的賦值運算符?()

A.==

B.=

C.+=

D.!=

【答案】:答案解析:=是賦值運算符,==是等于判斷,+=是復合賦值,!=是不等于判斷,故選B。18、若inta[3]={1,2,3},p=a;則(p+2)的值是?()

A.1

B.2

C.3

D.無定義

【答案】:答案解析:p+2指向a[2],解引用*(p+2)=a[2]=3,故選C。19、以下哪個是合法的字符常量?()

A."a"

B.'ab'

C.'a'

D.a

【答案】:答案解析:字符常量用單引號包裹單個字符,A是字符串,B是兩個字符(錯誤),D是標識符,故選C。20、若charstr[]="helloworld";則字符串長度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:"helloworld"含11個字符(不含\0),長度為11,故選B。21、以下switch語句中,break語句的位置正確的是?()

A.case后任意位置

B.必須在case代碼最后

C.必須在default后

D.不能在default后

【答案】:答案解析:break可在case代碼任意位置(執(zhí)行到break即跳出),不一定在最后,default后也可加break,故選A。22、以下數(shù)組初始化正確的是?()

A.charstr[]="hello";

B.charstr[5]="hello";

C.charstr[]={'h','e','l','l','o'};

D.charstr[5]={'h','e','l','l','o','\0'};

【答案】:答案解析:A字符串自動加\0,B長度5不足以存hello(含\0共6個字符),C無\0(字符串不完整),D長度5超,故選A。23、以下關(guān)于動態(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。24、指針與字符串的關(guān)系,以下說法正確的是?()

A.字符串常量是字符數(shù)組,數(shù)組名是指針

B.字符串可通過指針遍歷

C.字符指針可指向字符串常量

D.以上都正確

【答案】:答案解析:A、B、C均是指針與字符串的基本關(guān)系,故選D。25、以下關(guān)于數(shù)組的說法正確的是?()

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

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

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

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

【答案】:答案解析:A數(shù)組長度定義后固定,B元素必須同類型,D數(shù)組名是常量(不可賦值),C正確,故選C。26、指針作為函數(shù)參數(shù)時,傳遞的是?()

A.指針的值

B.指針的地址

C.變量的值

D.變量的地址

【答案】:答案解析:指針傳參本質(zhì)是傳遞變量地址,函數(shù)中通過指針可修改實參值,故選D。27、以下switch語句語法錯誤的是?()

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后常量不能重復,D中case1重復,編譯報錯,故選D。28、若inta[5]={1,2,3,4,5};則a[5]是?()

A.5

B.0

C.越界訪問

D.無定義

【答案】:答案解析:a[5]下標超出0-4范圍,屬于越界訪問(可能導致程序錯誤),故選C。29、以下字符串數(shù)組定義正確的是?()

A.charstr[5][10]={"hello","world"};

B.charstr[5][]={"hello","world"};

C.charstr[][10]={"hello","world","!"};

D.charstr[5][10]={"hello","world","!"};

【答案】:答案解析:B第二維不能省略,A、C、D均正確?D最完整(5行10列,初始化3個字符串),故選D。30、若charc='A';執(zhí)行c=c+32后,c的值是?()

A.'a'

B.'B'

C.65

D.97

【答案】:答案解析:大寫字母ASCII碼比對應小寫字母小32,'A'(65)+32='a'(97),故選A。31、以下哪個字符串的長度是3?()

A."abc"

B."a\0b"

C."ab\n"

D."ab"

【答案】:答案解析:字符串長度以\0結(jié)束,"abc"含a、b、c(3個字符),"a\0b"長度為1,故選A。32、函數(shù)參數(shù)為數(shù)組時,形參的寫法錯誤的是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通變量,不能接收數(shù)組名(地址),A、B、C均正確,故選D。33、若inti=0,s=0;執(zhí)行while(i<=3){s+=i2;i++;}后s的值是?()

A.12

B.6

C.8

D.10

【答案】:答案解析:累加02+12+22+3*2=0+2+4+6=12,s=12,故選A。34、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。35、函數(shù)聲明的作用是?()

A.告訴編譯器函數(shù)的存在

B.實現(xiàn)函數(shù)功能

C.分配函數(shù)內(nèi)存

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

【答案】:答案解析:函數(shù)聲明用于向編譯器說明函數(shù)名、參數(shù)、返回類型(確保調(diào)用正確),定義才是實現(xiàn)功能,故選A。36、下列變量定義語法正確的是?()

A.inta=5;

B.inta=b=5;

C.int5a;

D.inta;b;

【答案】:答案解析:B不能連續(xù)賦值定義,C標識符開頭錯誤,D分號分隔需分別定義(inta;intb;),故選A。37、以下關(guān)于指針的說法正確的是?()

A.指針可用于遍歷數(shù)組

B.指針可用于字符串操作

C.指針可用于函數(shù)參數(shù)傳遞

D.以上都正確

【答案】:答案解析:指針在數(shù)組遍歷、字符串處理、參數(shù)傳遞中均有核心作用,故選D。38、若intx=2;執(zhí)行switch(x){default:printf("0");case1:printf("1");break;case2:printf("2");case3:printf("3");}輸出結(jié)果是?()

A.01

B.23

C.0123

D.無輸出

【答案】:答案解析:x=2匹配case2,無break,穿透到case3,輸出23,故選B。39、C語言中,注釋的正確寫法是?()

A.//單行注釋

B./*多行注釋/

C.--注釋

D.A和B

【答案】:答案解析:C語言支持//單行注釋和/...*/多行注釋,--不是注釋符號,故選D。40、若inta=3,b=4;則表達式ab++的值是?()

A.12

B.15

C.16

D.7

【答案】:答案解析:b++是后置自增,先參與運算(ab=3*4=12),再自增(b變?yōu)?),故選A。41、若inta=3,b=5;執(zhí)行以下代碼后輸出結(jié)果是?()if(a>b)printf("A");elseprintf("B");

A.A

B.B

C.AB

D.無輸出

【答案】:答案解析:a=3<b=5,條件為假,執(zhí)行else分支,輸出B,故選B。42、若inta[4]={10,20,30,40};則*(a+2)的值是?()

A.20

B.30

C.40

D.10

【答案】:答案解析:a+2是第三個元素地址,*(a+2)=a[2]=30,故選B。43、函數(shù)返回值的類型與return語句中表達式類型不一致時,會?()

A.編譯錯誤

B.自動強制轉(zhuǎn)換為函數(shù)返回類型

C.程序崩潰

D.無影響

【答案】:答案解析:編譯器會將return表達式類型強制轉(zhuǎn)換為函數(shù)返回類型(可能丟失精度),不報錯,故選B。44、以下關(guān)于指針的說法錯誤的是?()

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

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

C.指針可指向自身

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

【答案】:答案解析:指針不能指向自身(類型不匹配),A、B、D說法正確,故選C。45、以下函數(shù)定義錯誤的是?()

A.voidfun(){}

B.voidfun(inta){}

C.intfun(){}

D.intfun(){return;}

【答案】:答案解析:D返回類型int(必須return表達式),return無表達式錯誤,A、B、C正確,故選D。46、continue語句只能用于以下哪種結(jié)構(gòu)?()

A.循環(huán)語句

B.switch語句

C.if語句

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

【答案】:答案解析:conti

溫馨提示

  • 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

提交評論