



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章C++語言概述練習(xí)題11.1判斷題XI.C++語言和C語言都是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。M2.面向?qū)ο蠓椒ň哂蟹庋b性、繼承性和多態(tài)性.M3.C語言是C++語言的ー個(gè)子集。C++語言繼承了C語言。x4.C++語言程序與C語言程序ー樣都是函數(shù)串.x5.C++語言支持封裝性和繼承性,不支持多態(tài)性。ノ6.C++語言比C語言對(duì)數(shù)據(jù)類型要求更加嚴(yán)格了.M7.C++語言對(duì)C語言進(jìn)行了一次改進(jìn),使得編程更加方便了.><8.C++源程序在編譯時(shí)可能出現(xiàn)錯(cuò)誤信息,而在連接時(shí)不會(huì)出現(xiàn)錯(cuò)誤信息.M9.編譯C++源程序時(shí),出現(xiàn)了警告錯(cuò)(Warning)也可以生成可執(zhí)行文件.M10.C++語言程序的實(shí)現(xiàn)也要經(jīng)過編輯、編譯連接和運(yùn)行3個(gè)步驟.1.2單選題.下列關(guān)于面向?qū)ο蟾拍畹拿枋鲋?錯(cuò)誤的是(C).A.面向?qū)ο蠓椒ū让嫦蜻^程方法更加先進(jìn)B.面向?qū)ο蠓椒ㄖ惺褂昧艘恍┟嫦蜻^程方法中沒有的概念C.面向?qū)ο蠓椒ㄌ娲私Y(jié)構(gòu)化程序設(shè)計(jì)方法D,面向?qū)ο蟪绦蛟O(shè)計(jì)方法要使用面向?qū)ο蟮某绦蛟O(shè)計(jì)語言.下列各種高級(jí)語言中,不是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言是(D).A.C++B.JavaC.VBD.C.下列關(guān)于類的描述中,錯(cuò)誤的是(A).A.類就是C語言中的結(jié)構(gòu)類型B.類是創(chuàng)建對(duì)象的模板C.類是抽象數(shù)據(jù)類型的實(shí)現(xiàn)D.類是具有共同行為的若干對(duì)象的統(tǒng)ー描述體.下列關(guān)于對(duì)象的描述中,錯(cuò)誤的是(C).A.對(duì)象是類的ー個(gè)實(shí)例B.對(duì)象是屬性和行為的封裝體C.對(duì)象就是C語言中的結(jié)構(gòu)變量D.對(duì)象是現(xiàn)實(shí)世界中客觀存在的某種實(shí)體5.下列關(guān)于C++程序中使用提取符和插入符的輸入/輸出語句的描述中,錯(cuò)誤的是(C).A,提取符是對(duì)右移運(yùn)算符(>>)重載得到的B.插入符是對(duì)左移運(yùn)算符(<<)重載得到的C.提取符和插入符都是雙目運(yùn)算符,它們要求有兩個(gè)操作數(shù)D.提取符和插入符在輸入/輸出語句中不可以連用填空題C++語言具有面向?qū)ο蠓椒ㄖ幸蟮娜筇匦?封裝性、繼承性和多態(tài)性.C++程序中,有且僅有一個(gè)を函數(shù).C++程序是由基和函數(shù)組成的.C++源程序的擴(kuò)展名是甌。5,使用插入符進(jìn)行標(biāo)準(zhǔn)輸出文件輸出時(shí),使用的輸出流對(duì)象名是cout.上機(jī)調(diào)試下列程序,并分析輸出結(jié)果#include<iostream.h>voidmain(){intij;cout?,'Enterij:f,;cin?i?j;cout?,,i=M?i?7?'fj=,'?j?endl;cout?,,i+j=M?i+j?7?,,i*j="?i*j?endl;)假定,輸入數(shù)據(jù)如下:Enterxy:5_9ゼ答:i=5,j=9i+j=14,i*j=45#inc!ude<iostream.h>intmax(intjnt);voidmain()(inta,b,c;a=5;b=8;c=max(a,b);cout?,,max(,,?a?','?b?,r)=M?c?endl;)intmax(intx,inty)(returnx>y?x:y;)答:max(5,8)=8文件el.43cpp內(nèi)容如下:#include<iostream<h>voidfl(),f2();voidmain()coutvv”在北京An”;fl();f2();coutvv"再見An";)文件1.4.3-l.cpp內(nèi)容如下:#include<iostream.h>voidfl()(coutvぐ在上海An”;)文件1.4.3-2.cpp內(nèi)容如下:#include<iostream.h>voidf2()|coutvv”在廣州An”;)答:在北京。在上海。在廣卅。再見〇1.5編譯下列程序,修改所出現(xiàn)的錯(cuò)誤,獲得正確結(jié)果Lmain(){cout?"Inmain().\n,,)答:修改后如下:#include<iostream.h>voidmainQ廠cout?HInmain().\n,,^_)#include<iostream.h>voidMAIN()(cin?a;intb=a+a;cout?,,b=?b?\nn;)答:修改后如下:#include<iostream.h>voidmainQinta;cin?a;intb=a+a;cout?Hb=k<b?"\nH;}#include<iostream.h>voidmain()(inti,j;i=5;intk二i廿;COUT?Mi+j=H?k?endl;)答:#include<iostream.h>voidmain(){intij;_i=10;i=5;intk=i廿;cout?"i+j=H?k?endl;1.6通過對(duì)1.5題中3個(gè)程序的修改,回答下列問題從1.5題中第1題程序的修改中,總結(jié)出編程應(yīng)該注意哪些問題。答:C++程序要包含iostraem.h,main()函數(shù)前應(yīng)加類型說明符void。C++程序中所出現(xiàn)的變量是否必須先說明后使用?在函數(shù)體內(nèi)說明變量時(shí)是否都要放在函數(shù)體的開頭?答:C++程序中所出現(xiàn)的變量必須先說明后使用.在函數(shù)體內(nèi)說明變量時(shí)不一定要放在函數(shù)體的開頭.使用cout和插入符(<<)輸出字符串常量時(shí)應(yīng)注意什么?答:可輸出ー個(gè)字符串常量,也可輸出多個(gè)字符串常量。每輸出ー個(gè)字符串常量要使用ー次插入符(《).程序中定義過的變量,但沒有賦值,也沒有默認(rèn)值,這時(shí)能否使用?答:不能使用.因?yàn)樗闹挡淮_定.5.ー個(gè)程序編譯通過并已生成執(zhí)行文件,運(yùn)行后并獲得輸出結(jié)果,這ー結(jié)果是否一定正確?答:不一定正確。可能還有算法錯(cuò)。第2章變量和表達(dá)式及數(shù)組練習(xí)題22.1判斷題M1.C++語言的合法字符集與C語言的完全相同.x2.標(biāo)識(shí)符規(guī)定大小寫字母沒有區(qū)別。X3.C++程序中,不得使用沒有定義或說明的變量.M4.變量的存儲(chǔ)類指出了變量的作用域和壽命。ノ5.變量的數(shù)據(jù)類型指出了變量在內(nèi)存中存放的字節(jié)數(shù)。x6.定義變量時(shí),變量的存儲(chǔ)類說明符不得省略。*7.自動(dòng)類變量與內(nèi)部靜態(tài)類變量的作用域和壽命都是相同的.x8.自動(dòng)類變量可以定義在函數(shù)體外,這時(shí)應(yīng)加說明符auto。x9.外部類變量與外部靜態(tài)類變量的作用域是相同的.X10.變量被定義后是否有默認(rèn)值與存儲(chǔ)類無關(guān),與數(shù)據(jù)類型有關(guān).M11.C++程序中,通常使用const來定義符號(hào)常量,定義時(shí)必須指出類型。x12.變量被定義或說明后,它一定具有有意義的值。*13.字符串常量與字符常量的區(qū)別僅表現(xiàn)在定義形式上的不同,一個(gè)用雙撇號(hào),另ー個(gè)用單撇號(hào)。X14.所有變量的可見性和存在性都是一致的。ノI5.變量在它的作用域內(nèi)一定是可見的,又是存在的.ノ16.C++語言中除了包含C語言的所有運(yùn)算符外,還規(guī)定自身的若干個(gè)運(yùn)算符。M17.增1和減1運(yùn)算符以及賦值運(yùn)算符都具有副作用.x18.增1和減1運(yùn)算符不僅可以作用在變量上,也可以作用在表達(dá)式上。x19.關(guān)系運(yùn)算符可以用來比較兩個(gè)字符的大小,也可以比較兩個(gè)字符串的大小.x20.移位運(yùn)算符在移位操作中,無論左移還是右移,對(duì)移出的空位一律補(bǔ)〇.x21.變量的類型高低是指它被存放在內(nèi)存的地址值大小。x22.使用sizeof運(yùn)算符可以求得某種類型和某個(gè)變量在內(nèi)存中占的字節(jié)數(shù),不能求得某個(gè)表達(dá)式的類型在內(nèi)存中所占的字節(jié)數(shù)。ノ23.在C++語言中,非保值轉(zhuǎn)換應(yīng)用強(qiáng)制類型轉(zhuǎn)換.ノ24.表達(dá)式中各操作數(shù)計(jì)算順序取決于運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。ノ25.在C++程序中,變量值是可以改變的,變量的地址值是不能改變的。ノ26.數(shù)組中所有元素的類型都是相同的。x27.定義數(shù)組時(shí)必須對(duì)數(shù)組進(jìn)行初始化。ノ28.數(shù)組某維的大小可以用常量表達(dá)式,不可用變量名。X29.定義一個(gè)數(shù)組沒有對(duì)它進(jìn)行初始化,則該數(shù)組的元素值都是無意義的。ノ30.用來給數(shù)組進(jìn)行初始化的初始值表內(nèi)的數(shù)據(jù)項(xiàng)的個(gè)數(shù)必須小于等于數(shù)組元素個(gè)數(shù)。X31.在定義ー個(gè)數(shù)組時(shí),對(duì)其部分元素進(jìn)行了初始化,沒有初始化的元素的值都是無意義的。ノ32.數(shù)組被初始化時(shí)是判越界的。x33.字符數(shù)組就是字符串。M34.使用printf()函數(shù)輸出顯示字符串時(shí)使用格式符%s,輸出顯示字符時(shí)使用%c或%dox35.給數(shù)組元素賦值時(shí)只可用常量表達(dá)式。2.2單選題.下列變量名中,非法的是(C)。A.A25B.My_carC.My-strD.abc.下列常量中,十六進(jìn)制int型常量是(A).A.Ox5fB.x2aC.046D.7a.下列常量中,不是字符常量的是(B)。A.\n'B."y"C.'x'D.A7'.在函數(shù)體內(nèi)定義了下述變量a,a的存儲(chǔ)類為(D).inta;A,寄存器類B.外部類C.靜態(tài)類D.自動(dòng)類.下列關(guān)于變量存儲(chǔ)類的描述中,錯(cuò)誤的是(C).A.任何變量定義后都具有一個(gè)確定的存儲(chǔ)類B.變量的存儲(chǔ)類確定了變量的作用域和壽命C.定義變量時(shí)沒有存儲(chǔ)類說明符者一律為自動(dòng)類D.內(nèi)部靜態(tài)類變量和外部靜態(tài)類變量的存儲(chǔ)類說明符都是static.下列關(guān)于變量數(shù)據(jù)類型的描述中,錯(cuò)誤的是(A).A,定義變量時(shí)int型數(shù)據(jù)類型可以省略B,變量的數(shù)據(jù)類型可以決定該變量占內(nèi)存的字節(jié)數(shù)C.變量的數(shù)據(jù)類型是可以被強(qiáng)制的D.變量的數(shù)據(jù)類型是有高低之分的.長雙精度浮點(diǎn)型常量的后綴是(C).A.UB.FC?LD.無8,下列運(yùn)算符中,不能用于浮點(diǎn)數(shù)操作的是(D)。A.++B.+C.*=D.&(雙目).下列運(yùn)算符中,優(yōu)先級(jí)最高的是(A)。A.*(雙目)B.IIC.?D.%=.下列運(yùn)算符中,優(yōu)先級(jí)最低的是(B)。A.=B.?:C.ID.&&.已知:inta(3);下列表達(dá)式中,錯(cuò)誤的是(C)。A.a%2=0B.a—+2C.(a2)-H-D.a?=2.已知:intb(5),下列表達(dá)式中,正確的是(D)。A.b=VB.++(bl)C.b%2.5D.b=3,b+1,b+2.下列關(guān)于類型轉(zhuǎn)換的描述中,錯(cuò)誤的是(C)。A,類型轉(zhuǎn)換運(yùn)算符是(〈類型〉)B,類型轉(zhuǎn)換運(yùn)算符是單目運(yùn)算符C,類型轉(zhuǎn)換運(yùn)算符通常用于保值轉(zhuǎn)換中D,類型轉(zhuǎn)換運(yùn)算符作用于表達(dá)式左邊.下列表達(dá)式中,其值為〇的是(A).A.5/10B.!0C.2>4?0:1D_2&&2II0.下列表達(dá)式中,其值不為邏輯值的是(A).A.算術(shù)表達(dá)式B.關(guān)系表達(dá)式C.逗號(hào)表達(dá)式D.邏輯表達(dá)式.下列關(guān)于數(shù)組概念的描述中,錯(cuò)誤的是(B).A.數(shù)組中所有元素類型是相同的B.數(shù)組定義后,它的元素個(gè)數(shù)是可以改變的C.數(shù)組在定義時(shí)可以被初始化,也可以不被初始化D.數(shù)組元素的個(gè)數(shù)與定義時(shí)的每維大小有關(guān).下列關(guān)于數(shù)組維數(shù)的描述中,錯(cuò)誤的是(C)。A.定義數(shù)組時(shí)必須將每維的大小都明確指出B.二維數(shù)組是指該數(shù)組的維數(shù)為2C.數(shù)組的維數(shù)可以使用常量表達(dá)式D.數(shù)組元素個(gè)數(shù)等于該數(shù)組的各維大小的乘積.下列關(guān)于數(shù)組下標(biāo)的描述中,錯(cuò)誤的是(B).A.C++語言中數(shù)組元素的下標(biāo)是從〇開始的B.數(shù)組元素下標(biāo)是ー個(gè)整常型表達(dá)式C.數(shù)組元素可以用下標(biāo)來表示D.數(shù)組元素的某維下標(biāo)值應(yīng)小于該維的大小值.下列關(guān)于初始值表的描述中,錯(cuò)誤的是(C).A.數(shù)組可以使用初始值表進(jìn)行初始化B.初始值表是用ー對(duì)花括號(hào)括起的若干個(gè)數(shù)據(jù)項(xiàng)組成的C,初始值表中數(shù)據(jù)項(xiàng)的個(gè)數(shù)必須與該數(shù)組的元素個(gè)數(shù)相等D,使用初始值表給數(shù)組初始化時(shí),沒有被初始化的元素都具有默認(rèn)值20.下列關(guān)于字符數(shù)組的描述中,錯(cuò)誤的是(D)。A.字符數(shù)組中的每ー個(gè)元素都是字符B.字符數(shù)組可以使用初始值表進(jìn)行初始化C.字符數(shù)組可以存放字符串D.字符數(shù)組就是字符串21.下列關(guān)于字符串的描述中,錯(cuò)誤的是(C)。A.ー維字符數(shù)組可以存放ー個(gè)字符串B.二維字符數(shù)組可以存放多個(gè)字符串可以使用ー個(gè)字符串給二維字符數(shù)組賦值可以用一個(gè)字符串給二維字符數(shù)組初始化ロ:inta[5]={1,2,3,4):下列數(shù)組元素值為2的數(shù)組元素是(B).a[0]B.a[l]a[2]D.a[3].已知:intab[][3]={{1,5,6},{3},{0,2});數(shù)組元素abロ][1]的值為(A)〇A.OB.1C.2D.3.已知:charsロメabed”;輸出顯示字符で的表達(dá)式是(C).A.sB.s+2C.s[2]D.s[3].已知:charss[][6]={"while","for","else","break");輸出顯示"reak"字符串的表達(dá)式是(B).A.ss[3]B.ss[3]+lC.ss+3D.ss[3][l]2.3填空題1.C++語言中,基本數(shù)據(jù)類型包含有整型、浮點(diǎn)型、字符型、空值型和布爾型。.變量的存儲(chǔ)類可分為自動(dòng)類、寄存器類、外鄒類和靜態(tài)存儲(chǔ)類..浮點(diǎn)型常量可分為單精度、雙精度和長雙精度浮點(diǎn)型常量。.結(jié)合性從右至左的運(yùn)算符有單目運(yùn)算符、雙目運(yùn)算符和賦值運(yùn)算符..條件表達(dá)式是由三目由算符組成的,該表達(dá)式的類型是由冒號(hào)左邊和右邊兩個(gè)操作數(shù)中類型貳的操作數(shù)類型決定的..已知:doubledd[][3]={{1.2,2.4,3.6},{4.8,5.2),{6.4});這里dd是一個(gè)三維數(shù)組的數(shù)組名,該數(shù)組共有個(gè)元素,每個(gè)元素的類型是double.數(shù)組元素ddlOHOl的值是1.2,ddUHll的值是12_,數(shù)組元素dd[2][2]的值是0_..已知:charss[}[6}={"while","break","for","else"};字符數(shù)組ss是三維數(shù)組,它的第1維大小應(yīng)該是4_,使用cout和<<輸出字符串"for"時(shí),對(duì)應(yīng)的表達(dá)式是ss+2.使用cout和〈V輸出字符串"break"的子串"reak"時(shí),對(duì)應(yīng)的表達(dá)式是ssfll+1.使用cout和<<輸出字符串else中的字符’ぐ時(shí),對(duì)應(yīng)的表達(dá)式是ss⑶⑵.分析下列程序#include<iostream.h>voidmain(){inta,b;cout?HEnterab:";cin?b?a;intd=a-b;cout?',d="?d?endl;)假定輸入為5和8。答:d=3#include<iostream.h>voidmain()constintA=8;constcharCH='k';constdoubleD=8.5;cout?"A="?A?endl;cout?,,CH+2="?char(CH+2)?endl;cout?HD-5.8=',?D-5.8?endl;}答:A=8CH=2=mD-5.8=2.7#include<iostream.h>inta=9;voidmain(){intb=5;cout?,,a+b=',?a+b?endl;staticintc;cout?,,c+a="?c+a?endl;constlongintd=8;coutvv"a+d-bゴ&a+d-b<vendl;}答:a+b=14c+a=9a+d-b=12#include<iostream.h>voidmain()(inta=3;charb=,m,;cout<<,'a="<<a<<,,,<<',b=H<<b<<endl;|inta=5;b='n,;cout<<Ma=H<<a?V<<Hb=,'<<b<<endl;)cout<<,'a=,,<<a<<,/<<',b=,'<<b<<endl;)答:a=5,b=ma=3,b=na=3,b=n#include<iostream.h>voidmain()cout?6%4*5/3+3?endl;cout?(10&3l8)?endl;cout?(5?2)+(5?2)?endl;cout?*4?endl;)答:61021-5#include<iostream.h>voidmain()(inta=5;cout?long(&a)?7?sizeof(a)?7?sizeof(int)?endl;doubleb=1.5;cout?sizeof(1.5f)?,,,?sizeof(b)?,,,?sizeof(1.5L)?endk)答:く地址值>,4,44,8,8#include<iostream.h>voidmain()(inta=3,b=5;cout<<(a>b+a==b-2)?7?(a!=b+a<=b)?endl;charc='k*;cout?(c<=,k')?',,<<(—c!='h,+2)?endl;floatf=2.3f;cout?(-f<=f)?endl;}答:0」1,01#include<iostream.h>voidmain(){inti,j,k;i=j=k=5;!i&&++j&&--k;cout?i?,,,?j?\,?k?endl;illj-lk+k;cout?i?',,?j?\,?k?endl;i-5llj-5&&++k;cout?i?',,?j?\,?k?endl;)答:5,5,55,5,55,5,5#include<iostream.h>voidmain(){inti(5),j(8);cout?(i=i*=j)?endl;i=5,j=8;i=5*j/(j--5);cout<<i?,,*<<j?endl;i=5,j=8;cout?(j+=i*=j-5)?endl;)答:4013,723#include<iostream.h>inta=8;voidmain(){intb=6;doubled=1.5;d+=a+b;cout?d?endl;cout?(a=1,b=2,d=2.5,a+b+d)?endl;cout?(a<0?a:b<0?a++:b++)?endl;答:15.55.52#include<iostream.h>voidmain()intm[][3]={9,8,7A5,4,3,2,l},s=0;for(inti=0;i<3;i++)s+=m[i][i];cout?s?endl;)答:15#include<iostream.h>voidmain(){char ゴbhy543kpm345”;for(inti=0;s[i]!=、0';i++){if(s[i]>='a'&&s[i]<='z,)continue;cout?s|i];)cout?endl;}答:543345#include<iostream.h>voidmain()|intb[]={5,3,4,l,8,9,0J0};inti=O,j;for(j=i;i<8;i++)if(b[i]>bU])j=i;cout?j?,,*?b[j]?endl;}答:7,10#include<iostream.h>voidmain()(inta[][3]={1,2,3,4,5,6,7,8,91;intsl(0),s2(0);for(inti=0;i<3;i++)for(intj=0;j<3y++)sl+=a[i][j];if(i+j==l)s2+=a[i][j];)cout?"sl=M?s1?\,?',s2=H?s2?endl;}答:sl=30,s2=6#include<iostream.h>voidmain(){chars[]=",#%r;for(inti=0;i<3;i++){for(intj=0;j<i;j++)cout?**;for(intk=0;kv3;k++)cout?s[k];cout?endl;)for(i=2;i>0;i){一for(intj=O;j<il;j-H-)cout?*for(intk=O;k<3;k++)cout?s|k];cout?endl;}}答:#%##%##%##%##%#編程題.已知:ima=3,b=5;編程計(jì)算下列兩個(gè)代數(shù)式的值,并比較它們是否相等.(a+b)和2a+2ab+b答:編程如下:#include<iostream.h>voidmain()(inta=3,b=5;intdl=(a+b)*(a+b);intd2=a*a+2*a*b+b*b;cout?,,dl=,,?dl?endl?Hd2=,,?d2?endl;)從結(jié)果中可以看出dl和d2值是相等的.2.已知:intx=5;編程求下列代數(shù)式的值。#include<iostream.h>3二+ void main()2 {2、テ intx=5;5x+2 intf=3*x*x*x+2*x*x+5*x+2;答 cout?f?endl;:編 }程如 3.從鍵盤上輸入兩個(gè)double型下: 數(shù),編程輸出其中最小者.答:編程如下:#include<iostream.h>voidmain()(doublea,b;coutvv”請(qǐng)輸入兩個(gè)double型數(shù):";cin?a?b;coutvv”輸入的兩個(gè)數(shù)中較小的是”;if(a<=b)cout?a?endl;elsecout?b?endl;)4.華氏溫度轉(zhuǎn)換成攝氏溫度的計(jì)算公式如下:C=(F32)*5/9其中,C表示攝氏溫度,ア表示華氏溫度.從鍵盤上輸入一攝氏溫度,編程輸出對(duì)應(yīng)的華氏溫度.答:編程如下:#include<iostream.h>voidmain()(doublec,f;cout?n請(qǐng)輸入ー個(gè)攝氏溫度值:”;cin?c;f=9.O/5.O*c+32.O;coutvv”攝氏溫度為”vvcvv”華氏溫度為”vvfvvendl;從鍵盤上輸入5個(gè)浮點(diǎn)數(shù),輸出它們的和以及平均值。答:編程如下:#include<iostream.h>voidmain()(doublea,b,c,d,e;coutvv”請(qǐng)輸入5個(gè)double型數(shù):";cin?a?b?c?d?e;doublef=a+b+c+d+e;coutv〈”輸入的5個(gè)數(shù)的和是"vvfvv”平均值是”《f/5.0vvendl;}將字符串”12345”,逆向輸出為“5432ド。答:編程如下:#include<iostream.h>voidmain()(chara[]=”12345”;cout?a[4]?a[3]?a[2]?a[1]?a[0]?endl;)2.6簡(jiǎn)單回答下述問題C++語言中注釋符的格式如何?注釋信息的功能是什么?答:注釋符格式有2種:格式ー:/*〈注釋信息〉?/格式二:〃〈注釋信息〉注釋信息是用來對(duì)程序進(jìn)行提示和說明的。使用const定義符號(hào)常量比使用#define定義符號(hào)常量有何優(yōu)點(diǎn)?答使用const定義符號(hào)常量時(shí)要指出數(shù)據(jù)類型,而用#define定義符號(hào)常量時(shí)不需提出類型,因此前者比后者對(duì)類型要求更嚴(yán)格,這樣會(huì)更安全。內(nèi)部靜態(tài)存儲(chǔ)類變量有何特點(diǎn)?答:內(nèi)部靜態(tài)存儲(chǔ)類變貫的特點(diǎn)是作用域較小,但壽命很長,這種變量作用域與壽命不一致,因此會(huì)出現(xiàn)不可見但又存在的情況.在使用插入符(<<)輸出若干個(gè)表達(dá)式值時(shí),有的表達(dá)式中使用的運(yùn)算符的優(yōu)先級(jí)低于插入符優(yōu)先級(jí)時(shí)應(yīng)該如何處理?答:這時(shí)需將表達(dá)式用括號(hào)括起來,己改變其優(yōu)先級(jí).5.由多種不同運(yùn)算符組成的表達(dá)式,其類型如何確定?例如,inta,b,c;a=b>c?b:c;這是ー個(gè)條件表達(dá)式還是賦值表達(dá)式?答:表達(dá)式類型由優(yōu)先級(jí)低的運(yùn)算符組成的表達(dá)式來確定.這是ー個(gè)賦值表達(dá)式,因?yàn)橘x值運(yùn)算符優(yōu)先級(jí)低于三目運(yùn)算符。1.數(shù)組元素個(gè)數(shù)是由什么決定的?答:數(shù)組元素個(gè)數(shù)是由維數(shù)及其大小來決定的.ー維數(shù)組元素個(gè)數(shù)是該維的大小,二維數(shù)組的元素個(gè)數(shù)是兩維大小之積等。1,數(shù)組元素下標(biāo)有何規(guī)定?答:C++語言中,數(shù)組元素下標(biāo)從〇開始。1.初始值表中數(shù)據(jù)項(xiàng)的類型和個(gè)數(shù)有何規(guī)定?答:初始值表中數(shù)據(jù)項(xiàng)的類型應(yīng)與該變是類型相同,個(gè)數(shù)應(yīng)小于或等于被初始化的數(shù)組元素的個(gè)數(shù)。1.字符數(shù)組和字符串有什么關(guān)系?答:字符數(shù)組中可存放字符串,而字符數(shù)組不都是存放字符串的。如果字符數(shù)組中有字符串結(jié)束符,則說明該字符數(shù)存放的是字符串。10.ー個(gè)數(shù)組中的元素類型是否一定相同?何時(shí)定義的數(shù)組元素具有默認(rèn)值?答:數(shù)組中元素類型必須相同。存儲(chǔ)類為外部和靜態(tài)的數(shù)組其元素具有默認(rèn)值。第3章語句和預(yù)處理練習(xí)題3判斷題M1.表達(dá)式和表達(dá)式語句是不同的.x2.空語句是ー種沒有用處的語句。x3.復(fù)合語句就是分程序。x4.條件語句中if子句和else子句都是必須有并且僅有一個(gè).ノ5.條件語句中elseif子句可以沒有,也可以有多個(gè)。ノ6.開關(guān)語句可實(shí)現(xiàn)多路分支。x7.開關(guān)語句的〈語句序列》中必須有一個(gè)break語句,否則該開關(guān)語句便無法退出.x8.任何循環(huán)語句都是至少執(zhí)行一次循環(huán)體。X9.退出for循環(huán)語句必須是for后面括號(hào)內(nèi)的中間ー個(gè)表達(dá)式的值為〇.M10.do-while循環(huán)語句至少要執(zhí)行一次循環(huán)體。x11.循環(huán)語句的循環(huán)體中可以出現(xiàn)if語句,if語句的if體內(nèi)不能出現(xiàn)循環(huán)語句.x12.goto語句中所使用的語句標(biāo)號(hào)是ー種標(biāo)識(shí)符,它的作用域是文件級(jí)的。ノ13.break語句和continue語句都可以出現(xiàn)在循環(huán)體中,但是它們的作用是不同的。x14.文件包含命令所能包含的文件類型是不受限制的。單選題.下列關(guān)于語句的描述中,錯(cuò)誤的是(A)。A.C++程序中的函數(shù)是由若干條語句組成的B.每條語句都要實(shí)現(xiàn)某種操作C.條件語句是用來實(shí)現(xiàn)分支操作的D?循環(huán)語句是用來在一定條件下重復(fù)執(zhí)行某段程序的.下列關(guān)于條件語句的描述中,錯(cuò)誤的是(C)。if語句中最多只能有一個(gè)else子句if語句的if體內(nèi)可以出現(xiàn)開關(guān)語句if語句中elseif子句和else子句的順序是沒有限制的if語句中else子句是與它最近的if子句配對(duì)的.下列關(guān)于開關(guān)語句的描述中,錯(cuò)誤的是(B).A.開關(guān)語句中,case子句的個(gè)數(shù)是不受限制的B.開關(guān)語句中,case子句的語句序列中一定要有break語句C.開關(guān)語句中,default子句可以省略D.開關(guān)語句中,右花括號(hào)具有退出開關(guān)語句的功能.下列關(guān)于循環(huán)語句的描述中,錯(cuò)誤的是(A).while循環(huán)語句中〈條件》給定的表達(dá)式不能為非〇的常量,否則便是死循環(huán)for循環(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語句.已知:inti(3);下列do-while循環(huán)語句的循環(huán)次數(shù)是(D).do(cout?i—?endl;i-;}while(i!=0);A.OB.3C.1D.無限.下列for循環(huán)語句的循環(huán)次數(shù)是(B).for(inti(0),j(5);i=3;i++,j-);A.3B.無限C.5D.0.下列while循環(huán)語句的循環(huán)次數(shù)是(A).while(inti(0))i—;A.OB.1C.2D.無限.下列程序段執(zhí)行后,j值是(B).for(inti(0),j(0);i<10;i++)if(i)j++;A.OB.9C.10D.無限.已知:typedefcharCH;下列描述中,正確的是(A)<,A.使用CH定義的變量是char型變量B.使用CH定義的是ー個(gè)字符常量C.使用CH定義的變量其類型不確定D.使用CH定義的是ー個(gè)字符串.下列關(guān)于預(yù)處理命令的描述中,錯(cuò)誤的是(D).A.預(yù)處理命令最左邊的標(biāo)識(shí)符是#B.預(yù)處理命令是在編譯前處理的C.宏定義命令可以定義符號(hào)常量D.文件包含命令只能包含.h文件3.3填空題1,表達(dá)式語句是一個(gè)表達(dá)式后邊加上分號(hào)(;)組成的。空語句是只有一個(gè)分號(hào)的語句。2.復(fù)合語句是由兩條條或兩條條以上的語句加上花括號(hào)(“)組成的..分程序是一種帶有說明語句的復(fù)合語句..4環(huán)語句的共同特點(diǎn)是都應(yīng)具有循環(huán)體和退出循環(huán)的條件。.下列程序是求100之內(nèi)的能被フ整除的自然數(shù)之和。#inelude<iostream.h>voidmain(){intsum;sum=0:fbr(inti⑴:i<=10():i++)jf(j%7=0)sum+=i;cout?sum?endl;).4上機(jī)調(diào)試下列程序,并分析其輸出結(jié)果#include<iostream.h>voidmain(){inta(8),b(5);if(!a)b--;elseif(b)if(a)a++;elsea-;elseb++;cout?a?',,?b?endl;)答:9,5#include<iostream.h>voidmain(){inta(10);while(—a){if(a==5)break;if(a%2==0&&a%3==0)continue;cout?a?endl;)答:987#include<iostream.h>voidmain(){intb(10);do{++b;cout?++b?endl;if(b==15)break;}while(b<15);cout?Hok!H?endl;}答:121416ok!#include<iostream.h>voidmain(){intw(5);do{switch(w%2){case1:w-;break;case0:w++;break;)w—;cout?w?endl;}while(w>0);}答:31-1#include<iostream.h>voidmain()inta(4),b(5),i(〇),j(〇);switch(a){switch(b)(i++;break;j++;break;default:i++;j++;)i++;j++;break;default:i++;j++;)cout?i?,,,?j?endl;)答:1,2#include<iostream.h>voidmain()(intb(10);for(inti=9;i>=0;i—)(switch(i){case4:case7:b++;break;case5:case8:break;case6:case9:b+=2;)}cout?b?endl;}答:19#include<iostream.h>voidmain(){inta(6);for(inti(l);i<=a;i++)(for(intj=l;j<=a-i;j++)coutvv'for(j=l;j<=2*i-l;j++)cout?*A';cout?endl;)}答:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA#include<iostream.h>#defineMAX(x,y)(x)>(y)?(x):(y)voidmain()|typedefintIN;INa(3),b(4),c;c=MAX(a,b)*2;cout?c?endl;}答:85編程題求100之內(nèi)的自然數(shù)中奇數(shù)之和。答:編程如下:#include<iostream.h>voidmain(){ints=0;for(inti=l;i<100;i+=2)s+=i;cout?s?endl;求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。答:編程如下:假定兩個(gè)整數(shù)分別為15和25,求它們的最大公約數(shù)和最小公倍數(shù).#include<iostream.h>voidmain(){intm,n,t;m=15;n=25;if(m<n)t=m;m=n;n=t;)intmO=m,nO=n;while(n!=O){t=m%n;m=n;n=t;}couivv”最大公約數(shù)為“vvmvvendl;coul<v"最小公倍數(shù)為M?mO*nO/m?endl;}求下列分?jǐn)?shù)序列前15項(xiàng)之和。2/1,3/2,5/3,8/5,13/8,…答:編程如下:#include<iostream.h>voidmain()(inta;doublei=2,j=l,sum=0,t;for(a=l;a<15;a++){sum+=i/j;t=i;i+=j;j=t;}cout?,"SUM=',?sum?endl;)4.按下列公式,求e的近似值。e=l+l/l!+1/2!+1/3!+…+1、!答:編程如下:#include<iostream.h>#include<math.h>voidmain()(doublex(l),s(0);for(inti=1;fabs(x)>1e-8;i++)x*=(-1.0)*(2*i-3)/(2*i-1);s+=x;)s*=4;cout<<npi="?s?endl;)5,求下列式子之和,假定n=10。S=l+(1+2)+(1+2+3)+...+(1+2+3+...+n)答:編程如下:#include<iostream.h>voidmain()(ints(0),sl(0);for(inti=l;i<=10;i++){sl+=i;s+=s1;)cout?s?endl;)簡(jiǎn)單回答下列問題分程序是復(fù)合語句嗎?復(fù)合語句與分程序的區(qū)別是什么?答:分程序是復(fù)合語句.復(fù)合語句與分程序的區(qū)別在于含有說明語句的復(fù)合語句稱為分程序.if語句中,else子句的功能是什么?答:該子句的功能是當(dāng)if子句和所有ekeif子句的條件都為〇時(shí),則執(zhí)行else子句.在開關(guān)語句中,是否每個(gè)case子句后面的〈語句序列》中都應(yīng)該有break語句?答:通常case子句后面的〈語句序列》中都有break語句,根據(jù)需要也可以沒有break語句.循環(huán)語句的循環(huán)體中出現(xiàn)的continue語句的作用是什么?答:結(jié)束本次循環(huán),轉(zhuǎn)到循環(huán)頭判斷是否繼續(xù)循環(huán).文件包含命令的功能嗎?該命令一定要放在程序首部嗎?答:該預(yù)處理命令是將指定的包含文件內(nèi)容放在該命令出現(xiàn)的地方.通常放在程序開頭,便于后邊語句的使用.第4章指針和引用練習(xí)題44.1判斷題X1.指針是變量,它具有的值是某個(gè)變量或?qū)ο蟮牡刂分?它還具有一個(gè)地址值,這兩個(gè)地址值是相等的.23M2.指針的類型是它所指向的變量或?qū)ο蟮念愋汀3.定義指針時(shí)不可以賦初值。,4.指針可以賦值,給指針賦值時(shí)一定要類型相同,級(jí)別一致.x5.指針可以加上或減去ー個(gè)int型數(shù),也可以加上一個(gè)指針。M6.兩個(gè)指針在任何情況下相減都是有意義的.M7.數(shù)組元素可以用下標(biāo)表示,也可以用指針表示.x8.指向數(shù)組元素的指針只可指向數(shù)組的首元素。M9.指向ー維數(shù)組的指針是一個(gè)二級(jí)指針.x10.指針數(shù)組的元素可以是不同類型的指針.M11.字符指針是指向字符串的指針,可以用字符串常量給字符指針賦值.*12.引用是ー種變量,它也有值和地址值.M13.引用是某個(gè)變量的別名,引用是被綁定在被引用的變量上.,14.創(chuàng)建引用時(shí)要用一個(gè)同類型的變量進(jìn)行初始化.M15.指針是變量,它可以有引用,而引用不能有引用.4.2單選題.下列關(guān)于定義ー個(gè)指向double型變量的指針,正確的是(B).A.inta(5);double*pd=a;B.doubled(2.5),*pd=&d;C.doubled(2.5),*pd=d;D.doublea(2.5),pd=d;.下列關(guān)于創(chuàng)建一個(gè)int型變量的引用,正確的是(A).A.inta(3),&ra=a;B.inta(3),&ra=&a;C.doubled(3.1);int&rd=d;D.inta(3),ra=a;.下列關(guān)于指針概念的描述中,錯(cuò)誤的是(B).A.指針中存放的是某變量或?qū)ο蟮牡刂分礏.指針的類型是它所存放的數(shù)值的類型C,指針是變量,它也具有一個(gè)內(nèi)存地址值D.指針的值(非常量指針)是可以改變的.下列關(guān)于引用概念的描述中,錯(cuò)誤的是(A).A,引用是變量,它具有值和地址值B.引用不可以作數(shù)組元素C.引用是變量的別名D.創(chuàng)建引用時(shí)必須進(jìn)行初始化.已知:inta[5],*p=a5則與++*p相同的是(D).A.*++pB.a[0]C.*p++D.++a[0].已知:inta[]={l,2,3,4,5},*p=a;在下列數(shù)組元素地址的表示中,正確的是(C).A.&(a+l)B.&(p+l)C.&p[2]D.*p++.已知:inta[3H4],(*p)[4];下列賦值表達(dá)式中,正確的是(A).A.p=a+2B.p=a[1]C.p=*aD.p=*a+2.已知:intb[3][5]={〇};下列數(shù)組元素值的表示中,錯(cuò)誤的是(D)。A.**(b+l)B.(*(b+l))[2]C.*(*(b+l)+l)D.*(b+2).已知:inta=l,b=2,*p[2];下列表達(dá)式中正確的是(C)。A.p=&aB.p=&bC.p[O]=&a,p[l]=&bD.p[]={&a,&b};.已知:inta(5),&ra=a;下列描述中,錯(cuò)誤的是(D).A.ra是變量a的引用,即為變量的別名B.ra的值為5C.ra的地址值為&aD.改變r(jià)a的值為10,變量a值仍為54.3填空題1.單目運(yùn)算符&作用在變量名左邊,表示該變量的地址值,單目運(yùn)算符?作用在指針名的左邊,表示取該變量的露。2.指向ー維數(shù)組元素的指針是二級(jí)指針,指向二維數(shù)組元素的指針是二級(jí)指針,指向ー維數(shù)組的指針是三級(jí)指針,指向ー級(jí)指針的指針是三級(jí)指針,一維ー級(jí)指針數(shù)組名是三級(jí)指針的地址值,二維數(shù)組的數(shù)組名是え級(jí)指針的地址值.3.在ー個(gè)二維數(shù)組b[3][5]中,b[0]與セ是等價(jià)的,&b[l]與b+1是等價(jià)的..指針的運(yùn)算有4種,它們是賦值運(yùn)算、ー個(gè)指針加減整型數(shù)的運(yùn)算、兩個(gè)指針相減和比較運(yùn)算。.引用不是變量,它是某個(gè)變量或?qū)ο蟮膭e名ー.引用的值是被引用的變量的值,引用的地址值是被引用的變量的地址值。.4分析下列程序的輸出結(jié)果#include<iostream.h>voidmain(){inta[]={54321};int*p=&a[2];intm(5),n;for(inti(2);i>=0;i—){n=(*(p+i)v*a)?*(p+i):*a;cout?n?endl;}}答:123#include<iostream.h>voidmain(){char*pl,*p2;pl="abcqrvu;p2=HabcpqoM;while(*p1&&*p2&&*p2++=*p1++)intn=*(pl-l)-*(p2-l);cout?n?endl;)答:1#include<iostream.h>inta[]={10,9,6,5,4,2,1);voidmain()|intn(7),i(7),x(7);while(x>*(a+i))|*(a+i+l)=*(a+i);*(a+i+l)=x;for(i=0;i<n;i++)cout?*(a+i)?V;cout?a[i]?endl;)答:10,9,7,6,5,4,2,1#include<iostream.h>inta[][3]={1,2,3,4,5,6,7,8,9);int*p[]={a[0],a[l],a[2]};int**pp=p;voidmain(){int(*s)[3]=a;for(inti(l);iv3;i++)for(intj(〇);jv2;j++)cout?*(a[i]+j)?',,?*(*(p+i)+j)?,;<<(*(pp+i))[j]?V?*(*s+3*i+j)?endl;)答:4,4,4,47,7,7,78,8,8,8#include<iostream.h>inta[]={1,2,3,4,5,6,7,8,9);voidmain(){int*pa=a;cout?*pa?,,,;cout?*(pa4-4-)?,,*;cout?*++pa?\';cout?*(pa-)?V;pa+=4;cout?*pa?',,?*(pa+2)?endl;)答:1」,336,8#include<iostream.h>voidmain()(charstr[][4]={,'345,',',789,,},*m[2];ints(0);for(inti=0;i<2;i++)m[i]=str[i];for(i=0;i<2;i++)for(intj(0);j<4;j+=2)s+=m「皿.。;cout?s?endl;)答:24#include<iostream.h>voidmain(){doubledl=3.2,d2=5.2;double&rd1=d1,&rd2=d2;cout?rd1+rd2?,,,?d1+rd2?endl;rd1=9.3;cout?rdl+rd2?*,,?d1+rd2?endl;d2=0.8:cout?2*rd2?endl;)答:8.4,8.414.5,14.51.6#include<iostream.h>voidmain(){int*p;int*&rp=p;inta=90;p=&a;cout?,'a=,'?a?V?',*rp=',?*rp?endl;intb=50;rp=&b;cout?"b='"?b?V?,,*rp=|,?*rp?endl;)答:a=90,*rp=90b=50,*rp=50.5編程題(使用指針)已知4個(gè)字符串,編程輸出它們中最小的ー個(gè)。答:編程如下:#include<iostream.h>#include<string.h>voidswap(charp1[],charp2口);voidmain()(chars1[10]="while'1,s2[10]=,'elsen,s3[10]=',default,',s4[10]=,(continueH;if(strcmp(sl,s2))swap(sl,s2);if(strcmp(s3,s4))swap(s3,s4);if(strcmp(sl,s3))swap(sl,s3);cout?sl?endl;}voidswap(charpl[],charp2[])(charp[10];strcpy(p,pl);strcpy(pl,p2);strcpy(p2,p);)將一個(gè)長度為〃的字符串,編程實(shí)現(xiàn)其逆序輸出。答:編程如下:#include<iostream.h>#include<string.h>voidinverse(char[]);voidmain()(chars[50];coutvv”輸入一個(gè)字符串:cin?s;inverse(s);coutvv”反序后的字符串是H?s?endl;}voidinverse(charp[D(intn=strlen(p);intIimit=n/2;for(inti二〇;i<limit;i++)(chart-p[iJ;p[i]=p[n-i-1];p[n-i-1]=t;)}已知一個(gè)二維int型數(shù)組,編程求出它的最小的元素值。答:編程如下:#include<iostream.h>voidmain(){intn[3][2]={{3,8},{-5,9},{2,4}};intlim=n[0]|()];for(inti=0;i<3;i++)for(intj=0;j<2;j++)if(n[i]U]<lim)lim=n[i]|j];coutvv"最小元素值為H?lim?endl;}已知字符型指針數(shù)組中存放若干個(gè)字符串,編程從鍵盤上修改其中某個(gè)字符串.答:編程如下:#include<iostream.h>#include<string.h>char*str[5]={,'abc,',Hder;'ghi'',,'jkrV'pqoH};char*modify(int,char[]);voidmain(){intn;chars[10];coutvv”修改第幾個(gè)字符串:";cin?n;coutvv”該字符串修改為:“;cin?s;coutcv"修改后的字符串是"?modify(n,s)?endl;cout<<"修改后字符指針數(shù)組中的字符串如下:\n";for(inti=0;i<5;i++)cout?str[i]?endI;)char *modify(intn,chars[])(return*(str+n-1)=s;)有れ個(gè)小孩排成一圈.從第1個(gè)小孩開始作1至3報(bào)數(shù),凡報(bào)數(shù)為3的小孩從圈中出來,求最后出圈的小孩的順序號(hào)是多少?答:編程如下:#include<iostream.h>voidmain()(intn,num[100];coutvV”輸入排號(hào)人數(shù):cin?n;int*p=num;for(inti=0;i<n;i++)*(p+i)=i+l;i=0;intk=0,a=0;while(a<n-l){if(*(p+i)!=O)k++;if(k==3)(*(p+i)=0;k=0;a++;)i++;if(i==n)i=0;}while(*p==0)P++;coutvv"最后留下的是第"vv*p<v"號(hào)"<vendl;)4.6簡(jiǎn)單回答下列問題指針與一般變量有何不同?答:指針是變量,它不同于一般量。其ー是指針存放的是地址值,其二指針的類型是它所指向的變量類型.指針可以作哪些運(yùn)算?答:指針的運(yùn)算有4種:賦值運(yùn)算加減ー個(gè)整型數(shù)運(yùn)算在一定條件下,兩個(gè)指針可以比較運(yùn)算在一定條件下,兩個(gè)指針可以相減運(yùn)算指針可以作數(shù)組元素,這種數(shù)組叫什么數(shù)組?答:指針作數(shù)組元素的數(shù)組稱為指針數(shù)組。什么是字符指針?字符指針與字符數(shù)組有何不同?答:指符指針是指向字符串的指針。字符指針是變量指針,字符數(shù)組名是常量指針.什么是引用?引用有哪些特征?答:引用不是變量,是變量或?qū)ο蟮膭e名?引用的值和地址值都是被引用的變量的值和地址值,當(dāng)被引用的變量值被改變,則引用的值也被改變,反之亦然.第5章函數(shù)練習(xí)題55.1判斷題M1.函數(shù)的調(diào)用可以嵌套,函數(shù)的定義不能嵌套.X2.C++語言中,函數(shù)可以用原型說明,也可用簡(jiǎn)單說明.x3.定義函數(shù)時(shí),存儲(chǔ)類可以缺省,數(shù)據(jù)類型也可以省略。x4.函數(shù)可以沒有參數(shù),但是不能沒有返回值。x5.函數(shù)定義時(shí)必須給出函數(shù)體,函數(shù)體內(nèi)至少有一條語句。M6.沒有參數(shù)的兩個(gè)函數(shù)是不能重載的.M7.函數(shù)調(diào)用方式有傳值調(diào)用和引用調(diào)用兩種,傳值調(diào)用中又分傳值和傳址兩種.ノ8.函數(shù)的存儲(chǔ)類有外部的和靜態(tài)的兩種,它們的作用域分別是程序級(jí)的和文件級(jí)的。x9.沒有返回值的函數(shù)不能設(shè)置為內(nèi)聯(lián)函數(shù)。x10.函數(shù)可以設(shè)置默認(rèn)的參數(shù)值,默認(rèn)參數(shù)值必須設(shè)置在函數(shù)定義時(shí)的形參上.5.2單選題.當(dāng)一個(gè)函數(shù)沒有返回值時(shí),該函數(shù)類型應(yīng)說明為(A).A.voidB.intC.無D.任意.下列關(guān)于設(shè)置函數(shù)默認(rèn)的參數(shù)值的描述中,錯(cuò)誤的是(C)。A,可對(duì)函數(shù)的部分參數(shù)或全部參數(shù)設(shè)置默認(rèn)值B.在有函數(shù)說明時(shí),默認(rèn)值應(yīng)設(shè)置在函數(shù)說明時(shí),而不是定義時(shí)C,設(shè)置函數(shù)默認(rèn)參數(shù)值時(shí),只可用常量不可用含有變量的表達(dá)式D.設(shè)置函數(shù)參數(shù)默認(rèn)值應(yīng)從右向左設(shè)置.下列關(guān)于被調(diào)用函數(shù)中return語句的描述中,錯(cuò)誤的是(D).ー個(gè)函數(shù)中可以有多條return語句return語句具有返回程序控制權(quán)的作用C.函數(shù)通過return語句返回值時(shí)僅有一個(gè)D.ー個(gè)函數(shù)中有且僅有一條return語句.函數(shù)返回值的類型是由(B)決定的.A,調(diào)用該函數(shù)的調(diào)用函數(shù)的類型B,定義該函數(shù)時(shí)所指定的類型C.return語句中表達(dá)式的類型D.接收函數(shù)返回值的變量或?qū)ο蟮念愋?下列設(shè)置函數(shù)參數(shù)默認(rèn)值的說明語句中,錯(cuò)誤的是(C).A.intfun(intx,inty=10);B.intfun(intx=5,int=10);C.intfun(intx=5,inty);D.intfun(intx,inty=a+b);(其中,a和b是已定義過具有有效值的變量).下列選擇重載函數(shù)的不同實(shí)現(xiàn)的判斷條件中,錯(cuò)誤的是(D).A,參數(shù)類型不同B.參數(shù)個(gè)數(shù)不同C.參數(shù)順序不同D.函數(shù)返回值不同.已知:intfun(int&a),m=10;下列調(diào)用fum()函數(shù)的語句中,正確的是(C)。A.fun(&m);B.fun(m*2);C.fun(m);D.fun(m++);8,在函數(shù)的引用調(diào)用中,函數(shù)的實(shí)參和形參分別應(yīng)是(C).A.變量值和變量B,地址值和指針C.變量名和引用D.地址值和引用9,在函數(shù)的傳址調(diào)用中,函數(shù)的實(shí)參和形參分別應(yīng)是(B).A.變量值和變量B.地址值和指針C.變量名和引用D.地址值和引用10.說明一個(gè)內(nèi)聯(lián)函數(shù)時(shí),應(yīng)加關(guān)鍵字是(A)。A.inlineB.staticC.voidD.extern5.3填空題.如果將調(diào)用ー個(gè)函數(shù)的過程分為3個(gè)步驟,第1步是轉(zhuǎn)去執(zhí)行被調(diào)用函數(shù),第2步是執(zhí)行被調(diào)用函數(shù)的語句,第3步是返回操作..函數(shù)的存儲(chǔ)類分兩種,它們分別是外部函數(shù)和內(nèi)部函數(shù),其中內(nèi)部函數(shù)的存儲(chǔ)類說明不可省略,該說明符是static..使用關(guān)鍵字inline說明的函數(shù)稱為皿し函數(shù),具有相同函數(shù)名但具有不同實(shí)現(xiàn)的函數(shù)稱為重載函數(shù)..在調(diào)用ー個(gè)函數(shù)過程中可以直接或間接地調(diào)用該函數(shù),則該函數(shù)稱為被調(diào)用函數(shù).這種調(diào)用稱為嵌套調(diào)用.5.在引用調(diào)用中,函數(shù)實(shí)參用變量名,形參用引用名.分析下列程序的輸岀結(jié)果#include<iostream.h>intfun(intn)intp(l),s(O);32p*=i;s+=p;}returns;)voidmain()(ints=fun(4);cout?s?endl;)答:9#include<iostream.h>voidfun();voidmain()(for(inti(0);i<4;i++)fun();}voidfun()(inta(0);a++;staticintb;b++;cout?,'a=''?a?\'?nb=,'?b?endl;}答:a=1,b=1a=l,b=2a=1,b=3a=l,b=4#include<iostream.h>intfac(int);voidmain()(ints(0);for(inti(l);i<=5;i++)s+=fac(i);cout?,'5!+4!+3!+2!+l!=M?s?endl;intfac(intn)(staticintb=1;b*=n;returnb;)答:5!+4!+3!+2!+l!=153#include<iostream.h>intfun(char*,char*);voidmain(){char*pl,*p2;pl="abcfgy”;p2=,,abcdhu";intn=fun(pl,p2);cout?n?endl;)intfun(char*sl,char*s2)(while(*s1&&*s2&&*s1++==*s2++)si-;s2--;return*sl-*s2;)答:2#include<iostream.h>voidfun(int,int,int*);voidmain(){inta,b,c;fun(5,6,&a);fun(7,a,&b);fun(a,b,&c);cout?a?',,?b?\'?c?endl;)voidfun(inti,intj,int*k)(j+ゴ;*k=j-i;)答:6,6,6#include<iostream.h>intadd(int,int=5);voidmain(){inta(8);cout?,'suml=',?add(a)?endl;cout?Hsum2=H?add(a,add(a))?endl;cout?,,sum3=,,?add(a,add(a,add(a)))?endl;}intadd(inti,intj)(returni+j;}答:suml=13sum2=21sum3=29#include<iostream.h>voidswap(int&,int&);voidmain()(inta(8),b(5);cout?,,a=,,?a?,,,?',b=,'?b?endl;swap(a,b);cout?,'a=,'?a?7?',b=,,?b?endl;)voidswap(int&i,int&j)(intt;t=i;i=j;j=t;)答:a=8,b=5a=5,b=8#include<iostream.h>voidprint(int),print(char),print(char*);voidmain()inta(800);print(a);printCa*);print(,'breakM);)voidprint(inti)(cout?i?endl;}voidprint(chari){cout?i?endl;}voidprint(char*i){cout?i?endl;}答:800abreak編程題1.從鍵盤上輸入8個(gè)浮點(diǎn)數(shù),編程求出其和以及平均值。要求寫出求和以及平均值的函數(shù).答:編程如下:#include<iostream.h>doubles,sum(doubleb口,intn),average(intn);voidmain(){doublea網(wǎng);coutvv”輸入8個(gè)double型數(shù)for(inti=0;i<8;i++)cin?a[i];s=sum(a,8);doubleave=average(8);cout?uSUM=,,?s?';?,,AVERAGE=,,?ave?endl;}doublesum(doubleb[J,intn)(doublesum=0;for(inti=0;i<n;i++)sum+=b[ij;returnsum;)36doubleaverage(intn)|returns/n;}1.從鍵盤上輸入8個(gè)整型數(shù),編輯求出它們中間最大的數(shù)和最小的數(shù)?要求寫出求最大數(shù)和最小數(shù)的函數(shù)。答:編程如下:#include<iostream.h>intmax(doubleb[],intn),min(doubleb[],intn);voidmain(){inta[8];coutvv”輸入8個(gè)int型數(shù);H;for(inti=0;iv8;i++)cin?a[i];cout?"最大數(shù)為"vvmax(a,8)??vv”最小數(shù)為,'?min(a,8)?endl;}intmax(doubleb[],intn){intmax=b[0J;for(inti=0;i<n;i++)if(b[i]>max)max=b[i];returnmax;)intmin(doubleb[],intn){intmin=b[0];for(inti=0;i<n;i++)if(b[ij<min)min=b[i];returnmin;)!.給定某個(gè)年、月、日,計(jì)算出這一天是屬于該年的第幾天.要求寫出計(jì)算閏年的函數(shù)和計(jì)算日期的函數(shù).答:編程如下:#include<iostream.h>intsum_day(int,int),leap(int);voidmain()intyear,month,day;coutvぐ請(qǐng)輸入一個(gè)日期(yyyymmdd):37cin?year?month?day;intdays=sum_day(month,day);if(leap(year)&&month>2)days++;coutvvyearvv“年“vvmonthvv”月“vvdayvv”日是這一年的第”vvdaysvv"天。曲”;}intsum_day(intmonth,intday)(intday_month[l3]={O,31,28,31,30,31,30,31,31,30,31,30,31);for(inti=l;ivmonth;i++)day+=day_month[i];returnday;)intleap(intyear){intleap=year%4==0&&year%100!=0llyear%400==0;returnleap;}1.使用遞歸方法將一個(gè)〃位整數(shù)轉(zhuǎn)換為ー個(gè)字符串.編寫轉(zhuǎn)換函數(shù).答:編程如下:#include<iostream.h>voidconvert(int);voidmain(){intnum;coutvv”請(qǐng)輸入ー個(gè)整型數(shù):";cin?num;coutvv”輸出的字符串是”;convert(num);cout?endl;)voidconvert(intn)(inta;if((a=n/10)!=0)convert(a);charc=n%10+,0,;cout?c;)I.編寫ー個(gè)程序驗(yàn)證:任何ー個(gè)充分大的偶數(shù)(>6)總可以表示成兩個(gè)素?cái)?shù)之和。要求編寫ー個(gè)求素?cái)?shù)的函數(shù)prine(),它有一個(gè)int型參數(shù),當(dāng)參數(shù)值為素?cái)?shù)時(shí)返回1,否則返回〇.3839答:編程如下:#include<iostream.h>intprime(int);voidmain(){intn;coutvv”請(qǐng)輸入ー個(gè)大于或等于6的偶數(shù):";cin?n;intij;coutvv”兩個(gè)素?cái)?shù)的所有可能有:\nn;for(i=2;i<=n/2;i++){j=n-i;if(prime(i)&&prime(j))cout?,,N=,'?i?,+'?j?endl;))intprime(intn){intj=2;while(n%j!=0)j++;if(n==j)return1;elsereturn0;)5.6簡(jiǎn)單回答下列問題沒有返回值的函數(shù)是否有函數(shù)類型?函數(shù)參數(shù)類型與函數(shù)的類型是否有關(guān)系?答:沒有返回值的函數(shù)的類型為void。沒有關(guān)系.函數(shù)的缺省的存儲(chǔ)類是什么?函數(shù)的存儲(chǔ)類與函數(shù)什么關(guān)系?答:函數(shù)的缺省的存儲(chǔ)類是外部類.函數(shù)的存儲(chǔ)類決定了函數(shù)的作用域。函數(shù)的調(diào)用方式有哪兩種?傳址和引用調(diào)用方式有何不同?答:函數(shù)的調(diào)用方式有兩種:傳值調(diào)用和引用調(diào)用。傳址調(diào)用時(shí)實(shí)參用地址值,形參用指針,引用調(diào)用時(shí)實(shí)參用變量名,形參用引用名。內(nèi)聯(lián)函數(shù)與一般函數(shù)有何不同?答:內(nèi)聯(lián)函數(shù)的函數(shù)體是在編譯時(shí)被替換,一般函數(shù)的函數(shù)體是在調(diào)用時(shí)被轉(zhuǎn)去執(zhí)行。前者可以提高速度,后者可以減少代碼,各有利弊。對(duì)重載函數(shù)設(shè)置默認(rèn)參數(shù)值,對(duì)重載函數(shù)的選擇是否會(huì)有影響?答:是會(huì)有影響的。類和對(duì)象(一)練習(xí)題66.1判斷題X1.使用class定義的類,其默認(rèn)的訪問權(quán)限是公有的,使用struct定義的類,其默認(rèn)的訪問權(quán)限是私有的.x2.類中的成員函數(shù)都是公有的,數(shù)據(jù)成員都是私有的。x3.定義在類體內(nèi)的成員函數(shù)是內(nèi)聯(lián)函數(shù),定義在類體外的成員函數(shù)不能是內(nèi)聯(lián)函數(shù)。"4.類定義后,它的成員個(gè)數(shù)及名稱就不會(huì)再被改變了。X5.定義或說明對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)為創(chuàng)建的對(duì)象初始化。如果類中沒有定義任何構(gòu)造函數(shù)時(shí),就無法給定義的對(duì)象初始化。,6.定義ー個(gè)對(duì)象時(shí),系統(tǒng)只為該對(duì)象的數(shù)據(jù)成員開辟內(nèi)存空間,而成員函數(shù)是同類對(duì)象共享的。M7.對(duì)象成員的表示方法與結(jié)構(gòu)變量成員的表示方法相同。M8.創(chuàng)建對(duì)象時(shí)系統(tǒng)自動(dòng)調(diào)用相應(yīng)的構(gòu)造函數(shù)為對(duì)象初始化,沒有相應(yīng)的構(gòu)造函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)生成.M9.構(gòu)造函數(shù)是ー個(gè)其名與類名相同的特殊的成員函數(shù)。X10.析構(gòu)函數(shù)是ー個(gè)函數(shù)體為空的成員函數(shù)。M11.構(gòu)造函數(shù)和析構(gòu)函數(shù)都是系統(tǒng)自動(dòng)調(diào)用的成員函數(shù)。X12.構(gòu)造函數(shù)和析構(gòu)函數(shù)都可以重載。ノ13.成員函數(shù)與一般函數(shù)一樣可以重載、內(nèi)聯(lián)和設(shè)置參數(shù)的默認(rèn)值。X14.靜態(tài)成員是指靜態(tài)對(duì)象的成員。x15.靜態(tài)數(shù)據(jù)成員必須在構(gòu)造函數(shù)的成員初始化列表中進(jìn)行初始化。M16.靜態(tài)成員都可以使用類名加作用域運(yùn)算符的方法來引用.X17.靜態(tài)成員函數(shù)中引用靜態(tài)數(shù)據(jù)成員和非靜態(tài)數(shù)據(jù)成員的方式是相同的。M18.常成員指的是類體內(nèi)使用const關(guān)鍵字說明的常數(shù)據(jù)成員和常成員函數(shù).X19.常數(shù)據(jù)成員在常成員函數(shù)中的值是不允許改變的,而在非常成員函數(shù)中是允許改變的.M2〇.常對(duì)象需要引用常成員函數(shù),而不能引用非常成員函數(shù).X21.常對(duì)象的數(shù)據(jù)成員都是常數(shù)據(jù)成員.M22.友元函數(shù)是說明在類體內(nèi)的非成員函數(shù),它可以訪問類中的所有成員.X23.可以把ー個(gè)一般函數(shù)說明為某類的友元函數(shù),也可以將某類的成員函數(shù)說明為另類的友元函數(shù).M24.友元類中的所有成員函數(shù)都是友元函數(shù).M25.類型轉(zhuǎn)換函數(shù)是ー種特殊的成員函數(shù),定義時(shí)不加類型說明,無函數(shù)參數(shù)。M26.單參數(shù)的構(gòu)造函數(shù)具有類型轉(zhuǎn)換的作用.6.2單選題1.下列關(guān)于類的定義格式的描述中,錯(cuò)誤的是(C).A.類中成員有3種訪問權(quán)限B.類的定義可分說明部分和實(shí)現(xiàn)部分C.類中成員函數(shù)都是公有的,數(shù)據(jù)成員都是私有的D,定義類的關(guān)鍵字通常用class,也可用struct.下列關(guān)鍵字中,不屬于定義類時(shí)使用的關(guān)鍵字是(D).A.classB.structC.publicD.default.下列關(guān)于成員函數(shù)的描述中,錯(cuò)誤的是(A)。1A,成員函數(shù)的定義必須在類體外B,成員函數(shù)可以是公有的,也可以是私有的C.成員函數(shù)在類體外定義時(shí),前加inline可為內(nèi)聯(lián)函數(shù)D.成員函數(shù)可以設(shè)置參數(shù)的默認(rèn)值.下列關(guān)于對(duì)象的描述中,錯(cuò)誤的是(D)。A.定義對(duì)象時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)行初始化B.對(duì)象成員的表示與C語言中結(jié)構(gòu)變量的成員表示相同C,屬于同一個(gè)類的對(duì)象占有內(nèi)存字節(jié)數(shù)相同D.ー個(gè)類所能創(chuàng)建對(duì)象的個(gè)數(shù)是有限制的.下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是(C).A.構(gòu)造函數(shù)可以重載B,構(gòu)造函數(shù)名同類名C.帶參數(shù)的構(gòu)造函數(shù)具有類型轉(zhuǎn)換作用D.構(gòu)造函數(shù)是系統(tǒng)自動(dòng)調(diào)用的.下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是(A).A.析構(gòu)函數(shù)的函數(shù)體都為空B.析構(gòu)函數(shù)是用來釋放對(duì)象的C.析構(gòu)函數(shù)是系統(tǒng)自動(dòng)調(diào)用的D.析構(gòu)函數(shù)是不能重載的.下列關(guān)于靜態(tài)成員的描述中,錯(cuò)誤的是(C).A.靜態(tài)成員都是使用static來說明的.靜態(tài)成員是屬于類的,不是屬于某個(gè)對(duì)象的C,靜態(tài)成員只可以用類名加作用域運(yùn)算符來引用,不可用對(duì)象引用D.靜態(tài)數(shù)據(jù)成員的初始化是在類體外進(jìn)行的.下列關(guān)于常成員的描述中,錯(cuò)誤的是(C).A,常成員是用關(guān)鍵字const說明的B,常成員有常數(shù)據(jù)成員和常成員函數(shù)兩種C.常數(shù)據(jù)成員的初始化是在類體內(nèi)定義它時(shí)進(jìn)行的D.常數(shù)據(jù)成員的值是不可以改變的.下列關(guān)于友元函數(shù)的描述中,錯(cuò)誤的是(B).A.友元函數(shù)不是成員函數(shù)B,友元函數(shù)只可訪問類的私有成員C.友元函數(shù)的調(diào)用方法同一般函數(shù)D.友元函數(shù)可以是另ー類中的成員函數(shù).下列關(guān)于類型轉(zhuǎn)換函數(shù)的描述中,錯(cuò)誤的是(C).A,類型轉(zhuǎn)換函數(shù)是一種成員函數(shù)B,類型轉(zhuǎn)換函數(shù)定義時(shí)不指出類型,也沒有參數(shù)C.類型轉(zhuǎn)換函數(shù)的功能是將其函數(shù)名所指定的類型轉(zhuǎn)換為該類類型D.類型轉(zhuǎn)換函數(shù)在ー個(gè)類中可定義多個(gè)3填空題1.類體內(nèi)成員有3個(gè)訪問權(quán)限,說明它們的關(guān)鍵字分別是公立、私有和保護(hù),.使用class定義的表中,成員的默認(rèn)訪問權(quán)限是私直_的;由struct定義的類中,成員的默認(rèn)的訪問權(quán)限是公有的..如果一個(gè)類中沒有定義任何構(gòu)造函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)提供ー個(gè)默認(rèn)構(gòu)造函數(shù):同樣,類中沒有定義析構(gòu)函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)提供ー個(gè)默認(rèn)析構(gòu)函數(shù)。4.靜態(tài)成員是屬于婁ー的,它除了可以通過對(duì)象名來引用外,還可以使用類名限定來引用。25.友元函數(shù)是被說明在婁缸內(nèi)的韭_成員函數(shù)。友元函數(shù)可訪問該類中的成員。6.完成下列類的定義。classA(public:A(){a=0;}intintGeta(A&m);private:inta;);intGeta(A&m){returnm.a;}6.4分析下列程序的輸出結(jié)果1.#include<iostream.h>classA(public:A()(al=a2=0;cout?"Defaultconstructorcalled.\nM;)A(inti,intj);?A(){cout?1'DestructorcalledAn1';}voidPrint(){cout?"al=,'?al?\"?"a2=,'?a2?endl;}private:intal,a2;);A::A(inti,intj)(al=i;a2=j;cout?MConstructorcalledAn";)voidmain()(Aa,b(5,8);a.Print();b.Print();)答:Defaultconstructorcalled.Constructorcalled.al=0,a2=0al=5,a2=8Destructorcalled.Destructorcalled.2.#include<iostream.h>classB{pub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 掌握項(xiàng)目時(shí)間管理技巧試題及答案
- 注冊(cè)會(huì)計(jì)師考試專題試題及答案
- 真人圖書執(zhí)行方案范本
- 2024項(xiàng)目管理項(xiàng)目實(shí)施方案試題及答案
- 2024年項(xiàng)目管理考試實(shí)踐試題及答案
- 項(xiàng)目管理中的溝通與反饋機(jī)制試題及答案
- 2024年項(xiàng)目評(píng)估的標(biāo)準(zhǔn)題目及答案
- 地鐵拱蓋法施工方案
- 知識(shí)點(diǎn)全面覆蓋園藝師試題及答案
- 園林金屬工具生產(chǎn)工藝流程優(yōu)化考核試卷
- 2025年海南港航控股有限公司招聘筆試參考題庫含答案解析
- 2025年徐礦集團(tuán)校園招聘700人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 資產(chǎn)管理崗管理制度內(nèi)容
- 鐵路貨物運(yùn)價(jià)規(guī)則
- 《政府采購制度改革》課件
- 2024年江蘇省常州市中考英語真題卷及答案解析
- 2024-2030年中國微風(fēng)發(fā)電行業(yè)十三五規(guī)劃及投融資分析報(bào)告
- 售前售中售后服務(wù)培訓(xùn)
- 高中英語2025屆高考讀后續(xù)寫高分佳句(共11種74句)
- 【MOOC】知識(shí)創(chuàng)新與學(xué)術(shù)規(guī)范-南京大學(xué) 中國大學(xué)慕課MOOC答案
- 【MOOC】供應(yīng)鏈管理-武漢理工大學(xué) 中國大學(xué)慕課MOOC答案
評(píng)論
0/150
提交評(píng)論