循環(huán)結(jié)構(gòu)作業(yè)2新_第1頁
循環(huán)結(jié)構(gòu)作業(yè)2新_第2頁
循環(huán)結(jié)構(gòu)作業(yè)2新_第3頁
循環(huán)結(jié)構(gòu)作業(yè)2新_第4頁
循環(huán)結(jié)構(gòu)作業(yè)2新_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、循環(huán)結(jié)構(gòu)作業(yè)2:編程練習(xí) 注:請(qǐng)將調(diào)試成功的程序代碼拷貝到后面的作業(yè)模板中,打印出待提交,同時(shí)請(qǐng)保存好作業(yè)的電子版。1.編寫程序,要求找到用戶輸入的一串?dāng)?shù)中的最大值。程序需要提示用戶一個(gè)一個(gè)輸入數(shù)。當(dāng)用戶輸入0或負(fù)數(shù)時(shí), 程序必須顯示輸入的最大非負(fù)數(shù): Enter a number : 60 Enter a number : 38.3 Enter a number : 4.89 Enter a number : 100.62 Enter a number : 75.2295 Enter a number : 0 The largest number entered was 100.62 提示:

2、(1)程序開始設(shè)置一存放最大值的變量,如max,給一初值,循環(huán)輸入一數(shù)據(jù)和max比較大小,若輸入的數(shù)大,則將此值賦值給max,讓max中始終存儲(chǔ)兩者中的最大值。 (2)使用while循環(huán)。While(x>0).;(3)試一下最后顯示最大值時(shí)用%g和%f有什么不同?2.編寫程序,要求用戶輸入兩個(gè)整數(shù)然后計(jì)算并顯示這兩個(gè)整數(shù)的最大公約數(shù)(GCD): Enter two integers: 12 28 Greatest common divisor :4提示:求最大公約數(shù)的經(jīng)典算法是Euclid算法,方法如下:分別讓變量m 和n存儲(chǔ)兩個(gè)數(shù)的值,始終保證m最后存儲(chǔ)的是兩個(gè)數(shù)中較大的值;用m除以n

3、;把除數(shù)保存在m中,而把余數(shù)保存在n中;如果n為0,那么停止操作,m中的值是GCD;否則,從m除以n開始重復(fù)上述除法過程。 (2)用While循環(huán)3.編寫程序可,實(shí)現(xiàn)1位或者多位數(shù)的反向輸出。例如輸入一個(gè)整數(shù)12345,則輸出一個(gè)整數(shù)54321。提示:(1)使用do_while循環(huán)重復(fù)執(zhí)行該數(shù)x對(duì)10的求余r和求商s操作,實(shí)現(xiàn)數(shù)字分離。(2)每次讓求出的商s重置該數(shù)x(即x=s),直到值達(dá)到0為止。(3)余數(shù)r則通過算式n=n*10+r重復(fù)累加到新數(shù)n上.4.編寫程序,將輸入的一個(gè)長整型數(shù)x中每一位上為偶數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)返回。高位仍在高位,低位仍在低位。例如:程序運(yùn)行時(shí)輸入:124

4、578902,程序輸出:24802. 若輸入:1357,輸出:05.編寫程序,要求顯示出單月的日歷。用戶說明這個(gè)月的天數(shù)和本月起始日是星期幾: Enter number of days in month:31 Enter starting day of the week(1=Sun, 7=Sat):3 SunMonTueWedThuFriSat 12345 6789101112 13141516171819 20212223242526 2728293031提示:(1) 程序提示用戶輸入打印月的天數(shù)n和第1天的順序號(hào),先輸出表頭。printf("%-5s%-5s%-5s%-5s%-5

5、s%-5s%-5sn","Sun","Mon","Tue","Wed","Tue","Fre","Sat");(2)上面既然規(guī)定了一個(gè)項(xiàng)的輸出占5個(gè)域?qū)?,那?號(hào)前面的項(xiàng)數(shù)(如本題是2)共空了2*5個(gè)空格,可以使用循環(huán)輸出這些空格。(3)用for循環(huán)輸出變量i從1到n的值。在循環(huán)中,用if語句判定i是否是一個(gè)星期的最后一天,如果是,就顯示一個(gè)換行符。如本題( i+2)%7=0 條件成立換行。 6.編寫程序(for),用符號(hào)(如*)輸出一個(gè)鉆石形狀

6、。運(yùn)行程序輸入n值,則鉆石型的上三角就為n行,下三角為n-1行。如下圖為n=6的圖形。7. 編寫程序,利用公式PI/4=1-1/3+1/5-1/7+. 計(jì)算PI的近似值。 (1)給定項(xiàng)數(shù)計(jì)算。例如計(jì)算到分母9999的那項(xiàng)為止,9999即是程序運(yùn)行時(shí)用戶輸入的項(xiàng)。 (2)給定精度計(jì)算。例如計(jì)算到累加項(xiàng)(±)1/n的絕對(duì)值小于等于10-6, 0.000001即是程序運(yùn)行時(shí)用戶輸入的精度。8. 斐波納契數(shù)列。有一種數(shù)列:0,1,1,2,3,5,8,13,21,34,。它以0和1開頭,接下來每個(gè)數(shù)是其前兩個(gè)數(shù)之和。數(shù)學(xué)家斐波納契(Fibonacci)首先發(fā)現(xiàn)并研究這種數(shù)列的性質(zhì)與應(yīng)用,該數(shù)列

7、因此得名。自然界本身就存在這樣的數(shù)列,人們?cè)诿枋雎菪仙臄?shù)據(jù)時(shí)通常要用到它。該數(shù)列有個(gè)令人稱奇的特性:對(duì)于連續(xù)的兩個(gè)數(shù)來說,前一個(gè)數(shù)與后一個(gè)數(shù)之比趨向于常量0.618,后一個(gè)數(shù)與前一個(gè)數(shù)之比趨向于常量1.618 。由于這兩個(gè)數(shù)在自然界的許多方面得到體現(xiàn),符合人類的審美標(biāo)準(zhǔn)因此被稱為“黃金分割率”。建筑師經(jīng)常按黃金分割率設(shè)計(jì)窗戶、房間和建筑物的長寬比,明信片的長寬也往往設(shè)計(jì)成這一比率。斐波納契數(shù)列的迭代形式如下: F0 = 0 (n=0) F1 = 1 (n=1) Fn = Fn-1 + Fn-2 (n>=2)編寫程序,要求將范圍m,n之間所有的fibonacci數(shù)輸出。例如,0,30之

8、間的fibonacci數(shù)有7個(gè),它們是:1 2 3 5 8 13 21 ;1000,32767之間有7個(gè),它們是:1597 2584 6765 10946 17711 28657 。(窮舉法一點(diǎn)兒也不陌生,幾乎在所有的程序中都有它的影子,它是與邏輯緊密聯(lián)系在一起的。所謂窮舉也稱為蠻干(Brute Force)法,就是逐個(gè)訪問與處理所給定的大量數(shù)據(jù)與內(nèi)容,每個(gè)元素訪問且僅訪問一次。計(jì)算機(jī)所具有的高速計(jì)算的特性確實(shí)為窮舉法的廣泛應(yīng)用提供了良好的物質(zhì)基礎(chǔ),并發(fā)揮了高速度的優(yōu)勢(shì),從而使窮舉法能夠成為一種可行的算法?,F(xiàn)在程序設(shè)計(jì)中或多或少地都要用到它。很多問題除了用窮舉法還找不到別地方法去解答。可見窮舉

9、法做為沒有辦法的辦法而具備了通用行。當(dāng)然,由于它也顯得直接而簡(jiǎn)單,因而容易理解與普及,由此可見,不管喜歡與否窮舉法都是一種很重要的方法。)9完數(shù)的判斷。完數(shù)即“完美的數(shù)”。如果一個(gè)數(shù)恰好是小于它的各個(gè)不同因子之和,那么就稱該數(shù)為完數(shù)。比如說,6的因子1、 2、 3 ,而6123,因此6就是一個(gè)完數(shù)。顯然,要判斷一個(gè)數(shù)是否是為完數(shù)的關(guān)鍵在于,對(duì)它進(jìn)行適當(dāng)?shù)囊蜃臃纸猓缘玫叫∮谒旧淼乃幸蜃?。順乎自然的因子分解方法是遍歷試驗(yàn),也就是說,假設(shè)要判斷數(shù)n是否為完數(shù),那么就從1開始到數(shù)n-1,逐個(gè)看它是否為n的因子(能整除n)。將各個(gè)因子累加起來,最后與這個(gè)數(shù)進(jìn)行比較,如果相等該數(shù)就是完數(shù)。請(qǐng)編寫程序

10、求解1000之內(nèi)的所有完數(shù)。10. 素?cái)?shù)的判斷。素?cái)?shù)定義:除了1和其本身之外,沒有其它的因子,這樣的數(shù)叫做素?cái)?shù)。編寫程序求出比x大的最初k(k<1000)個(gè)素?cái)?shù)。最小的素?cái)?shù)是 2 。例如:程序運(yùn)行時(shí)輸入:7 10,輸出:11 13 17 19 23 29 31 37 41 43。若輸入:-7 10, 輸出:2 3 5 7 11 13 17 19 23 29。11. 輸入一行字符(回車結(jié)束),分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字字符和其它字符四類的各自的數(shù)目。提示: while( (c=getchar() !=n)。 。12. 翻譯密碼。為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收?qǐng)?bào)人再按

11、約定的規(guī)律將其譯回原文。例如,可以按如下規(guī)律將電文變成密碼: 將字母A變成字母E,a變成e, 即變成其后的第4個(gè)字母. W變成A ,X變成B,Y變成C,Z變成D. 字母按上述規(guī)律轉(zhuǎn)換,非字母字符不變。例如“China!”轉(zhuǎn)換為“Glmre!”.(請(qǐng)參看ASCII表,大寫字母后并非緊跟小寫字母,還有其它字符) 輸入一行字符,要求輸出其相應(yīng)的密碼。13.編寫程序可以把大寫字母格式的電話號(hào)碼翻譯成數(shù)值格式:Enter phone number: CALLATT2255288提示:字母在鍵盤上的對(duì)應(yīng)關(guān)系:2=ABC 3=DEF 4=GHI 5=JKL 6=MNO 7=PRS 8=TUV 9=WXY,如

12、果原始的電話號(hào)碼包含非字母的字符(例如,數(shù)字或標(biāo)點(diǎn)符號(hào))那么保留下來不做變化:Enter phone number : 1-800-COL-LECT1-800-265-532814. 程序反復(fù)做以下工作:提示輸入學(xué)號(hào)(number),并提示結(jié)束標(biāo)記是什么(本程序用-1作為循環(huán)結(jié)束的標(biāo)記)。 由用戶輸入學(xué)號(hào)。程序隨后分別提示輸入各門課成績(jī)(如: course 1:),由用戶輸入學(xué)生3門課成績(jī),最后統(tǒng)計(jì)該學(xué)生3門課的平均成績(jī)并顯示。成績(jī)和平均分均為實(shí)型,顯示的平均分保留2位小數(shù)。當(dāng)用戶在提示信息“enter student's number (-1 to end): ”后輸入-1時(shí)結(jié)束程序。*15. 飛機(jī)票有冗長的標(biāo)識(shí)數(shù)字(位數(shù)不定),例如47715497443。為了有效,最后一位數(shù)字必須與以其他的數(shù)字為整體除以7后的余數(shù)相匹配。(例如4771549744除以7的余數(shù)為3.)編寫程序檢查機(jī)票號(hào)是否有效:Enter ticket number : 4771549744

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論