c++基礎練習題及解答細節(jié)全解_第1頁
c++基礎練習題及解答細節(jié)全解_第2頁
c++基礎練習題及解答細節(jié)全解_第3頁
c++基礎練習題及解答細節(jié)全解_第4頁
c++基礎練習題及解答細節(jié)全解_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、“C+程序設計”實驗一簡單的C+程序1、編寫簡單的屏幕輸出程序:過程首先在資源管理器中,在用戶盤(硬盤)創(chuàng)建自己的文件夾,例如可以以自己的學號為名建立文件夾。進入VisualC+開發(fā)環(huán)境,新建C+源文件,存放在上一步建立的文件夾中。打開源文件編輯窗口,輸入以下源代碼:#includevoidmain()|cout;/省略號處是想要輸出到屏幕上的內(nèi)容,可以隨意編輯。)保存文件后單擊“編譯compile”按鈕等(快捷鍵CW+F7),在出現(xiàn)的對話框中單擊“是”。若沒有錯誤,繼續(xù)單擊“連接build”按鈕(快捷鍵F7)。若沒有錯誤則繼續(xù)單擊“執(zhí)行?。仇?”按鈕(快捷鍵Ctrl+F5),查看程序運行結果

2、。#includevoidmain()coutHello:-)n;/省略號處是想要輸出到屏幕上的內(nèi)容。2、將兩個數(shù)交換后輸出。分析交換兩個數(shù),一般方法是用一個中間變量,經(jīng)過幾次賦值實現(xiàn)。#includevoidmain()doublea,b,temp;coutab;/此語句是將用戶輸入的兩個數(shù)依次保存到a、b兩個變量中couta=ab=bendl;/此語句是輸出a、b兩個變量的值temp=a;/此語句是將變量a的值賦給變量temp,“=”稱為賦值號;/完成省略號處的語句,將變量b的值賦給變量a;/完成省略號處的語句,將變量temp的值賦給變量b;/完成省略號處的語句,再次輸出變量的值,觀察其值

3、是否交換了#includevoidmain()doublea,b,temp;coutab;/此語句是將用戶輸入的兩個數(shù)依次保存到a、b兩個變量中couta=ab=bendl;/此語句是輸出a、b兩個變量的值temp=a;/此語句是將變量a的值賦給變量temp,“二”稱為賦值號a=b;/完成省略號處的語句,將變量b的值賦給變量ab=temp;完成省略號處的語句,將變量temp的值賦給變量bcouta=ab=b“n”;/完成省略號處的語句,再次輸出變量的值,觀察其值是否交換了3.使用cout對象,在輸出窗口上顯示如下的圖形:提示:在C+的字符常量中,一個反斜線字符是。#includevoidmai

4、n()coutt/*endl;cout/*endl;cout/*ttXtXendl;cout|*ttXtXendl;cout|*tXXXXXXXXXXXXXXendl;cout|*ttXtXendl;cout*ttXtXendl;cout*endl;coutt*/endl;4根據(jù)注釋補充下面的程序中省略號處的語句,運行程序,并理解其語句及輸出的含義:#includevoidmain();定義一個整型變量a;/定義一個字符型變量bb=a;/給變量b賦值為字符a;將變量b的值賦給變量acouta=aendl;輸出變量a的值;輸出變量b的值#includevoidmain()inta;/定義一個整型

5、變量acharb;/定義一個字符型變量bb=a;/給變量b賦值a=b;/將變量b的值賦給變量acouta=aendl;輸出變量a的值coutb=bx_int),輸出并觀察(x_int/y_double)、(y_double-m_char)以及n_bool的值,理解這些輸出的含義。例如:輸入111#includevoidmain()intx_int;doubley_double;charm_char;booln_bool;coutx_inty_doublem_char;n_bool=m_charx_int;coutx_int/y_double=x_int/y_doubleendl;couty_d

6、ouble-m_char=y_double-m_charendl;coutn_bool=n_boolendl;.輸出一個字符(這個字符可以是在程序開始賦值,或由用戶輸入)的前驅字符(ASCII編碼表上該字符前面的字符)、后繼字符(ASCII編碼表上該字符后面的字符)及其ASCII碼值。#includevoidmain()charqianqu,zifu,houji;coutzifu;qianqu=zifu-1;houji=zifu+1;coutqianquzifuhoujiendl;coutint(qianqu)int(zifu)int(houji)endl;3編寫程序:根據(jù)用戶輸入的球的半徑值

7、,分別計算球的表面積、體積和質(zhì)量,并輸出計算結果。提示假設用戶輸入的球的半徑的單位是米,球的密度為7.8kg/m3,球的表面積的計算公式4為s=4冗r2,球的體積的計算公式為v=3兀r3。其中n的值使用3.14即可。#includevoidmain()constdoublepi=3.14,midu=7.8;doublebanjing,bmianji,tiji,zhiliang;coutbanjing;bmianji=4*pi*banjing*banjing;tiji=bmianji*banjing/3;zhiliang=tiji*midu;cout該球的表面積為bmianji平方米,體積為ti

8、ji立方米,質(zhì)量為zhiliang千克。n”;)4.讓用戶輸入一個秒數(shù),編程實現(xiàn)將它轉換成小時、分鐘、秒來表示。例如輸入7278秒,則輸出:2小時1分18秒。#includevoidmain()intzongm,shi,fen,miao;coutzongm;if(zongm0)shi=zongm/3600;fen=zongm%3600/60;miao=zongm%60;coutshi小時,fen分,miao秒n;)實驗三分支選擇語句的應用提示:每題建立一個C+源文件。當完成一個題目后,使用菜單“文件”一“關閉工作空間”,再新建C+源文件做下一個題目。.用戶輸入兩個整數(shù)X和y,問:y是否是x的倍

9、數(shù)?編程輸出回答“是”或“不是”。#includevoidmain()intx,y;coutxy;if(y%x=0)couty是x的倍數(shù)。n;elsecouty不是x的倍數(shù)。n;).編寫程序求解如下分段函數(shù)。#inclu”R162,x12丫=-e”am=x70doublex,y;coutx;if(x12)y=x*x-162;elseif(x=70)y=x+30;elsey=100;couty=yendl;3單位編排活動小組,30歲及以下的分在第一組,40歲的分在第二組,50歲以上的分在第三組,其余年齡的分在第四組。假設王五輸入了自己的年齡,保存在變量age中,那么他應該分在第幾組?編程求解并輸

10、出答案。#includevoidmain()intage;coutage;if(age=20&age70)if(age=30)cout應分至第一組。n;elseif(age=40)cout50)cout應分至第三組。n;elsecout應分至第四組。n;else8出輸入年齡不合理!n;4根據(jù)用戶輸入的整數(shù)(17代表星期一星期日),編程輸出星期這一天對應的英文或中文名稱。例如,用戶輸入3,則輸出應顯示為“Wednsday”或“星期三”。#includevoidmain()inta;couta;switch(a)coutMondayn;break;coutTuesdayn;break;coutWe

11、dnesdayn;break;coutThursdayn;break;coutFridayn;break;coutSaturdayn;break;coutSundayn;break;default:couterrorn;5.已知標準體重的計算方法如下:男性:標準體重(kg)=身高(cm)-100女性:標準體重(kg)=身高(cm)-105試編寫程序,由用戶輸入其性別(m代表男性,f代表女性)和身高,程序計算并輸出其標準體重。#includevoidmain()(charxingbie;intshengao,tizhong;coutxingbie;if(xingbie=m)|(xingbie=f

12、)(coutshengao;if(xingbie=m)tizhong=shengao-105;elsetizhong=shengao-100;cout標準體重為邊八。門9千克。n;6(選做).編程實現(xiàn)如下算術功能:用戶輸入兩個數(shù)字(可帶小數(shù))及一個算術操作符(+、-、*或/),若輸入的算術操作符不對,則輸出提示信息(例如“無效的算術操作符,無法計算”),否則,即輸出相應的算式及結果。注意:計算除法時,除數(shù)不能為0。#includevoidmain()(doublea,b;charc;coutabc;switch(c)(case+:couta+b=a+bendl;break;case-:cout

13、a-b=a-bendl;break;case*:couta*b=a*bendl;break;case/:if(b!=0)couta/b=a/bendl;elsecout除數(shù)不能為0!n;break;default:cout無效的算數(shù)操作符,無法計算!n;實驗四循環(huán)語句的應用提示:每題建立一個C+源文件。當完成一個題目后,使用菜單“文件”一“關閉工作空間”,再新建C+源文件做下一個題目。1.設某縣2000年工業(yè)總產(chǎn)值為200億元,如果該縣預計平均年工業(yè)總產(chǎn)值增長率為4.5%,那么多少年后該縣年工業(yè)總產(chǎn)值將超500億元?(參考答案:21年)#includevoidmain()doublechanz

14、hi=200;intnianshu=0;while(chanzhi=500)nianshu+;chanzhi*=1.045;cout經(jīng)過nianshu年后該縣年工業(yè)總產(chǎn)值將超過500億元。n;2.請在屏幕上顯示N行如圖所示的數(shù)值(即第i行為“i:i2i3”),其中N是個常量,其值在程序運行之初確定。(要求:用for語句實現(xiàn))#includevoidmain()constintN=10;for(inti=1;i=N;i+)couti:ti*iti*i*iendl;3編寫循環(huán)程序,判斷用戶輸入的一個數(shù)是正數(shù)還是負數(shù),當輸入的數(shù)大于0時,輸出“正數(shù)”;輸入的數(shù)小于0時,輸出“負數(shù)”;輸入的數(shù)為0時結

15、束程序。最后輸出這些數(shù)相加的總和。(要求:用do-while語句實現(xiàn))#includevoidmain()doublex;docoutx;if(x0)饃出正數(shù)行;elseif(x0)cout負數(shù)n;while(x!=0);4.編程求解使不等式12+32+52+n2limit成立的最大n值。其中l(wèi)imit可以定義為常量或定義為變量。(實驗數(shù)據(jù):limit=10時n=1;limit=100時n=7;limit=65535時n=71)#includevoidmain()intlimit;coutlimit;intn=1,s=0;while(slimit)s+=n*n;n+=2;cout”使該不等式成

16、立的最大n值為:(n-4)endl;5(選做)請用戶輸入20個字符,編程實現(xiàn)將其中的小寫字母轉換為大寫字母后輸出。例如,若用戶輸入“VkQK0MsQ,mb/;lGa;q,則應輸出“VKQK0MSQ,MB/;lGA;Q。提示:每一個英文字母的大寫和小寫的ASCII碼相差32。即,若字符型變量ch中是一個小寫英文字母,則char(ch-32)即其對應的大寫英文字母。#includevoidmain()charch;inti;cout請輸入20個字符:;i=0;while(ich;if(ch=a&ch=z)coutchar(ch-32);elsecoutch;i+;coutendl;6(選做)有20

17、只猴子吃掉50個桃子,已知每只公猴能吃5個桃子、每只母猴能吃4個桃子、每只小猴能吃2個桃子,編程求出這20只猴子中可以有公猴、母猴、小猴各多少只。(答案:0515或2216)#includevoidmain()intgong,mu,xiao;for(gong=0;gong=10;gong+)for(mu=0;mu=12;mu+)xiao=20-gong-mu;if(5*gong+4*mu+2*xiao=50)cout公侯gong只,母猴mu只,小猴xiao只n;實驗五函數(shù)的概念及應用.編寫一個函數(shù)doublef(doublex),求解如下分段函數(shù)。產(chǎn)-62(x0)_Jx5-62(0=x2)y=

18、:x-32(2=x=38)提示:求冪的數(shù)學函數(shù)是pow(x,。,求平方根的數(shù)學函數(shù)是sqrt(x)。要使用這些數(shù)學函數(shù),需要在文件開始添加預編譯指令#includevmath.h。#include#includedoublef(double);voidmain()(doublex;x=-28;coutx=x,y=f(x)endl;x=0;coutx=x,y=f(x)endl;x=1;coutx=x,y=f(x)endl;x=15;coutx=x,y=f(x)endl;x=75;coutx=x,y=f(x)endl;)doublef(doublex)(doubley;if(x0)y=-62;el

19、seif(x2)y=pow(x,5)-62;elseif(x38)y=x-32;elsey=sqrt(x-2);returny;).對任意給定的兩個正整數(shù)m、n,求s=m!+n!。要求先自定義一個C+函數(shù),實現(xiàn)求一個正整數(shù)的階乘,即doublejiecheng(intx),再在主函數(shù)中調(diào)用該自定義函數(shù),根據(jù)用戶輸入的整數(shù)m和n,求出s的值。#includedoublejiecheng(int);voidmain()(intm,n;coutvv”請輸入兩個正整數(shù):cinmn;if(m0&n0)coutm!+n!=(jiecheng(m)+jiecheng(n)endl;elsecoutvv”您輸

20、入的不是兩個正整數(shù)!n;)doublejiecheng(intn)(doubles=1;for(inti=1;i=n;i+)s*=i;returns;.編寫一個函數(shù)boolsxh(intn),判斷一個3位正整數(shù)是否是水仙花數(shù),若是返回true,否則返回false。并在主函數(shù)中使用該函數(shù)找出所有的水仙花數(shù)打印在屏幕上。說明:若一個3位正整數(shù)的各位數(shù)字的立方和等于這個整數(shù),則稱之為“水仙花數(shù)”。例如:153是水仙花數(shù),因為153=1*1*1+5*5*5+3*3*3。#includeboolsxh(int);voidmain()cout水仙花數(shù):n;for(inti=100;i1000;i+)if(

21、sxh(i)couti;coutendl;boolsxh(intn)intge=n%10;intshi=n/10%10;intbai=n/100;if(ge*ge*ge+shi*shi*shi+bai*bai*bai=n)returntrue;elsereturnfalse;(選做).編程實現(xiàn),在屏幕上輸出如下所示由X組成的X形圖案。#includevoidmain()constintLINE=9;for(inti=1;i=LINE;i+)for(intj=1;j=LINE;j+)if(i=j|i=LINE+1-j)coutX;elsecout;coutendl;5(選做)編寫一個函數(shù),實現(xiàn)在

22、屏幕上打印出九九乘法表?;拘Ч缦聢D1,同學們可自己作進一步的美化,如下圖2。提示:兩層循環(huán)嵌套使用。4TOC o 1-5 h z69812165161520256121824303G7142128354249816243240485664號1827364554637281#include#includevoidfirst();voidsecond();voidmain()cout基本九九表:nn;first();coutendl;cout改進后的九九表:nn;second();coutendl;/基本(圖1)voidfirst()inti,j;for(i=1;i10;i+)for(j=1;

23、j=i;j+)coutsetw(4)i*j;coutendl;/改進(圖2)voidsecond()inti,j;coutsetw(5)T;for(i=1;i10;i+)coutsetw(4)i;coutendl;for(i=1;i43;i+)cout-;coutendl;for(i=1;i10;i+)coutsetw(3)i|;for(j=1;j=i;j+)coutsetw(4)i*j;coutendl;實驗六流程控制語句、函數(shù)的綜合應用1.編寫一個函數(shù)boolsushu(intn),判斷用戶輸入的一個正整數(shù)是否是素數(shù),若是返回true,否則返回false。提示:素數(shù)即質(zhì)數(shù),判斷n是否素數(shù)的

24、方法是:分別用2、3、4、n-1去除n,如果n能被整除,則表明n不是素數(shù),反之是素數(shù)。說明:1不是素數(shù),2、3、5、7、11、13、。等是素數(shù)。#includeboolsushu(intn);voidmain()intx;coutx;if(x0)if(sushu(x)coutx是素數(shù)n;elsecoutx不是素數(shù)n;elsecout您輸入的不是正數(shù)!n;boolsushu(intn)if(n2)returnfalse;inti=2;while(in)if(n%i=0)returnfalse;i+;returntrue;2編寫一個函數(shù)求下式的和:s=a+aa+aaa+aaa其中a是19中的一個數(shù)

25、字(aaa的含義為100*a+10*a+a),項數(shù)為n,a和n皆為函數(shù)的參數(shù)。編寫主函數(shù),調(diào)用上述函數(shù)分別求出a為1時12項的和、a為5時8項的和,以及a為9時13項的和。提示:假設和式中的各項為b0b1b2bn,則可知b0=a,bl=b0 x10+a,b2=b1x10+a,。即每一項由前一項乘以10加a遞推得到。#includedoublef(inta,intn);voidmain()inta=1,n=12;couta=a,n=n時,s=f(a,n)endl;a=5,n=8;couta=a,n=n時,s=f(a,n)endl;a=9,n=13;couta=a,n=n時,s=f(a,n)end

26、l;)doublef(inta,intn)(if(a9|n=0)return0;int0;doubleb=0,s=0;while(in)(b=b*10+a;s=s+b;i+;)returns;)3.編寫函數(shù)一,判斷一個年份是否是閏年,若是返回true,否則返回false。編寫函數(shù)二,求一個月有多少天,輸入?yún)?shù):年、月;輸出數(shù)據(jù):該月的天數(shù)。提示:第二個函數(shù)需要調(diào)用第一個函數(shù)判斷是否是閏年,從而確定二月是28天還是29天。編寫主函數(shù),調(diào)用上述函數(shù),打印用戶指定的日期(年、月、日)是該年的第幾天。#includeboolrunnian(int);inttianshu(int,int);voidma

27、in()(intnian,yue,ri;coutnianyueri;if(nian0&yue=1&yue=1&ri0)(s+=tianshu(nian,i);i-;)cout這是該年第s天。n;)elsecout輸入日期有誤!n;)else饃出輸入年月不合理!n;boolrunnian(intn)if(n%4=0&n%100!=0|n%400=0)returntrue;elsereturnfalse;inttianshu(intnian,intyue)switch(yue)case1:case3:case5:case10:case12:return31;case2:if(runnian(nia

28、n)return29;elsereturn28;case4:case6:case9:case11:return30;4.(選做)編寫一個函數(shù)voidshapeV(intn=5),實現(xiàn)在屏幕上輸出如下所示由組成的V形圖,其中圖案的層數(shù)根據(jù)參數(shù)n確定,形參n的默認值為5。并編寫如下主函數(shù)測試上述函數(shù)的功能:voidmain()shapeV();shapeV(1);shapeV(11);#includevoidshapeV(intn=5);voidmain()shapeV();shapeV(1);shapeV(11);voidshapeV(intn)for(inti=1;i=n;i+)for(int

29、j=1;j=2*(n-i)+1;j+)cout;coutendl;/*從鍵盤上輸入一個三角形中三條邊a、b、c的長度,請利用求面積公式(其中s=(a+b+c)/2)求出三角形的面積。*/#include#includevoidmain()doublea,b,c,s,area;coutabc;if(a0&b0&c0&a+bc&b+ca&c+ab)s=(a+b+c)/2;area:sqrt(s*(s-a)*(s-b)*(s-c);coutarea=areaendl;elsecout輸入有誤:三角形兩邊之和不大于第三邊!endl;/*將1-100之間奇數(shù)順序累加存入n中,直到其和等于或大于200為止

30、*/#includevoidmain()intm,n=0;for(m=1;m=100&n200;m+=2)n+=m;coutn=nendl;/*編程求使不等式1+9+25+49+81+1000成立的最大n值。*/#includevoidmain()intn;for(inti=1,s=0;s1000;i+=2)s+=i*i;n=i-4;cout使該不等式成立的最大n值為:nendl;)/*已知一個正整數(shù)m,求其各位數(shù)字之和,保存到變量s中。*/#includevoidmain()intm,s=0,n;while(m!=0)n=m%10;s+=n;m=m/10;)coutsendl;)/*有一個數(shù)

31、列,它的第一項為0,第二項為1,以后每一項都是它的前兩項之和,編程計算出此數(shù)列的第23項*/#includevoidmain()intjieguo;inta1=0,a2=1,a3;for(inti=3;i=23;i+)a3=a1+a2;a1=a2;a2=a3;)jieguo=a3;cout”該數(shù)列第23項為:jieguoendl;)/*求多項式1!+2!+3!+15!的值并存入變量out中.*/#includevoidmain()intn=1,s=0;doubleout=0;for(inti=1;i=15;i+)n=n*i;s+=n;coutsendl;out=s;)/*打印水仙花數(shù)及個數(shù)n(水仙花數(shù)是三位數(shù),每位數(shù)字的立方和等于這個數(shù)本身)*/#includevoidmain()intm,n=0,a,b,c;for(m=100;m=999;m+)a=m/100;b=m%100/10;c=m%100%10;if(m=a*a*a+b*b*b+c*c*c)coutmn;n+;)/*定義一個C+函數(shù):分段函數(shù)d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論