《c++語言程序設(shè)計教程》習題及解答_第1頁
《c++語言程序設(shè)計教程》習題及解答_第2頁
《c++語言程序設(shè)計教程》習題及解答_第3頁
《c++語言程序設(shè)計教程》習題及解答_第4頁
《c++語言程序設(shè)計教程》習題及解答_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第 頁共85頁第 頁共85頁C+語言程序設(shè)計教程習題及解答第1章C+語言概述練習題1判斷題xl.C+語言和C語言都是面向?qū)ο蟮某绦蛟O(shè)計語言。V2面向?qū)ο蠓椒ň哂蟹庋b性、繼承性和多態(tài)性。73.C語言是C+語言的一個子集。C+語言繼承了C語言。x4.C+語言程序與C語言程序一樣都是函數(shù)串。x5.C+語言支持封裝性和繼承性,不支持多態(tài)性。.C+語言比C語言對數(shù)據(jù)類型要求更加嚴格了。.C+語言對C語言進行了一次改進,使得編程更加方便了。x8.C+源程序在編譯時可能出現(xiàn)錯誤信息,而在連接時不會出現(xiàn)錯誤信息。79編譯C+源程序時,出現(xiàn)了警告錯(Warning)也可以生成可執(zhí)行文件。710.C+語言程序的實

2、現(xiàn)也要經(jīng)過編輯、編譯連接和運行3個步驟。單選題下列關(guān)于面向?qū)ο蟾拍畹拿枋鲋校e誤的是(C)。A面向?qū)ο蠓椒ū让嫦蜻^程方法更加先進B面向?qū)ο蠓椒ㄖ惺褂昧艘恍┟嫦蜻^程方法中沒有的概念C面向?qū)ο蠓椒ㄌ娲私Y(jié)構(gòu)化程序設(shè)計方法D.面向?qū)ο蟪绦蛟O(shè)計方法要使用面向?qū)ο蟮某绦蛟O(shè)計語言下列各種高級語言中,不是面向?qū)ο蟮某绦蛟O(shè)計語言是(D)。A.C+B.JavaVBD.C下列關(guān)于類的描述中,錯誤的是(A)。A類就是C語言中的結(jié)構(gòu)類型B類是創(chuàng)建對象的模板C類是抽象數(shù)據(jù)類型的實現(xiàn)類是具有共同行為的若干對象的統(tǒng)一描述體下列關(guān)于對象的描述中,錯誤的是(C)。A對象是類的一個實例B對象是屬性和行為的封裝體C對象就是C語言中

3、的結(jié)構(gòu)變量D.對象是現(xiàn)實世界中客觀存在的某種實體.下列關(guān)于C+程序中使用提取符和插入符的輸入輸出語句的描述中,錯誤的是(C)A提取符是對右移運算符()重載得到的B插入符是對左移運算符()重載得到的C提取符和插入符都是雙目運算符,它們要求有兩個操作數(shù)D提取符和插入符在輸入/輸出語句中不可以連用填空題C+語言具有面向?qū)ο蠓椒ㄖ幸蟮娜筇匦裕悍庋b性、繼承性和多態(tài)性。.C+程序中,有且僅有一個主一函數(shù)。.C+程序是由類和函數(shù)組成的。C+源程序的擴展名是cpp。.使用插入符進行標準輸出文件輸出時,使用的輸出流對象名是cout。1.4上機調(diào)試下列程序,并分析輸出結(jié)果1.#includevoidmain(

4、)inti,j;coutij;couti=i,j=jendl;couti+j=i+j,i*j=i*jendl;假定,輸入數(shù)據(jù)如下:Enterxy:5_9/答:i=5,j=9i+j=14,i*j=452.#includeintmax(int,int);voidmain()inta,b,c;a=5;b=8;c=max(a,b);coutmax(a,b)=cy?x:y;答:max(5,8)=83文件e1.4.3.cpp內(nèi)容如下:#includevoidf1(),f2();voidmain()cout在北京.n;f1();f2();cout再見.n;文件1.4.3-l.cpp內(nèi)容如下:#include

5、voidf1()cout在上海.n;文件1.4.3-2.CPP內(nèi)容如下:#includevoidf2()cout在廣州.n;答:在北京。在上海。在廣卅。再見。1.5編譯下列程序,修改所出現(xiàn)的錯誤,獲得正確結(jié)果1main()coutInmain().n答:修改后如下:#includevoidmain()coutInmain().n;_2#includevoidMAIN()cina;intb=a+a;coutb=bn;答:修改后如下:#includevoidmain()inta;cina;intb=a+a;coutb=”b”n;3#includevoidmain()inti,j;i=5;intk=

6、i+j;COUTi+j=kendl;答:#includevoidmain()inti,j;j=10;i=5;intk=i+j;couti+j=kendl;1.6通過對1.5題中3個程序的修改,回答下列問題1從1.5題中第1題程序的修改中,總結(jié)出編程應(yīng)該注意哪些問題。答:C+程序要包含iostraem.h,main()函數(shù)前應(yīng)加類型說明符void。.C+程序中所出現(xiàn)的變量是否必須先說明后使用?在函數(shù)體內(nèi)說明變量時是否都要放在函數(shù)體的開頭?答:C+程序中所出現(xiàn)的變量必須先說明后使用。在函數(shù)體內(nèi)說明變量時不一定要放在函數(shù)體的開頭。使用cout和插入符()輸出字符串常量時應(yīng)注意什么?答:可輸出一個字符

7、串常量,也可輸出多個字符串常量。每輸出一個字符串常量要使用一次插入符(D%=下列運算符中,優(yōu)先級最低的是(B)。A=B.?:CID&已知:inta(3);下列表達式中,錯誤的是(C)。Aa%2=0Ba-+2C(a2)+Da=2已知:intb(5),下列表達式中,正確的是(D)。Ab=aB+(b1)Cb%2.5Db=3,b+1,b+2下列關(guān)于類型轉(zhuǎn)換的描述中,錯誤的是(C)。A類型轉(zhuǎn)換運算符是(4?0:1D2&2110下列表達式中,其值不為邏輯值的是(A)A.算術(shù)表達式B關(guān)系表達式C.逗號表達式D.邏輯表達式下列關(guān)于數(shù)組概念的描述中,錯誤的是(B)。A數(shù)組中所有元素類型是相同的B數(shù)組定義后,它的

8、元素個數(shù)是可以改變的C數(shù)組在定義時可以被初始化,也可以不被初始化D數(shù)組元素的個數(shù)與定義時的每維大小有關(guān)下列關(guān)于數(shù)組維數(shù)的描述中,錯誤的是(C)。A定義數(shù)組時必須將每維的大小都明確指出B二維數(shù)組是指該數(shù)組的維數(shù)為2C數(shù)組的維數(shù)可以使用常量表達式D數(shù)組元素個數(shù)等于該數(shù)組的各維大小的乘積下列關(guān)于數(shù)組下標的描述中,錯誤的是(B)。AC+語言中數(shù)組元素的下標是從0開始的B數(shù)組元素下標是一個整常型表達式C數(shù)組元素可以用下標來表示D數(shù)組元素的某維下標值應(yīng)小于該維的大小值下列關(guān)于初始值表的描述中,錯誤的是(C)。A數(shù)組可以使用初始值表進行初始化B初始值表是用一對花括號括起的若干個數(shù)據(jù)項組成的C初始值表中數(shù)據(jù)項

9、的個數(shù)必須與該數(shù)組的元素個數(shù)相等D使用初始值表給數(shù)組初始化時,沒有被初始化的元素都具有默認值20下列關(guān)于字符數(shù)組的描述中,錯誤的是(D)。A字符數(shù)組中的每一個元素都是字符B字符數(shù)組可以使用初始值表進行初始化C字符數(shù)組可以存放字符串D字符數(shù)組就是字符串21下列關(guān)于字符串的描述中,錯誤的是(C)。A一維字符數(shù)組可以存放一個字符串B二維字符數(shù)組可以存放多個字符串C可以使用一個字符串給二維字符數(shù)組賦值D可以用一個字符串給二維字符數(shù)組初始化已知:inta5=1,2,3,4;下列數(shù)組元素值為2的數(shù)組元素是(B)Aa0Ba1Ca2Da3已知:intab=1,5,6,3,0,2;數(shù)組元素ab11的值為(A)。

10、TOC o 1-5 h zA0B1C2D3已知:chars=abcd;輸出顯示字符c的表達式是(C)AsBs+2Cs2Ds3.已知:charss=while,for,else,break;輸出顯示”reak字符串的表達式是(B)Ass3Bss3+1Css+3Dss31填空題C+語言中,基本數(shù)據(jù)類型包含有整型、浮點型、字符型、空值型和布爾型。變量的存儲類可分為自動類、寄存器類、夕卜鄒類和靜態(tài)存儲類。浮點型常量可分為單精度、雙精度和長雙精度浮點型常量。4結(jié)合性從右至左的運算符有單目運算符、雙目運算符和賦值運算符。條件表達式是由一三目運算符組成的,該表達式的類型是由冒號左邊和右邊兩個操作數(shù)中遂型高的

11、操作數(shù)類型決定的。.已知:doubledd=1.2,2.4,3.6,4.8,5.2,6.4;這里dd是一個二維數(shù)組的數(shù)組名,該數(shù)組共有9個元素,每個元素的類型是double。數(shù)組元素dd00啲值是1.2,dd11啲值是5.2,數(shù)組元素dd22啲值是0。已知:charss6=while,break,for,else;字符數(shù)組ss是二維數(shù)組,它的第1維大小應(yīng)該是土。使用cout和輸出字符串for時,對應(yīng)的表達式是SS+2。使用cout和VV輸出字符串break的子串reak時,對應(yīng)的表達式是ss1+1。使用cout和輸出字符串else中的字符s時,對應(yīng)的表達式是ss32。2.4分析下列程序1#in

12、cludevoidmain()inta,b;coutba;intd=a-b;coutd=dendl;假定輸入為5和8。答:d=32#includevoidmain()constintA=8;constcharCH=k;constdoubleD=8.5;coutA=Aendl;coutCH+2=char(CH+2)endl;coutD-5.8=D-5.8endl;答:A=8CH=2=mD-5.8=2.73#includeinta=9;voidmain()intb=5;couta+b=a+bendl;staticintc;coutc+a=c+aendl;constlongintd=8;couta+

13、d-b=a+d-bendl;答:a+b=14c+a=9a+d-b=124#includevoidmain()inta=3;charb=m;couta=a,b=bendl;inta=5;b=n;couta=a,b=bendl;couta=a,b=bendl;答:a=5,b=ma=3,b=na=3,b=n5#includevoidmain()cout6%4*5/3+3endl;cout(10&3|8)endl;cout(52)endl;cout4endl;答:61021-56#includevoidmain()inta=5;coutlong(&a),sizeof(a),sizeof(int)end

14、l;doubleb=1.5;coutsizeof(1.5f),sizeof(b),sizeof(1.5L)endl;答:,4,44,8,87#includevoidmain()inta=3,b=5;coutb+a=b-2),(a!=b+a=b)endl;charc=k;cout(c=k),(-c!=h+2)endl;floatf=2.3f;cout(-f=f)endl;cout(-f=f)endl;第 #頁共85頁第 頁共85頁答:0,11,018#includevoidmain()inti,j,k;i=j=k=5;!i&+j&-k;couti,j,kendl;i|j-|+k;couti,j,

15、kendl;i-5|j-5&+k;couti,j,kendl;答:5,5,55,5,55,5,59#includevoidmain()inti(5),j(8);cout(i=i*=j)endl;i=5,j=8;i=5*j/(j5);couti,jendl;i=5,j=8;cout(j+=i*=j-5)endl;答:4013,72310#includeinta=8;voidmain()intb=6;doubled=1.5;d+=a+b;coutdendl;cout(a=1,b=2,d=2.5,a+b+d)endl;cout(a0?a:b0?a+:b+)endl;答:15.55.52第 頁共85頁

16、第 頁共85頁11#includevoidmain()intm3=9,8,7,6,5,4,3,2,1,s=0;for(inti=0;i3;i+)s+=mii;coutsendl;答:1512#includevoidmain()chars=bhy543kpm345;for(inti=0;si!=0;i+)if(si=a&si=z)continue;coutsi;coutendl;答:54334513#includevoidmain()intb=5,3,4,1,8,9,0,10;inti=0,j;for(j=i;ibj)j=i;coutj,bjendl;答:7,1014#includevoidma

17、in()inta3=1,2,3,4,5,6,7,8,9;ints1(0),s2(0);for(inti=0;i3;i+)for(intj=0;j3;j+)if(i!=j)s1+=aij;if(i+j=1)s2+=aij;couts1=s1,s2=s2endl;答:s1=30,s2=615#includevoidmain()chars=#%#;for(inti=0;i3;i+)for(intj=0;ji;j+)cout;for(intk=0;k3;k+)coutsk;cout0;i)for(intj=0;ji1;j+)cout;for(intk=0;k3;k+)coutsk;coutendl;答

18、:#%#%#%#%#%#2.5編程題已知:inta=3,b=5;編程計算下列兩個代數(shù)式的值,并比較它們是否相等。(a+b)2a2+2ab+b2答:編程如下:#includevoidmain()inta=3,b=5;intd1=(a+b)*(a+b);intd2=a*a+2*a*b+b*b;coutd1=d1endld2=d2endl;從結(jié)果中可以看出di和d2值是相等的。已知:intx=5;編程求下列代數(shù)式的值。f(x)=3x3+2x2+5x+2答:編程如下:#includevoidmain()intx=5;intf=3*x*x*x+2*x*x+5*x+2;coutfendl;從鍵盤上輸入兩個

19、double型數(shù),編程輸出其中最小者。答:編程如下:#includevoidmain()doublea,b;coutvv請輸入兩個double型數(shù):”;cinab;coutvv輸入的兩個數(shù)中較小的是;if(avoidmain()doublec,f;coutvv請輸入一攝氏溫度值:”;cinc;f=9.0/5.0*c+32.0;coutvv,攝氏溫度為vvcvv華氏溫度為vvfvvendl;5從鍵盤上輸入5個浮點數(shù),輸出它們的和以及平均值。答:編程如下:#includeviostream.hvoidmain()doublea,b,c,d,e;coutvv請輸入5個double型數(shù):;cinabc

20、de;doublef=a+b+c+d+e;coutvv輸入的5個數(shù)的和是vvfvv平均值是vvf/5.0vvendl;6將字符串12345,逆向輸出為54321。答:編程如下:#includeviostream.hvoidmain()chara=12345;coutvva4vva3vva2vva1vva0vvendl;2.6簡單回答下述問題1C+語言中注釋符的格式如何?注釋信息的功能是什么?答:注釋符格式有2種:格式一:/*v注釋信息*/格式二:/v注釋信息注釋信息是用來對程序進行提示和說明的。2使用const定義符號常量比使用#define定義符號常量有何優(yōu)點?答:使用const定義符號常量

21、時要指出數(shù)據(jù)類型,而用#define定義符號常量時不需提出類型,因此前者比后者對類型要求更嚴格,這樣會更安全。3內(nèi)部靜態(tài)存儲類變量有何特點?答:內(nèi)部靜態(tài)存儲類變貫的特點是作用域較小,但壽命很長,這種變量作用域與壽命不一致,因此會出現(xiàn)不可見但又存在的情況。.在使用插入符(vv)輸出若干個表達式值時,有的表達式中使用的運算符的優(yōu)先級低于插入符優(yōu)先級時應(yīng)該如何處理?答:這時需將表達式用括號括起來,己改變其優(yōu)先級。5由多種不同運算符組成的表達式,其類型如何確定?例如,inta,b,c;a=bc?b:c;這是一個條件表達式還是賦值表達式?答:表達式類型由優(yōu)先級低的運算符組成的表達式來確定。這是一個賦值表

22、達式,因為賦值運算符優(yōu)先級低于三目運算符。數(shù)組元素個數(shù)是由什么決定的?答:數(shù)組元素個數(shù)是由維數(shù)及其大小來決定的。一維數(shù)組元素個數(shù)是該維的大小,二維數(shù)組的元素個數(shù)是兩維大小之積等。數(shù)組元素下標有何規(guī)定?答:C+語言中,數(shù)組元素下標從0開始。初始值表中數(shù)據(jù)項的類型和個數(shù)有何規(guī)定?答:初始值表中數(shù)據(jù)項的類型應(yīng)與該變是類型相同,個數(shù)應(yīng)小于或等于被初始化的數(shù)組元素的個數(shù)。字符數(shù)組和字符串有什么關(guān)系?答:字符數(shù)組中可存放字符串,而字符數(shù)組不都是存放字符串的。如果字符數(shù)組中有字符串結(jié)束符,則說明該字符數(shù)存放的是字符串。10一個數(shù)組中的元素類型是否一定相同?何時定義的數(shù)組元素具有默認值?答:數(shù)組中元素類型必須

23、相同。存儲類為外部和靜態(tài)的數(shù)組其元素具有默認值。第3章語句和預(yù)處理練習題3判斷題1.表達式和表達式語句是不同的。x2空語句是一種沒有用處的語句。x3復合語句就是分程序。x4條件語句中if子句和else子句都是必須有并且僅有一個。5條件語句中elseif子句可以沒有,也可以有多個。6.開關(guān)語句可實現(xiàn)多路分支。x7開關(guān)語句的語句序列中必須有一個break語句,否則該開關(guān)語句便無法退出。x8.任何循環(huán)語句都是至少執(zhí)行一次循環(huán)體。x9.退出for循環(huán)語句必須是for后面括號內(nèi)的中間一個表達式的值為0。10.do-while循環(huán)語句至少要執(zhí)行一次循環(huán)體。X11.循環(huán)語句的循環(huán)體中可以出現(xiàn)if語句,if語

24、句的if體內(nèi)不能出現(xiàn)循環(huán)語句。X12.goto語句中所使用的語句標號是一種標識符,它的作用域是文件級的。V13.break語句和continue語句都可以出現(xiàn)在循環(huán)體中,但是它們的作用是不同的。X14文件包含命令所能包含的文件類型是不受限制的。單選題1下列關(guān)于語句的描述中,錯誤的是(A)。AC+程序中的函數(shù)是由若干條語句組成的B每條語句都要實現(xiàn)某種操作C條件語句是用來實現(xiàn)分支操作的D循環(huán)語句是用來在一定條件下重復執(zhí)行某段程序的2下列關(guān)于條件語句的描述中,錯誤的是(C)。Aif語句中最多只能有一個else子句Bif語句的if體內(nèi)可以出現(xiàn)開關(guān)語句Cif語句中elseif子句和else子句的順序是沒

25、有限制的Dif語句中else子句是與它最近的if子句配對的3下列關(guān)于開關(guān)語句的描述中,錯誤的是(B)A開關(guān)語句中,case子句的個數(shù)是不受限制的B開關(guān)語句中,case子句的語句序列中一定要有break語句C開關(guān)語句中,default子句可以省略D開關(guān)語句中,右花括號具有退出開關(guān)語句的功能4下列關(guān)于循環(huán)語句的描述中,錯誤的是(A)Awhile循環(huán)語句中條件給定的表達式不能為非0的常量,否則便是死循環(huán)Bfor循環(huán)語句的循環(huán)體內(nèi)可以出現(xiàn)while循環(huán)語句、do-while循環(huán)語句和for循環(huán)語句C循環(huán)語句的循環(huán)體可以是空語句D循環(huán)語句的循環(huán)體內(nèi)可以出現(xiàn)break語句,也可以出現(xiàn)continue語句已

26、知:inti(3);下歹Udo-while循環(huán)語句的循環(huán)次數(shù)是(D)。docouti-endl;i-;while(i!=0);A0B3C1D無限下列for循環(huán)語句的循環(huán)次數(shù)是(B)for(inti(0),j(5);i=3;i+,j-);A3B無限C5D0下歹Uwhile循環(huán)語句的循環(huán)次數(shù)是(A)。while(inti(0)i-;A0B1A0B1第 頁共85頁第 頁共85頁C2下列程序段執(zhí)行后門值是(B)for(inti(0),j(0);i10;i+)if(i)j+;B9A0C10D無限已知:typedefcharCH;下列描述中,正確的是(A)A使用CH定義的變量是char型變量B使用CH定義

27、的是一個字符常量C使用CH定義的變量其類型不確定D使用CH定義的是一個字符串下列關(guān)于預(yù)處理命令的描述中,錯誤的是(D)。A預(yù)處理命令最左邊的標識符是#B預(yù)處理命令是在編譯前處理的C宏定義命令可以定義符號常量D文件包含命令只能包含.h文件填空題1表達式語句是一個表達式后邊加上一分號(;)組成的。空語句是只有一個分號的語2復合語句是由兩條條或兩條條以上的語句加上一花括號()組成的3分程序是一種帶有說明語句的復合語句。4循環(huán)語句的共同特點是都應(yīng)具有循環(huán)體和退出循環(huán)的條件。5下列程序是求100之內(nèi)的能被7整除的自然數(shù)之和。#ineludevoidmain()intsum;sum=0:for(inti(

28、1);_i=100_;i+)if(_i%7=0_)sum+=i;coutsumendl;上機調(diào)試下列程序,并分析其輸出結(jié)果#includevoidmain()第 頁共85頁第 #頁共85頁inta(8),b(5);if(!a)b-;elseif(b)if(a)a+;elsea-;elseb+;couta,bendl;答:9,52#includevoidmain()inta(10);while(-a)continue;if(a=5)break;if(a%2=0&a%3=0)coutaendl;答:3#includevoidmain()intb(10);do+b;cout+bendl;if(b=1

29、5)break;while(b15);coutok!endl;第 #頁共85頁第 #頁共85頁第 #頁共85頁第 #頁共85頁答:12第 #頁共85頁第 頁共85頁1416ok!4#includevoidmain()intw(5);doswitch(w%2)case1:w-;break;case0:w+;break;w-;coutw0);答:31-15#includevoidmain()inta(4),b(5),i(0),j(0);switch(a)case4:switch(b)case4:i+;break;case5:j+;break;default:i+;j+;case5:i+;j+;br

30、eak;default:i+;j+;couti,jendl;第 頁共85頁第 頁共85頁答:1,26#includevoidmain()intb(10);for(inti=9;i=0;i-)switch(i)case1:case4:case7:b+;break;case2:case5:case8:break;case3:case6:case9:b+=2;coutbendl;答:197#includevoidmain()inta(6);for(inti(1);i=a;i+)for(intj=1;j=a-i;j+)cout;for(j=1;j=2*i-1;j+)coutA;coutendl;答:A

31、AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8#include#defineMAX(x,y)(x)(y)?(x):(y)voidmain()typedefintIN;INa(3),b(4),c;c=MAX(a,b)*2;coutcendl;答:8編程題1求100之內(nèi)的自然數(shù)中奇數(shù)之和。答:編程如下:#includevoidmain()ints=0;for(inti=1;i100;i+=2)s+=i;coutsendl;2求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。答:編程如下:假定兩個整數(shù)分別為15和25,求它們的最大公約數(shù)和最小公倍數(shù)#includevoidmain()in

32、tm,n,t;m=15;n=25;if(mn)t=m;m=n;n=t;intm0=m,n0=n;while(n!=0)t=m%n;m=n;n=t;coutvv最大公約數(shù)為vvmvvendl;coutvv最小公倍數(shù)為vvmO*nO/mvvendl;第 #頁共85頁第 頁共85頁第 頁共85頁3求下列分數(shù)序列前15項之和。2/1,3/2,5/3,8/5,13/8,答:編程如下:#includevoidmain()inta;doublei=2,j=1,sum=0,t;for(a=1;a15;a+)sum+=i/j;t=i;i+=j;j=t;coutSUM=sumendl;按下列公式,求e的近似值。e

33、=1+1/1!+1/2!+1/3!+1/n!答:編程如下:#include#includevoidmain()doublex(1),s(0);for(inti=1;fabs(x)1e-8;i+)x*=(-1.0)*(2*i-3)/(2*i-1);s+=x;s*=4;coutpi=sendl;求下列式子之和,假定n=10。S=1+(1+2)+(1+2+3)+(1+2+3+n)答:編程如下:#includevoidmain()ints(0),s1(0);for(inti=1;i=10;i+)s1+=i;s+=s1;coutsendl;簡單回答下列問題1分程序是復合語句嗎?復合語句與分程序的區(qū)別是什

34、么?答:分程序是復合語句。復合語句與分程序的區(qū)別在于含有說明語句的復合語句稱為分程序。if語句中,else子句的功能是什么?答:該子句的功能是當if子句和所有elseif子句的條件都為0時,則執(zhí)行else子句。在開關(guān)語句中,是否每個case子句后面的語句序列中都應(yīng)該有break語句?答:通常case子句后面的中都有break語句,根據(jù)需要也可以沒有break語句。4循環(huán)語句的循環(huán)體中出現(xiàn)的continue語句的作用是什么?答:結(jié)束本次循環(huán),轉(zhuǎn)到循環(huán)頭判斷是否繼續(xù)循環(huán)。5文件包含命令的功能嗎?該命令一定要放在程序首部嗎?答:該預(yù)處理命令是將指定的包含文件內(nèi)容放在該命令出現(xiàn)的地方。通常放在程序開頭

35、,便于后邊語句的使用。第4章指針和引用練習題4判斷題x1指針是變量,它具有的值是某個變量或?qū)ο蟮牡刂分担€具有一地址值,這兩個地址值是相等的。2指針的類型是它所指向的變量或?qū)ο蟮念愋?。x3定義指針時不可以賦初值。4指針可以賦值,給指針賦值時一定要類型相同,級別一致。x5指針可以加上或減去一個int型數(shù),也可以加上一個指針。6兩個指針在任何情況下相減都是有意義的。7數(shù)組元素可以用下標表示,也可以用指針表示。第 頁共85頁第 #頁共85頁第 #頁共85頁X8指向數(shù)組元素的指針只可指向數(shù)組的首元素。9指向一維數(shù)組的指針是一個二級指針。X10指針數(shù)組的元素可以是不同類型的指針。11字符指針是指向字符

36、串的指針,可以用字符串常量給字符指針賦值。X12引用是一種變量,它也有值和地址值。13引用是某個變量的別名,引用是被綁定在被引用的變量上。14創(chuàng)建引用時要用一個同類型的變量進行初始化。15指針是變量,它可以有引用,而引用不能有引用。單選題下列關(guān)于定義一個指向double型變量的指針,正確的是(B)Ainta(5);double*pd=a;Bdoubled(2.5),*pd=&d;Cdoubled(2.5),*pd=d;Ddoublea(2.5),pd=d;下列關(guān)于創(chuàng)建一個int型變量的引用,正確的是(A)Ainta(3),&ra=a;Binta(3),&ra=&a;Cdoubled(3.1);

37、int&rd=d;Dinta(3),ra=a;3下列關(guān)于指針概念的描述中,錯誤的是(B)。A指針中存放的是某變量或?qū)ο蟮牡刂分礏指針的類型是它所存放的數(shù)值的類型C指針是變量,它也具有一個內(nèi)存地址值D指針的值(非常量指針)是可以改變的4下列關(guān)于引用概念的描述中,錯誤的是(A)。A引用是變量,它具有值和地址值B引用不可以作數(shù)組元素C引用是變量的別名D.創(chuàng)建引用時必須進行初始化已知:inta5,*p=a;則與+*p相同的是(D)。A*+pBa0C*p+D+a0已知:inta=1,2,3,4,5,*p=a;在下列數(shù)組元素地址的表示中,正確的是(C)A&(a+1)B&(p+1)C&p2D*p+已知:in

38、ta34,(*p)4;下列賦值表達式中,正確的是(A)。Ap=a+2Bp=a1Cp=*aDp=*a+2已知:intb35=0;下列數(shù)組元素值的表示中,錯誤的是(D)。A*(b+1)B(*(b+1)22第 #頁共85頁2第 頁共85頁第 #頁共85頁C*(*(b+1)+1)D*(b+2)已知:inta=1,b=2,*p2;下列表達式中正確的是(C)。Ap=&aBp=&bCp0=&a,p1=&bDp=&a,&b;已知:inta(5),&ra=a;下列描述中,錯誤的是(D)。Ara是變量a的引用,即為變量的別名Bra的值為5Cra的地址值為&aD改變ra的值為10,變量a值仍為5填空題單目運算符&作

39、用在變量名左邊,表示該變量的地址值,單目運算符*作用在指針名的左邊,表示取該變量的值。指向一維數(shù)組元素的指針是一級指針,指向二維數(shù)組元素的指針是一級指針,指向一維數(shù)組的指針是二_級指針,指向一級指針的指針是_級指針,一維一級指針數(shù)組名是二級指針的地址值,二維數(shù)組的數(shù)組名是級指針的地址值。在一個二維數(shù)組b3中,b0與*b是等價的,&b1與b+1是等價的。扌旨針的運算有4種,它們是賦值運算、一個指針加減整型數(shù)的運算、兩個指針相減和比較運算。引用不是變量,它是某個變量或?qū)ο蟮膭e名。引用的值是被弓I用的變量的值,引用的地址值是被引用的變量的地址值。4.4分析下列程序的輸出結(jié)果#includevoidm

40、ain()inta=5,4,3,2,1;int*p=&a2;intm(5),n;for(inti(2);i=0;i-)n=(*(p+i)*a)?*(p+i):*a;coutnendl;答:123#includevoidmain()8第 頁共85頁第 #頁共85頁第 #頁共85頁char*p1,*p2;p1=abcqrv;p2=abcpqo;while(*p1&*p2&*p2+=*p1+),intn=*(p1-1)-*(p2-1);coutnendl;答:13#includeinta=10,9,6,5,4,2,1;voidmain()intn(7),i(7),x(7);while(x*(a+i)

41、*(a+i+1)=*(a+i);i-;*(a+i+1)=x;for(i=0;in;i+)cout*(a+i),;coutaiendl;答:10,9,7,6,5,4,2,14#includeinta3=1,2,3,4,5,6,7,8,9;int*p=a0,a1,a2;int*pp=p;voidmain()int(*s)3=a;for(inti(1);i3;i+)for(intj(0);j2;j+)cout*(ai+j),*(*(p+i)+j),(*(pp+i)j,*(*s+3*i+j)endl;8第 頁共85頁第 頁共85頁第 #頁共85頁答:4,4,4,45,5,5,57,7,7,78,8,8

42、,85#includeinta=1,2,3,4,5,6,7,8,9;voidmain()int*pa=a;cout*pa,;cout*(pa+),;cout*+pa,;cout*(pa-),;pa+=4;cout*pa,*(pa+2)endl;答:1,1,3,3,6,86#includevoidmain()charstr4=345,789,*m2;ints(0);for(inti=0;i2;i+)mi=stri;for(i=0;i2;i+)for(intj(0);j4;j+=2)s+=mij-0;coutsendl;答:247#includevoidmain()doubled1=3.2,d2=

43、5.2;double&rd1=d1,&rd2=d2;coutrd1+rd2,d1+rd2endl;rd1=9.3;coutrd1+rd2,d1+rd2endl;d2=0.8;cout2*rd2endl;答:8.4,8.414.5,14.51.6#includevoidmain()int*p;int*&rp=p;inta=90;p=&a;couta=a,*rp=*rpendl;intb=50;rp=&b;coutb=b,*rp=*rpendl;答:a=90,*rp=90b=50,*rp=50編程題(使用指針)1已知4個字符串,編程輸出它們中最小的一個。答:編程如下:#include#includ

44、evoidswap(charp1,charp2);voidmain()chars110=while,s210=else,s310=default,s410=continue;if(strcmp(s1,s2)swap(s1,s2);if(strcmp(s3,s4)swap(s3,s4);if(strcmp(s1,s3)swap(s1,s3);couts1endl;voidswap(charp1,charp2)charp10;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);將一個長度為n的字符串,編程實現(xiàn)其逆序輸出。答:編程如下:#include#includevo

45、idinverse(char);voidmain()chars50;coutvv輸入一字符串:”;cins;inverse(s);coutvv反序后的字符串是vvsvvendl;voidinverse(charp)第 頁共85頁第 #頁共85頁第 頁共85頁intn=strlen(p);intlimit=n/2;for(inti=0;ilimit;i+)chart=pi;pi=pn-i-1;pn-i-1=t;.已知一個二維int型數(shù)組,編程求出它的最小的元素值。答:編程如下:#includevoidmain()intn32=3,8,-5,9,2,4;intlim=n00;for(inti=0;

46、i3;i+)for(intj=0;j2;j+)if(nijlim)lim=nij;cout最小元素值為limendl;4已知字符型指針數(shù)組中存放若干個字符串,編程從鍵盤上修改其中某個字符串答:編程如下:#include#includechar*str5=abc,def,ghi,jkl,pqo;char*modify(int,char);voidmain()intn;chars10;coutvv修改第幾個字符串:“;cinn;coutvv該字符串修改為:;cins;coutvv修改后的字符串是vvmodify(n,s)vvendl;coutvv修改后字符指針數(shù)組中的字符串如下:n;for(int

47、i=0;iv5;i+)coutvvstrivvendl;char*modify(intn,chars)return*(str+n-1)=s;5有n個小孩排成一圈。從第1個小孩開始作1至3報數(shù),凡報數(shù)為3的小孩從圈中出來,求最后出圈的小孩的順序號是多少?答:編程如下:#includevoidmain()intn,num100;coutvv輸入排號人數(shù):”;cinn;int*p=num;for(inti=0;in;i+)*(p+i)=i+1;i=0;intk=0,a=0;while(an-1)if(*(p+i)!=0)k+;if(k=3)*(p+i)=0;k=0;a+;i+;if(i=n)i=0;

48、while(*p=0)p+;coutvv最后留下的是第vv*pvv號vvendl;簡單回答下列問題1指針與一般變量有何不同?答:指針是變量,它不同于一般量。其一是指針存放的是地址值,其二指針的類型是它所指向的變量類型。2指針可以作哪些運算?答:指針的運算有4種:賦值運算加減一個整型數(shù)運算在一定條件下,兩個指針可以比較運算在一定條件下,兩個指針可以相減運算3指針可以作數(shù)組元素,這種數(shù)組叫什么數(shù)組?答:指針作數(shù)組元素的數(shù)組稱為指針數(shù)組。第 頁共85頁第 頁共85頁第 #頁共85頁4什么是字符指針?字符指針與字符數(shù)組有何不同?答:指符指針是指向字符串的指針。字符指針是變量指針,字符數(shù)組名是常量指針。

49、5什么是引用?引用有哪些特征?答:引用不是變量,是變量或?qū)ο蟮膭e名。引用的值和地址值都是被引用的變量的值和地址值。當被引用的變量值被改變,則引用的值也被改變,反之亦然。第5章函數(shù)練習題5判斷題1函數(shù)的調(diào)用可以嵌套,函數(shù)的定義不能嵌套。X2.C+語言中,函數(shù)可以用原型說明,也可用簡單說明。x3定義函數(shù)時,存儲類可以缺省,數(shù)據(jù)類型也可以省略。X4函數(shù)可以沒有參數(shù),但是不能沒有返回值。x5函數(shù)定義時必須給出函數(shù)體,函數(shù)體內(nèi)至少有一條語句。6沒有參數(shù)的兩個函數(shù)是不能重載的。7函數(shù)調(diào)用方式有傳值調(diào)用和引用調(diào)用兩種,傳值調(diào)用中又分傳值和傳址兩種。8函數(shù)的存儲類有外部的和靜態(tài)的兩種,它們的作用域分別是程序級

50、的和文件級的x9沒有返回值的函數(shù)不能設(shè)置為內(nèi)聯(lián)函數(shù)。x10函數(shù)可以設(shè)置默認的參數(shù)值,默認參數(shù)值必須設(shè)置在函數(shù)定義時的形參上。單選題1當一個函數(shù)沒有返回值時,該函數(shù)類型應(yīng)說明為(A)。AvoidBintC.無D.任意2下列關(guān)于設(shè)置函數(shù)默認的參數(shù)值的描述中,錯誤的是(C)。A可對函數(shù)的部分參數(shù)或全部參數(shù)設(shè)置默認值B在有函數(shù)說明時,默認值應(yīng)設(shè)置在函數(shù)說明時,而不是定義時C設(shè)置函數(shù)默認參數(shù)值時,只可用常量不可用含有變量的表達式D設(shè)置函數(shù)參數(shù)默認值應(yīng)從右向左設(shè)置下列關(guān)于被調(diào)用函數(shù)中return語句的描述中,錯誤的是(D)。A.個函數(shù)中可以有多條return語句B.return語句具有返回程序控制權(quán)的作用

51、C函數(shù)通過return語句返回值時僅有一個D.個函數(shù)中有且僅有一條return語句函數(shù)返回值的類型是由(B)決定的。A調(diào)用該函數(shù)的調(diào)用函數(shù)的類型B定義該函數(shù)時所指定的類型Creturn語句中表達式的類型D接收函數(shù)返回值的變量或?qū)ο蟮念愋?下列設(shè)置函數(shù)參數(shù)默認值的說明語句中,錯誤的是(C)。Aintfun(intx,inty=10);Bintfun(intx=5,int=10);Cintfun(intx=5,inty);Dintfun(intx,inty=a+b);(其中,a和b是已定義過具有有效值的變量)6下列選擇重載函數(shù)的不同實現(xiàn)的判斷條件中,錯誤的是(D)。A參數(shù)類型不同B參數(shù)個數(shù)不同C參

52、數(shù)順序不同D函數(shù)返回值不同已知:intfun(int&a),m=10;下列調(diào)用fum()函數(shù)的語句中,正確的是(C)。Afun(m);Bfun(m*2);Cfun(m);Dfun(m+);在函數(shù)的引用調(diào)用中,函數(shù)的實參和形參分別應(yīng)是(C)。A變量值和變量B地址值和指針C變量名和引用D.地址值和引用在函數(shù)的傳址調(diào)用中,函數(shù)的實參和形參分別應(yīng)是(B)。A變量值和變量B地址值和指針C變量名和引用D.地址值和引用說明一個內(nèi)聯(lián)函數(shù)時,應(yīng)加關(guān)鍵字是(A)AinlineBstaticCvoidDextern填空題1如果將調(diào)用一個函數(shù)的過程分為3個步驟,第1步是轉(zhuǎn)去執(zhí)行被調(diào)用函數(shù),第2步是執(zhí)行被調(diào)用函數(shù)的語句

53、,第3步是返回操作。2函數(shù)的存儲類分兩種,它們分別是夕陪枚函數(shù)和內(nèi)部函數(shù),其中內(nèi)部函數(shù)的存儲類說明不可省略,該說明符是_static。使用關(guān)鍵字inline說明的函數(shù)稱為內(nèi)聯(lián)函數(shù),具有相同函數(shù)名但具有不同實現(xiàn)的函數(shù)稱為重載函數(shù)。在調(diào)用一個函數(shù)過程中可以直接或間接地調(diào)用該函數(shù),則該函數(shù)稱為被調(diào)用函數(shù)。這種調(diào)用稱為嵌套調(diào)用。在引用調(diào)用中,函數(shù)實參用變量名,形參用引用名。5.4分析下列程序的輸出結(jié)果1#includeintfun(intn)第 頁共85頁第 #頁共85頁第 頁共85頁intp(1),s(0);for(inti(1);in;i+)p*=i;s+=p;returns;voidmain()

54、ints=fun(4);coutsendl;答:92#includevoidfun();voidmain()for(inti(0);i4;i+)fun();voidfun()inta(0);a+;staticintb;b+;couta=a,b=bendl;答:a=1,b=1a=1,b=2a=1,b=3a=1,b=43#includeintfac(int);voidmain()ints(0);for(inti(1);i=5;i+)s+=fac(i);cout5!+4!+3!+2!+1!=sendl;intfac(intn)staticintb=1;b*=n;returnb;答:5!+4!+3!+

55、2!+1!=1534#includeintfun(char*,char*);voidmain()char*p1,*p2;p1=abcfgy;p2=abcdhu;intn=fun(p1,p2);coutnendl;intfun(char*s1,char*s2)while(*s1&*s2&*s1+=*s2+),s1-;s2-;return*s1-*s2;答:5#includevoidfun(int,int,int*);voidmain()inta,b,c;fun(5,6,&a);fun(7,a,&b);fun(a,b,&c);couta,b,cendl;voidfun(inti,intj,int*

56、k)j+=i;*k=j-i;答:6,6,66#includeintadd(int,int=5);voidmain()inta(8);coutsum1=add(a)endl;coutsum2=add(a,add(a)endl;coutsum3=add(a,add(a,add(a)endl;intadd(inti,intj)第 頁共85頁第 #頁共85頁returni+j;第 頁共85頁答:sum1=13sum2=21sum3=297#includevoidswap(int&,int&);voidmain()inta(8),b(5);couta=a,b=bendl;swap(a,b);couta=

57、a,b=bendl;voidswap(int&i,int&j)intt;t=i;i=j;j=t;答:a=8,b=5a=5,b=88#includevoidprint(int),print(char),print(char*);voidmain()inta(800);print(a);print(a);print(break);voidprint(inti)coutiendl;voidprint(chari)coutiendl;voidprint(char*i)coutiendl;答:800abreak5.5編程題從鍵盤上輸入8個浮點數(shù),編程求出其和以及平均值。要求寫出求和以及平均值的函數(shù)答:編

58、程如下:#includedoubles,sum(doubleb,intn),average(intn);voidmain()doublea8;coutvv輸入8個double型數(shù);for(inti=0;iai;s=sum(a,8);doubleave=average(8);coutSUM=s,AVERAGE=aveendl;doublesum(doubleb,intn)doublesum=0;for(inti=0;in;i+)sum+=bi;returnsum;doubleaverage(intn)returns/n;從鍵盤上輸入8個整型數(shù),編輯求出它們中間最大的數(shù)和最小的數(shù)。要求寫出求最大數(shù)

59、和最小數(shù)的函數(shù)。答:編程如下:#includeintmax(doubleb,intn),min(doubleb,intn);voidmain()inta8;coutvv輸入8個int型數(shù);for(inti=0;iai;coutvv最大數(shù)為vvmax(a,8)vv,vv最小數(shù)為vvmin(a,8)vvendl;intmax(doubleb,intn)intmax=b0;for(inti=0;ivn;i+)if(bimax)max=bi;returnmax;intmin(doubleb,intn)intmin=b0;for(inti=0;ivn;i+)if(bivmin)min=bi;return

60、min;第 頁共85頁第 頁共85頁returni+j;第 #頁共85頁給定某個年、月、日,計算出這一天是屬于該年的第幾天。要求寫出計算閏年的函數(shù)和計算日期的函數(shù)。答:編程如下:#includeintsum_day(int,int),leap(int);voidmain()intyear,month,day;coutvv請輸入一日期(yyyymmdd):”;cinyearmonthday;intdays=sum_day(month,day);if(leap(year)&month2)days+;coutvvyearvv年vvmonthvv月vvdayvv日是這一年的第vvdaysvv天。n;i

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論