大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第1頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第2頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第3頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第4頁
大學(xué)C語言期末考試練習(xí)題(帶詳解答案)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精品文檔 9歡迎下載 單項(xiàng)選擇題 1. ( A )是構(gòu)成C語言程序的基本單位。 A、函數(shù) B 、過程 C 、子程序 D、子例程 2. C語言程序從 C 開始執(zhí)行。 A) 程序中第一條可執(zhí)行語句B)程序中第一個(gè)函數(shù) C)程序中的main函數(shù) D)包含文件中的第一個(gè)函數(shù) 3. 以下說法中正確的是( C )。 A 、 C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行 B、 在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義 C、 C語言程序總是從 main()函數(shù)開始執(zhí)行 D、C語言程序中的 main()函數(shù)必須放在程序的開始部分 4. 下列關(guān)于C語言的說法錯(cuò)誤的是(B )。 A) C程序的工作過程是

2、編輯、編譯、連接、運(yùn)行 B) C語言不區(qū)分大小寫。 C) C程序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán) D) C程序從main函數(shù)開始執(zhí)行 5. 下列正確的標(biāo)識(shí)符是(C )。 A. -a1B.ai C.a2_iD.i nt t 58題為相同類型題 考點(diǎn):標(biāo)識(shí)符的命名規(guī)則 (1) 只能由字母、數(shù)字、下劃線構(gòu)成 (2) 數(shù)字不能作為標(biāo)識(shí)符的開頭 (3) 關(guān)鍵字不能作為標(biāo)識(shí)符 選項(xiàng)A中的-”,選項(xiàng)B中”與“ ”不滿足(1);選項(xiàng)D中的int為關(guān)鍵字,不滿足(3) 6. 下列C語言用戶標(biāo)識(shí)符中合法的是( B )。 A) 3ax B)x C)case D)-e2 E)u nion 選項(xiàng)A中的標(biāo)識(shí)符以數(shù)字開頭不

3、滿足(2);選項(xiàng)C, E均為為關(guān)鍵字,不滿足(3);選 項(xiàng)D中的-”不滿足(1); 7. 下列四組選項(xiàng)中,正確的C語言標(biāo)識(shí)符是(C )。 A) %x B ) a+b C )a123 D ) 123 選項(xiàng)A中的%,選項(xiàng)B中+”不滿足(1);選項(xiàng)D中的標(biāo)識(shí)符以數(shù)字開頭不滿足(2) 8、下列四組字符串中都可以用作 A、print _3d db8 aBc B C、str_1 Cpp pow while D C語言程序中的標(biāo)識(shí)符的是(A )o 、Iam one_half start$it 3pai 、Pxq My-book line# His.age 選項(xiàng)B中的“”,”,選項(xiàng)D中”,”#”,”. ”,”

4、- ”不滿足(1);選項(xiàng)C中的while為關(guān)鍵 字,不滿足(3) 9. C語言中的簡(jiǎn)單數(shù)據(jù)類型包括(D )。 A、整型、實(shí)型、邏輯型B、整型、實(shí)型、邏輯型、字符型 C、整型、字符型、邏輯型 D、整型、實(shí)型、字符型 10. 在C語言程序中,表達(dá)式 5%2的結(jié)果是_C。 A)2.5B)2C)1D)3 詳見教材P5253. %為求余運(yùn)算符,該運(yùn)算符只能對(duì)整型數(shù)據(jù)進(jìn)行運(yùn)算。且符號(hào)與被模數(shù)相同。5%2=1;5% (-2)=1;( -5)%2=-1;( -5)%(-2)=-1 ; /為求商運(yùn)算符,該運(yùn)算符能夠?qū)φ汀⒆址?、浮點(diǎn)等類型的數(shù)據(jù)進(jìn)行運(yùn)算,5/2=2 11. 如果int a=3,b=4;則條件表達(dá)

5、式ab? a:b的值是_A_。 A) 3 B) 4 C) 0 D) 1 詳見教材P97. 表達(dá)式 1 ?表達(dá)式 2: 表達(dá)式 3 先計(jì)算表達(dá)式1 , 若表達(dá)式1成立,則選擇計(jì)算表達(dá)式 2,并表達(dá)式2的值作為整個(gè)大表達(dá)式的值; 若表達(dá)式1不成立,則選擇計(jì)算表達(dá)式3,并將表達(dá)式3的值作為整個(gè)大表達(dá)式的值 此題中的ab相當(dāng)于表達(dá)式1, a相當(dāng)于表達(dá)式2, b相當(dāng)于表達(dá)式3. a為3, b為4。ab表達(dá)式1成立,因此計(jì)算表達(dá)式2,并將表達(dá)式2的值即a中的值,并 作為整個(gè)表達(dá)式的值,因此整個(gè)表達(dá)式的值為3 12. 若 int x=2,y=3,z=4則表達(dá)式 xage D) (*p).age 33. 設(shè)有

6、如下定義: struck sk int a; float b; data; int *p; 若要使P指向data中的a域,正確的賦值語句是_C A) p=B) p=data.a;C) p=D)*p=data.a; 34. 設(shè)有以下說明語句: typedef struct stu int a; float b; stutype; 則下面敘述中錯(cuò)誤的是(D )o A、struct是結(jié)構(gòu)類型的關(guān)鍵字 B struct stu是用戶定義的結(jié)構(gòu)類型 C、a和b都是結(jié)構(gòu)成員名 D stutype是用戶定義的結(jié)構(gòu)體變量名 35. 語句 int *p;說明了 _C o A) p是指向一維數(shù)組的指針 B) p是

7、指向函數(shù)的指針,該函數(shù)返回一 int型數(shù)據(jù) C) p是指向int型數(shù)據(jù)的指針 /指針的定義教材P223 D) p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針 36. 下列不正確的定義是(A )o A. int *p=B.i nt *p,i; C. int i,*p=D.int i,*p; 選項(xiàng)A先定義一個(gè)整型指針變量p,然后將變量i的地址賦給p。然而此時(shí)還未定義變 量i因此編譯器無法獲得變量i的地址。(A與C對(duì)比,選項(xiàng)C先定義變量i,則在內(nèi)存中為 i分配空間,因此i在內(nèi)存空間的地址就可以確定了;然后再定義p,此時(shí)可以為p賦i的 地址,C正確) 37. 若有說明:int n=2,*p= 選項(xiàng)C,

8、 n=*q 等價(jià)于n=n; 選項(xiàng)D, p中只能存放地址,不能將 n中的整數(shù)值賦給 p 38. 有語句:int a10,;則_B是對(duì)指針變量p的正確定義和初始化。 A)int p=*a; B)int *p=a; C)int p= D)int *p= 選項(xiàng)A, a是數(shù)組名,不是指針變量名,因此不可用*標(biāo)注數(shù)組名a 選項(xiàng)C, a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號(hào)。而且在定義指針變量p時(shí),應(yīng) 在變量名前加*,標(biāo)明p是指針變量 選項(xiàng)D, a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號(hào)。 39. 若有說明語句“ht a5,*p=a;”,則對(duì)數(shù)組元素的正確引用是(C )。 A.ap B.paC.*(p

9、+2)D.p+2 首先定義一個(gè)整型數(shù)組a, a的長(zhǎng)度為5,然后定義一個(gè)指針變量p,并同時(shí)對(duì)p進(jìn)行初 始化,將數(shù)組a的地址賦給p。因此此時(shí)p中存放的數(shù)組a的首地址,即數(shù)組中第一個(gè)元素 a0的地址。 對(duì)于數(shù)組元素下標(biāo)的引用(詳見p144), 一般形式 數(shù)組名下標(biāo)其中下標(biāo)為邏輯地址 下標(biāo),從0開始計(jì)數(shù),方括號(hào)中的下標(biāo)可以是變量,可以是表達(dá)式,但結(jié)果一定要是整數(shù)。 選項(xiàng)A, p中存放的是地址,不是整數(shù),不能做數(shù)組元素的下標(biāo) 選項(xiàng)B, a是數(shù)組名,數(shù)組名就是地址,不是整數(shù),不能做數(shù)組元素的下標(biāo) 選項(xiàng)C,(重點(diǎn)!,詳見p231234) p+2表示指向同一數(shù)組中的下兩個(gè)元素的地址,當(dāng) 前p指向a0,貝U p

10、+2表示a2的地址,因此*(p+2)表示a2的內(nèi)容 40. 有如下程序 int a10=1,2,3,4,5,6,7,8,9,10,*P=a; 則數(shù)值為9的表達(dá)式是_B A) *P+9 B) *(P+8) C) *P+=9 D) P+8 (重點(diǎn)! !詳見 p231234) 首先定義一個(gè)整型數(shù)組a, a的長(zhǎng)度為5,然后定義一個(gè)指針變量P,并同時(shí)對(duì)P進(jìn)行初 始化,將數(shù)組a的地址賦給P。因此此時(shí)P中存放的數(shù)組a的首地址,即數(shù)組中第一個(gè)元素 a0的地址。 數(shù)組中9對(duì)應(yīng)的是a8,選項(xiàng)B, P+8表示數(shù)組中后 8個(gè)元素的地址,即 a8的地址。 *(P+8)則表示該地址內(nèi)所存放的內(nèi)容,即a8的值。 選項(xiàng)A,*

11、P表示P所指向?qū)ο蟮膬?nèi)容,此時(shí)P指向a0, *P即a0的值1. *P+9=1+9=10 選項(xiàng)C, *P表示P所指向?qū)ο蟮膬?nèi)容, 此時(shí)P指向a0, *P即a0的值。因此*P+=9即 *P =*P+9,等價(jià)于 a0=a0+9. 選項(xiàng)D, P+8表示數(shù)組中后8個(gè)元素的地址,即 a8的地址,而非a8中的值。 41. 在C語言中,以 D 作為字符串結(jié)束標(biāo)志 A)n B) C) O D) O 42. 下列數(shù)據(jù)中屬于字符串常量”的是(A )。 A. a”B.ABC C.abcO D. 若干個(gè)字符構(gòu)成字符串 在C語言中,用單引號(hào)標(biāo)識(shí)字符;用雙引號(hào)標(biāo)識(shí)字符串 選項(xiàng)B, C,分別用和標(biāo)識(shí)字符串 選項(xiàng)D,標(biāo)識(shí)字符。

12、 則關(guān)于兩個(gè)數(shù)組長(zhǎng)度的正確描 43. 已知 char x=hello, y=h,e,a,b,e;, 述是 B . A)相同 B)x 大于y C)x C語言中,字符串后面需要一個(gè)結(jié)束標(biāo)志位 對(duì)一維數(shù)組初始化時(shí)可采用字符串的形式 如本題數(shù)組y)。在以字符串形式初始化時(shí), 小于y D) 0 以上答案都不對(duì) ,通常系統(tǒng)會(huì)自動(dòng)添加。 (例如本題數(shù)組x),也可采用字符集合的形式(例 數(shù)組 x不盡要存儲(chǔ)字符串中的字符,還要存儲(chǔ) 字符串后的結(jié)束標(biāo)志位,因此數(shù)組x的長(zhǎng)度為6;在以字符集合形式初始化時(shí),數(shù)組y,僅 存儲(chǔ)集合中的元素,因此數(shù)組y長(zhǎng)度為5 讀程序 基本輸入輸出及流程控制 1. #i nclude ma

13、in () int a=1,b=3,c=5; if (c=a+b) prin tf(yesn); else prin tf( noin ”); 運(yùn)行結(jié)果為:no 詳見教材p89選擇結(jié)構(gòu) 詳見教材p91關(guān)系符號(hào) 詳見附錄D p378符號(hào)的優(yōu)先級(jí) =表示判斷符號(hào)兩邊的值是否相等;=表示將符號(hào)右邊的值賦給左邊的變量 本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第二種 選擇結(jié)構(gòu)三種一般形式中的語句”皆為復(fù)合語句,復(fù)合語句要用 括起來,只有當(dāng)復(fù)合語 句中只包括一條語句時(shí)可以省略 ,此題即如此,因此兩個(gè)printf 操作沒有加 精品文檔 若 c=a+b 成立,則執(zhí)行 printf(yesn); 否則(即 c=a+b

14、不成立),執(zhí)行 printf(non); +的優(yōu)先級(jí)高于 =,因此先算 a+b, 值為 4, 表達(dá)式 5=4 不成立, 因此執(zhí)行 printf(non); 即輸出字符串 no 2. #include main() int a=12, b= -34, c=56, min=0; min=a; if(minb) min=b; if(minc) min=c; printf(min=%d, min); 運(yùn)行結(jié)果為: min=-34 詳見教材 p89 選擇結(jié)構(gòu) 本題考點(diǎn)是選擇結(jié)構(gòu) 3 種基本形式的第一種 一共包含了兩個(gè)選擇結(jié)構(gòu)(兩個(gè) if 語句) 定義變量,并賦值 此時(shí) a=12, b= -34, c=5

15、6, min=0 將 a 中值拷貝,賦給 min ,覆蓋了 min 中的 0 ,此時(shí) min 中的值被更新為 12。 若 minb 成立,則執(zhí)行 min=b; 若 minc 成立,則執(zhí)行 min=c; 輸出 min 中的值 12 大于 -34, 第一個(gè) if 語句的表達(dá)式成立, 因此執(zhí)行 min=b; 執(zhí)行后 min 中的值被更新為 -34. -34 小于 56, 第二個(gè) if 語句的表達(dá)式不成立,因此不執(zhí)行 min=c; 最后輸出 min 中的值,為 -34. 3. #include main() int x=2,y= -1,z=5; if(xy) if(y0) z=0; else z=z+

16、1; printf(“%dn”,z); 運(yùn)行結(jié)果為: 5 遇到選擇結(jié)構(gòu),首先要明確條件表達(dá)式成立時(shí)執(zhí)行哪些操作。本題中,第一個(gè) if 語句,其 后的復(fù)合語句沒有大括號(hào) ,說明復(fù)合語句中只包含一條語句,進(jìn)而省略了 。內(nèi)層的 if.else.是選擇結(jié)構(gòu)的第二種基本形式,在結(jié)構(gòu)上視為一條語句。因此內(nèi)層的 if.else.作為第一個(gè) if 語句的復(fù)合語句。 若表達(dá)式 xy 成立,則繼續(xù)判斷 若 y=0), 執(zhí)行 z=z+1; 輸出 z 2-1,表達(dá)式xy不成立,因此不執(zhí)行內(nèi)層的ifelse.進(jìn)而z中的值沒有被改變。 輸出 z 中的值為 5 4. #include main() float a,b,c,t; a=3; b=7; c=1; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2f,a,b,c); 運(yùn)行結(jié)果為: 1.00, 2.00, 7.00 詳見教材 p72 數(shù)據(jù)的輸出形式 本題包含了 3 個(gè) if 語句,每個(gè) if 語句后的 都不可省略,因?yàn)槊總€(gè) 中都包含了多條語 句 若表達(dá)式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論