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

下載本文檔

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

文檔簡介

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

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

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

4、- ”不滿足(1);選項C中的while為關鍵 字,不滿足(3) 9. C語言中的簡單數(shù)據(jù)類型包括(D )。 A、整型、實型、邏輯型B、整型、實型、邏輯型、字符型 C、整型、字符型、邏輯型 D、整型、實型、字符型 10. 在C語言程序中,表達式 5%2的結果是_C。 A)2.5B)2C)1D)3 詳見教材P5253. %為求余運算符,該運算符只能對整型數(shù)據(jù)進行運算。且符號與被模數(shù)相同。5%2=1;5% (-2)=1;( -5)%2=-1;( -5)%(-2)=-1 ; /為求商運算符,該運算符能夠對整型、字符、浮點等類型的數(shù)據(jù)進行運算,5/2=2 11. 如果int a=3,b=4;則條件表達

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

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. 設有以下說明語句: typedef struct stu int a; float b; stutype; 則下面敘述中錯誤的是(D )o A、struct是結構類型的關鍵字 B struct stu是用戶定義的結構類型 C、a和b都是結構成員名 D stutype是用戶定義的結構體變量名 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; 選項A先定義一個整型指針變量p,然后將變量i的地址賦給p。然而此時還未定義變 量i因此編譯器無法獲得變量i的地址。(A與C對比,選項C先定義變量i,則在內(nèi)存中為 i分配空間,因此i在內(nèi)存空間的地址就可以確定了;然后再定義p,此時可以為p賦i的 地址,C正確) 37. 若有說明:int n=2,*p= 選項C,

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

9、+2)D.p+2 首先定義一個整型數(shù)組a, a的長度為5,然后定義一個指針變量p,并同時對p進行初 始化,將數(shù)組a的地址賦給p。因此此時p中存放的數(shù)組a的首地址,即數(shù)組中第一個元素 a0的地址。 對于數(shù)組元素下標的引用(詳見p144), 一般形式 數(shù)組名下標其中下標為邏輯地址 下標,從0開始計數(shù),方括號中的下標可以是變量,可以是表達式,但結果一定要是整數(shù)。 選項A, p中存放的是地址,不是整數(shù),不能做數(shù)組元素的下標 選項B, a是數(shù)組名,數(shù)組名就是地址,不是整數(shù),不能做數(shù)組元素的下標 選項C,(重點!,詳見p231234) p+2表示指向同一數(shù)組中的下兩個元素的地址,當 前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的表達式是_B A) *P+9 B) *(P+8) C) *P+=9 D) P+8 (重點! !詳見 p231234) 首先定義一個整型數(shù)組a, a的長度為5,然后定義一個指針變量P,并同時對P進行初 始化,將數(shù)組a的地址賦給P。因此此時P中存放的數(shù)組a的首地址,即數(shù)組中第一個元素 a0的地址。 數(shù)組中9對應的是a8,選項B, P+8表示數(shù)組中后 8個元素的地址,即 a8的地址。 *(P+8)則表示該地址內(nèi)所存放的內(nèi)容,即a8的值。 選項A,*

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

12、 則關于兩個數(shù)組長度的正確描 43. 已知 char x=hello, y=h,e,a,b,e;, 述是 B . A)相同 B)x 大于y C)x C語言中,字符串后面需要一個結束標志位 對一維數(shù)組初始化時可采用字符串的形式 如本題數(shù)組y)。在以字符串形式初始化時, 小于y D) 0 以上答案都不對 ,通常系統(tǒng)會自動添加。 (例如本題數(shù)組x),也可采用字符集合的形式(例 數(shù)組 x不盡要存儲字符串中的字符,還要存儲 字符串后的結束標志位,因此數(shù)組x的長度為6;在以字符集合形式初始化時,數(shù)組y,僅 存儲集合中的元素,因此數(shù)組y長度為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 ”); 運行結果為:no 詳見教材p89選擇結構 詳見教材p91關系符號 詳見附錄D p378符號的優(yōu)先級 =表示判斷符號兩邊的值是否相等;=表示將符號右邊的值賦給左邊的變量 本題考點是選擇結構3種基本形式的第二種 選擇結構三種一般形式中的語句”皆為復合語句,復合語句要用 括起來,只有當復合語 句中只包括一條語句時可以省略 ,此題即如此,因此兩個printf 操作沒有加 精品文檔 若 c=a+b 成立,則執(zhí)行 printf(yesn); 否則(即 c=a+b

14、不成立),執(zhí)行 printf(non); +的優(yōu)先級高于 =,因此先算 a+b, 值為 4, 表達式 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); 運行結果為: min=-34 詳見教材 p89 選擇結構 本題考點是選擇結構 3 種基本形式的第一種 一共包含了兩個選擇結構(兩個 if 語句) 定義變量,并賦值 此時 a=12, b= -34, c=5

15、6, min=0 將 a 中值拷貝,賦給 min ,覆蓋了 min 中的 0 ,此時 min 中的值被更新為 12。 若 minb 成立,則執(zhí)行 min=b; 若 minc 成立,則執(zhí)行 min=c; 輸出 min 中的值 12 大于 -34, 第一個 if 語句的表達式成立, 因此執(zhí)行 min=b; 執(zhí)行后 min 中的值被更新為 -34. -34 小于 56, 第二個 if 語句的表達式不成立,因此不執(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); 運行結果為: 5 遇到選擇結構,首先要明確條件表達式成立時執(zhí)行哪些操作。本題中,第一個 if 語句,其 后的復合語句沒有大括號 ,說明復合語句中只包含一條語句,進而省略了 。內(nèi)層的 if.else.是選擇結構的第二種基本形式,在結構上視為一條語句。因此內(nèi)層的 if.else.作為第一個 if 語句的復合語句。 若表達式 xy 成立,則繼續(xù)判斷 若 y=0), 執(zhí)行 z=z+1; 輸出 z 2-1,表達式xy不成立,因此不執(zhí)行內(nèi)層的ifelse.進而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); 運行結果為: 1.00, 2.00, 7.00 詳見教材 p72 數(shù)據(jù)的輸出形式 本題包含了 3 個 if 語句,每個 if 語句后的 都不可省略,因為每個 中都包含了多條語 句 若表達式

溫馨提示

  • 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

提交評論