c語言理論考試題附答案_第1頁
c語言理論考試題附答案_第2頁
c語言理論考試題附答案_第3頁
c語言理論考試題附答案_第4頁
c語言理論考試題附答案_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

c語言理論考試題第一部分單選題(50題)1、若charstr[]="helloworld";則字符串長度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:"helloworld"含11個字符(不含\0),長度為11,故選B。2、函數返回值的類型與return語句中表達式類型不一致時,會?()

A.編譯錯誤

B.自動強制轉換為函數返回類型

C.程序崩潰

D.無影響

【答案】:答案解析:編譯器會將return表達式類型強制轉換為函數返回類型(可能丟失精度),不報錯,故選B。3、函數參數為數組時,形參的寫法錯誤的是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通變量,不能接收數組名(地址),A、B、C均正確,故選D。4、以下switch語句中,case后的常量可以是?()

A.整數

B.字符

C.枚舉常量

D.以上都可以

【答案】:答案解析:switch的case后必須是整型常量(整數、字符、枚舉常量,字符本質是ASCII碼整數),故選D。5、以下關于數組的說法正確的是?()

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

B.數組元素可不同類型

C.數組在內存中連續(xù)存儲

D.數組名可作為左值賦值

【答案】:答案解析:A數組長度定義后固定,B元素必須同類型,D數組名是常量(不可賦值),C正確,故選C。6、若inta=4;執(zhí)行a-=2;后a的值是?()

A.2

B.4

C.6

D.0

【答案】:答案解析:a-=2等價于a=a-2,4-2=2,故選A。7、若inta=5;執(zhí)行if(a>10);elsea=20;后a的值是?()

A.5

B.20

C.10

D.無定義

【答案】:答案解析:if后分號表示空語句,else執(zhí)行a=20,故選B。8、以下函數聲明正確的是?()

A.intfun(intx,inty);

B.intfun(int,int);

C.intfun(intx;inty);

D.A和B

【答案】:答案解析:函數聲明可寫參數名或只寫類型,A、B正確,C用分號錯誤,故選D。9、數組作為函數參數時,函數中修改數組元素會影響主調函數中的數組嗎?()

A.會(指針傳遞)

B.不會(值傳遞)

C.取決于數組長度

D.不確定

【答案】:答案解析:數組名傳參是指針傳遞,函數中通過指針修改元素會同步到主調函數數組,故選A。10、以下switch語句中,default的作用是?()

A.匹配所有case

B.匹配除case外的所有情況

C.終止switch語句

D.無實際作用

【答案】:答案解析:default用于匹配所有case未覆蓋的情況,可選且位置靈活,故選B。11、以下指針運算中,結果為指針的是?()

A.*p

B.p+1

C.&a

D.B和C

【答案】:答案解析:p+1是指針偏移,&a是取地址,結果均為指針;*p是解引用(獲取值),故選D。12、函數調用時,實參的類型必須與形參的類型?()

A.完全一致

B.兼容(可自動轉換)

C.無關

D.實參類型大于形參類型

【答案】:答案解析:實參和形參類型可兼容(如int→float),編譯器自動轉換,不兼容則編譯錯誤,故選B。13、若inta=5,p=&a;執(zhí)行p=8;后a的值是?()

A.5

B.8

C.&a

D.無定義

【答案】:答案解析:*p=8通過指針修改指向變量a的值,a變?yōu)?,故選B。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、以下switch語句中,break語句的作用是?()

A.終止當前case

B.終止switch語句

C.跳過下一個case

D.無作用

【答案】:答案解析:break在switch中用于跳出整個switch語句,避免case穿透,故選B。16、若inta=10,p=&a;則p的值是?()

A.10

B.&a

C.p

D.無定義

【答案】:答案解析:*p是解引用,->用于結構體指針訪問成員,.用于結構體變量訪問成員,故選B。17、若inta[5]={1,2,3,4,5};則a[5]是?()

A.5

B.0

C.越界訪問

D.無定義

【答案】:答案解析:a[5]下標超出0-4范圍,屬于越界訪問(可能導致程序錯誤),故選C。18、以下if語句中,邏輯非運算符使用正確的是?()

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等價于x!=0,邏輯不同,故選D。19、若intx=3,y=5;則表達式x>y?x:y的結果是?()

A.3

B.5

C.true

D.false

【答案】:答案解析:三元運算符格式“條件?值1:值2”,x>y為假,取y=5,故選B。20、指針變量的作用是存儲?()

A.變量的值

B.變量的地址

C.函數的地址

D.數組的元素

【答案】:答案解析:指針變量專門存儲其他變量的內存地址,故選B。21、函數定義和函數聲明的區(qū)別是?()

A.定義包含函數體,聲明不包含

B.聲明包含函數體,定義不包含

C.定義和聲明無區(qū)別

D.定義在程序開頭,聲明在結尾

【答案】:答案解析:函數定義是完整實現(xiàn)(含函數體),聲明是告訴編譯器函數名、參數、返回類型(不含函數體),故選A。22、以下哪個字符串的長度是3?()

A."abc"

B."a\0b"

C."ab\n"

D."ab"

【答案】:答案解析:字符串長度以\0結束,"abc"含a、b、c(3個字符),"a\0b"長度為1,故選A。23、若inta=4,b=6;則表達式a<b?a+b:a-b的結果是?()

A.10

B.-2

C.4

D.6

【答案】:答案解析:a<b為真,取a+b=4+6=10,故選A。24、函數參數傳遞中,地址傳遞的特點是?()

A.形參是實參的副本

B.形參修改不影響實參

C.傳遞的是變量地址

D.用于簡單變量傳參

【答案】:答案解析:地址傳遞(指針)傳遞變量地址,形參通過地址修改實參值,值傳遞是副本,故選C。25、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。26、以下函數無返回值的是?()

A.intfun(){return0;}

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

C.floatfun(){return3.14;}

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

【答案】:答案解析:void類型函數無返回值,A、C、D均有返回值,故選B。27、指針與數組的關系,以下說法正確的是?()

A.數組名是常量指針,不能自增

B.指針可指向數組元素,通過指針遍歷數組

C.p[i]等價于*(p+i)

D.以上都正確

【答案】:答案解析:數組名是首元素地址(常量,不可自增),指針可遍歷數組,p[i]與*(p+i)等價,故選D。28、以下哪個表達式可訪問數組a的第i個元素(i從1開始)?()

A.a[i]

B.a[i-1]

C.*(a+i)

D.*(a+i-1)

【答案】:答案解析:數組下標從0開始,第i個元素對應下標i-1,a[i-1]正確,C、D是指針訪問(對應下標i),故選B。29、若inta=2,b=4;執(zhí)行if(a==b)a=0;elseb=0;后a和b的值分別是?()

A.0,4

B.2,0

C.0,0

D.2,4

【答案】:答案解析:a==b為假,執(zhí)行else,b=0,a保持2,故選B。30、若inta=3;執(zhí)行if(++a>3)printf("A");elseprintf("B");輸出結果是?()

A.A

B.B

C.AB

D.無輸出

【答案】:答案解析:++a是前置自增,a變?yōu)?>3,條件為真,輸出A,故選A。31、若charstr[]="Clanguage";則字符串長度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:字符串長度以\0結束,"Clanguage"含10個字符(不含\0),故選A。32、若inta=6;執(zhí)行a/=3;后a的值是?()

A.2

B.3

C.6

D.18

【答案】:答案解析:a/=3等價于a=a/3=6/3=2,故選A。33、若inti=0;執(zhí)行while(1){printf("%d",i);i++;if(i==3)break;}輸出結果是?()

A.012

B.0123

C.無限循環(huán)

D.無輸出

【答案】:答案解析:while(1)無限循環(huán),i=3時break,輸出012,故選A。34、數組在內存中的存儲方式是?()

A.隨機存儲

B.連續(xù)存儲

C.鏈式存儲

D.散列存儲

【答案】:答案解析:數組元素在內存中連續(xù)存放,便于通過下標訪問,故選B。35、定義整型變量x、y并均賦值10的語句是?()

A.intx=y=10;

B.intx=10,y=10;

C.intx=10;y=10;

D.intx=10;inty=10;

【答案】:答案解析:同一行定義多個變量用逗號分隔,A不能連續(xù)賦值,C缺少int,D是兩行定義,故選B。36、若intx=5;則表達式++x的結果是?()

A.5

B.6

C.4

D.7

【答案】:答案解析:++x是前置自增,先自增(x變?yōu)?)再參與運算,結果為6,故選B。37、以下函數調用錯誤的是?()

A.fun();

B.fun(5);

C.fun(3,4);

D.無錯誤(需看函數定義)

【答案】:答案解析:調用需匹配函數定義,A對應無參函數,B對應單參函數,C對應雙參函數,均可能正確,故選D。38、C語言程序的基本單位是?()

A.語句

B.函數

C.變量

D.表達式

【答案】:答案解析:C程序由函數構成,main是入口函數,其他函數實現(xiàn)功能,故選B。39、以下if-else語句中,代碼塊執(zhí)行順序正確的是?()

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

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

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

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

【答案】:答案解析:if-else邏輯為“條件判斷→滿足執(zhí)行if,否則執(zhí)行else”,互斥執(zhí)行,故選A。40、若intx=2;執(zhí)行switch(x){case1:printf("a");case2:printf("b");case3:printf("c");}輸出結果是?()

A.b

B.bc

C.abc

D.無輸出

【答案】:答案解析:x=2匹配case2,無break,穿透到case3,輸出bc,故選B。41、以下關于return語句的說法正確的是?()

A.函數中可有多條return語句

B.函數中必須有return語句

C.return語句必須在函數末尾

D.return語句只能返回一個值

【答案】:答案解析:A函數中可有多條return(如條件判斷后返回),Bvoid函數可無return,Creturn可在任意位置,Dreturn只能返回一個值(返回多個值需用指針/數組),故選A。42、以下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。43、以下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。44、若inta[4]={1,2,3,4};則a[3]的值是?()

A.3

B.4

C.1

D.2

【答案】:答案解析:a[3]是第四個元素,值為4,故選B。45、以下關于數組初始化的說法正確的是?()

A.數組必須初始化

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

C.數組初始化時可部分賦值

D.數組初始化后不能修改

【答案】:答案解析:數組可部分賦值(未賦值元素默認0),A數組可不用初始化,B可少于長度,D數組元素可修改,故選C。46、若intx=4;執(zhí)行switch(x){case2:pri

溫馨提示

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

評論

0/150

提交評論