資源描述:
《實(shí)驗(yàn)四 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、實(shí)驗(yàn)四循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?.掌握3種循環(huán)結(jié)構(gòu):while,do—while,for的區(qū)別與聯(lián)系,以及它們之間相互轉(zhuǎn)換的方法,并能正確使用它們。2.掌握與循環(huán)語句相關(guān)的break語句和continue語句的使用方法二.實(shí)驗(yàn)內(nèi)容1.輸入正整數(shù)n,計(jì)算n的階乘。【分析】由于n!=1*2*3*……*n,因此,要計(jì)算n的階乘可以從1開始,由1的階乘乘以2得到2的階乘,再乘以3得到3的階乘.......以此類推?!境绦颉?【要求】(1)分別輸入數(shù)據(jù)-2,1,5,10,20調(diào)試運(yùn)行程序,并記錄程序結(jié)果。輸入結(jié)果 (2)刪除程序
2、中//A處的賦值語句return1;重新以上述數(shù)據(jù)調(diào)試運(yùn)行程序,結(jié)果是否正確,如果不正確,該如何修改?(3)刪除程序中//B處的語句result=1;重新以上述數(shù)據(jù)調(diào)試運(yùn)行程序,結(jié)果是否正確,如果不正確,該如何修改?(4)將程序中語句doubleresult=0;改為intresult=0;重新以上述數(shù)據(jù)調(diào)試運(yùn)行程序,結(jié)果如何?為什么? 2.范例:編程計(jì)算求π的近似值?!境绦颉?【要求】(1)輸入程序編譯后使用Debug跟蹤,單步執(zhí)行程序,記錄以下變量值的變化。itermsum0 1 2 3 4 5 : 回答以下問題:a)從跟
3、蹤結(jié)果分析,term和sum的值有什么錯(cuò)誤?b)循環(huán)結(jié)束后,i的值是多少?用什么簡(jiǎn)單的辦法可以看到?c)對(duì)程序作何修改可以使其得到正確的結(jié)果? 3.將輸入的小寫字母轉(zhuǎn)換成大寫字母?!痉治觥坑葾SCII碼表可以看出,大寫英文字母的ASCII碼值在65至90之間,小寫英文字母的ASCII碼值在97至122之間,每一個(gè)英文字母的大寫和小寫的ASCII碼相差32。?4.編程:設(shè)計(jì)一個(gè)程序,輸入一個(gè)日期,要求算出這一天是本年的第幾天?!痉治觥恳愠瞿程焓钱?dāng)年的第幾天,應(yīng)該將當(dāng)年中本月之前所有月的天數(shù)相加,再加上本月至此的天數(shù)。但這里有一個(gè)閏年問題,2
4、月是一個(gè)特殊月,閏年的2月有29天,非閏年的2月只有28天?!咎崾尽颗袛嗄衬晔情c年的條件是:該年號(hào)能被4整除但不能被100整除,或者能被400整除。例如,1996、2000是閏年,但1800不是閏年。 5.約瑟夫(Josephus)問題:n個(gè)人圍坐成一圈,從1開始順序編號(hào);游戲開始,從第一個(gè)人開始由1到m循環(huán)報(bào)數(shù),報(bào)到m的人退出圈外,問最后留下的那個(gè)人原來的序號(hào)?!痉治鯹】本題首先要定義一個(gè)數(shù)組,其元素個(gè)數(shù)為n。n定義為常變量,以便定義數(shù)組。數(shù)組元素的值標(biāo)識(shí)該人是否出局,1在圈內(nèi),0出局。值為0的元素不參加報(bào)數(shù)。可用一個(gè)整型數(shù)k做計(jì)數(shù)器,采
5、用倒計(jì)數(shù),記錄留下的人數(shù)?!咎崾尽繑?shù)組是線性排列的,而人是圍成圈的,用數(shù)組表示要有一種從數(shù)組尾部跳到其頭部的技巧,即下標(biāo)加1除以n求余數(shù)?! 铮ㄟx做題)6.輸入若干字符,統(tǒng)計(jì)其中數(shù)字字符、空白字符和其他字符的個(gè)數(shù),輸入EOF結(jié)束。【分析】要對(duì)字符進(jìn)行統(tǒng)計(jì),需要循環(huán)語句反復(fù)輸入字符,讀入字符后用switch語句判斷字符的種類:要統(tǒng)計(jì)3種字符數(shù),需要定義3個(gè)用于計(jì)數(shù)的變量nDigit,nWhite,nOther,并置初始值0;讀入字符用cin.get()函數(shù),在這里用while循環(huán)比較合適。白字符指空白鍵、Tab鍵和回車鍵。EOF表示Endof
6、File,其值為-1,從鍵盤輸入CTRL+Z鍵即可。這里采用重載的intcin.get()函數(shù),它返回的是整型數(shù),所以能返回EOF。【要求】1.程序中的變量c,可以定義為char類型嗎?請(qǐng)?jiān)囍?,并解釋原因?.請(qǐng)注意程序中case分支語句后的break語句,break能去掉嗎?為什么?3.如果要分別統(tǒng)計(jì)0-9中個(gè)數(shù)字出現(xiàn)的次數(shù),怎樣才能有效地實(shí)現(xiàn),請(qǐng)修改程序。4.如果要統(tǒng)計(jì)輸入的一段文字中出現(xiàn)的行數(shù)、單詞數(shù)和字符數(shù),又怎樣有效地實(shí)現(xiàn),請(qǐng)完成之。