C練習(09機械師)_第1頁
C練習(09機械師)_第2頁
C練習(09機械師)_第3頁
C練習(09機械師)_第4頁
C練習(09機械師)_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、一、選擇題1. 在每個C+程序中都必須包含有這樣一個函數,該函數的函數名為            。A. main           B. MAIN           C. name          &#

2、160;D. function2. 若a,b均為int型變量,為了將10賦給a,將20賦給b,則對應以下cin語句的正確輸入方式為 。(<CR>代表回車換行,代表空格)。 cin >> a >> b; A1020<CR> B10_20<CR> C10,20<CR> D20_10<CR>3. 在以下關于C+語言的注釋的敘述中,不正確的是 。 AC+程序中,注釋可用"/*"、"*/"形式表示,也可用"/"形式表示 BC+編譯器在編譯一個程序時,將跳過注釋,

3、不對其進行處理 CC+編譯器在編譯一個程序時,可發現注釋中的單詞拼寫錯誤 D程序中注釋的多少不會影響所生成的可執行文件的長度4. 以下敘述不正確的是 。 A在C+程序中,嚴格區分大小寫字母 B一個C+源程序有且僅有一個main函數 C在C+程序中,注釋只能位于一條語句的后面 D一個C+程序總是從main函數開始執行5. C+語言對C語言做了很多改進,C+語言相對于C語言的最根本的變化是 A增加了一些新的運算符B允許函數重載,并允許設置缺省參數C規定函數說明符必須用原型D引進了類和對象的概念6. C+是 A. 面向對象的程序設計語言B. 結構化程序設計語言C. 既是面向對象的程序設計語言又是結構

4、化程序設計語言D. 非結構化程序設計語言7. 下列合法的標識符為 A. abde+ B. #KDJF C. 67KDJ D. DK3_8. 關于字符串和字符的關系正確的是 A. “A”與A是相同的B. 字符串是常量,字符是變量C. “A”與A是不同的D. “A ”與“A”是相同的if (x>y)z=x; s=z*z;elsez=y;s=1/(z*z);if (x>y)z=x; s=z*z;elsez=y;s=1/(z*z);9. 下面關于語句的說法正確的是 A. 下面這兩段程序的執行效果是一致的B. 空語句是只有一個分號的語句,它其實什么也不干C. 語句的構成不一定需要分號D. 語

5、句的書寫對程序的運行不起作用,因此可以隨便寫都可以10. 以下各標識符中,合法的用戶標識符組為 。A. PAd,P#d,b-b,abc,_0123,ssipedB. cin,a10,CPP,float,del_word,signedC. void,max,hiy,<fr>,list,*jerD. a,temp,_isw,INT,keep,wind11. 若給出以下程序,其輸出為 。 #include <iostream> using namespace std; int main ( ) int a=4,b=7;cout << (a=a+1,b+a,b+1)

6、 << endl;return 0; A5 B8 C11 D程序有錯誤,無法運行12. 字符串“”EOF= -61”的長度是 。A 8 B 9 C 12 D 非法字符串13. 數學式在C+程序中對應正確的表達式為 。 Asqrt(sin(x)>0?sin(x):-sin(x) Bsqrt(fabs(sinx) Csqrt(sqrt(sinx*sinx) Dfabs(sqrt(sin(x)14. 下列 是C+語言的有效標識符?A_No1BNo.1 C12345 Dint15. C+語言中,表示一條語句結束的標號是 A# B; C/ D16. 每個C+程序中都必須有且僅有一個 A

7、類B預處理命令 C主函數D語句17. 下列數據類型不是C+語言基本數據類型的是 。A字符型 B整型 C實型 D數組18. 下列字符列中,可作為C+語言程序自定義標識符是 。 Aswitch Bfile Cbreak Ddo 19. 運算符 +、<=、=、% 中,優先級最低的運算符是 。 A + B<= C= D% 20. 下列字符列中,可以作為“字符串常量”的是 。 A ABC Bxyz Cuvw D a 21. 設變量m,n,a,b,c,d均為0,執行(m = a= =b)|(n=c= =d)后,m,n的值是 。 A0,0 B 0,1 C 1,0 D 1,122. 字符串&quo

8、t;vmx43np102q"的長度是 。A 8 B 10 C 17 D 16 23.  在C+語言中,自定義的標識符 。A能使用關鍵字并且不區分大小寫B不能使用關鍵字并且不區分大小寫C能使用關鍵字并且區分大小寫D不能使用關鍵字并且區分大小寫24. 設x和y均為bool量,則x && y為真的條件是             。A. 它們均為真    B. 其中一個為真     C. 它們均為假

9、     D. 其中一個為假25. 若給定條件表達式(m)?(a+): (a-),則其中表達式m 。 A. 和(m= =0)等價 B. 和(m= =1)等價 C. 和(m!=0)等價 D. 和(m!=1)等價26. 在C+語言的if語句中,用作判斷的表達式為 。 A. 關系表達式 B. 邏輯表達式 C. 算術表達式 D. 任意表達式27. 設i和k都是int類型,則以下for循環語句 。 for ( i=0, k= -1; k=1; i+, k+ ) cout << "*n" A. 判斷循環結束的條件不合法 B. 是無限循

10、環 C. 循環體一次也不執行 D. 循環體只執行一次28. 若有以下語句,則輸出結果為 。 int a=2,b=1; cout << a>b?"a大于b":"a小于b" << endl; A. a大于b B. a小于b C. 1 D. 輸出語句有錯29. int k=10;while(k=0) k=k-1;則下面描述正確的是 。A. while循環執行10次 B. 循環是無限循環C. 循環體語句一次也不執行 D. 循環體語句執行一次30. int a=1,b=2,c=2,t;while(a<b) t=a;a=b;b=t

11、;c-;cout<<a<<”,”<<b<<”,”<<c;運行結果為 。A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,131. int x=-1;do x=x*x;while(!x);下列說法正確的是 。A. 是死循環 B. 循環執行兩次C. 循環執行一次 D. 有語法錯誤32.  以下能正確計算1*2*3*10的程序段是 。A.     do i=1;s=1; B. do i=1;s=0;s=s*i; i+; s=s*i;i+; while(i<=10);

12、while(i<=10);C. i=1;s=1; D. i=1;s=0; do s=s*i; dos=s*i;i+; i+;while(i<=10); while(i<=10);33. 以下描述正確的是 。A. 由于do-while循環中循環體語句只是一條可執行語句,所以循環體內不能使用復合語句B. do-while循環由do開始,用while結束,在while(表達式)后面不能寫分號C. 在do-while循環體中,一定要有能使while后面表達式的值變為零(“假”)的操作D. do-while循環中,根據情況可以省略while34. C+中while和do-while循環

13、的主要區別是 。A. do-while的循環體至少無條件執行一次B. while的循環控制條件比do-while的循環控制條件嚴格C. do-while允許從外部轉到循環體內D. do-while的循環體不能是復合語句35. 下面有關for循環的正確描述是 。A. for循環只能用于循環次數已經確定的情況B. for循環是先執行循環體語句,后判斷表達式C. for循環中,不能用break語句跳出循環體D. for循環的循環體語句中,可以包含多條語句,但必須用花括號括起來36. 對for(表達式1; ;表達式3)可理解為 。A. for(表達式1;0;表達式3) B. for(表達式1;1;表達

14、式3)C. for(表達式1;表達式1;表達式3)D. or(表達式1;表達式3;表達式3)37. 在C+編程語言中,以下正確的描述是 。A. continue語句的作用是結束整個循環的執行B. 只能在循環體內和switch語句體內使用break語句C. 在循壞體內使用break語句或continue語句的作用相同D. 從多層循環嵌套中退出,只能使用goto語句38. 下面程序段 。for(t=1;t<=100;t+) cin>>x; if(x<0) continue; cout<<t;A. 當x<0時整個循環結束 B. x>=0時什么也不輸出C

15、. cout永遠也不執行 D. 最多允許輸出100個非負整數39. 定義一個函數實現交換x和y的值,并將結果正確返回。能夠實現此功能的是 。A. swap(int x, int y) int t; t=x; x=y; y=t; B. swap(int *x, int *y) int t; t=x; x=y; y=t; C. swap(int *x, int *y) int t; t= *x; *x = *y; *y=t; D. swap(int *x, int *y) int *t; t=x; x=y; y=t; 答案:A B C C D C D C B D B A B A B C D B C

16、 BD A D A C D B A C DC C C A D B B D C二、填空題1. 程序的三種基本的控制結構是: 、 、 。2. C+語言中的每條基本語句以             作為結束符,每條復合語句以           作為結束符。3. 關系表達式x+y>5的相反表達式為      &

17、#160;                   。4. 下面的程序段中循環體的執行次數是 。a=10;b=0;dob+=2;a-=2+b; while(a>=0);5. 下面程序段的運行結果為 。x=2;docout<<“*”;x-; while(!x=0);6. 假定a為一個整型數組名,則元素a4的字節位置為       

18、60;      。7. 假定一個一維數組的定義為“char  a8 ;”,則該數組所含元素的個數為      ,所占存儲空間的字節數為            。8. 已知int a32=3, 2, 1; 則表達式“a00/a01/a02”的值是 。9. 若用數組名作為函數調用時的實參,則實際上傳遞給形參的是 。10. 如果一個函數無返回值,定義它時函數類型應是 。11. 預處

19、理命令以 開頭。12. 指針類型變量用于存儲 ,在內存中它占有一個存儲空間。13. 賦值語句在執行時先計算 ,再將該值轉換成與 一致的值,并將值賦給左部變量。14. 在程序中else總是與 的if配對,而不管程序的書寫格式如何。15. 在函數中使用 語句返回值。16. 函數的形參在未被調用前 分配空間,函數形參的 要和實參相同。17. 函數調用一般分 、 ,前者的特點是形參和實參各有獨立的存儲空間,形參的存儲空間在函數被調用時才分配,形參內容的變化不影響實參,后者的特點是形參實參共用一個存儲空間,形參內容的改變可以改變實參值。18. 在傳值調用中,實際是把實參的 傳給形參。19. int a3

20、=3; 則a2= 。20. int a3=1, 3, 5, 7; 則 。21. 數組由 和 構成,其數組元素的數據類型是 。22. 聲明長度為10的float型數組a,且初始化為0的語句是: 。23. 指針是存放一個變量的 的變量。24. 當數組名作形參時,相當于 。25. 要訪問數組元素可以采用 、 、 。26. 定義一個指針p,它指向一個有6個整型元素的一維數組,定義語句為 。27. 定義一個指針數組p,它有4個元素,每個指針指向一個整型數據,定義語句為 。28. 指針可以指向字符串,在定義一個字符型指針時,可以給它初始化,目的是把字符串的 放入指針變量。29. 指針可以指向函數,這時它所

21、指的是函數的 。答案:1. 順序結構 選擇結構 循環結構2. ; 3. x+y<=54. 35. *6. a+167. 8 328. 19. 數組首位置10. 內置函數11. #12. 所指變量的位置13. 表達式的值 左部變量類型14. 它前面最近且未配對15. return16. 不 類型及數量17. 傳值調用 傳址調用18. 值19. 020. 會出錯21. 數組名 下標 相同的22. float a10=0;23. 位置24. 指針25. 下標法 位置法 指針法26. int (*p)627. int *p428. 首位置29. 入口位置三、填空完成下面的程序1. #includ

22、e <iostream> using namespace std; int main( ) int a, b, c, x; cin>>a; cout<<"a="<<a<<endl; cin>>b; cout<<"b="<<b<<endl; cin>>c; cout<<"c="<<c<<endl; if (a=b&&b=c) cout<<"the

23、 three numbers are eauql"<<endl; else if(a>b && a>c) x=a; else if (b>c) x=b;else x=c; cout<<"the greatest number is:"<<x<<endl; return 0; 2. 雞、兔共有30只,腳共有90個,下面程序段是計算雞兔各有多少只,x代表有多少只雞,y代表有多少只兔子,請填空完成程序。for(x=1;x<=29;x+) y=30-x; if( 2*x+4*y=90

24、) cout<<x<<" "<<y; 3. 下題是計算1100之間的偶數之和,請填空。#include <iostream>using namespace std;int main( ) int a=0, i; for (i=2; i<=100 ; i=i+2 )a=a+i ;cout<<“偶數之和為:”<<a<<endl;return 0;4. 下面程序是從鍵盤上輸入若干個學生的成績,統計并輸出最高成績和最低成績,當輸入負數時結束輸入,請填空。#include #include &l

25、t;iostream>using namespace std;int main( ) float x, amax, amin;cin>>x; amax=x;amin=x;while ( x>=0 )if( x>amax) amax=x; if(x<amin) amin=x; cin>>x; cout<<”amax is:”<<amax<<endl;cout<<”amin is:”<<amin<<endl;return 0;5. 下面程序的功能是:求a的b次方,并輸出,請把程序

26、補充完整。#include <iostream>using namespace std;int main( ) double fun(double, int); double a; int b; cout<<”please input a:”; cin>>a; cout<<endl; cout<<”please input b:”; cin>>b; cout<<endl; cout<< fun(a,b) <<endl;return 0;double fun(double a, int b

27、) int i; double z=1; for(i=1;i<=b;i+) z=z*a; return (z); 6. 補充完成下列程序,使該程序輸出結果為:1 2 3 4 5 6 7 8 9 101 2 3 4 5 5 4 3 2 1#include <iostream>using namespace std;int main( ) int i,a10; for(i=0;i<10;i+) ai=i+1; for(i=0;i<10;i+) cout<<ai<<“ “; cout<<endl; for(i=0;i<5;i+)

28、 a9-i=ai; for(i=0;i<10;i+) cout<<ai<<“ “; cout<<endl;return 0;7. 下面是字符串拷貝函數,請填空。Void copy ( ) int i=0;char ch1=”good morning!”, char ch220; while ( ch1i!=0 ) ch2i= ch1i; i+; ch2i= 0; 8. void max(int a55)int i,j,m; for(i=0;i<5;i+) m=0; for(j=1;j<5;j+)if(aim<aij) m=j; cou

29、t<<i+1<<”:”<<aim<<endl;四、給出下列程序運行后的輸出結果1. # include <iostream>using namespace std;void SB(char ch) switch(ch) case 'A': case 'a':        cout <<"well!" break; case 'B': case 'b': 

30、60;       cout <<"good!" break; case 'C': case 'c':         cout <<"pass!" break;   default:         cout <<"bad!" b

31、reak;    int main( ) char a1='B',a2='c',a3='f'SB(a1);SB(a2);SB(a3);SB('A');cout <<endl;return 0;答案:good!  pass!  bad!  well!2. #include<iostream>using namespace std;int main()int a,b; for(a=1,b=1;a<=100;a+) if(b>=20) bre

32、ak; if(b%3= =1) b+=3;continue; b- =5;cout<<a<<endl; return 0;答案:83. #include<iostream>using namespace std;main( )int i,j,x=0; for(i=0;i<2;i+) x+; for(j=0;j<=3;j+) if (j%2) continue; x+; x+; cout<<“x=”<<x<<endl; 答案:x=84. #include<iostream>using namespac

33、e std;void main( ) int i; for(i=1;i<=5;i+) if(i%2) cout<<“*”; else continue;cout<<“#”; cout<<“$n”; 答案:*#*#*#$5. #include<iostream>using namespace std;void main( ) int I,j,a=0; for(I=0;I<2;I+) for(j=0;j<4;j+) if(j%2) break; a+; a+; cout<<a<<endl;答案:46. #include<iostream.h>void main( )int I; for(I

溫馨提示

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

評論

0/150

提交評論