




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1章 C+及其開發(fā)環(huán)境概述一、問答題1結(jié)構(gòu)化程序設(shè)計主要有哪些劣勢?【答案】(1)程序的開發(fā)效率低下(2)程序的可重用性差(3)程序的維護(hù)成本高(4)無法適應(yīng)信息的快速膨脹和多樣化2面向?qū)ο蟮某绦蛟O(shè)計有哪些優(yōu)點?【答案】(1)程序的開發(fā)效率高(2)程序代碼的可重用性高(3)程序易于維護(hù)3C+的發(fā)展經(jīng)歷了哪些階段?【答案】C+語言起源于C語言。1980年初期,美國貝爾實驗室的Bjarne Stroustrup博士及其同事在C語言的基礎(chǔ)上,從Simula67中引入面向?qū)ο蟮奶卣?,開發(fā)出一種過程性與對象性相結(jié)合的程序設(shè)計語言,最初稱為“帶類的C”,1983年正式取名為C+。后來,Stroustru
2、p和他的同事陸續(xù)將運算符重載、繼承、虛函數(shù)等特性引入C+,1989年后推出AT&T C+ 2.0版,并經(jīng)過多次改進(jìn)和完善,發(fā)展成為現(xiàn)在的C+。4C+主要有哪些特點?【答案】(1)C+可以被看成C語言的一個超集,是對C的增強和擴展。因此,許多C代碼可以不經(jīng)修改即可為C+所用。自然,也可以利用C+開發(fā)環(huán)境來開發(fā)C程序。(2)C+幾乎支持所有面向?qū)ο蟮某绦蛟O(shè)計特征,因此,利用C+不僅可以進(jìn)行傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計,而且可以較好地進(jìn)行面向?qū)ο蟮某绦蜷_發(fā)。(3)C+很好地保持了C的簡潔、高效、靈活和接近匯編語言的特點,因此,C+程序的執(zhí)行效率也很高。5一個C+程序一般由哪幾部分構(gòu)成?【答案】 預(yù)處
3、理命令。C+提供了三種預(yù)處理命令,即宏定義命令、文件包含命令和條件編譯命令。 全局聲明部分。此部分內(nèi)容通常會給出用戶自定義的數(shù)據(jù)類型聲明,以及程序中所涉及變量的定義,例如類的聲明。 函數(shù)。一個程序中可包含一個或多個函數(shù),它們是執(zhí)行用戶指定操作的主要部分。6使用Visual C+ 開發(fā)C+程序時一般要經(jīng)過哪幾個步驟?每個步驟的作用是什么?相應(yīng)地產(chǎn)生哪些文件?【答案】(1)編寫程序C+是一種高級語言,所以用其編寫的程序稱為“源程序”,以.cpp做為后綴。我們可以利用Visual C+、Turbo C+等編譯軟件來編寫C+源程序。(2)編譯程序計算機不能識別高級語言,為了將源程序翻譯成計算機可識別的
4、二進(jìn)制指令,需將源程序進(jìn)行編譯,編譯之后的文件稱作“目標(biāo)文件”,以.obj作為后綴。編譯時以每個源程序單元為單位,每一個源程序文件編譯成一個目標(biāo)文件。因此,如果一個工程中有多個源程序單元,系統(tǒng)會分別將其編譯成多個目標(biāo)文件。另外,編譯時系統(tǒng)會自動進(jìn)行錯誤檢查,一旦檢查出有錯誤,便不會生成目標(biāo)文件,需改正后重新編譯。(3)連接目標(biāo)文件一個程序中可能會包含很多文件,編譯后會生成很多獨立的目標(biāo)文件,此時系統(tǒng)的“連接程序”將這些目標(biāo)文件和庫文件以及系統(tǒng)提供的其他信息連接起來,形成二進(jìn)制可執(zhí)行文件,以.exe為后綴。(4)運行程序運行二進(jìn)制可執(zhí)行文件,得到運行結(jié)果。如運行結(jié)果不正確,則需修改源文件,之后重
5、新編譯運行。二、分析運行結(jié)果1#include <iostream>using namespace std;int main( )cout<<"My "<<"sister "cout<<"is "<<"a "cout<<"beautiful girl!"<<endl;return 0 ;運行結(jié)果為:My sister is a beautiful girl!2#include <iostream>us
6、ing namespace std;int main( )int a,b,c;cin>>a>>b;c=a+b;cout<<"a+b="<<a+b<<endl;return 0;運行結(jié)果為:2 3a+b=5第2章 C+程序設(shè)計基礎(chǔ)(上)一、選擇題(1)在一個C+程序中,main函數(shù)的位置( )。A必須在程序的開頭 B必須在程序的后面C可以在程序的任何地方 D必須在其他函數(shù)中間【答案】C(2)用C+語言編寫的源程序要變?yōu)槟繕?biāo)程序必須要經(jīng)過( )。A解釋 B匯編 C編輯 D編譯【答案】D(3)C+程序基本單位是( )。A
7、數(shù)據(jù) B字符 C函數(shù) D語句【答案】C(4)C+程序中的語句必須以( )結(jié)束。A冒號 B分號 C空格 D花括號【答案】B(5)下列選項中,全部都是C+關(guān)鍵字的選項為( )。Awhile IF static Bbreak char go Csizeof case extern Dswitch float integer【答案】C(6)下列正確的八進(jìn)制整型常量表示是( )。A0a0 B015 C080 D 0x10【答案】B(7)在下列運算符中,( )優(yōu)先級最高。A<= B*= C+ D*【答案】D(8)在下列運算符中,( )優(yōu)先級最低。A! B&& C!= D?:【答案】D
8、(9)設(shè)i=1,j=2,則表達(dá)式i+j的值為( )。A1 B2 C3 D4【答案】C(10)設(shè)i=1,j=2,則表達(dá)式+i+j的值為( )。A1 B2 C3 D4【答案】D(11)在下列表達(dá)式選項中,( )是正確。A+(a+) Ba+b Ca+b Da+b【答案】C(12)已知i=0,j=1,k=2,則邏輯表達(dá)式+i|-j&&+k的值為( )。A0B1 C2 D3【答案】B(13)執(zhí)行下列語句后,x的值是( ),y的值是( )。int x,y;x=y=1;+x|+y;A不確定B1,1 C2,1 D2,2【答案】C(14)已知x=5,則執(zhí)行語句x+=x-=x*x;后,x的值為(
9、)。A25B40C-40D20【答案】C(15)設(shè)a=1,b=2,c=3,d=4,則條件表達(dá)式a<b?a:c<d?c:d的值為( )。A1B2C3D4【答案】A(16)逗號表達(dá)式(x=4*5,x*5),x+25的值為( )。 A25B20C100D45【答案】C二、寫出下列數(shù)學(xué)表達(dá)式的C+算術(shù)表達(dá)式(1) (2)xxx(ax+b)+c+d+e(3) (4)(5) (6)log10(a2+ab+b2) 【答案】(1)1/(1+1/(1+1/(x+y)(2)x*(x*(x*(a*x+b)+c)+d)+e(3)log(1+pow(fabs(a+b)/(ab),10)(4)sqrt(1+3
10、.14159/2*cos(48*3.14159/180)(5)1/tan(1-x*x)/(1+x*x)或者cos(1-x*x)/(1+x*x)/sin(1-x*x)/(1+x*x)(6)log10(a*a+a*b+b*b)三、用關(guān)系表達(dá)式或邏輯表達(dá)式表示下列條件(1)i整除j(2)n是小于正整數(shù)k的偶數(shù)(3)1<=x<10(4)x,y其中有一個小于z(5)y100,10,并且y10,100(6)坐標(biāo)點(x,y)落在以(10,20)為圓心,以35為半徑的圓內(nèi)(7)三條邊a,b和c構(gòu)成三角形(8)年份Year能被4整除,但不能被100整除或者能被400整除【答案】(1)i%j=0(2)
11、(n<k)&&(n%2=0)(3)1<=x&&x<10 (4)x<z|y<z(5)!(y>=-100&&y<=-10)&&!(y>=10&&y<=100)(6)sqrt(pow(x-10),2)+pow(y-20),2)<35(7)a+b>c&&b+c>a&&c+a>b(8)(year%4=0)&&(year%100!=0)|(year%400=0)四、閱讀下列程序,寫出執(zhí)行結(jié)果(1)#in
12、clude <iostream>using namespace std;void main()int a=1,b=2,x,y;cout<<a+ + +b<<endl;cout<<a%b<<endl;x=!a>b;y=x- &&b;cout<<x<<endl;cout<<y<<endl;【答案】4 2 -1 0 (2)#include <iostream>using namespace std;void main()int x,y,z,f;x=y=z=1;
13、f=-x|y-&&z+;cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;cout<<"z="<<z<<endl;cout<<"f="<<f<<endl;【答案】x=0y=0z=2f=1五、編程題(1)輸入一個三位整數(shù),將它反向輸出?!窘獯稹?include <iostream>using namespace std
14、;void main() int x,i,j,k; cout<<"please input x:" cin>>x; i=x/100; j=(x-i*100)/10; k=x-i*100-j*10; cout<<k<<j<<i<<endl;(2)輸入平面上某點橫坐標(biāo)x和縱坐標(biāo)y,若該點在由圖2-8表示的方塊區(qū)域內(nèi),則輸出1;否則,輸出0。圖2-8 正方形【解答】#include <iostream>using namespace std;void main() float x,y,b; cou
15、t<<"please input x,y:" cin>>x>>y; b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2); cout<<b<<endl;第3章 C+程序設(shè)計基礎(chǔ)(下)1設(shè)有函數(shù)關(guān)系為,下面選項中能正確表示上述關(guān)系的語句為( )。Ay=1; By=1;if(x>=)0 if(x!=0)if(x=0)y=0; if(x>0)y=1;else y=1; else y=0Cif(x<=0) Dy=1;i
16、f(x<0)y=1; if(x<=0)else y=0; if(x<0)y=1;else y=1; else y=1;【答案】C2假設(shè)i=2,執(zhí)行下列語句后i的值為( )。switch(i) case 1:i+;case 2:i-;case 3:+i;break;case 4:-i;default:i+;A1B2C3D4【答案】B3已知int i=0,x=0;下面while語句執(zhí)行時循環(huán)次數(shù)為( )。while(!x && i<3)x+;i+;A4B3C2D1【答案】D4已知int i=3;下面dowhile語句執(zhí)行時循環(huán)次數(shù)為( )。doi-;cout
17、<<i<<endl;while(i!=1);A1B2C3D無限【答案】B5下面for語句執(zhí)行時循環(huán)次數(shù)為( )。for(int i=0,j=5;i<=j;)cout<<i<<j<<endl;i+;j-;A0B1C3D5【答案】C6以下程序段為死循環(huán)的是( )。Afor(int x=0;x<3;)x+; Bint k=0; do+k;while(k>=0);Cint a=5;while(a)a-; Dint i=3;for(;i;i-);【答案】B二、閱讀下列程序,寫出執(zhí)行結(jié)果1#include <iostrea
18、m.h>void main()int a,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;else if(!b)if(!c)x=15;else x=25;cout<<d<<endl;【答案】202#include <iostream.h>void main()int a=0,b=1;switch(a)case 0:switch(b)case 0:cout<<"a="<<a<<" b="<<b<<endl;break;case 1:c
19、out<<"a="<<a<<" b="<<b<<endl;break;case 1:a+;b+;cout<<"a="<<a<<" b="<<b<<endl;【答案】a=0 b=1a=1 b=23#include <iostream.h>void main()int i=1;while(i<=10)if(+i%3!=1)continue;else cout<<i<
20、<endl;【答案】47104#include <iostream.h>void main()int i=0,j=5;doi+; j-;if(i>3)break;while(j>0);cout<<"i="<<i<<'t'<<"j="<<j<<endl;【答案】i=4j=15#include <iostream.h>void main()int i,j;for(i=1,j=5;i<j;i+)j-;cout <<
21、i<<'t'<<j<<endl;【答案】336#include <iostream.h>void main()int i,s=0;for(i=0;i<5;i+)switch(i)case 0:s+=i;break;case 1:s+=i;break;case 2:s+=i;break;default:s+=2;cout<<"s="<<s<<endl;【答案】s=77#include <iostream.h>void main()int i,j,x=0;for
22、(i=0;i<=3;i+)x+;for(j=0;j<=3;j+)if(j%2)continue;x+;x+;cout<<"x="<<x<<endl;【答案】x=16三、編程題1輸入三個整數(shù),再將這三個整數(shù)按從小到大的順序輸出?!窘獯稹?include <iostream.h>void main()int a,b,c,t; cout<<"a,b,c=" cin>>a>>b>>c; if(a>b)t=a;a=b;b=t; if(a>c)t=
23、a;a=c;c=t; if(b>c)t=b;b=c;c=t; cout<<a<<'t'<<b<<'t'<<c<<endl;2模擬剪刀、石頭和紙游戲,用s表示剪刀,r表示石頭,p表示紙。游戲規(guī)則為:剪刀剪紙,石頭砸剪刀,紙包石頭。兩名游戲者分別輸入s、r或p,按照游戲規(guī)則輸出結(jié)果?!窘獯稹?include <iostream.h>void main()char first,second; cout<<"First input(s,r or p):&quo
24、t; cin>>first; cout<<"Second input(s,r or p):" cin>>second; switch(first) case 's': switch(second)case 's':cout<<"Scissor ties scissor."<<endl;goto end; case 'r':cout<<"Scissor is crushed by rock."<<endl;
25、goto end; case 'p':cout<<"Scissor cuts paper."<<endl;goto end; default :cout<<"second input error!"<<endl;goto end; case 'r': switch(second)case 's': cout<<"Rock crushes scissor."<<endl;goto end; case 'r
26、9;: cout<<"Rock ties rock."<<endl;goto end; case 'p': cout<<"Rock is wrapped by paper."<<endl;goto end; default : cout<<"second input error!"<<endl;goto end; case 'p': switch(second) case 's':cout<<"
27、Paper is cut by scissor."<<endl; goto end; case 'r':cout<<"Paper wraps the rock."<<endl; goto end; case 'p':cout<<"Paper ties paper."<<endl; goto end; default :cout<<"second input error!"<<endl; goto end; de
28、fault:cout<<"First input error!"<<endl;goto end; end:;3輸入一個整數(shù),輸出該整數(shù)的所有素數(shù)因子。例如,輸入120,輸出為2、2、2、3和5?!窘獯稹?include <iostream.h>void main()int m,i = 2;cout << "please input m:"cin >> m;while( i<=m )if( m % i = 0 )cout << i << " "m
29、= m / i;else i+;cout <<endl;4找出100到200之間滿足用3除余2且用5除余3且用7除余2的所有整數(shù)?!窘獯稹?include <iostream.h>void main()int i;for( i=100; i<=200; i+ )if ( ( i % 3 = 2) && ( i % 5 = 3 ) && ( i % 7 = 2 ) )cout << i << endl;5如果一個整數(shù)恰好等于它的所有因子之和,則這個數(shù)稱為完數(shù)。例如,6=1+2+3,所以6為完數(shù)。求1000之內(nèi)的
30、所有完數(shù)?!窘獯稹?include <iostream.h>void main()int i,j,s;for( i=1; i<=1000; i+ )s = 0;for( j=1; j<i; j+ )if ( i % j = 0 ) s = s + j;if ( i = s ) cout << i << endl;6在屏幕上輸出如下圖案:* * * * * * * * * * * * * * * * * * * * *【解答】#include <iostream.h>void main()int i,j,k;for( i=1; i<
31、;=5; i+ )for( k=1; k<=5-i; k+ ) cout << " "for( j=1; j<=2*i-1; j+ ) cout << "*"cout << endl;第4章 函數(shù)的應(yīng)用1選擇題(1)下面關(guān)于C+語言說法不正確的是( )。A具有函數(shù)式的程序結(jié)構(gòu),其程序至少由一個函數(shù)構(gòu)成,不論是主函數(shù),還是其他函數(shù)B變量的數(shù)據(jù)類型豐富,而且使用不同的存儲類別C具有編譯預(yù)處理的功能,為程序的設(shè)計與修改、調(diào)試、移植帶來方便D既是面向結(jié)構(gòu)的程序設(shè)計語言,又是面向?qū)ο蟮某绦蛟O(shè)計語言答案:A若只有一個函
32、數(shù),則只能是主函數(shù),否則程序不知從何處開始執(zhí)行。(2)所謂模塊化程序設(shè)計是指,在程序設(shè)計中把功能相對獨立、單一的模塊用一個函數(shù)實現(xiàn),再由若干個函數(shù)組成完整程序的程序設(shè)計方法。對于函數(shù),下列說法不正確的是( )。A函數(shù)結(jié)構(gòu)獨立、功能單一,便于編寫、調(diào)試和修改B可以并行開發(fā),加快軟件開發(fā)速度,縮短開發(fā)周期C函數(shù)的重復(fù)使用性好,提高開發(fā)效率D所有函數(shù)都可用于整個程序,即使該程序包含了多個文件答案:D(3)關(guān)于函數(shù)調(diào)用,下面不正確的是( )。A由于程序總是從主函數(shù)開始執(zhí)行,所以函數(shù)的調(diào)用總是在主函數(shù)和其他函數(shù)之間進(jìn)行B函數(shù)的調(diào)用可以在任意函數(shù)之間進(jìn)行C一個函數(shù)可以自己調(diào)用自己D函數(shù)返回時可以不必帶回值
33、,這時函數(shù)類型應(yīng)為void答案:A(4)關(guān)于函數(shù)的聲明與定義,正確的是( )。A函數(shù)的聲明是必須的,只有這樣才能保證編譯系統(tǒng)對函數(shù)參數(shù)進(jìn)行檢測,以確保參數(shù)傳遞正確B函數(shù)的聲明并非必須,即可以只給出函數(shù)定義C聲明函數(shù)時參數(shù)標(biāo)識符可省略,但參數(shù)的類型、個數(shù)必須相同且順序不能顛倒D一個函數(shù)可以在另一個函數(shù)內(nèi)定義答案:C函數(shù)的聲明并非必須,可以只要函數(shù)定義而不要聲明但要注意符合一定條件。函數(shù)不可嵌套定義。(5)關(guān)于函數(shù)的返回值,正確的是( )。Areturn語句只返回一個值,該值的類型在函數(shù)定義時已確定B返回值類型由返回變量類型決定C如果不定義函數(shù)類型,表示該函數(shù)沒有返回值D函數(shù)調(diào)用一定要有返回值,否
34、則調(diào)用就沒有意義了答案:A(6)下列關(guān)于形參的說法,正確的是( )。A函數(shù)的形參并非是必須的,有時可以什么都沒有B函數(shù)的形參可以是表達(dá)式C函數(shù)在定義時,形參是不占用存儲空間的,只有在被調(diào)用時系統(tǒng)才會為其分配存儲空間,調(diào)用結(jié)束時,該空間將被釋放D形參的名稱、類型、數(shù)量和順序必須與實參相同,否則實參不會把信息正確地傳遞給形參答案:C(7)關(guān)于函數(shù)的返回,不正確的是( )A使程序的執(zhí)行重新返回到主調(diào)函數(shù),使程序繼續(xù)往下執(zhí)行B釋放調(diào)用函數(shù)時臨時分配的存儲單元C一定要返回一個值給主調(diào)函數(shù)D其返回值可有可無答案:C被調(diào)用函數(shù)可以不返回任何值,僅完成某功能。二、閱讀下列程序,寫出執(zhí)行結(jié)果(1)#includ
35、e <iostream>using namespace std;void incx();void incy();void main()incx();incy();incx();incy();incx();incy();void incx()int x=0;cout<<"nx="<<+x;void incy()static int y=0;cout<<"ny="<<+y;【答案】x=1y=1x=1y=2x=1y=3(2)#include <iostream>using namespac
36、e std;int i=3;int fun1(int n)cout<<i+n<<endl;return 0;int fun2(int n)static int i=2;cout<<i+n<<endl;return 0;void main()int i=1;int fun1(int);int fun2(int);cout<<i;fun1(i);fun2(i);【答案】143三、編程題(1)編寫函數(shù),定義兩個unsigned short int型的參數(shù),返回兩個參數(shù)的商,其數(shù)據(jù)類型為short int。如果第二個參數(shù)為0,輸出錯誤提示信息
37、。【源程序】#include <iostream.h>short int Divider(unsigned short int a, unsigned short int b)if (b = 0)return -1;elsereturn a/b;int main()unsigned short int one, two;short int answer;cout << "Enter two numbers.n Number one: "cin >> one;cout << "Number two: "cin
38、 >> two;answer = Divider(one, two);if (answer > -1)cout << "Answer: " << answer;elsecout << "Error, can't divide by zero!"return 0;運行結(jié)果為:Enter two numbers.Number one:8Number two:2Answer: 4(2)編寫函數(shù),輸入一個華氏溫度,將華氏溫度轉(zhuǎn)換為攝氏溫度輸出,公式為C(F32)*5/9,其中F為華氏溫度,C為攝氏溫度
39、?!驹闯绦颉?include<iostream.h>#include<iomanip.h>void main() double f,c,b; cout<<"請輸入華氏溫度:"<<endl; cin>>f; cout<<"對應(yīng)的攝氏溫度為:"<<endl; c=f-32; b=5.00/9; c=b*c; cout<<setprecision(4)<<"C="<<c<<endl;運行結(jié)果為:請輸入華氏溫度:
40、80對應(yīng)的攝氏溫度為:26.67(3)編寫函數(shù),判斷一個數(shù)是否是質(zhì)數(shù)。【源程序】#include <iostream.h>#include <math.h>int prime(int i); /判斷一個數(shù)是否是質(zhì)數(shù)的函數(shù)void main()int i;cout << "請輸入一個整數(shù):"cin >> i;if (prime(i)cout << i << "是質(zhì)數(shù)。" << endl;elsecout << i << "不是質(zhì)數(shù)。&quo
41、t; << endl;int prime(int i)int j,k,flag;flag = 1;k = sqrt(i);for (j = 2; j <= k; j+)if(i%j = 0)flag = 0;break;if (flag)return 1;elsereturn 0;運行結(jié)果為:請輸入一個整數(shù):11511151是質(zhì)數(shù)。(4)編寫函數(shù),求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)?!驹闯绦颉?include <iostream.h>#include <math.h>int fn1(int i,int j); /求最大公約數(shù)的函數(shù)void main()
42、int i,j,x,y;cout << "請輸入一個整數(shù):"cin >> i ;cout << "請輸入另一個整數(shù):"cin >> j ;x = fn1(i,j);y = i * j / x;cout << i << "和" << j << "的最大公約數(shù)是:" << x << endl;cout << i << "和" << j <&
43、lt; "的最小公倍數(shù)是:" << y << endl;int fn1(int i, int j)int temp;if (i < j)temp = i;i = j;j = temp;while(j != 0)temp = i % j;i = j;j = temp;return i;運行結(jié)果為請輸入一個整數(shù):120請輸入另一個整數(shù):72120和72的最大公約數(shù)是:24120和72的最小公倍數(shù)是:360(5)編寫遞歸函數(shù),計算x的y(y>0)次冪?!驹闯绦颉?include <iostream.h>long GetPower(i
44、nt x,int y);int main()int number, power;long answer;cout << "Enter a number: "cin >> number;cout << "To what power? "cin >> power;answer = GetPower(number,power);cout << number << " to the " << power << "th power is &
45、quot; <<answer << endl;return 0;long GetPower(int x, int y)if(y=1)return x;elsereturn (x * GetPower(x,y-1);運行結(jié)果為:Enter a number: 3To what power? 43 to the 4th power is 81(6)編寫程序,要求輸人四位數(shù)的年份、兩位數(shù)的月份和日期,把它們按“年 月 日”的格式輸出,并計算它是這一年的第幾天?!驹闯绦颉?include<iostream.h>#include<iomanip.h>day
46、num(int,int,int);void date(int year,int month,int day)cout<<setw(2)<<year/1000<<setw(2)<<(year/100)%10;cout<<setw(2)<<(year/10)%10<<setw(2)<<year%10;cout<<setw(2)<<month/10;cout<<setw(2)<<month%10<<setw(2)<<day/10<
47、;<setw(2)<<day%10<<endl;cout<<daynum(year,month,day)<<endl;daynum(int year,int month,int day)int i,sum=0;for(i=1;i<month;i+)switch (i)case 1:/1、3、5、7、8、10、12月有31天case 3:case 5:case 7:case 8:case 10:case 12:sum+=31;break;case 4:/4、6、9、11月有30天case 6:case 9:case 11:sum+=30
48、;break;case 2:if (year%4=0 && year%100!=0)|year%400=0)/閏年2月有29天sum+=29;else /平年2月有28天sum+=28;sum+=day;return sum;void main()int year,month,day;cout<<"請輸入年/月/日:"cin>>year>>month>>day;date(year,month,day);運行結(jié)果為:請輸入年/月/日:1984 03 05 1 9 8 4 0 3 0 565第5章 數(shù)組與字符串一、
49、選擇題:(1)以下一維數(shù)組a的正確定義是( )。Aint a(10); Bint n=10,an; Cint n; D#define SIZE 10 cin>>n; int aSIZE;int an;【答案】D(2)以下能對具有10個元素的一維數(shù)組a進(jìn)行正確初始化的語句是( )。Aint a10=(0,0,0,0,0); Bint a10=10*1;Cint a =0; Dint a10= ;【答案】B(3)在定義int a10;之后,對a的引用正確的是( )。Aa10 Ba6.3 Ca(6) Da10-10【答案】D(4)以下對二維數(shù)組a進(jìn)行不正確初始化的是( )。Aint a2
50、3=0;Bint a3=3,2,1,1,2,3;Cint a=3,2,1,1,2,3;Dint a23=3,2,1,1,2,3;【答案】C(5)在執(zhí)行int a3=1,2,3,4,5,6;語句后, a11的值是( )。A4 B1 C2 D5【答案】D(6)為了判斷兩個字符串s1和s2是否相等,應(yīng)當(dāng)使用( )。Aif (s1=s2) Bif (s1=s2)Cif (strcmp(s1,s2)=0) Dif (strcpy(s1,s2)【答案】C(7)定義如下變量和數(shù)組:int i;int x33=1,2,3,4,5,6,7,8,9;則以下語句的輸出結(jié)果是( )。for (i=0;i<3;i
51、+)cout<<xi2-i);A1 5 9 B1 4 7 C3 5 7 D3 6 9【答案】C(8)下面程序段的運行結(jié)果是( )。char a7="abcdef"char b4="ABC"strcpy(a,b);cout<<a5;Ae Bf C一個空格 D0 【答案】B(9)有下面程序段,則( )。char a3,b ="China"a=b; cout<<a;A運行后將輸出China B運行后將輸出ChC運行后將輸出Chi D編譯出錯【答案】D(10)以下程序執(zhí)行后輸出結(jié)果是( )。main()in
52、t aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;i<4;i+) s=s+aai1;cout<<s;A11 B13 C19 D20【答案】C二、閱讀下列程序,寫出執(zhí)行結(jié)果(1)#include<iostream.h>void main()char ch7="12ab56"int i,s=0;for(i=0;chi>='0'&&chi<='9'i=i+2)s=10*s+chi-'0' cout<<
53、;s;運行結(jié)果為:1(2)#include<iostream.h>void main()int i,j,row,col,min;int a34=1,2,3,4,9,8,7,6,-1,-2,0,5;min=a00;for(i=0;i<3;i+)for(j=0;j<4;j+)if(aij<min)min=aij;row=i;col=j;cout<<min<<" "<<row<<" "<<col;運行結(jié)果是-2 2 1 (3)#include<iostream.h&
54、gt;void main()int i,r;char s180="bus",s280="book"for(i=r=0;s1i!='0' && s2i!='0'i+)if (s1i=s2i)i+;elser=s1i-s2i;break;cout<<r<<endl;運行結(jié)果是4 (4)分析以下程序的運行結(jié)果。#include<iostream.h>void main()int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33
55、,0;int i,j,s=0;for(i=0;i<4;i+)for(j=0;j<4;j+)if(aij<0)continue;if(aij=0)break;s=s+aij;cout<<s<<endl;運行結(jié)果是58 (5)分析下列程序運行結(jié)果。#include<iostream>using namespace std;void main()int i,j;static int a10=1,1,1,1,1,1,1,1,1,1;for (i=0;i<10;i+)for (j=0;j<i;j+)ai=ai+aj;for (i=0;i&
56、lt;10;i+)cout<<ai<<","運行結(jié)果為1,2,4,8,16,32,64,128,256,512,三、將下列程序補充完整,并實現(xiàn)相應(yīng)的功能1實現(xiàn)功能:輸入的20個數(shù)據(jù)以每行4個數(shù)據(jù)的形式輸出。#include<iostream.h>#define N 20void main()int aN,i;for(i=0;i<N;i+)cin>>ai;for(i=0;i<N;i+)if (_)cout<<'n'cout<<ai<<" "cou
57、t<<'n'【答案】 i%4=0(2)實現(xiàn)功能:輸入5個整數(shù),找出最大數(shù)和最小數(shù)所在的位置,并把二者對調(diào),然后輸出調(diào)整后的5個數(shù)。#include<iostream.h>void main()int a5,max,min,i,j,k=0;for(i=0;i<5;i+) cin>>ai;min=a0;for(i=1;i<5;i+)if(_)min=ai;k=i;max=a0;for(i=1;i<5;i+)if(ai>max)max=ai;_;ak=max;aj=min; cout<<"最小數(shù)的位置是"<<k<<endl;cout<<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)保護(hù)與書畫藝術(shù)創(chuàng)作考核試卷
- 藝術(shù)品市場規(guī)范考核試卷
- 航班機組人員溝通技巧考核試卷
- 花卉畫法的分類與特點考核試卷
- 一次函數(shù)應(yīng)用舉例教學(xué)課件
- 共建文明社區(qū)共享和諧生活:課件教程
- 中國古代教育長善救失
- 2019-2025年咨詢工程師之工程項目組織與管理能力提升試卷B卷附答案
- 2025年投資項目管理師之投資建設(shè)項目決策真題練習(xí)試卷A卷附答案
- 扈中平現(xiàn)代教育改革理論與實踐
- 項目部臨時動火作業(yè)審批表
- 飲料生產(chǎn)公司應(yīng)急預(yù)案匯編參考范本
- 高效水泥助磨劑PPT課件(PPT 66頁)
- 生物防治第三講
- 旁站監(jiān)理實施細(xì)則(完整版)
- 學(xué)業(yè)水平考試復(fù)習(xí)高中語文文言文課本翻譯
- 蘇教版二年級(下冊)科學(xué)全冊單元測試卷含期中期末(有答案)
- 常用原料凈料率參照表
- 高低溫試驗報告
- 第一章 混凝土拌合站組織機構(gòu)框圖及崗位職責(zé)
- 指南預(yù)應(yīng)力簡支t形梁橋
評論
0/150
提交評論