C語言程序設計試題試題及答案_第1頁
C語言程序設計試題試題及答案_第2頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C 語言程序設計試卷 ,C+ 語言程序設計試題及答案 、單項選擇題 (每題 1 分,共 20 分) 1. C 語言規(guī)定 :在一個源程序中 , main 函數的位置 (C) A. 必須在最開始 B. 必須在系統(tǒng)調用的庫函數的后面 C. 可以任意 D. 必須在最后 2. 下面四個選項中 , 均是合法浮點數的選項 (B) 。 A. +1e+15e-9.403e2 B -.6012e-4-8e5 C 123e1.2e-.4+2e-1 D -e3.8e-45.e-0 3 若 a=-14,b=3, 則條件表達式 aba:b+1 的值為 (A) A. -14B.-13C.3D.4 4. 已知 :intn,i

2、=1,j=2; 執(zhí)行語句 n=iji+:j+; 則 i 和 j 的值是 (c). A. 1,2B.1,3C.2,2D.2,3 5. 為了判斷兩個字符串 s1 和 s2 是否相等 , 應當使用 (D) A. if(s1=s2)B.if(s1=s2) C.if(strcmp(s1,s2) D.if(strcmp(s1,s2)=0) 6. 以下正確的描述是 (B) 。 A. 函數的定義可以嵌套 , 但函數的調用不可以嵌套 。 B. 函數的定義不可以嵌套 , 但函數的調用可以嵌套 。 C. 函數的定義和函數的調用均不可以嵌套 。 D. 函數的定義和函數的調用均可以嵌套 。 7. 在 C 語言中 ,下面

3、對函數不正確的描述是 (D) 。 A. 當用數組名作形參時 , 形參數組值的改變可以使實參數組之值相應改變 。 B. 允許函數遞歸調用 。 C. 函數形參的作用范圍只是局限于所定義的函數內 。 D. 子函數必須位于主函數之前 。 8. 如果在一個函數中的復合語句中定義了一個變量 , 則以下正確的說法是 (A) 。 A. 該變量只在該復合語句中有效 B. 該變量在該函數中有效 C. 該變量在本程序范圍內均有效 D. 該變量為非法變量 9. 以下正確的函數形式是 (D) 。A. doublefun(intx,inty)z=x+y;returnz; B. fun(intx,y)intz;return

4、z; C. fun(x,y)intx,y;doublez;z=x+y;returnz; D. doublefun(intx,inty)doublez;z=x+y;returnz; 10. 以下程序的輸出結果是 (B) 。 #include #defineF(y)8.19-y #definePRINT(a)printf(%d,(int)(a) voidmain(void) intx=2; PRINT(x*F(3); A. 10B.13C.11D. 報錯 11. 以下程序中編譯和運行結果均正確的一個是 (C) 。 A. A.voidmain(void) union intn; floatx; co

5、mm=1; printf(%d,comm.n); B. B.voidmain(void) union intn; floatx; comm=12.5; printf(%f,comm.x); C. C.voidmain(void) union floatx; intn; comm=12.5 printf(%f,comm.x); D. D.voidmain(void) union intn; floatx; comm=5; printf(%d,comm.n); 12. 設有定義 : inta=1,*p=&a;floatb=2.0;charc=A; A. p+;B.a-;C.b+;D.c-;

6、 13. 以下程序中調用 scanf 函數給變量 a 輸入數值的方法是錯誤的 , 其錯誤原因是 (B) 。 main() int*p,*q,a,b; p=&a; printf(inputa:); scanf(%d,*p); 以下不合法的運算是 (A) A. *p 表示的是指針變量 p 的地址 B. *p 表示的是變量 a 的值 ,而不是變量 a 的地址 C. *p 表示的是指針變量 p 的值 D. *p 只能用來說明 p 是一個指針變量 14. 若 num、 a、b 和 c 都是 int 型變量 ,則執(zhí)行表達式 num=(a=4,b=16,c=32); 后 num 的值為 (C) 。

7、A. 4B.16C.32D.52 15. 已有如下定義和輸入語句 , 若要求 a1,a2,c1,c2 的值分別為 10,20,A 和 B, 當從第一 列開始輸入數據時 , 正確的數據輸入方式是 (C),( 注 :_ 表示空格 ) intal,a2,charc1,c2; scanf(%d%c%d%c,&a1,&c1,&a2,&c2); A. 10A_20_BB.10_A_20_BC.10A20BD.10A20_B 16. 若有說明 :inta10; 則對 a 數組元素的正確引用是 (C) 。 A. a10B.a3.5C.a5-3D.a-1 17. 在 C 語言中,

8、一維數組的定義方式為類型說明符數組名 ;(A) A. 整型常量表達式 B. 表達式 C. 整型常量 D. 整型表達式 18. 以下能對一維數組 a 進行正確初始化的語句是 (C) 。 A. ina10=(0,0.0,0,0); B. in ta10=;C.i nta = 0; D.inta10=10*1; 19. 以下程序段 (C) 。 x=-1; do x=x*x; while(!x); A. 是死循環(huán) B. 循環(huán)執(zhí)行二次 C. 循環(huán)執(zhí)行一次 D. 有語法錯誤 20. 以下關于 do-while 循環(huán)的不正確描述是 (B) 。 A. do-while 的循環(huán)體至少執(zhí)行一次 B. do-whi

9、le 循環(huán)由 do 開始 ,用 while 結束,在 while( 表達式 ) 后面不能寫分號 C. 在 do-while 循環(huán)體中 , 一定要有能使 while 后面表達式的值變?yōu)榱?( 假) 的操作 D. do-while 的循環(huán)體可以是復合語句 二、是非判斷題 ( 每題 1 分,共 15 分) 1. C 語言規(guī)定,標識符中的字母一般區(qū)分大 、小寫。T 2. 控制臺標準輸入設備一般是指鍵盤 。 T 3. 使用 while 和 do-while 循環(huán)時 ,循環(huán)變量初始化的操作應在循環(huán)語句之前處理 。 T 4. 循環(huán)體中 continue 語句的作用是結束整個循環(huán)的執(zhí)行 。 F 5. 關系表達

10、式的值是 0 或 1。 T 6. 若有說明 : inta34=0 , 則只有元素 a00 可得到初值 0。 T 7. 字符串作為一維數組存放在內存中 。 T 8. 字符數組中的一個元素存放一個字符 T。 9. 字符數組中的最后一個字符必須是 0 。 F 10. 形參為指針變量時 , 實參必須是數組名 。 F 11. 用數組名作函數參數時傳遞的是數組的值 。 F 12. 全局變量可以被任何一個函數中的任何一個表達式使用 。 T 13. 一個函數可以帶回一個整型值 、字符值 、實型值等 , 也可以帶回指針型的數據 。 14. 表達式 i+ 與 +i 在任何場合功能完全相同 。 15. 在賦值表達式

11、中 , 賦值號左邊的變量和右邊的表達式之值的數據類型可以不相同 。 三、 多項選擇題 ( 每題 1 分, 共 5 分) 1. 若要求在 if 后一對圓跨括號中表示 a 不等于 0 的關系 , 則不能正確表示這一關系 的表達式為 (ABC). Aa0 B!a C a=0 Da Ea!=0 2. 選出所有合法的常量 (CEGIJ) 。 A 3e22 . 5 B-e-3 C-.1e-1 DBASIC E045 F0fd G0 xfdaL He8 I J 3. 以下關于函數原型說法錯誤的是 :(ADFHI) (1) 對變量的定義 ”和“聲明”是一回事 ,對函數的 “定義 ”和“聲明 ”也是一回事 。

12、(2) 在聲明函數原型時 , 允許只寫出參數的類型 ,而不必寫出參數的名稱 。 (3) 如果在定義函數時不指定函數類型 , 系統(tǒng)會隱含指定函數類型為 int 型 。 (4) 調用一個函數時 ,函數名 、實參個數 、實參類型必須與函數原型一致 。 (5) 如果被調函數的定義出現在主調函數之前 ,可以不必加以聲明 。 (6) 所有的函數之間可以互相調用 。 (7) 在 C 語言中,所有函數都是平行的,一個函數不能從屬于另一個函數 ,即不能嵌套定義 的。 (8) 如果函數沒有返回值 , 在定義時可以省略函數類型 。 (9) 在 C 語言中 , 任何函數的定義都不允許為空 。 (10) C 語言規(guī)定

13、,實參變量對形參變量的數據傳遞是 “值傳遞 ”。 4. 請從下面關于指針的敘述中 ,選出 5 個正確的敘述。(ABDEH) (1) 指針即地址 。 (2) 指針須先賦值后使用 。 (3) 當指針 p 指向數組 a 的首址后 ,由于 p 和 a 都能引用數組元素 , 所以這里 p 和 a 是等價 的。 (4) int*p 表示定義了一個指向 int 類型數據的指針變量 p。 (5) 數組的指針是指數組的起始地址 。 若有定義 inta4,*p=a, 則 p+后 p 指向數組 a 所占內存的第二個字節(jié)。 (7) 使用指針變量作函數參數采取的是 值傳遞 的方式 。 (8) 相同類型的指針可以進行減法

14、運算 。 (9) 指針變量和許多變量一樣可以進行四則運算 。 (10) 指針 p 指向數組元素 a2 , 若要其指向 a4 ,執(zhí)行 p=p*2 即可 。 5. 以下關于數組的敘述中 , 5 個最確切的說法是 :(BEGHI) (1) 在聲明一個數組變量時必須指定大小 。 (2) 必須用常量表達式來說明一個數組變量的大小 。 (3) 在對數組進行初始化時大括號中的數據個數必須和數組的大小相同 。 (4) 有變量定義 inta3=0,1,2,b3; , 可以用 b=a ,使數組 b 的每個元素和 a 的每個 元素相等 。 (5) 在 C 語言中 , 可以將字符串作為字符數組來處理 。 (6) 定義

15、了字符數組 charc11; 為了給它賦值 , 可以用 c=china; 。 (7) 如果有 chars15=Iama0student;, 則 strlen(s) 的值為 6。 (8) C 語言中 , 二維數組中元素排列的順序是 :按行存放 。 (9) 在 C 語言中 , 不能對局部的數組變量進行初始化 。 (10) 在聲明時對數組進行進行初始化必須指定數組大小 。 四、程序運行結果題 ( 每題 4 分, 共 20 分) 1. (4 分 ) 下面程序的運行結果是 ( ) 。 #include voidmain(void) inti; chara=Time,b=Tom; for(i=0;a!=0

16、&b!=0;i+) if(a=b) if(a=a&a=z)printf(%c,a-32); elseprintf(%c,a+32); elseprintf(*); 2. (4 分 ) 下面程序段的運行結果是 ( ) 。 i=1;s=3 do s+=i+; if(s%7=0)continue; else+i; whlie(s=0&x=3000&x=6000&x=10000)y=54+0.3*x; printf(%6.1f,y); 4. (4 分 ) 以下程序的運行結果是 ( ) 。 voidmain(void) inta=1,k; for(k=0;k3;k

17、+)printf(%4d,f1(a) intf1(intx) staticintz=3,y=0; y+; z+; return(x+y+z); 5. (4 分 ) 以下程序的功能是計算函數 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y) 的值 ,請選擇填空 。 #include #include floatfun1(float,float); voidmain(void) floatx,y,z,sum; scanf(%f%f%,&x,&y,&z); sum=fun1( )+fun1( ); printf(sum=%fn,sum); floatfun1(

18、floata,floatb) floatnum; num=a/b; returnnum; 五、程序填空題 (每題 2 分,共 20 分) 1. 下面程序的功能是用公式 :nXn /6=1/(1 X 1)+1/(2 X 2)+1/(3 X 3)+ 求n的近似值,直到最后一項的值小于 10e-6 為止。 #include #include voidmain(void) longi=1; pi=0; while(i*i=10e+6)pi= ;i+; pi=sqrt(6.0*pi); printf(pi=%10.6fn,pi); 2. 下面程序的功能是把以下給定的字符按其矩陣格式讀入數組 str1 中

19、,并輸出行列號之 和是 3 的數組元素 。 voidmain(void) charstr143=A,b,C,d,E,f,G,h,I,j,K,i ; intx,y,z; for(x=0;x1) #include intage(intn) intc; if(n=1)c=10; if( elsec= ; returnc; 4. 以下程序的功能是判斷輸入的年份是否是閏年 。 voidmain(void) intyear,yes; scanf(%d,&year); if(year%400=0)yes=1; elseif( )yes=1; else ; if(yes)printf(%dis,yea

20、r); elseprintf(%disnot,year); printf(aleapyear.n); 5. 以下程序實現 : 輸入三個整數 , 按從大到小的順序進行輸出 。 voidmain(void) intx,y,z,c; scanf(%d%d%d,&x,&y,&z); if( )c=y;y=z;z=c; if( )c=x;x=z;z=c; if( )c=x;x=y;y=c; printf(%d,%d,%d,x,y,z); 六、填空題(每題 1 分,共 20 分) 1. 在 C 語言中 ,一個 float 型數據在內存中所占的字節(jié)數為 ( ) 個字節(jié) ; 一個 do

21、uble 型數據在內存中所占的字節(jié)數為 ( ) 個字節(jié) 。 一、單項選擇題 1 下面正確的字符常量是 : A) “c”B) C)WD) 2下列字符串中不能作為 C+ 標識符使用的是 : A) WHILEB)userC)_1varD)9stars 3 執(zhí)行語句序列的輸出結果是 _ 。 inti=0; while(i25) i+=3; couti; A) 24B)25C)27D)28 4 .下列符號中可以用作 C+標識符的是 _ 。 A) radiusB)foobarC)elseD)3room 5. 若 a 是 int 類型變量 ,則表達式 a=25/3%3 的值是 : A) 3B)2C)1D)0

22、 6 以下敘述中不正確的是 : A) 在不同的函數中可以使用相同名字的變量 B) 函數中的形參是局部變量 C) 在一個函數內部定義的變量只在本函數范圍內有效 D) 在一個函數內部定義的變量在所有函數內部有效 7 變量的引用 ,其含義是指該變量的 : A.值 B.類型 C.別名 D.地址 8 已知定義 : chars10; 則下面不表示 s1 的地址的是 : A. s+1B . *(s+1)C . &s0+1D . &s1 9 . 通??截悩嬙旌瘮档膮凳?: A.對象 B.對象的成員 C.對象的引用 D.對象的指針 10 .派生類對象的構造順序是先調用 : A 派生類的構造函數

23、 B.基類的構造函數 C 內嵌對象的構造函數 D.友兀類的構造函數 二、 填空題 1 動態(tài)多態(tài)是指在 _ _ ( 1 ) _ 時才確定使用哪個 ( 2 ) _ 函數的方式 。 2 友員不是類的成員 , 但必須在 _ ( 3 ) _ 予以聲明 , 它具有存取類的 _ (4) _成員的 特權。 3 . C+中 class 與 struct 的主要區(qū)別是在缺省訪問權限時 ,_ (5) _的成員為私有的, 而_ ( 6) _的成員為公有的 。 4 若有定義語句 : inta=3,b=2; 5 表達式 : 26%3=_(8) _ 6類的成員包括 _(10)_ 和 者稱為方法 。其訪問權限有三種 7對基類

24、成員的初始化 , 必須在派生類構造函數的 (17) 中進行 。 8 C+ +源程序文件的擴展名是 (18) , 頭文件的擴展名是 (19) 。 9若 n 為整型 , 則表達式 n=(float)2/3 的值是 (20) 。 三、寫出程序的運行結果 1 寫出程序運行結果 in clude #include classCRect private: , 則表達式 ,32/5=_(9) _(11)_ 兩種 ,在面向對象的術語中 ,前者稱為屬性 、后 ,由符號 _(12)_ 、_(13)_ 和_(14)_ 指定,其中具有 _(15)_ 權限的成員只有類中的成員函數才能訪問 中都可訪問 。 、而具有 _(

25、16)_ 權限的成員在任何函數 charcolor10; intleft; inttop; intlength; intwidth; public: CRect(); CRect(char*c,intt,intlef,intlen,intwid); voidSetColor(char*c); voidSetSize(intl=100,intw=100); voidMove(intt,intl); voidDraw(); ; CRect:CRect() strcpy(color,Black); top=0; left=0; length=0; width=0; CRect:CRect(char*

26、c,intt,intlef,intlen,intwid) strcpy(color,c); top=t; left=lef; length=len; width=wid; voidCRect:SetColor(char*c) strcpy(color,c); voidCRect:SetSize(intl,intw) length=l; width=w; voidCRect:Move(intt,intl) top=t; left=l; voidCRect:Draw() cout 矩形左上角坐標為 (left,top)endl; cout 矩形長和寬分別為 length,widthendl; cout 矩形的顏色是 colorendl; voidmain() CRectr; r.SetColor(Red); r.Move(10,20); r.SetSize(100,200); r.Draw(); r.Move(50,50); r.SetColor(Blue); r.Draw(); 2寫出程序運行結果 #include classA intx,y; public: A() x=0; y=0; A(inta,intb) x=a; y

溫馨提示

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

最新文檔

評論

0/150

提交評論