《華工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 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 31.ttinclude 4#include 5cout<<*pa所指向得變量得值:"<<*pa< 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-b 7b=*?b<<* 8*p=*?*p<<* 9*q=*?*q<<* 10ra=*< 11*rt=*<<*rt< 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ù),將它反向輸出?!窘獯稹?include 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é)果Lttinclude 203.#include 216.#include 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#include 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#include 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、有以下程序#include 47elsea=0;cout?*a=*?a< 48intmainO{doublescore;cout<<"pleaseinputscore:*;cin?score;if(score>=85)cout?*Verygood!*;elseif(score>=60)cout?"Good!elsecout?”Nogood!*;)1.輸入三個(gè)整數(shù),按從小到大得順序輸出它們得值?!窘獯稹?include 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ī)給出輸贏得信息?!窘獯稹?include 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!*< 51elsei++;}7、使用迭代公式編程序求某一正整數(shù)a得平方根?!窘獯稹?include 529、在100到200中找出同時(shí)滿足用3除余2,用5除余3與用7除余2得所有整數(shù)?!窘獯稹?include 53用戶輸入:5屏幕顯示:Whatcharacter?用戶輸入:*則輸出如下圖案。***【解答】#include 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得值。【解答】#inc1ude 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é)果#include 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< 59voidfunc(inta,intb,int&c){b+=a;c=b-a;)【解答】{,1,3#include 60intmain(){inta=3,b=4;cout?fl(a,b)< 619.ttinclude 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)證程序:#include 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)證程序:#include 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)證程序:nclude 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 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ù)#include 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(z 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 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【解答】#include 73#include 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ù)從大到小排列?!窘獯稹?include 75【解答】//Fabricate^h#ifndefFABRICATED^defineFABRICATEJIintFabricate(intm,intn);intMulti(intm,intn);#endifcpp#inc1ude 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.#include 78)}【解答】1361015259140481300712000110000I.#include 79#include 80%8.#include 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)證程序:#include 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é)果,請分析程序得錯誤原因并修改之。4include 83voidcreate(int*ap,intn){ap=newint[n];for(inti=0;i 84for(i=0;i 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++) 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< 88#include 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;i 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)值。【解答】#include 94intx,n,i; 95cout<<*pleaseinputinsertcin>>x;n=sizeof(a)/sizeof(int);insert(a,n,x);for(i=0;i 96cout<<"逆置數(shù)組:“;printarray(p,n);//輸出逆置數(shù)組}//輸出數(shù)組函數(shù)voidprintarray(int*p,intn){inti;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)得姓名。【解答】#include 98【解答】#include 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.itinclude 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.#include
此文檔下載收益歸作者所有