期末c語言試題及答案(典優(yōu))_第1頁
期末c語言試題及答案(典優(yōu))_第2頁
期末c語言試題及答案(典優(yōu))_第3頁
期末c語言試題及答案(典優(yōu))_第4頁
期末c語言試題及答案(典優(yōu))_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

期末c語言試題第一部分單選題(50題)1、若inti=0,s=0;執(zhí)行do{s+=i;i++;}while(i<5);后s的值是?()

A.10

B.15

C.5

D.0

【答案】:答案解析:do-while累加0+1+2+3+4=10,s=10,故選A。2、若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。3、若inti=0;執(zhí)行do{i++;printf("%d",i);}while(i<=2);輸出結果是?()

A.123

B.012

C.12

D.無輸出

【答案】:答案解析:do-while執(zhí)行3次,i=1、2、3,輸出123,故選A。4、continue語句只能用于以下哪種結構?()

A.循環(huán)語句

B.switch語句

C.if語句

D.所有結構

【答案】:答案解析:continue僅用于循環(huán)語句(for/while/do-while),用于跳過本次循環(huán),故選A。5、以下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。6、若inti=1;執(zhí)行do{printf("%d",i);i++;}while(i<=0);輸出結果是?()

A.1

B.無輸出

C.無限循環(huán)

D.12

【答案】:答案解析:do-while先執(zhí)行一次(輸出1,i=2),再判斷i<=0為假,循環(huán)結束,故選A。7、以下函數(shù)調用正確的是?()

A.fun(5);

B.fun(3,4);

C.fun("hello");

D.取決于函數(shù)定義

【答案】:答案解析:函數(shù)調用需匹配函數(shù)定義的參數(shù)類型和個數(shù),A、B、C是否正確取決于函數(shù)定義,故選D。8、遞歸函數(shù)的優(yōu)點是?()

A.代碼簡潔,邏輯清晰

B.效率高,占用內存少

C.避免棧溢出

D.適合所有問題

【答案】:答案解析:遞歸優(yōu)點是代碼簡潔(如階乘、斐波那契數(shù)列),缺點是效率低、占用??臻g多(可能溢出),故選A。9、若intx=9;執(zhí)行以下代碼后輸出結果是?()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í)行第二個分支,輸出B,故選B。10、若inta=5,*p=&a;則&*p的值是?()

A.5

B.&a

C.p

D.無定義

【答案】:答案解析:&*p等價于p,即&a(a的地址),故選B。11、以下關于函數(shù)遞歸的說法錯誤的是?()

A.必須有終止條件

B.可能導致棧溢出

C.效率比循環(huán)高

D.代碼簡潔

【答案】:答案解析:遞歸調用會創(chuàng)建棧幀,效率低于循環(huán),A、B、D正確,C錯誤,故選C。12、轉義字符\0的作用是?()

A.表示空格

B.表示制表符

C.字符串結束標志

D.換行

【答案】:答案解析:\0ASCII碼為0,是字符串默認結束標志,不計入長度,故選C。13、若intx=3,y=5;則表達式x>y?x:y的結果是?()

A.3

B.5

C.true

D.false

【答案】:答案解析:三元運算符格式“條件?值1:值2”,x>y為假,取y=5,故選B。14、以下二維數(shù)組定義正確的是?()

A.inta[2][3];

B.inta[2][];

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

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

【答案】:答案解析:B第二維不能省略,C第一維可省略(自動計算為2),D初始化元素超6個(2×3=6),A標準定義正確,故選A。15、以下for循環(huán)的循環(huán)變量初始化表達式為“i=5”的是?()

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

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

C.for(i=2;i<=5;i++)

D.for(i=5;i<10;i+=2)

【答案】:答案解析:初始化表達式是for循環(huán)第一個部分,B中i=5符合,其余初始化非5,故選B。16、指針與字符串的關系,以下說法正確的是?()

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

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

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

D.以上都正確

【答案】:答案解析:A、B、C均是指針與字符串的基本關系,故選D。17、若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。18、函數(shù)返回值的類型與return語句中表達式類型不一致時,會?()

A.編譯錯誤

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

C.程序崩潰

D.無影響

【答案】:答案解析:編譯器會將return表達式類型強制轉換為函數(shù)返回類型(可能丟失精度),不報錯,故選B。19、若intx=5;則表達式x+++x的結果是?()

A.10

B.11

C.12

D.9

【答案】:答案解析:結合性從左到右,x+++x等價于(x++)+x=5+6=11,故選B。20、以下switch語句中,default的位置可以在?()

A.所有case之前

B.所有case之后

C.兩個case之間

D.以上都可以

【答案】:答案解析:default位置靈活,可在case前、后或中間,不影響執(zhí)行邏輯,故選D。21、若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。22、若intx=10;則表達式x%3的結果是?()

A.1

B.2

C.3

D.0

【答案】:答案解析:%是取余運算符,10除以3商3余1,故選A。23、以下指針運算中,結果為值的是?()

A.*p

B.p+1

C.&a

D.p-2

【答案】:答案解析:*p是解引用,獲取指針指向變量的值,B、C、D結果均為指針,故選A。24、以下指針定義正確的是?()

A.int*p;

B.char*q;

C.float*r;

D.以上都正確

【答案】:答案解析:A指向int,B指向char,C指向float,均符合指針定義語法,故選D。25、若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。26、以下定義指向數(shù)組的指針正確的是?()

A.inta[5],*p=a;

B.inta[5],*p=&a;

C.inta[5],p=a;

D.inta[5],*p=a[0];

【答案】:答案解析:a是數(shù)組名(首元素地址),p=a等價于p=&a[0],B&a是數(shù)組地址(類型不匹配),Cp是普通變量,Dp不能賦a[0]的值,故選A。27、以下關于動態(tài)內存分配的說法正確的是?()

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

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

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

D.以上都正確

【答案】:答案解析:A、B、C均是動態(tài)內存分配的核心規(guī)則,故選D。28、以下哪個運算符的優(yōu)先級最高?()

A.+

B.*

C.=

D.==

【答案】:答案解析:算術運算符中*(乘)優(yōu)先級高于+(加),賦值(=)和關系(==)優(yōu)先級更低,故選B。29、若inta[5];執(zhí)行a[0]=1;a[1]=2;則a[2]的值是?()

A.0

B.3

C.隨機值

D.無定義

【答案】:答案解析:全局數(shù)組默認0,局部數(shù)組未初始化是隨機值?題目未說明存儲類別,通常默認全局,a[2]=0,故選A。30、以下switch語句中,break語句的作用是?()

A.終止當前case

B.終止switch語句

C.跳過下一個case

D.無作用

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

A.2

B.3

C.6

D.18

【答案】:答案解析:a/=3等價于a=a/3=6/3=2,故選A。32、轉義字符\的作用是?()

A.表示反斜杠

B.表示換行

C.表示空格

D.表示制表符

【答案】:答案解析:\用于表示字符反斜杠(\),避免與轉義字符沖突,故選A。33、以下關于void類型函數(shù)的說法正確的是?()

A.不能有return語句

B.可以有return語句(無表達式)

C.必須有return語句

D.可返回任意類型

【答案】:答案解析:void函數(shù)可寫return;(無表達式),用于提前結束函數(shù),不能返回表達式,故選B。34、以下哪個轉義字符表示制表符?()

A.\n

B.\t

C.\b

D.\r

【答案】:答案解析:\t是制表符(Tab),\n換行,\b退格,\r回車,故選B。35、以下哪個條件表達式表示“x大于等于5且小于等于10”?()

A.5<=x<=10

B.x>=5&&x<=10

C.x>=5||x<=10

D.5<=x&&<=10

【答案】:答案解析:C語言中連續(xù)比較不合法,需用邏輯與連接兩個判斷,A語法錯誤,C邏輯錯誤,D語法錯誤,故選B。36、以下switch語句中,正確使用字符常量的是?()

A.switch(c){case'A':printf("A");break;}

B.switch(c){caseA:printf("A");break;}

C.switch(c){case"A":printf("A");break;}

D.switch(c){case'a':'b':printf("ab");break;}

【答案】:答案解析:字符常量用單引號,B是標識符,C是字符串,D語法錯誤(多個case需分開),故選A。37、若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。38、遞歸函數(shù)的終止條件是?()

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

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

C.不再調用自身的條件

D.無終止條件

【答案】:答案解析:遞歸函數(shù)必須有終止條件(否則無限遞歸棧溢出),終止條件是不再調用自身的判斷,故選C。39、指針的自增運算(p++)的含義是?()

A.指針值加1

B.指針指向的變量值加1

C.指針指向地址偏移一個類型大小

D.指針指向地址偏移1字節(jié)

【答案】:答案解析:p++使指針指向地址偏移“指向類型大小”(如int指針+4字節(jié)),故選C。40、函數(shù)返回值的類型由______決定?()

A.return語句中的表達式類型

B.函數(shù)定義時的返回類型

C.函數(shù)調用時的參數(shù)類型

D.編譯器默認類型

【答案】:答案解析:函數(shù)返回類型在定義時指定,return表達式類型需與返回類型匹配(不匹配則強制轉換),故選B。41、若charstr[10];執(zhí)行strcpy(str,"hello");后str的長度是?()

A.5

B.6

C.10

D.不確定

【答案】:答案解析:strcpy復制字符串"hello"(含\0),長度為5(不含\0),故選A。42、以下字符串常量定義正確的是?()

A.charstr[]="C";

B.charstr[1]='C';

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

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

【答案】:答案解析:A用雙引號定義字符串(自動加\0),B單引號用于字符常量,C無\0,D長度2正確但A更簡潔,故選A。43、函數(shù)定義在main函數(shù)之后時,必須先?()

A.調用函數(shù)

B.聲明函數(shù)

C.定義函數(shù)

D.無要求

【答案】:答案解析:main函數(shù)調用其他函數(shù)時,若函數(shù)定義在main之后,需先聲明(否則編譯器找不到函數(shù)),故選B。44、以下關于main函數(shù)的說法正確的是?()

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

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

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

D.以上都正確

【答案】:答案解析:main函數(shù)可聲明為void(無返回值),可帶argc/argv參數(shù),是程序唯一入口,故選D。45、若inta=3;執(zhí)行if(++a==4)printf("A");elseprintf("B");輸出結果是?()

A.A

B.B

C.AB

D.無輸出

【答案】:答案解析:++a使a=4,條件為真,輸出A,故選A。46、指針作為函數(shù)參數(shù)時,傳遞的是?()

A.指

溫馨提示

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

評論

0/150

提交評論