華工C課后答案

華工C課后答案

ID:83046011

大?。?27.34 KB

頁數(shù):62頁

時(shí)間:2023-09-20

上傳者:無敵小子
華工C課后答案_第1頁
華工C課后答案_第2頁
華工C課后答案_第3頁
華工C課后答案_第4頁
華工C課后答案_第5頁
華工C課后答案_第6頁
華工C課后答案_第7頁
華工C課后答案_第8頁
華工C課后答案_第9頁
華工C課后答案_第10頁
資源描述:

《華工C課后答案》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

習(xí)題1及其解答1、1選擇題1、一個(gè)最簡單得C++程序,可以只有一個(gè)(c)。(a)庫函數(shù)(b)自定義函數(shù)(c)main函數(shù)(d)空函數(shù)2、用C++語言編制得源程序要變?yōu)槟繕?biāo)程序必須要經(jīng)過(d)?(a)解釋(b)匯編(c)編輯(d)編譯3、C++程序中得簡單語句必須以(b)結(jié)束。(a)冒號(b)分號(c)空格(d)花括號4、有說明inta=0;doublex=5、16;以下語句中,(c)屬于編譯錯誤。(d)x=x*a;(a)x=a/x;(b)x=x/a;(c)a=a%x;5、執(zhí)行C++程序時(shí)出現(xiàn)得“溢出”錯誤屬于(c)錯誤。(a)編譯(b)連接(c)運(yùn)行(d)邏輯6、下列選項(xiàng)中,全部都就是C++關(guān)鍵字得選項(xiàng)為(c)o(a)whileIFStatic(b)breakchargo(c)sizeofcaseextern(d)switchfloatinteger7、按C++標(biāo)識符得語法規(guī)定,合法得標(biāo)識符就是(a)0(a)_abc(b)new(c)n(d)"age"8.C++語句中,兩個(gè)標(biāo)識符之間(a)不熊作為C++得分隔符。(a)數(shù)字(b);(c):(d)+9.下列正確得八進(jìn)制整型常量表示就是(b)。(a)OaO(b)015(c)080(d)0x1010.下列錯誤得十六進(jìn)制整型常量表示就是(c)o(a)0x11(b)Oxaf(c)Oxg(d)Oxlf11.在下列選項(xiàng)中,全部都合法得浮點(diǎn)型數(shù)據(jù)得選項(xiàng)為(b)o(a)-le3>515、2e-4(b)12、34-le+50、IE-12(c)0、2e-2-12345、e-5(d)5、0e(l+4)0、18e+212.下列正確得字符常量為(d)。(a)V(b)'name'(c)a13.下列選項(xiàng)中,(d)不鑿交換變量a與b得值。(d)MOV(a)t=b;b=a;a=t;(c)t=a;a=b;b=t;(b)a=a+b;b=a-b;a=a-b;(d)a=b;b=a;14.關(guān)于下列語句敘述錯誤得就是(a)ointi=10,*p=&i;(a)p得值為10(b)p指向整型變量i(c)*p表示變量i得值(d)p得值就是變量i得地址15.有以下變量說明,下面不氐聊得賦值語句就是(b)ointa=5,b=10,c;int*pl=&a,*p2=&b;(a)*p2=b;(b)pl=a;

1(c)p2=pl;(d)c=*pl*(*p2);16.有以下變量說明,下面正確得語句就是(b)。inta=10,b;int&pa=a,&pb=b;(d)*pb二*pa;(a)&pb=a;(b)pb=pa;(c)pb二&pa;17.執(zhí)行下面語句序列后,a與b得值分別為(b)0inta=5,b=3,t;int&ra=a;int&rb=b;t=ra;ra=rb;rb=t;(c)5與3(d)5與5(a)3與3(b)3與518、在下列運(yùn)算符中,(d)優(yōu)先級最高。(a)<=(b)*=(c)+(d)*19、在下列運(yùn)算符中,(d)優(yōu)先級最低。(a)!(b)&&(c)!=(d)?:20.設(shè)inti=l,j=2;則表達(dá)式i+++j得值為(c),,(a)1(b)2(c)3(d)421.設(shè)inti=Lj=2;則表達(dá)式++i+j得值為(d)。(a)1(b)2(c)3(d)422.在下列表達(dá)式選項(xiàng)中,(c)就是正確。(a)++(a++)(b)a++b(c)a+++b(d)a++++b23.已知inti=0,j=l,k=2;則邏輯表達(dá)式++iI|—j&&++k得值為(b)0(a)0(b)1(c)2(d)324、執(zhí)行下列語句后,x得值就是(d),y得值就是(c)ointx,y;x=y=1;++x||++y;(a)不確定(b)0(c)1(d)225、設(shè)x為整型變量,下用正確表達(dá)數(shù)學(xué)關(guān)系1VxV5得C++邏輯表達(dá)式就是(a)。(a)1=5)26、已知intx=5;執(zhí)行下列語句后,x得值為(c)。X+=X-=X*X;(a)25(b)40(c)-40(d)2027、設(shè)inta=l,b=2,c=3,d=4;則以下條件表達(dá)式得值為(a)。a

25、cot6、lg(a2+ab+b2)【解答】1、1/(1+1/(1+l/(x+y)))1、x*(x*(x*(a*x+b)+c)+d)+e3、log(1+pow(fabs((a+b)/(a-b)),10)4、sqrt(1+3、14159/2*cos(48*3、14159/180))5、l/tan((1-x*x)/(1+x*x))或者cos((1-x*x)/(1+x*x))/sin((1-x*x)/(1+x*x))6、logl0(a*a+a*b+b*b)1、3用邏輯表達(dá)式表示下列條件1、i被j整除2、n就是小于正整數(shù)k得偶數(shù)3、lWx<104、x,y其中有一個(gè)小于z5、y[一100,-10],并且y[10,100]6、坐標(biāo)點(diǎn)(x,y)落在以(10,20)為圓心,以35為半徑得圓內(nèi)7、三條邊a,b與c構(gòu)成三角形8、年份Year能被4整除,但不能被100整除或者能被400整除【解答】1.i%j=02、(n=-100&&y<=-10)&&!(y>=10&&y<=100)6、sqrt(pow((x-10),2)+pow((y-20),2))<357、a+b>c&&b+c>a&&c+a>b8、(year%4--0)&&(year%100!=0)I|(year%400-0)1、4閱讀下列程序,寫出執(zhí)行結(jié)果1.#includeusingnamespacestd;intmain(){inta=1,b=2;boolx,y;cout?(a++)+(++b)<b;y=a一&&b;cout?x?endl;cout?y?endl;【解答】4201

31.ttincludeusingnamespacestd;intmain(){intx,y,z,f;x=y=z=1;f=-x||y-&&z++;cout?*x=*<#includeusingnamespacestd;intmain(){inta=123;int&ra=a;int*pa=&a;cout<

4#includeusingnamespacestd;intmain(){inta,b,c;cout?*a,b,c=cin?a?b?c;〃對普通數(shù)據(jù)類型變量賦值int*pa=&a,*pb=&b,*pc=&c;〃用變量地址值初始化指針變量cout?*a,b,c=*?a?*,"<usingnamespacestd;intmain(){inta;cout<<*a=*;cin>>a;intra=a;int*pa=&a;cout?*a得值:"<

5cout<<*pa所指向得變量得值:"<<*pa<usingnamespacestd;intmain(){inta;cout?*a=*;cin>>a;〃名訪問〃輸出變量地址〃地址訪問,輸出變量值〃說明指針變量,指向變量a〃間址訪問,輸出變量值〃ra就是a得引用〃引用訪問,輸出變量a得值a=a+5;cout?&a?endl;cout?*(&a)?endl;int*pa=&a;cout?*pa?end1;int&ra=a;cout?ra?endl;)5.為了約束對數(shù)據(jù)對象得值做只讀操作,C++采用什么方式?請做出簡要?dú)w納?!窘獯稹考s束數(shù)據(jù)對象只讀形式如下:約束對象說明形式標(biāo)識常量const類型常量標(biāo)識符二常量表達(dá)式;指針常量類型?const指針;指向常量得指針const類型*指針;或者類型const*指針;指向常量得指針常量const類型*const指針;或者類型const*const指針;常引用const類型&引用名=對象名;6.什么叫表達(dá)式?表達(dá)式值得類型由什么因素決定?使用不同運(yùn)算符連接以下3個(gè)變量,請寫出5個(gè)以上獲得值等于true得表達(dá)式。inta=l,b=2;doublex=0、5;【解答】表達(dá)式就是由數(shù)據(jù)與運(yùn)算符,按求值規(guī)則,表達(dá)一個(gè)值得式子。表達(dá)式值得類型得決定因素為操作數(shù)得類型。(1)如果運(yùn)算符左右操作數(shù)類型相同,運(yùn)算結(jié)果也就是相同類型。(2)如果運(yùn)算符左右操作數(shù)類型不同,首先把類型較低(存儲要求,示數(shù)能力較低)得數(shù)據(jù)轉(zhuǎn)換成類型較

6高得數(shù)據(jù),然后運(yùn)算。(3)賦值表達(dá)式得類型由被賦值變量得類型決定。當(dāng)把一個(gè)表達(dá)式得值賦給一個(gè)變量時(shí),系統(tǒng)首先強(qiáng)制把運(yùn)算值轉(zhuǎn)換成變量得類型,然后執(zhí)行寫操作。6個(gè)值等于true得表達(dá)式:(l)b>a&&a>x(2)(a+b)!=x(3)a||(b+x)(4)a==(b*x)(5)a-busingnamespacestd;intmain(){inta=10,b=20;int*p=&a,*q=&b;*p=*p**q;int&ra=a;ra=a;int*&rt=q;*rt=30;cout?*a=*<

7b=*?b<<*

8*p=*?*p<<*

9*q=*?*q<<*

10ra=*<

11*rt=*<<*rt<usingnamespacestd;intmainO{inta=10,b=20;int*p=&a,*q=&b;//就是指針類型說明符,就是取址運(yùn)算符*p=*p**q;int&ra=a;ra=a;int*&rt=q;*rt=30;〃第1、2、4個(gè)“*”就是間址訪問符,第3個(gè)算術(shù)乘運(yùn)算符//就是引用說明符//就是指針類型說明符,就是引用說明符//就是間址訪問符〃輸出語句中得就是間址訪問符cout?*a=

12b=*?b?*

13*p=*?*p?*

14*q=*?*q?*

15ra=*?ra?*

16*rt=*?*rt?endl;程序輸出結(jié)果為:a=200b=30

17*p=200*q=30ra=200*rt=301、6編程題1、輸入一個(gè)三位整數(shù),將它反向輸出?!窘獯稹?includeusingnamespacestd;intmain(){intx,i,j,k;cout?”pleaseinputx:";cin?x;i=x/100;j=x/10%10;k=x%10;cout<usingnamespacestd;intmainO{doublex,y,b;cout?”pleaseinputx,y:;cin?x?y;b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2);cout?b?endl;}3、輸入三個(gè)整數(shù),求出其中最小數(shù)(要求使用條件表達(dá)式)?!窘獯稹?includeusingnamespacestd;intmainO{inta,b,c,temp,min;cout?”pleaseinputa,b,c:*;cin?a?b?c;

18temp=(a=0)if(x=0)y=0;elsey=-1;(c)if(x<=0)if(x<0)y=-1;elsey=0;(b)y=-1;if(x!=0)if(x>0)y=1;elsey=0;(d)y=T;if(x<=0)if(x<0)y=-1elsey=1;elsey=1;3.假設(shè)i=2,執(zhí)行下列語句后i得值為(b)0switch(i){case1:i++;case2:i—;case3:++i;break;case4:—i;default:i++;)(a)1(b)2(c)3(d)44.已知inti=0,x=0;下面while語句執(zhí)行時(shí)循環(huán)次數(shù)為(d)。while(!x&&i<3){x++;i++;}(a)4(b)3(c)2(d)15.已知inti=3;下面dowhile語句執(zhí)行時(shí)循環(huán)次數(shù)為(b)。do(i-;cout<

194.以下死循環(huán)得程序段就是(b)。(a)intx;for(intx=0;x<3;){x++;};(b)intk=0;do{++k;}while(k>=0);(c)inta=5;while(a){a—;};(d)inti=3;for(;i;i—);2、2閱讀下列程序,寫出執(zhí)行結(jié)果Lttincludeusingnamespacestd;intmain(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(1c)x=15;elsex=25;cout?d?endl;}【解答】202.#includeusingnamespacestd;intmain(){inta=0,b=1;switch(a){case0:switch(b){case0:cout<<*a=*?a<<*b=*<

203.#includeusingnamespacestd;intmain(){inti=1;while(i<=10)if(++i%3!=1)continue;elsecout<usingnamespacestd;intmain(){inti=0,j=5;do{i++;j—;if(i>3)break;}while(j>0);cout<<*i=*<usingnamespacestd;intmain(){inti,j;for(i=l,j=5;i

216.#includeusingnamespacestd;intmain(){inti,s=0;for(i=0;i<5;i++)switch(i){case0:s+=i;break;case1:s+=i;break;case2:s+=i;break;default:s+=2;)cout?*s=*?s?endl;)【解答】s=77.ttincludeusingnamespacestd;intmain(){inti,j,x=0:for(i=0;i<=3;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}cout?"x="?X?endl;}【解答】x=162、3思考題1、C++中有什么形式得選擇控制語句?歸納它們語法形式、應(yīng)用場合。根據(jù)一個(gè)實(shí)際問題使用不同得條件語句編程?!窘獯稹空Z句使用方式使用場合if語句if(表達(dá)式)語句1;需要對給定得條件進(jìn)行判斷,并根據(jù)判斷

22else語句2;得結(jié)果選擇不同得操作。適用于復(fù)雜得條件表達(dá)式判斷。switch語句switch(表達(dá)式){case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2;case常量表達(dá)式n;語句n;[default:語句n+1;])根據(jù)整型表達(dá)式得不同值決定程序分支得情況。適用于判斷表達(dá)式簡單,需要多個(gè)分支處理得情況。演示程序:程序⑴〃此程序用if輸出等級對應(yīng)得分?jǐn)?shù)段//A->=90,B-(90,80],C-(80,70],D-(70,60]-E-<60#includeusingnamespacestd;intmainO{chargd;cout?*Enterthegrade:*;cin?gd;〃直到輸入有效等級,否則程序不繼續(xù)運(yùn)行while(!((gd>=,A*&&gd<二'E')|(gd>='a'&&gd<='e'))){cout?*Invalidgrade!Pleaseretry:cin>>gd;)if(gd=='A'||gd=='a')cout<<*

23Scored90-100!

24*;elseif(gd=='B'||gd=='b')cout?*

25Scored80-89!

26*;elseif(gd=*C*!|gd==,c*)cout<<*

27Scored70-79!

28*;elseif(gd='D'||gd==,d*)cout?*

29Scored60-69!

30*;elseif(gd='E'||gd='e')cout?*

31Scoreunder60!

32”;elsecout?*Unexpecterror!

33*;〃防止意外錯誤}程序⑵〃此程序用switch輸出等級對應(yīng)得分?jǐn)?shù)段//A->=90,B-(90,80],C-(80,70],D-(70,60],,E-<60#includeusingnamespacestd;intmainO{chargd;cout?*Enterthegrade:*;cin>>gd;〃直到輸入有效等級,否則程序不繼續(xù)運(yùn)行

34while(!((gd>=,A*&&gcK二'E')|(gd>=,a*&&gd<=,e*))){cout?*Invalidgrade!Pleaseretry:*;cin>>gd;}switch(gd){case'A':case'a':cout?*

35Scored90-100!

36*;break;case'B*:case'b':cout?*

37Scored80-89!

38*;break;case'C’:case'c:cout?*

39Scored70-79!

40*;break;case'D':case*d*:cout?*

41Scored60-69!

42*;break;case'E':case'e':cout<<*

43Scoreunder60!

44*;break;default:cout?*Unexpecterror!

45";〃防止意外錯誤]2、什么叫循環(huán)控制?歸納比較C++中各種循環(huán)控制語句得語法、循環(huán)條件與循環(huán)結(jié)束條件得表示形式及執(zhí)行流程?!窘獯稹垦h(huán)控制就是在特定得條件下,程序重復(fù)執(zhí)行一些特定動作。語句語法執(zhí)行流程使用場合while語句while(表達(dá)式)循環(huán)體;循環(huán)條件:表達(dá)式值為非0(真)循環(huán)結(jié)束條件:表達(dá)式值為0(假)程序中常用于根據(jù)條件執(zhí)行操作而不需關(guān)心循環(huán)次數(shù)得情況。先判斷形式循環(huán),條件不成立時(shí)不進(jìn)入循環(huán)體。do-while語句do循環(huán)體while(表達(dá)式);循環(huán)條件:表達(dá)式值為非0(真)循環(huán)結(jié)束條件:表達(dá)式值為0(假)程序中常用于根據(jù)條件執(zhí)行操作而不需關(guān)心循環(huán)次數(shù)。后判斷形式循環(huán),至少執(zhí)行1次循環(huán)體。一般情況,while語句與dowhile語句可以互換使用。for語句for([表達(dá)式1]:[表達(dá)式2];[表達(dá)式3D循環(huán)體:(1)表達(dá)式1稱為初始化表達(dá)式,不就是循環(huán)體執(zhí)行部分。Jfor語句稱為步長循環(huán)語句,通常用于確定循環(huán)次數(shù)得情況。由于語句得3

46(2)表達(dá)式3稱為后置表達(dá)式,作為循環(huán)體得最后一個(gè)執(zhí)行表達(dá)式。(3)循環(huán)條件:表達(dá)式2值為非0(真)循環(huán)結(jié)束條件:表達(dá)式2值為0(假)個(gè)表達(dá)式均可以缺省,也可以用于條件循環(huán),即循環(huán)次數(shù)不確定得情況。表達(dá)式i1truefals循環(huán)體表達(dá)式31forr語句的執(zhí)行流程3、根據(jù)一個(gè)實(shí)際問題,用不同得循環(huán)語句編程,分析其優(yōu)缺點(diǎn)?!窘獯稹柯?。4、用if語句與goto語句組織循環(huán),改寫思考題得第3小題編寫得程序。分析在什么情況下可以適當(dāng)使用goto語句?!窘獯稹吭诓黄茐某绦蚧玖鞒炭刂频们闆r下,可以適當(dāng)使用goto語句實(shí)現(xiàn)從語句結(jié)構(gòu)內(nèi)部向外得必要跳轉(zhuǎn),即按特定條件結(jié)束結(jié)構(gòu)語句塊得執(zhí)行。程序略。5、有以下程序#includeusingnamespacestd;intmainO{charc;cin>>c;if(C=y1|c='Y')inta=l;elseinta=0;cout?*a=*?a<usingnamespacestd;intmain(){charc;inta;cin?c;if(c='y'I|c='Y')a=l;

47elsea=0;cout?*a=*?a<usingnamespacestd;intmainO{inta,b;cout<<*a:cin?a;cout<<*b:cin?b;if(a二b)cout<〈a<<"等于"<usingnamespacestd;

48intmainO{doublescore;cout<<"pleaseinputscore:*;cin?score;if(score>=85)cout?*Verygood!*;elseif(score>=60)cout?"Good!elsecout?”Nogood!*;)1.輸入三個(gè)整數(shù),按從小到大得順序輸出它們得值?!窘獯稹?includeusingnamespacestd;intmain(){inta,b,c,t;cout<<*a,b,c=*;a=ba=cb=cb=t;)c=t;)c=t;)cin?a>>b?cif(a>b){t=aif(a>c){t=aif(b>c){t=bcout?a?'\t'<usingnamespacestd;intmainO{doublea,b,c;cout?”a,b,c=*;cin?a?b?c;if(a+b>c&&b+c>a&&c+a>b){if(a=b&&b=c)cout?”等邊三角形!"?endl;elseif(a==bIia==cIIb==c)cout<<”等腰三角形!"?endl;elsecout?”一般三角形!“?endl;}elsecout?”不能形成三角形!"?endl;3.輸入百分制成績,并把它轉(zhuǎn)換成五級分制,轉(zhuǎn)換公式為:【解答】#includeusingnamespacestd;intmainO

49{doublescore;chargrade;cout<<*score=*;cin?score;if(score>=0&&score<=100){switch(int(score)/10){case10:case9:grade='a';break;case8:grade='b';break;case7:grade='c';break;case6:grade='d';break;case5:case4:case3:case2:case1:case0:grade二'e';break;else{cout<<"數(shù)據(jù)輸入錯誤!*?endl;gotoend;)cout?grade?endl;end:;〃分號不能省)1.編程序模擬剪刀、石頭與紙游戲。游戲規(guī)則為:剪刀剪紙,石頭砸剪刀,紙包石頭。玩游戲者從鍵盤上輸入s(表示剪刀)或r(表示石頭)或p(表示紙),要求兩個(gè)游戲者交替輸入,計(jì)算機(jī)給出輸贏得信息?!窘獯稹?includeusingnamespacestd;intmain(){charfirst,second;cout<<"Firstinput(s,rorp)

50cin?first;cout?”Secondinput(s,rorp):cin?second;switch(first){case's’:switch(second){case's':cout?”Scissortiesscissor、*?endl;gotoend;case'r':cout<<"Scissoriscrushedbyrock>"?endl;gotoend;case'p*:cout<<*Scissorcutspaper、*?endl;gotoend;default:cout<<"secondinputerror!*<usingnamespacestd;intmainO{intm,i=2;cout<<"pleaseinputm:cin?m;while(i<=m)if(m%i=0){cout?i?m=m/i;)

51elsei++;}7、使用迭代公式編程序求某一正整數(shù)a得平方根?!窘獯稹?include#includeusingnamespacestd;intmain(){constdoubleeps=le-8;doublea,xO,x;cout?”pleaseinputa:";cin?a;xO=a/2;x=(xO+a/xO)/2;whi1e(fabs(x-xO)>eps){xO=x;x=(xO+a/xO)/2;)cout?x?endl;)8、已知X=0,10,20,180,求sinx,cosx與tanx得值?!窘獯稹?includettincludettincludeusingnamespacestd;intmain(){constdoublepi=3、14159265;inti;doublex,yl,y2,y3;cout?setw(2)<<"x"?setw(15)<<"sin(x)"?setw(15)?*cos(x)*<

529、在100到200中找出同時(shí)滿足用3除余2,用5除余3與用7除余2得所有整數(shù)?!窘獯稹?includeusingnamespacestd;intmain(){inti;for(i=100;i<=200;i++){if((i%3=2)&&(i%5==3)&&(i%7=2))cout?i?endl;})10、求100到999中得水仙花數(shù)。所謂水仙花數(shù)就是指一個(gè)三位數(shù),它得每位數(shù)字得立方之與等于該數(shù)。例如,因?yàn)?53=1+5+3,所以153為水仙花數(shù)。【解答】#includeusingnamespacestd;intmain(){inti,a,b,c;for(i=100;i<=999;i++){a=i/100;b=(i-a*100)/10;c=i-a*100-b*10;if(i=a*a*a+b*b*b+c*c*c)cout?i?endl;))11、求1000之內(nèi)得所有完數(shù)。所謂完數(shù)就是指一個(gè)數(shù)恰好等于它得所有因子之與。例如,因?yàn)?=1+2+3,所以6為完數(shù)?!窘獯稹?includeusingnamespacestd;intmain(){inti,j,s;for(i=l;i<=1000;i++){s=0;for(j=l;j

53用戶輸入:5屏幕顯示:Whatcharacter?用戶輸入:*則輸出如下圖案。***【解答】#includeusingnamespacestd;intmain(){inti,j,k,n;charch;cout?*Howmanylines?

54";cin?n;cout?*Whatcharacter?

55";cin>>ch;for(i=l;i<=n;i++){for(k=l;k<=n-i;k++)cout?**;for(j=l;j<=2*i-l;j++)cout?ch;cout?endl;})13、已知XYZ+YZZ=532,其中X,Y與Z為數(shù)字,編一程序求出X,Y與Z得值。【解答】#inc1udeusingnamespacestd;intmain(){intx,y,z,i;for(x=l;x<=9;x++)for(y=l;y<=9;y++)for(z=0;z<=9;z++){i=100*x+10*y+z+100*y+10*z+z;if(i=532)cout<<"x=\t’<<"y="\t'<<"z="<

56usingnamespacestd;intmainO{intx,y,z,i;for(x=l;x<=9;x++)for(y=l;y<=9;y++)for(z=0;z<=9;z++){i=100*x+10*y+z+100*y+10*z+z;if(i==532)cout?"x="<

57下面選項(xiàng)中,正確得調(diào)用就是(C)。(a)inta=15;intn=fun6(&a);(b)inta=15;cout?(&pf)(a);(c)cout?(*pf)(256);(d)cout<<*pf(256);2.在VC中,若定義一個(gè)函數(shù)得返回類型為void,以下敘述正確得就是(c)o(b)函數(shù)不執(zhí)行任何操作(d)函數(shù)不能修改實(shí)際參數(shù)得值(c)局部變量(d)函數(shù)調(diào)用(b)共享程序代碼(d)節(jié)省存貯空間(a)函數(shù)返回值需要強(qiáng)類型轉(zhuǎn)換(c)函數(shù)本身沒有返回值3.函數(shù)參數(shù)得默認(rèn)值不允許為(c)。(a)全局常量(b)直接常量4.使用重載函數(shù)編程序得目得就是(a).(a)使用相同得函數(shù)名調(diào)用功能相似得函數(shù)(c)提高程序得運(yùn)行速度5.下列得描述中(b)就是錯誤得。(a)使用全局變量可以從被調(diào)用函數(shù)中獲取多個(gè)操作結(jié)果(b)局部變量可以初始化,若不初始化,則系統(tǒng)默認(rèn)它得值為0(c)當(dāng)函數(shù)調(diào)用完后,靜態(tài)局部變量得值不會消失(d)全局變量若不初始化,則系統(tǒng)默認(rèn)它得值為06.下列選項(xiàng)中,(c)得具有文件作用域。(a)語句標(biāo)號(b)局部變量(c)全局變量(d)靜態(tài)變量3、2閱讀下列程序,寫出執(zhí)行結(jié)果#includeusingnamespacestd;#includeintf(int);intmain(){inti;for(i=0;i<3;i++)cout?f(i)?endl;)intf(inta){intb=0,c=1;b++;c++;returnint(a+pow(double(b),2)+c);)【解答】3452.#includeusingnamespacestd;

58voidfunc(inta,intb,intc=3,intd=4);intmain(){func(10,15,20,30);func(10,11,12);func(12,12);)voidfunc(inta,intb,intc,intd){cout<\tf<usingnamespacestd;voidfunc(int,int,int*);intmain(){intx,y,z;func(5,6,&x);func(7,x,&y);func(x,y,&z);cout<usingnamespacestd;voidfunc(int,int,int&);intmain(){intx=0,y=l,z=2;func(1,2,x);func(x+y,y,y);func(z,x+y,z);cout?x<<*,*<

59voidfunc(inta,intb,int&c){b+=a;c=b-a;)【解答】{,1,3#includeusingnamespacestd;voidfunc(int*,int*,int*&);intmain(){inta=10,b=20;int*p=&a,*q=&b;func(p,q,p);cout?"*p="?*p<<*,*q=*?*q?endl;)voidfunc(int*t1,int*t2,int*&rt){*tl+=5;*t2+=5;rt=tl;?rt+=5;cout??*tl?",*t2=*?*t2?",*rt=*?*rt?endl;)【解答】?tl=20,*t2=25,*rt=20?p=20,*q=25#includeusingnamespacestd;intf2(int,int);intfl(inta,intb){intc;a+=a;b+=b;c=f2(a+b,b+1);returnc;)intf2(inta,intb){intc;c=b%2;returna+c;)

60intmain(){inta=3,b=4;cout?fl(a,b)<usingnamespacestd;intage(intn){intf;if(n=1)f=10;elsef=age(n-l)+2;returnf;)intmain(){cout?"age:"?age(5)?endl;)【解答】age:188.#includeusingnamespacestd;intfl(inta,intb){returna+b;}intf2(inta,intb){returna-b;)intf3(int(*t)(int,int),inta,intb){return(*t)(a,b);}intmainO{int(*p)(int,int);P=fl;cout?f3(p,4,8)<

619.ttincludeusingnamespacestd;intsub(int,int);inta=1;intmainO{intm=1,n=2,f;f=sub(m,n);cout?a?'\t'?f?endl;f=sub(m,n);cout?a<<'\t'<

62(1)函數(shù)得返回類型就是函數(shù)返回得表達(dá)式得值得類型;(2)函數(shù)類型就是指函數(shù)得接口,包括函數(shù)得參數(shù)定義與返回類型;(3)若有functionTypefunctionName;〃functionType就是已經(jīng)定義得函數(shù)類型functionType*functionPointer=functionName;〃定義函數(shù)指針并獲取函數(shù)地址則可以通過函數(shù)指針調(diào)用函數(shù):(*functionPointer)(argumentList);或functionPointer(argumentList);其中argumentList就是實(shí)際參數(shù)表。驗(yàn)證程序:#includeusingnamespacestd;intmain(){typedefintmyfunc(int,int);myfuncf,*fp;inta=10,b=6;fp=f;cout?*Usingf(a):*<usingnamespacestd;voidfuncA(inti){i=i+10;}voidfuncB(int*j){*j=*j+20;}voidfuncC(int&k){k=k+30;}intmain(){inta=l;funcA(a);cout<〈"a=*<

631.變量得生存期與變量作用域有什么區(qū)別?請舉例說明?!窘獯稹孔兞康蒙嫫诰褪侵赋绦蜻\(yùn)行后,變量占有內(nèi)存得時(shí)間;變量作用域指得就是指變量聲明之后,在程序正文中有效得那部分區(qū)域.例如,定義函數(shù):voidcount(){staticintn=0;該函數(shù)中n被定義為static變量,生存期就是整個(gè)程序運(yùn)行時(shí)期;但作用域只在count函數(shù)中。2.靜態(tài)局部變量有什么特點(diǎn)?編寫一個(gè)應(yīng)用程序,說明靜態(tài)局部變量得作用.【解答】靜態(tài)局部變量得生存期就是全程得,作用域就是局部得。程序開始執(zhí)行時(shí)就分配與初始化存儲空間(默認(rèn)初始化值為0)。定義靜態(tài)局部變量得函數(shù)退出時(shí),系統(tǒng)保持其存儲空間與數(shù)值。下次調(diào)用這個(gè)函數(shù)時(shí),static變量還就是上次退出函數(shù)時(shí)得值。直至整個(gè)程序運(yùn)行結(jié)束,系統(tǒng)才收I可存儲空間。程序略。3.在一個(gè)語句塊中能否訪問一個(gè)外層得同名局部變量?能否訪問一個(gè)同名得全局變量?如果可以,應(yīng)該如何訪問?請寫一個(gè)驗(yàn)證程序說明。【解答】一個(gè)語句塊中不能訪問外層得同名局部變量。可以訪問一個(gè)同名得全局變量。驗(yàn)證程序:#includeusingnamespacestd;inta=0;〃全局變量aintmain(){inta=l;〃外層局部變量a{inta=2;〃內(nèi)層局部變量acout?*Localais*?a?endl;〃輸出內(nèi)層局部變量a}cout?*Mainais*?a<

64形式參數(shù)n得作用域就是f函數(shù),實(shí)際參數(shù)a得作用域就是調(diào)用f函數(shù)得模塊(例如main函數(shù)),所以在f函數(shù)中可見n而不可見ao因此,這種說法不正確。f函數(shù)內(nèi)不能直接使用變量名a,只能通過別名n訪問ao驗(yàn)證程序:ncludeusingnamespacestd;voidf(int&n);intmainO{inta=1;f(a);cout<<*a=*?a<314+5));其中得括號“()”與函數(shù)原型中括號有什么語義區(qū)別?【解答】函數(shù)function得返回值類型就是double函數(shù)類型就是:double(int,double)可以定義為:typedefdoublefunType(int,double);函數(shù)調(diào)用functiondO,(2*(0.314+5))中,外層括號表示調(diào)用函數(shù)匹配得實(shí)際參數(shù)表,里面得兩層括號就是表達(dá)式運(yùn)算。2.請分析以下各語句得意義。int*fun();int*(*pf)();fun();pf=fun;pf0;【解答】int*funO;〃函數(shù)原型聲明。fun就是返回int*類型,沒有參數(shù)得函數(shù)

65int*(*pf)();〃聲明指針變量。pf就是指向函數(shù)得指針,函數(shù)類型為int*()fun();〃調(diào)用函數(shù)語句pf=fun;〃向指針變量賦值。函數(shù)指針pf指向函數(shù)funpf();〃用指針變量間址調(diào)用函數(shù)3、4編程題1.已知,其中sh為雙曲正弦函數(shù),即。編一程序,輸入x得值,求y得值?!窘獯稹?include#includeusingnamespacestd;doublesh(doublet);intmainO{doublex,y;cout<<"x=";cin>>x;y=sh(l+sh(x))/(sh(2*x)+sh(3*x));cout?"y="?y?endl;doublesh(doublet){return(exp(t)-exp(-t))/2;}2.輸入m、n與p得值,求s=得值。注意判斷運(yùn)算中得溢出。【解答】usingnamespacestd;doublef(longk,longnum);intmain(){longm,n,p;doubles,fl,f2,f3;cout?"m,n,p=”;cin>>m?n>>p;fl=f(1,m);f2=f(3,n);f3=f(5,p);if(fl&&f2&&f3){s=(fl+f2)/f3;cout?"s="<

66”;)doublef(longk,longnum){longi;doublesum=O;

67for(i=l;i<=num&&sum<2147483647;i++){sum=sum+pow(double(i),double(k));}if(i<=num)return0;〃溢出時(shí)返回returnsum;)1.輸入a,b與c得值,編寫一個(gè)程序求這三個(gè)數(shù)得最大值與最小值。要求把求最大值與最小值編寫成一個(gè)函數(shù),并使用指針或引用作為形式參數(shù)把結(jié)果返回main函數(shù)。【解答】(1)使用指針參數(shù)#includeusingnamespacestd;voidfmaxmin(double,double,double,double*,double*);intmain(){doub1ea,b,c,max,min;cout<<*a,b,c=";cin?a?b?c;fmaxmin(a,b,c,&max,&min);cout?"max="?max<y){u=x;v=y;}else{u=y;v=x;};if(z>u)u=z;if(zusingnamespacestd;voidfmaxmin(double,double,double,double&,doubleft);intmainO{doublea,b,c,max,min;cout?"a,b,c=”;cin?a>>b?c;fmaxmin(a,b,c,max,min);cout?"max="?max?endl;

68cout?"min="?min?endl;)voidfmaxmin(doublex,doubley,doublez,double&pl,double&p2)(doubleu,v;if(x>y){u=x;v=y;}else{u=y;v=x;};if(z>u)u=z;if(zusingnamespacestd;intRand(int,int);〃生成指定范圍得隨機(jī)數(shù)intmain(){intw,i,r,t=0;charop,answer;inta,b,d;while(l)〃練習(xí)開始{cout<<"現(xiàn)在開始?(Y或N)

69”;cin?answer;if(answer==*N*IIanswer==,n*)break;while(l){cout?”請輸入難度(1或2cin?w;if(w!=1&&w!=2)

70cout?"輸入難度錯誤,重新輸入!"?endl;elsebreak;}while(l){cout?”請輸入運(yùn)算類型;cin?op;if(op!='+'&&op!='」&&op!='*'&&op!二'/')cout?”輸入運(yùn)算符錯誤,重新輸入!"?endl;elsebreak;}//出10道題,每題10分t=0;for(i=l:i<=10;i++){while⑴{if(w==1){a=Rand(0,10);b=Rand(0,10);}elseif(w==2){a=Rand(10,100);b=Rand(10,100);if(op==',)//使被減數(shù)大于減數(shù)if(a

71}elsecout<<"您算錯了!"?endl;)cout?”您得成績就是:"?t?“分“?endl;intRand(intm,intn){staticintr;〃靜態(tài)變量保留上一個(gè)隨機(jī)數(shù){r=(25173*r+13849)%65536;}while(r=n);returnr;1.已知勒讓德多項(xiàng)式為編?程序,從鍵盤上輸入x與n得值,使用遞歸函數(shù)求p(x)得值?!窘獯稹?includeusingnamespacestd;doublep(doublex,intn);intmainO{intn;doublex;cout?”pleaseinputxandn:";cin?x?n;cout?*p(*?x<<","<

72usingnamespacestd;voidprint(intw){for(inti=1;i<=w;i++){for(intj=1;j<=i;j++)cout?i?**;cout?endl;})intmain(){print(5);}運(yùn)行顯示:122333444455555【解答】#includeusingnamespacestd;voidprint(intw){inti;if(w){print(w-l);for(i=l;i<=w;i++)cout?w?*cout?endl;))voidmainO{print(5);)7.已知用梯形法求積分得公式為:,其中h=(b-a)/n,n為積分區(qū)間得等分?jǐn)?shù),編程序求如下積分得值。要求把求積分公式編寫成一個(gè)函數(shù),并使用函數(shù)指針作為形式參數(shù)。調(diào)用該函數(shù)時(shí),給定不同得被積函數(shù)作為實(shí)際參數(shù)求不同得積分。①②③【解答】itinclude

73#includeusingnamespacestd;doublefl(doublex){return4/(1+x*x);)doublef2(doublex){returnsqrt(1+x*x);}doublef3(doublex){returnsin(x);}doubletrap(double(*fun)(doublex),doublea,doubleb,longn){doublet,h;inti;t=((*fun)(a)+(*fun)(b))/2>0;h=(b'a)/n;for(i=l;i<=n-l;i++)t+=(*fun)(a+i*h);t*=h;returnt;}intmainO{doubletl,t2,t3;tl=trap(fl,0,1,10000);cout?*tl=*<usingnamespacestd;voiddisplay(doubled){cout?*adouble:*<

74voiddisplay(inti){cout?*aint:*?i?endl;)voiddisplay(charc){cout?”achar:*?c?endl;}intmain(){doubled=1、5;inti=100:charc=*a,;display(d);display(i);display(c);}7.使用重載函數(shù)編程序分別把兩個(gè)數(shù)與三個(gè)數(shù)從大到小排列?!窘獯稹?includeusingnamespacestd;voidsort(doublex,doubley);voidsort(doublex,doubley,doublez);intmain(){sort(5、6,79);sort(0、5,30、8,5、9);voidsort(doublex,doubley){if(x>y)cout<

75【解答】//Fabricate^h#ifndefFABRICATED^defineFABRICATEJIintFabricate(intm,intn);intMulti(intm,intn);#endifcpp#inc1udeusingnamespacestd;4include"Fabricate、h”intmain(){intm,n;cout<<*inputmandn:*;cin?m?n;cout<<"Fabricate,<

76//Multi、cppintMu11i(intm,intn){inti,t=1;for(i=n;i<=m;i++)t=t*i;returnt;習(xí)題4及其解答4、1選擇題1.以下對一維數(shù)組a得正確定義就是(c)。(a)intn=5,a[n];(b)(c)constintN=5;inta[N];(d)2.下列數(shù)組定義語句中,不合法得就是(a)。(a)inta[3]={0,1,2,3};(b)(c)inta[3]={0,1,2);(d)3.已知inta[10]={0,1,2,3,4,5,6,子就是(c)o(a)*a(b)*pinta(5);intn;cin?n;inta[n];inta[]={0,1,2);inta[3]={0};7,8,9},*p=a;則不熊表示數(shù)組a中元素得式(c)a(d)a[p-a]4.已知inta口={0,2,4,6,8,10),*p=a+1;其值等于0得表達(dá)式就是(d)。(a)*(p++)(b)*(++p)(c)*(p—)(d)*(~p)5.以下不能對二維數(shù)組a進(jìn)行正確初始化得語句就是(c)o(a)inta[2][3]={0};(b)inta[][3]={{0,1},{0}(:(c)inta[2][3]={{0,1},{2,3},{4,5}};(d)inta[][3]={0,1,2,3,4,5};6.已知inta[][3]={{0,1},{2,3,4},{5,6},{7}};則得值就是(c)。(a)0(b)2(c)6(d)77.已知inta[3][3]={1,2,3,4,5,6,7,8,9);則不能表示數(shù)組元素a[2][1]得地址就是(b)?(a)&a[2][l](b)*(a[2]+l)(c)a[2]+l(d)*(a+2)+l8.已知char*a[]={"fortran'*,"basic*',"pascal","java",;則cout<

77(c)strcpy(sl,s2)==0(d)strcmp(sl,s2)=04.設(shè)char*sl,*s2;分別指向兩個(gè)字符串,判斷字符串si就是否大于字符串s2得表達(dá)式為(c)。(a)sl>s2(b)strcmp(sl,s2)—0(c)strcmp(sl,s2)>0(d)strcmp(s2,si)>04、2閱讀下列程序,寫出執(zhí)行結(jié)果1.#includeusingnamespacestd;intmain(){inti,count=0,sudfO;doubleaverage;inta[]={1,2,3,4,5,6,7,8,9,10};for(i=0;i<10;i++){if(a[i]%2==0)continue;sum+=a[i];count++;}average=sum/count;cout?”count=*?count?‘\t'?"average=*?average?endl;)【解答】conut=5average=52.ncludeusingnamespacestd;intmain(){inta[9]={1,2,3,4,5,6,7,8,9};int*p=a,sum=0;for(;p#includeusingnamespacestdconstintN=5;intmain(){inta[N][N]={0},i,j,k;for(k=l,i=0;i=0;j—,k++)a[j][i-j]=k;for(i=0;i

78)}【解答】1361015259140481300712000110000I.#includeusingnamespacestd;intf(int[],int);intmainO{inta口={-1,3,5,-7,9,-11)cout?f(a,6)?endl;}intf(inta口,intsize){inti,t=l;for(i=0;i0)t*=a[i];returnt;i.【解答】135i.^includeusingnamespacestd;intf(int[][3],int,int);intmain(){inta[][3]={0,1,2,3,4,5,6,7,8}cout?f(a,3,3)?endl;}intf(inta[][3],introw,intcol){inti,j,t=l;for(i=0;i

79#includeusingnamespacestd;voidtestl(int*al){al=newint(5);cout?**al=*?*al?endl;}voidtest2(int*&a2){a2=newint(5);cout?”*a2=*<<*a2?endl;}intmain(){int*p=newint(1);testl(p);cout?”testl:*pl="<<*p?endl;test2(p);cout<<*test2:*p2=*?*p?endl;【解答】*al=5testl:*pl=1*a2=5test2:*p2=51.#includeusingnamespacestd;intmain(){chars[]=*abccda*;inti;charc;for(i=1;(c=s[i])!='\0';i++){switch(c){case*a*:cout<<'%';continue;case'b':cout<<'$';break;case'c':cout?***;break;case'd':continue;)cout??endl;))【解答】$#

80%8.#includeusingnamespacestd;intmainO{char*str[]={"c++”,"basic?!眕ascal”}char**p;inti;p=str;for(i=0;i<3;i++)cout?*(p+i)?endl;1【解答】c++basicpascal9.^includeusingnamespacestd;intmainO{charsi[]="Fortran",s2[]=*Foxpro*;char*p,*q;p=si;q=s2;whi1e(*p&&*q){if(*p==*q)cout?*p;p++;q++;)cout?endl;)【解答】For10.#include#includeusingnamespacestd;intmainO{charstr[][10]={"vb","pascal","c++”},s[10];strcpy_s(s,(strcmp(str[0],str[l])<0?str[0]:str[l]));if(strcmp(str[2],s)<0)strcpy_s(s,str[2]);cout<

81數(shù)組說明語句要向編譯器提供數(shù)組名(標(biāo)識符),數(shù)組元素得類型、數(shù)組維數(shù)、數(shù)組長度(元素得個(gè)數(shù))等信息。一維數(shù)組說明語句為:類型數(shù)組名[表達(dá)式]二維數(shù)組說明語句為:類型數(shù)組名[表達(dá)式][表達(dá)式2]1.數(shù)組名、數(shù)組元素得區(qū)別就是什么?歸納一維數(shù)組元素地址、元素值不同得表示形式。若有說明intaa[3],*pa=aa;請使用aa或pa,寫出3個(gè)以上與aa[2]等價(jià)得表達(dá)式。【解答】數(shù)組名就是一個(gè)標(biāo)識符,執(zhí)行代碼中代表數(shù)組得地址,即指向數(shù)組起始位置得指針;而數(shù)組元素就是下標(biāo)變量,性質(zhì)相當(dāng)于普通變量。對一維數(shù)組aa第i個(gè)元素得地址可以表示為:&aa[i]aa+i;對一維數(shù)組aa第i個(gè)元素得值可以表示為:a[i]*(a+i);與aa[2]等價(jià)得表達(dá)式:*(aa+2)*(&a[2])*(pa+2)pa[2]3.要把一維數(shù)組inta[m*n]得元素傳送到二維數(shù)組intb[m][n]中,即在程序中要執(zhí)行b[i][j]=a[k];請寫出k^i,j得下標(biāo)變換公式,并用程序驗(yàn)證?!窘獯稹哭D(zhuǎn)換公式:i=k/nj=k%n驗(yàn)證程序:#includeusingnamespacestd;intmain(){constintM=3,N=4;intk,a[M*N]={1,2,3,4,5,6,7,8,9,10,11,12},b[M][N];inti,j;cout<<*arraya:*<\t';cout<

823.有以下函數(shù)voidquery(){int*p;p=newint[3];//……delete[]p;p=newdouble[5];//……delete[]p;出現(xiàn)了編譯錯誤。請分析錯誤得原因,并把上述程序補(bǔ)充完整,上機(jī)驗(yàn)證您得判斷?!窘獯稹吭谡Z句P』ewdouble[5];中企圖把動態(tài)浮點(diǎn)型數(shù)組得地址寫入整型指針p,造成錯誤。錯誤為ec*orC2440:“二":無法從“double*"轉(zhuǎn)換為“int*”。改正方法:增加一個(gè)double*q指針。voidquery(){int*p;p=newint[3];delete口p;//……double*q;q二newdouble[5];delete[]q;}4.有以下程序根據(jù)輸入值,設(shè)計(jì)功能就是調(diào)用函數(shù)create建立并初始化動態(tài)數(shù)組,令a[i]=i。但該程序運(yùn)行后不能得到期望結(jié)果,請分析程序得錯誤原因并修改之。4includeusingnamespacestd;voidcreate(int*,int);intmain(){int*a=NULL,len;cin?len;create(a,len);for(inti=0;i

83voidcreate(int*ap,intn){ap=newint[n];for(inti=0;i#includeusingnamespacestd:voidaveMsd(double[],int,double&,double&);〃求平均值與均方差值函數(shù)intmainO{doubles[]={76,85,54,77,93,83,90,67,81,65);doubleave,msd;inti,n;n=sizeof(s)/sizeof(double);〃求數(shù)組元素得個(gè)數(shù)cout<<”學(xué)生成績:”;for(i=0;i

84for(i=0;i#include#include#includeusingnamespacestd;intmain(){inta[10],i,j;srand(int(time(O)));〃為隨機(jī)數(shù)生成器設(shè)置種子值for(i=0:i<10;i++){1:a[i]=randO;〃產(chǎn)生隨機(jī)數(shù)存放到數(shù)組中if(a[i]<10||a[i]>=100)〃獲取指定范圍數(shù)據(jù)goto1;for(j=0;jm)cout<usingnamespacestd;

85intmain(){inta[]={38,6,29,1,25,20,6,32,78,10};intindex[101;〃記錄下標(biāo)得數(shù)組inti,j,temp;for(i=0;i<10;i++)index[i]=i;for(i=0;i<=8;i++)for(j=i+l;j<=9;j++)

86if(a[i]usingnamespacestd;intmain()intb[10],i,j,k,flaglongnum,n;cout<<*num=*;k=0;n=num;do{b[k++]=n%10;n=n/10;}while(n!=0);flag=l;i=0;j=k-l;while(iusingnamespacestd;voidmerge(constinta[],intna,constintb[],intnb,intc[],intnc);intmain(){inta[4]={1,2,5,7};

87intb[8]={3,4,8,8,9,10,11,12);intc[12];merge(a,4,b,8,c,12);for(i=0;i<12;i++)cout?c[i]?*cout<b[j]){c[k]=b[j];k++;j++;}else{c[k]=a[i];k++;i++;}whi1e(iusingnamespacestd;intmain(){char*weekday[7]={"sunday",*monday*,*tuesday*,“Wednesday",*thursday*,*friday*,“Saturday");intd;cout<<"pleaseinputweekday:cin?d;if(d>=0&&d<=6)cout<

88#includeusingnamespacestd;voidcreate(int*&app,intn);voiddel(int*&app,int*&bpp,intn);intmaindiagonal(int*&app,intn);voidoutput(int*&app,int);intmain(){int*ap=NULL,*bp=NULL,n;cout?"輸入矩陣得階:々cin?n;create(ap,n);cout?”

89形成矩陣:

90";output(ap,n);cout?”去掉靠邊元素生成得矩陣:

91";del(ap,bp,n);output(bp,n-2);cout?”主對角線元素之與:“?maindiagonal(ap,n)?endl;)〃形成n階矩陣函數(shù)voidcreate(int*&app,intn){app=newint[n*n];inti,j,k=0;for(i=0;i

92{bpp[k]=*(app+i*n+j);k++;)))〃求主對角線元素之與函數(shù)intmaindiagonal(int*&app,intn){inti,j,k=0,sum=0:for(i=0;iusingnamespacestd;intmain(){longs[][3]={{300,250,150},{200,240,200},{280,210,180});longp[]=(3500,3300,3800);

93inti,j;doublesum;for(i=0;i<3;i++){sum=0;for(j=0;j<3;j++)sum+=s[i][j]*p[j];cout?"第"?i+1?”百貨公司得電視機(jī)營業(yè)額:”?sum?endl;})8.設(shè)計(jì)函數(shù)求一整型數(shù)組得最小元素及其下標(biāo)。在主函數(shù)中定義與初始化該整型數(shù)組,調(diào)用該函數(shù),并顯示最小元素值與下標(biāo)值。【解答】#includeusingnamespacestd:intfmin(int[],int);intmainO{inta[]={73,85,62,95,77,56,81,66,90,80);intindex;index=fmin(a,sizeof(a)/sizeof(int));cout<<"Theminnumnumberis:*?a[index]?endl;cout<<"Theindexis:"<usingnamespacestd;voidinsert(inta[],int,int);intmain(){inta[]={10,12,23,25,48,48,53,58,60,78};

94intx,n,i;

95cout<<*pleaseinputinsertcin>>x;n=sizeof(a)/sizeof(int);insert(a,n,x);for(i=0;i=p;j)a[j]=a[j-l]:data:〃求數(shù)組長度〃插入元素〃查找插入位置〃后移元素,擠出最大值〃插入元素8.編寫程序,按照指定長度生成動態(tài)數(shù)組,用隨機(jī)數(shù)對數(shù)組元素賦值,然后逆置該數(shù)組元素。例如,對數(shù)組A[5],初值為{6,3,7,8,2),逆置后得值就是{2,8,7,3,6).程序輸出逆置前、后得數(shù)組元素序列?!窘獯稹?include#include#includeusingnamespacestd;voidprintarray(int*p,intn);voidadverse(int*p,intn);intmainO{int*p,n,i;cin?n;p=newint[n];srand(time(0));for(i=0;i

96cout<<"逆置數(shù)組:“;printarray(p,n);//輸出逆置數(shù)組}//輸出數(shù)組函數(shù)voidprintarray(int*p,intn){inti;for(i=0;iusingnamespacestd;intmain(){intp,i,j,k;charsi[40],s2[40],s3[80];cout<<“si=";cin?si;cout<<*s2=*;cin?s2;cout<<*inputinsertposition:*;cin?p;〃輸入插入位置for(i=0;i

97s3[i+j]=s2[j];for(k=p;si[k]!=>\0*;k++)s3[j+k]=si[k];s3[j+k]='\0';cout?"s3二"?S3?endl;}8.把某班學(xué)生得姓名與學(xué)號分別存放到兩個(gè)數(shù)組中,從鍵盤上輸入某一學(xué)生學(xué)號,查找該學(xué)生就是否在該班,若找到該學(xué)生,則顯示出相應(yīng)得姓名。【解答】#includeusingnamespacestd;intmain(){charname[5][20]={"liming*,“zhangqing”,*liuxiaoping”,*wangying”,*lupei"};longnum[5]={20030001,20030002,20030005,20030007,20030010};inti;longsnumber;cout<<*pleaseinputstudentnumber:*;cin?snumber;for(i=0;i<5;i++){if(num[i]=snumber){cout?”Found!Thenameis:“?name[i]?endl;break;}}if(i==5)cout?*Can\*tfound!*?endl;)9.將一組C++關(guān)鍵字存放到一個(gè)二維數(shù)組中,并找出這些關(guān)鍵字得最小者?!窘獯稹?include^includeusingnamespacestd;intmain(){charstring[10];charstr[][10]={"while","break","if","extern","void","auto",long,static,do,constj;inti;strcpy(string,str[0]);for(i=0;i<10;i++)if(strcmp(str[i],string)<0)strcpy(string,str[i]);cout<<*Theminimumstringis:"?string?endl;)10.使用指針函數(shù)編寫程序,把兩個(gè)字符串連接起來。

98【解答】#includeusingnamespacestd;char*strcat(char*strl,char*str2){char*p=strl;while(*p!='\0')p++;*p=*str2;do{p++;str2++;*p=*str2;}while(*str2!='\0');return(strl);)intmain(){charstrl[80],str2[80];cout<<*inputstrl:cin?strl;cout<<"inputstr2:*;cin?str2;cout?*strl+str2=*?strcat(strl,str2)<x=1;p、y=2;(d)p={1,2};2.已知有職工情況結(jié)構(gòu)變量emp定義為:structDate{intyear;intmonth;intday;};strnctEmployee{charname[20];longcode;Datebirth};Employeeemp;下列對cmp得birth得正確賦值方法就是(d)o(a)year=1980;month=5;day=l;

99(b)birth、year=1980;birth、month=5;birth、day=l;(c)emp>year=1980;emp、month=5;emp>day=l;(d)emp、birth、year=1980;emp、birth、month=5;emp、birth^day=l;2.假定有以下說明語句,則下面引用形式錯誤得就是(b)ostructStudent{intnum;doublescore;};Studentstu[3]={{1001,80),{1002,75),{1003,91}},*p=stu;num(a)p->num(b)(p++)、num(c)(p++)->num(d)(*p)、3.若有以下說明語句,則下列錯誤得引用就是(d)?structWorker{intno;charname[20];};Workerw,*p=&w;(a)w、no(b)p->no(c)(*p)、no(d)*p、no5.si與s2就是兩個(gè)結(jié)構(gòu)類型變量,若要賦值sl=s2合法,則它們得說明應(yīng)該就是(c)o(a)si只能接受相同類型得數(shù)據(jù)成員(b)結(jié)構(gòu)中得成員相同(c)同一結(jié)構(gòu)類型得變量(d)存儲字節(jié)長度一樣得變量5、2閱讀下列程序,寫出執(zhí)行結(jié)果。1.itincludeusingnamespacestd;structData{intn;doublescore;intmainO{Dataa[3]={1001,87,1002,72,1003,90),*p=a;cout<<(p++)->n?endI;cout<<(p++)->n?endl;cout?p->n++?endl;cout?(*p)、n++?endl;)【解答】10011002100310042.^includeusingnamespacestd;structEmployee{charname[20];

100charsex;);voidfun(Employee*p){if((*p)、sex='m')cout?(*p)>name?endl;}intmainO{Employeeemp[5]={"Liming",'m',^Wangxiaoping*,'f',"Luwei”,*m*}inti;for(i=0;i<3;i++)fun(emp+i);}【解答】LimingLuwei1.#includeusingnamespacestd;structNode{char*s;Node*q;intmainO{Nodea[]={{"Mary”,a+1},{"Jack",a+2},{“Jim”,a}}Node*p=a;cout<s<q->s?endl;cout?p->q->q->s?endl;cout?p->q->q->q->s?endl;【解答】MaryJackJimMary

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。
最近更新
更多
大家都在看
近期熱門
關(guān)閉