高級語言程序設(shè)計(jì)編寫程序題+答案_第1頁
高級語言程序設(shè)計(jì)編寫程序題+答案_第2頁
高級語言程序設(shè)計(jì)編寫程序題+答案_第3頁
高級語言程序設(shè)計(jì)編寫程序題+答案_第4頁
高級語言程序設(shè)計(jì)編寫程序題+答案_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、前育才"*尹聲聲女聲矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離1已知銀行整存整取存款不同期限的月息利率分別為:0.315%期限一年0.330%期限二年月息利率 =0.345%期限三年0.375%期限五年0.420%期限八年要求輸入存錢的本金和期限,求到期時(shí)能從銀行得到的利息與本金的合計(jì)。2輸入年份year和月month ,求該月有多少天。 判斷是否為閏年, 可用如下C語言表達(dá)式:year%4=0&& year%100!=0 | year%400=0。若表達(dá)式成立(即表達(dá)式值為1),則year為閏年;否則,表達(dá)式不成立(即值為0) , year為平年。3編寫一個(gè)

2、簡單計(jì)算器程序,輸入格式為:data1 op data2。其中data1和data2是參加運(yùn)算的兩個(gè)數(shù),op為運(yùn)算符,它的取值只能是 +、-、*、/。4輸入n值,輸出如圖所示矩形。1 .1* *卡季安率*半邛e斗.* #全+ * * * * 枇*圖4,1 nW時(shí)的矩形5輸入n值,輸出如圖所示平行四邊形。irale ale 土 北 電,-T- - i-" r-* * 斗 * * *本靠布*圖d. 2 n=8時(shí)的平行四邊形6輸入n值,輸出如圖所示高為n的等腰三角形。* * Jt*季率* * 圖4. 3 n=6時(shí)的等騰三角形矢口 Tzt St*7輸入n值,輸出如圖所示高為n的等腰三角形。*

3、SE 9E_|.生北豪* *+ += +*圖d.4n=6時(shí)的倒等胰三角形8輸入n值,輸出如圖所示高和上底均為n的等腰梯形。聿水冰冰* *非 *比*對* *¥:*#*;* * 圖4.5 口=5時(shí)的等慢梯形9輸入n值,輸出如圖所示高和上底均為n的等腰空心梯形。?t*M* *平* 生* 率*圖4. 6 »飛時(shí)的空心等腰梯形10輸入n值,輸出如圖所小邊長為n的空心正六邊型。4 .布布布* *求來木外+ +莊詠小木* *圖4. T n=5時(shí)的空心正六邊型11輸入n值,輸出如圖所示圖形*#* 口 Tz上*十* *沖 辛* *卡辛*4 +* * * +圖d.g5時(shí)的X形12輸入n值,輸出

4、如圖所示圖形*水看*ffi 4.9 n=5時(shí)的工形13輸入n值,輸出如圖所示圖形木 中* *牡* *+ +圖4.10力;3時(shí)的K形14輸入n值,輸出如圖所示圖形#*緋螳 率+圖4.12 n=5時(shí)的N形15輸入n值,輸出如圖所示圖形案率*平中¥圖4.12 13時(shí)的菱形*育*#*交口督1弟丸y3 '里.優(yōu)肯直離曲者離#者含離* 口上*十16輸入n值,輸出如圖所示圖形。(例為n=6時(shí))圖4.13 n=5時(shí)的上禊形17編寫程序,輸出如圖所示 sin(x)函數(shù)0至I 2元的圖形邛#*干*牛比*牛*J L圖4.14正弦曲線18編寫程序,在屏幕上輸出一個(gè)由*號圍成的空心圓。19編寫程序,在

5、屏幕上繪制如圖余弦曲線和直線。若屏幕的橫向?yàn)閤軸,縱向?yàn)閥軸,在屏幕上顯示 0360度的cos(x)曲線與直線 x=f(y)=45*(y-1)+31 的迭加圖形。其中 cos圖形用表示,f(y)用"+"表示,在兩個(gè)圖形的交點(diǎn)處則用f(y)圖形的符號*育*#*矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離知識就是力量知識就是力量*十+*十圖 4.15余弦曲線和直線20編寫程序,輸出如圖所示高度為n的圖形12345678g101112131415IS1713192021222324252627ZB23303132S3343536圖4.15臚田時(shí)的數(shù)字正方形21編寫程序,輸出

6、如圖所示高度為n的圖形13610162125914204313IP71218111716圖4.17 口=g時(shí)的數(shù)字倒三角* * 知識就是力量2 3 4 512 3 4112 311121111圖4.16 *5時(shí)的數(shù)宇矩形23輸入n值,輸出如圖所示的 nx n(n<10)階螺旋方陣。1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9圖4.19 n=5時(shí)的螺旋方陣24輸入n值,輸出如圖所示回型方陣。圖乩加回形方陣25輸出如圖所示的數(shù)字金字塔前育才"*尹聲聲女聲矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離矢

7、口 Tzt St*11 2 113 3 2 112 3 4 3 2 1123J54321123456!5d 3211234557S543212345S78765431234B673987654圖4,21 *5時(shí)的數(shù)字金字塔26輸入n值,輸出如圖所示圖形IV VUT5RRQP 0M 皿L圖d.22 n=5時(shí)的空心菱形27輸入頂行字符和圖形的高,輸出如圖所示圖形Afi BC CDDEEDDC CE Ba圖4.23頂行字符為小,高為5的菱形28輸入首字符和高后,輸出如圖所示回型方陣。前育才"*尹聲聲女聲知識就是力量煮帝 壽貴衽 壽曹高 高聲杳圖4.24首字符為A'、高為5的方陣知識

8、就是力量29輸入中心字符和高后,輸出如圖所示回型方陣。圖4.25中心字符為'Z'、高為5的方陣30編寫程序,輸出如圖所示上三角形式的乘法九九表。3 4e 30 1216510152025121E243036?1421283542498162432404S56S4918273646546372S1圖4. 20上三角乘法九九表前育才"*尹聲聲女聲矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離矢口 Tzt St*31編寫程序,輸出如圖所示下三角乘法九九表。1234567393164 7249 56 5336 42 48 5425303640451620242632359

9、 1215182124276 810121416IS3 456789圖4. 27下三角乘法九九表32編寫程序,輸入三角型的三條邊長,求其面積。注意:對于不合理的邊長輸入要輸出數(shù)據(jù)錯(cuò)誤的提示信息。33編寫程序求出 555555的約數(shù)中最大的三位數(shù)是多少。34編寫程序計(jì)算下列算式的值:1 1 1 1C = 1 +bb 一 十 (玄>1)1 f>4K K X K直到某一項(xiàng) A<=0.000001時(shí)為止。輸出最后C的值。35從鍵盤輸入任意的字符,按下列規(guī)則進(jìn)行分類計(jì)數(shù)。第一類 '0', '1', 2, '3', '4',

10、 '5', '6' , '7', '8', '9'第二類'+', '-','*','/', '%','='第三類其它字符當(dāng)輸入字符''時(shí)先計(jì)數(shù),然后停止接收輸入,打印計(jì)數(shù)的結(jié)果。(t)36對從鍵盤上輸入的行、單詞和字符進(jìn)行計(jì)數(shù)。我們將單詞的定義進(jìn)行化簡,認(rèn)為單詞是不包含空格、制表符矢口 Tzt St*及換行符的字符序列。例如:"a+b+c",認(rèn)為是1個(gè)單詞,它由5個(gè)字符組成。又如:&q

11、uot;xy abc",為2個(gè)單詞,6個(gè)字符。一般用CTRL+D作為文件結(jié)束標(biāo)記,其字符碼值為-1 ,當(dāng)輸入CTRL+D時(shí)表示文件輸入結(jié)束,停止計(jì)數(shù)。epsilon (例如:epsilon=0.000001 ):37編寫程序計(jì)算當(dāng)x=0.5時(shí)下述級數(shù)和的近似值,使其誤差小于某一指定的值x + + i 3*1J 5+27+3138編寫程序計(jì)算下式的值:10050101Nk 十Xl+k+Zk=lk=lk39編寫程序計(jì)算下列序列的值:1111 11+十+十十+1X2 2X3 3X4 4X5IJX(N+1)要求最后一項(xiàng)小于0.001時(shí)、或者當(dāng) N=20時(shí)尚未達(dá)到精度要求,則停止計(jì)算。40已知

12、求正弦 sin(x)的近似值的多項(xiàng)式公式為:x3/isin(k) = x+ + p-Tb,+ + (-1)1十3J5J1(2n+l)矢口 Tzt St*編寫程序,要求輸入x和£ ,按上述公式計(jì)算sin(x)的近似值,要求計(jì)算的誤差小于給定的£ o41從鍵盤輸入十個(gè)整數(shù),用插入法對輸入的數(shù)據(jù)按照從小到大的順序進(jìn)行排序,將排序后的結(jié)果輸出。42輸入一個(gè)正整數(shù),要求以相反的順序輸出該數(shù)。例如輸入12345,輸出位54321。43編寫程序,讀入一個(gè)整數(shù)N;若N為非負(fù)數(shù),則計(jì)算N到2 XN之間的整數(shù)和;若N為一個(gè)負(fù)數(shù),則求2 X N到N之間的整數(shù)和。分別利用for和while寫出兩個(gè)

13、程序。44求解愛因斯坦數(shù)學(xué)題。有一條長階梯,若每步跨 2階,則最后剩余1階,若每步跨 3階,則最后剩 2階,若每步跨5階,則最后剩 4階,若每步跨 6階則最后剩5階,若每步跨 7階,最后才正好一階不剩。請問,這條階梯共有多少階?45一個(gè)自然數(shù)被 8除余1,所得的商被 8除也余1,再將第二次的商被8除后余7,最后得到一個(gè)商為a。又知這個(gè)自然數(shù)被17除余4, ?所得的商被17除余15,最后得到一個(gè)商是a的2倍。編寫程序求這個(gè)自然數(shù)。矢口 Tzt St*46編寫程序,用二分法求一元二次方程2x3-4x2+3x-6=0 在(10, 10)區(qū)間的根。47中國古代科學(xué)家祖沖之采用正多邊形逼近的割圓法求出了

14、無的值。請編寫一程序,采用割圓法 求出無的值,要求精確到小數(shù)點(diǎn)之后的第十位。48A、B、C、D、E五人在某天夜里合伙去捕魚,到第二天凌晨時(shí)都疲憊不堪,于是各自找地方睡覺。日上三竿, A第一個(gè)醒來,他將魚分為五份,把多余的一條魚扔掉,拿走自己的一份。B第二個(gè)醒來,也將魚分為五份,把多余的一條魚扔掉,拿走自己的一份。C、D、E依次醒來,也按同樣的方法拿魚。編寫程序求出他們合伙至少捕了多少條魚。49 一輛卡車違犯交通規(guī)則,撞人逃跑?,F(xiàn)場三人目擊事件,但都沒記住車號,只記下車號的一些特征。甲說:牌照的前兩位數(shù)字是相同的;乙說:牌照的后兩位數(shù)字是相同的;丙是位數(shù)學(xué)家,他說:四位的車號剛好是一個(gè)整數(shù)的平方

15、。請根據(jù)以上線索求出車號。50若一個(gè)口袋中放有12個(gè)球,其中有 3個(gè)紅的,3個(gè)白的和6個(gè)黑的,每次從中任取8個(gè)球,編寫程序求出共有多少種不同的顏色搭配。51100匹馬馱100擔(dān)貨,大馬一匹馱3擔(dān),中馬一匹馱2擔(dān),小馬兩匹馱1擔(dān)。試編寫程序計(jì)算大、中、小馬的數(shù)目。52編寫程序,輸出用一元人民幣兌換成1分、2分和5分硬幣的不同兌換方法。53顯示200以內(nèi)的完全平方數(shù)和它們的個(gè)數(shù)。(完全平方數(shù):A2+B2=C2,求A、B、C)54設(shè)N是一個(gè)四位數(shù),它的 9倍恰好是其反序數(shù)(例如:123的反序數(shù)是 321 ),求N的值。55將一個(gè)數(shù)的數(shù)碼倒過來所得到的新數(shù)叫原數(shù)的反序數(shù)。如果一個(gè)數(shù)等于它的反序數(shù),則稱

16、它為對稱數(shù)。求不超過1993的最大的二進(jìn)制的對稱數(shù)。56編寫程序求解下式中各字母所代表的數(shù)字。PEARAR A*#* 口 Tz上*十PEA57 一個(gè)自然數(shù)的七進(jìn)制表達(dá)式是一個(gè)三位數(shù),而這個(gè)自然數(shù)的九進(jìn)制表示也是一個(gè)三位數(shù),且這 兩個(gè)三位數(shù)的數(shù)碼順序正好相反,求這個(gè)三位數(shù)。58請驗(yàn)證2000以內(nèi)的哥德巴赫猜想,對于任何大于4的偶數(shù)均可以分解為兩個(gè)素?cái)?shù)之和59如果一個(gè)正整數(shù)等于其各個(gè)數(shù)字的立方和,則稱該數(shù)為阿姆斯特朗數(shù)(亦稱為自戀性數(shù))。如407=43+03+73就是一個(gè)阿姆斯特朗數(shù)。編寫程序求 1000以內(nèi)的所有阿姆斯特朗數(shù)。60任意輸入一個(gè)偶數(shù),請將它分解為兩個(gè)素?cái)?shù)之和*育*#*矢口 弟丸2

17、'里.優(yōu)肯直離曲者離#者含離矢口 Tzt St*61如果整數(shù)A的全部因子(包括1 ,不包括A本身)之和等于B;且整數(shù)B的全部因子3000以內(nèi)的全部親密數(shù)。不包括B本身)之和等于A ,則將整數(shù)A和B稱為親密數(shù)。求62猜數(shù)游戲。由計(jì)算機(jī) "想"一個(gè)數(shù)請人猜,如果人猜對了,則結(jié)束游戲,否則計(jì)算機(jī)給出提示, 告訴人所猜的數(shù)是太大還是太小,直到人猜對為止。計(jì)算機(jī)記錄人猜的次數(shù),以此可以反映出猜 數(shù)者"猜"的水平。63編寫程序求出1000!后有多少個(gè)零。64求矩陣 A2*3的轉(zhuǎn)置矩陣 B3*2。設(shè)矩陣 A為:r 1 2 3 -| r 1 4 -|A = |

18、| B = | 2 5 |L 4 5 6L 3 665十個(gè)小孩圍成一圈分糖果,老師分給第一個(gè)小孩10塊,第二個(gè)小孩2塊,第三個(gè)小孩 8塊,第四個(gè)小孩22塊,第五個(gè)小孩16塊,第六個(gè)小孩4塊,第七個(gè)小孩 10塊,第八個(gè)小孩 6塊,第九個(gè)小孩14塊,第十個(gè)小孩 20塊。然后所有的小孩同時(shí)將自己手中的糖分一半給右邊的小孩;糖塊數(shù)為奇數(shù)的人可向老師要一塊。問經(jīng)過這樣幾次調(diào)整后大家手中的糖的塊數(shù)都一樣?每人各有多少塊糖?66輸入5X5的數(shù)組,編寫程序?qū)崿F(xiàn):(1)求出對角線上各元素的和;(2)求出對角線上行、列下標(biāo)均為偶數(shù)的各元素的積;(3)找出對角線上其值最大的元素和它在數(shù)組中的位置。67編寫程序,以字

19、符形式輸入一個(gè)十六進(jìn)制數(shù),將其變換為一個(gè)十進(jìn)制整數(shù)后輸出。68編寫程序,輸入一個(gè)十進(jìn)制整數(shù),將其變換為二進(jìn)制后儲存在一個(gè)字符數(shù)組中。69編寫程序,輸出 1000以內(nèi)的所有完數(shù)及其因子。所謂完數(shù)是指一個(gè)整數(shù)的值等于它的因子之和,例如6的因子是1、2、3,而6=1+2+3 ,故6是一個(gè)完數(shù)。矢口 Tzt St*70對數(shù)組A中的N (0< N< 100=個(gè)整數(shù)從小到大進(jìn)行連續(xù)編號,輸出各個(gè)元素的編號。要求不A=(5,3,4,7,3,5,6)則能改變數(shù)組A中元素的順序,且相同的整數(shù)要具有相同的編號。例如數(shù)組是:輸出為:(3,1,2,5,1,3,4)71現(xiàn)將不超過2000的所有素?cái)?shù)從小到大排

20、成第一行,第二行上的每個(gè)數(shù)都等于它"右肩”上的素?cái)?shù)與"左肩”上的素?cái)?shù)之差。請編程求出:第二行數(shù)中是否存在這樣的若干個(gè)連續(xù)的整數(shù),它們的和恰好是1898 ?假如存在的話,又有幾種這樣的情況?第一行:2 3 5 7 11 13 17 .1979 1987 1993第二行:1 2 2 4 2 4 .8 672將1、2、3、4、5、6、7、8、9九個(gè)數(shù)字分成三組,每個(gè)數(shù)字只能用一次,即每組三個(gè)數(shù)不許有重復(fù)數(shù)字,也不許同其它組的三個(gè)數(shù)字重復(fù),要求將每組中的三位數(shù)組成一個(gè)完全平方數(shù)。73 一個(gè)自然數(shù)的七進(jìn)制表達(dá)式是一個(gè)三位數(shù),而這個(gè)自然數(shù)的九進(jìn)制表示也是一個(gè)三位數(shù),且這兩個(gè)三位數(shù)的數(shù)碼

21、順序正好相反,求這個(gè)三位數(shù)。74使用數(shù)組精確計(jì)算 M/N(0<M<N<=100)的各小數(shù)位的值。如果 M/N是無限循環(huán)小數(shù),則計(jì)算并輸出它的第一循環(huán)節(jié),同時(shí)要求輸出循環(huán)節(jié)的起止位置(小數(shù)的序號)。為了實(shí)現(xiàn)高精度計(jì)算結(jié)果,可將商M存放在有N (N>1)個(gè)元素的一維數(shù)組中,數(shù)組的每個(gè)元素存放一位十進(jìn)制數(shù),即商的第一位存放在第一個(gè)元素中,商的第二位存放在第二個(gè)元素中,依次類推。這樣可使用數(shù)組來表示計(jì)算的結(jié)果。75使用數(shù)組完成兩個(gè)超長(長度小于10 0)正整數(shù)的加法。為了實(shí)現(xiàn)高精度的加法,可將正整數(shù)M存放在有N (N>1)個(gè)元素的一維數(shù)組中,數(shù)組的每個(gè)元素存放一位十進(jìn)制數(shù)

22、,即個(gè)位存放在第一個(gè)元素中,十位存放在第二個(gè)元素中 ,依次類推。這樣通過對數(shù)組中每個(gè)元素的按位加法就可實(shí)現(xiàn)對超長正整數(shù)的加法。76使用數(shù)組完成兩個(gè)超長(長度小于10 0)正整數(shù)的加法。為了實(shí)現(xiàn)高精度的加法,可將正整數(shù)M存放在有N (N>1)個(gè)元素的一維數(shù)組中,數(shù)組的每個(gè)元素存放一位十進(jìn)制數(shù),即個(gè)位存放在第一個(gè)元素中,十位存放在第二個(gè)元素中 ,依次類推。這樣通過對數(shù)組中每個(gè)元素的按位加法就可實(shí)現(xiàn)對超長正整數(shù)的加法。前育才"*尹聲聲女聲矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離矢口 Tzt St*77使用數(shù)組完成兩個(gè)超長(長度小于10 0)正整數(shù)的乘法。78馬步遍歷問題:已

23、知國際象棋棋盤有 8*8共64個(gè)格子。設(shè)計(jì)一個(gè)程序,使棋子從某位置開始跳馬,能夠把棋盤上的格子走遍。每個(gè)格子只允許走一次。79八皇后問題:在一個(gè)8X8的國際象棋盤,有八個(gè)皇后,每個(gè)皇后占一格;要求棋盤上放上八個(gè)皇后時(shí)不會出現(xiàn)相互"攻擊”的現(xiàn)象,即不能有量個(gè)皇后在同一行、列或?qū)蔷€上。問共有多少種不同的方法。80編制一個(gè)計(jì)算函數(shù) y=f(x)的值程序,其中:-x + 2.5 0<= x <2y= 2 - 1.5(x-3)*(x-3) 2<= x <4x/2 - 1.5 4<= x <6矢口 Tzt St*81編寫程序,實(shí)現(xiàn)比較兩個(gè)分?jǐn)?shù)的大小。82求這

24、樣一個(gè)三位數(shù),該三位數(shù)等于其每位數(shù)字的階乘之和。即: abc = a! + b! + c!83已知兩個(gè)平方三位數(shù)abc和xyz ,其中數(shù)碼 a、b、c、x、y、z未必是不同的;而 ax、by、cz是三個(gè)平方二位數(shù)。編寫程序,求三位數(shù)abc和xyz。任取兩個(gè)平方三位數(shù)n和n1,將n從高向低分解為a、b、c,將n1從高到低分解為x、y、z。判斷ax、by、cz是否均為完全平方數(shù)。84找出一個(gè)二維數(shù)組中的鞍點(diǎn),即該位置上的元素是該行上的最大值,是該列上的最小值。二維 數(shù)組也可能沒有鞍點(diǎn)。85將數(shù)字1、2、3、4、5、6填入一個(gè) 2行3列的表格中,要使得每一列右邊的數(shù)字比左邊的數(shù)字大,每一行下面的數(shù)字

25、比上面的數(shù)字大。編寫程序求出按此要求可有幾種填寫方法?86編寫一個(gè)函數(shù)實(shí)現(xiàn)將字符串strl和字符串str2合并,合并后的字符串按其ASCII碼值從小到大進(jìn)行排序,相同的字符在新字符串中只出現(xiàn)一次。87已知計(jì)算x的n階勒讓德多項(xiàng)式值的公式如下:1 (n=0)Pn(x) = x (n=1)(2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x)/n (n>1)請編寫遞歸程序?qū)崿F(xiàn)。88編寫函數(shù),采用遞歸方法實(shí)現(xiàn)將輸入的字符串按反序輸出。89編寫函數(shù),采用遞歸方法在屏幕上顯示如下楊輝三角形:11 11 2 11 3 3 1前育才"*尹聲聲女聲*1 5 10 10 5 1知識就是力量

26、知識就是力量*90編寫函數(shù),采用遞歸方法將任一整數(shù)轉(zhuǎn)換為二進(jìn)制形式。91設(shè)有字母a、b、c,請編程用遞歸的方法產(chǎn)生由這些字母組成的,且長度為n的所有可能的字符串。例如,輸入 n=2 ,則輸出:aa ab ac ba bb bc ca cb cc92將一個(gè)數(shù)的數(shù)碼倒過來所得到的新數(shù),叫作原數(shù)的反序數(shù),如果一個(gè)數(shù)等于它的反序數(shù),則稱它為對稱數(shù)。編寫程序,采用遞歸算法求不超過1993的最大的二進(jìn)制的對稱數(shù)。93從1到n(n<1000)個(gè)自然數(shù)中選出r個(gè)數(shù)進(jìn)行組合,并按指定的格式輸出組合的結(jié)果。例如:n=5 , r=3時(shí),共有10種組合,運(yùn)行程序,要按下面的格式輸出:1 2 3453 454 5

27、2 3 454 53 4 5請用遞歸算法實(shí)現(xiàn)。94從鍵盤輸入十個(gè)整數(shù),用合并排序法對輸入的數(shù)據(jù)按照從小到大的順序進(jìn)行排序,將排序后的結(jié)果輸出。95編寫程序,讀入一個(gè)以符號"."結(jié)束的長度小于 20字節(jié)的英文句子,檢查其是否為回文(即正讀和反讀都是一樣的,不考慮空格和標(biāo)點(diǎn)符號)。例如:前育才"*尹聲聲女聲矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離知識就是力量讀入句子: MADAM I'M ADAM.它是回文,所以輸出:YES讀入句子:ABCDBA). 它不是回文,所以輸出:NO96編寫程序,其中包括一個(gè)函數(shù),此函數(shù)的功能是:對一個(gè)長度為N的字符串從其

28、第K個(gè)字符起,刪去M個(gè)字符,組成長度為 N-M的新字符串(其中N、M<=80,K<=N)。例如輸入字符串"We arepoor students.",利用此函數(shù)進(jìn)行刪除"poor"的處理,輸出處理后的字符串是"We are students."。97編寫函數(shù),通過指針將一個(gè)字符串反向。98編寫一個(gè)函數(shù)insert(s1,s2,ch),實(shí)現(xiàn)在字符串s1中的指定字符 ch位置處插入字符串s299編寫程序?qū)⑤斎氲膬尚凶址B接后,將串中全部空格移到串首后輸出。100編寫程序,輸入字符串,分別統(tǒng)計(jì)字符串中所包含的各個(gè)不同的字符及其

29、各自字符的數(shù)量。如:輸入字符串:abcedabcdcd則輸出:a=2 b=2 c=3 d=3 e=1 。*育*#*矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離矢口 Tzt St*101 利用結(jié)構(gòu):struct complx int real ; int im ; ;編寫求兩個(gè)復(fù)數(shù)之積的函數(shù)cmult ,并利用該函數(shù)求下列復(fù)數(shù)之積:(1) (3+4i) x(5+6i) (2) (10+20i) x (30+40i102編寫成績排序程序。按學(xué)生的序號輸入學(xué)生的成績,按照分?jǐn)?shù)由高到低的順序輸出學(xué)生的名次、該名次的分?jǐn)?shù)、相同名次的人數(shù)和學(xué)號;同名次的學(xué)號輸出在同一行中,一行最多輸出10個(gè)學(xué)號。1

30、03編寫程序,實(shí)現(xiàn)輸入的時(shí)間屏幕顯示一秒后的時(shí)間。顯示格式為HH:MM:SS o程序需要處理以下三種特殊情況:(1)若秒數(shù)加1后為60,則秒數(shù)恢復(fù)到0,分鐘數(shù)增加 1; 若分鐘數(shù)加1后為60,則分鐘數(shù)恢復(fù)到 0,小時(shí)數(shù)增加 1;若小時(shí)數(shù)加1后為24 ,則小時(shí)數(shù)恢復(fù)到0。104編寫程序,從鍵盤輸入 3個(gè)學(xué)生的數(shù)據(jù),將它們存入文件student ;然后再從文件中讀出數(shù)據(jù),顯示在屏幕上。105編寫程序,從鍵盤輸入一行字符串,將其中的小寫字母全部轉(zhuǎn)換成大寫字母,然后輸出到一個(gè)磁盤文件"test"中保存。106編寫程序,讀入磁盤上C語言源程序文件"test8.c"

31、,刪去程序中的注釋后顯示。矢口 Tzt St*【編寫程序題參考答案1參考答案: #include <stdio.h> main() int year ;float money,rate,total ; /* money:本金 rate:月利率 total:本利合計(jì) */ printf("Input money and year =?");scanf("%f%d", &money, &year) ; /* 輸入本金和存款年限*/if(year=1) rate=0.00315; /* 根據(jù)年限確定利率*/else if(year=

32、2) rate=0.00330;else if(year=3) rate=0.00345;else if(year=5) rate=0.00375;else if(year=8) rate=0.00420;else rate=0.0 ;total=money + money * rate *12 * year ; /* 計(jì)算到期的本利合計(jì) */ printf(" Total = %.2fn", total) ; 2參考答案:#include <stdio.h> main() int year, month, days ;printf("Enter ye

33、ar and month:") ; scanf("%d%d", &year, &month) ; switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31 ;break;/* 處理"大"月 */case 4: case 6: case 9: case 11: days=30 ;break;/* 處理"小"月 */case 2: if(year%4=0&&year%100!=0 | year%

34、400=0)days=29 ;/*處理閏年平月*/else days=28 ; /*處理不是閏年平月*/break ;default: printf("Input error!n") ;/* 月份錯(cuò)誤 */days=0 ; if( days!=0 ) printf("%d, %d is %d daysn", year, month, days) 3參考答案:#include <stdio.h> main ()*/ float data1, data2 ; /* 定義兩個(gè)操作數(shù)變量 char op ; /* 操作符 */*育*#*矢口 弟丸2

35、'里.優(yōu)肯直離曲者離#者含離矢口 Tzt St*/*輸入表達(dá)式*/*/printf("Enter your expression:") ; scanf("%f%c%f”, &data1, &op, &data2)switch(op) /*根據(jù)操作符分別進(jìn)行處理 case '+':/*處理加法 */printf("%.2f+%.2f=%.2fn", datal, data2, data1+data2) ; break ; case '-':/*處理減法*/printf("%

36、.2f-%.2f=%.2fn", datal, data2, data1-data2) ; break ;case '*':/*處理乘法*/printf("%.2f*%.2f=%.2fn", datal, data2, data1*data2) ; break ; case '/':/*處理除法*/if( data2=0 ) /* 若除數(shù)為 0 */printf("Division by zero.n") ;elseprintf("%.2f/%.2f=%.2fn", datal, data2,

37、 data1/data2) ; break ;default: /* 輸入了其它運(yùn)算符 */ printf("Unknown operater.n") ;4分析:打印此圖形用兩重循環(huán)實(shí)現(xiàn)。圖形要重復(fù)n行,故采用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)循環(huán)n次,循環(huán)體內(nèi)部打印一行 *號,把上述思路表示為: for(i=1 ; i<=n ; i+)打印一行,號;每行有n個(gè)'*號,再采用循環(huán)結(jié)構(gòu)實(shí)現(xiàn) n次循環(huán),循環(huán)內(nèi)部用格式輸出語句打印一個(gè)*號,即: for(j=1 ; j<=n ; j+) printf("*");按照上述思路,實(shí)現(xiàn)打印矩形。參考答案:main()

38、int i,j,n ;printf("nPlease Enter n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) for(j=1 ; j<=n ; j+)printf("*");printf("n");5分析:此圖形和上題的區(qū)別在于在每一行先要打印空格,然后再打印n個(gè)'*'號,在上題第一層循環(huán)體內(nèi)打印'*號的循環(huán)前面增加一個(gè)循環(huán)打印空格。每行空格的個(gè)數(shù)是逐行減少的,由于第一層循環(huán)的控制變量i是逐行增1,所以用一個(gè)固定值的數(shù)減去i就可實(shí)現(xiàn)對

39、空格個(gè)數(shù)的控制,在此題中固定值可使用變量no參考答案:矢口 Tzt St* int i,j,n ;printf("nPlease Enter n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) for(j=1 ; j<=n-i ; j+)printf("");for(j=1 ; j<=n ; j+)printf("*");printf("n");6分析:此題和上題的區(qū)別在于每行'*'的數(shù)量逐行減少,可以使用上題控制空格個(gè)數(shù)的

40、思路來控制*'號的個(gè)數(shù),請注意每行'*'的個(gè)數(shù)都是奇數(shù)。參考答案:main() int i,j,n ;printf("nPlease Enter n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) for(j=1 ; j<=n-i ; j+)printf("");for(j=1 ; j<=2*i-1 ; j+)printf("*");printf("n");7分析:此題圖形是第 3題圖形的垂直反轉(zhuǎn),在編程上我們可以變

41、換一個(gè)思路。對于圖形中的第i行(1 & i& n),共需要輸出2n-i個(gè)字符,其中前面的 i-1個(gè)字符為空格,后面的字符為 *'號。按照這一思路可以編寫出如下程序。參考答案:main() int i,j,n ;printf("nPlease Enter n:");scanf("%d", &n);for( i=1 ; i<=n ; i+ ) /* 重復(fù)輸出圖形的 n行*/ for( j=1 ; j<=2*n-i ; j+ ) /*重復(fù)輸出圖形一行中的每個(gè)字符*/if(j<=i-1) printf("

42、; ");/* 輸出前面的空格*/else printf("*") ;/* 輸出后面的 * 號 */printf("n");8分析:此題和第3題的區(qū)別僅是每行的*'個(gè)數(shù)增加n-1個(gè)。參考答案:main()矢口 Tzt St* int i,j,n ;printf("nPlease Enter n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) for(j=1 ; j<=n-i ; j+)printf("");for(j=1 ; j

43、<=2*i-1+(n-1) ; j+)printf("*");printf("n");9分析:對于空心圖形,我們可以在上題的基礎(chǔ)上,對于打印'*'號的循環(huán)進(jìn)行修改,僅在循環(huán)開始值 (j=1)和循環(huán)結(jié)束值(j=2*(i-1)+n)時(shí)打印'*'號,其它位置都打印空格。另一種思路是將每行打印的空格和'*'的兩個(gè)循環(huán)合為一體考慮,在判斷出需要打印'*'的兩個(gè)位置及第一行和最后一行相應(yīng)位置外,其余位置都打印空格。參考答案:main() int i,j,n ;printf("nPleas

44、e Enter n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) for(j=1 ; j<=2*n+i-3 ; j+)if(j=n-i+1 | j>n-i+1 && (i=1|i=n) printf("巧;else printf(""); printf("*n"); 10分析:此圖形可以理解為兩個(gè)空心梯形反向連接而成,因此可以利用上題的思路進(jìn)行輸出 參考答案:main() int i,j,n ;printf("nPlease Ent

45、er n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) /* 輸出圖形的上半部分(含中心行)*/ for(j=1 ; j<=2*n-i-1 ; j+)if(j=i) printf("*") ;else printf("");printf("*n");for(i=1 ; i<n ; i+) /*輸出圖形的下半部分(不含中心行)*/ for(j=1 ; j<=n+i ; j+)if(j=n-i) printf("*") ;el

46、se printf("");*育才*#*'里情*離離/離#吉曾太* 口 Tz3 .34_上*)*育*#*矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離* * 知識就是力量11分析:此題與上題的區(qū)別在于打印'*'號的位置不同,編程時(shí)要找出應(yīng)打印'*'號的位置和兩個(gè)循環(huán)變量i、j以及行數(shù)n的關(guān)系 參考答案:main() int i,j,n ;printf("nPlease Enter n:");scanf ("%d", &n);for(i=1 ; i<=n ; i+)/* 輸出圖形

47、的上半部分(含中心行)*/ for(j=1 ; j<=2*n-i ; j+)if(j=n-i+1 | j>n-i+1 && i=1) printf("*") ;else printf("");printf("*n");for(i=1 ; i<n; i+) /*輸出圖形的下半部分(不含中心行)*/ for(j=1 ; j<=3*(n-1)-i ; j+)if(j=i+1 | j>i+1 && i=n-1) printf("*") ;else printf(

48、"");printf("*n");12參考答案:main() int i,j,n ;printf("nPlease Enter n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) for(j=1 ; j<=n ; j+)if(j=n-i+1 | i=1 | i=n) printf("*") ;else printf("");printf("n");13參考答案:main() int i,j,n ;print

49、f("nPlease Enter n:");scanf("%d", &n);for(i=1 ; i<=n ; i+) /* 輸出圖形的上半部分(含中心行)*/ for(j=1 ; j<=n-i ; j+)if(j=1 | j=n-i+1) printf("*");else printf("");printf("n");矢口 Tzt St*/for(i=1 ; i<n ; i+) /* 輸出圖形的下半部分(不含中心行)for(j=1 ; j<=i+1 ; j+) i

50、f(j=1 | j=i+1) printf("* ") else printf(""); printf("n"); 14參考答案: main() int i,j,n ; printf("nPlease Enter n:"); scanf("%d",&n); for(i=1 ; i<=n ; i+) for(j=1 ; j<=n ; j+) if(j=1 | j=i | j=n) printf("*") else printf("");

51、printf("n"); 15參考答案: main() int i,j,n ;printf("nPlease Enter n:");scanf("%d",&n);for(i=1 ; i<=n ; i+) for(j=1 ; j<=n+i-1 ; j+)if(j>n-i) printf("*") ;else printf("");printf("n");for(i=1 ; i<n ; i+) for(j=1 ; j<=2*n-i-1 ; j

52、+)if(j>i) printf("*") ;else printf("");printf("n");16參考答案:main() int i,j,n ;printf("nPlease Enter n:");scanf("%d",&n); for(i=1 ; i<=n ; i+)前育才"*尹聲聲女聲矢口 弟丸2 '里.優(yōu)肯直離曲者離#者含離知識就是力量知識就是力量*xx*xx* for(j=1 ; j<=n+i-2 ; j+) if(j=n-i+1) p

53、rintf("*") else printf("");printf("*n");17分析:首先對圖形進(jìn)行設(shè)計(jì),坐標(biāo)的 X軸和Y軸分別對應(yīng)屏幕的列和行,一個(gè)正弦函數(shù)的周期為0360度,我們把一個(gè)步長定義為 10度,打印時(shí)每換一行等于函數(shù)的自變量增加10度;屏幕的列寬為 80,函數(shù)值為 0對應(yīng)屏幕的第40列,sin(x)的值在-11 ,變換成列數(shù)為以0為中心的-3030,對應(yīng)屏幕上第 1070歹U。設(shè)計(jì)程序時(shí),控制換行的自變量i乘以10得到正弦函數(shù)的 X值,調(diào)用庫函數(shù) sin()求出函數(shù)值再乘以30輸出的列寬,因?yàn)槲覀円云聊坏牡?0列為0

54、點(diǎn),故再加上 40得到應(yīng)在屏幕上顯示的點(diǎn)。參考答案:#define PAI 3.14159#include <math.h>main() double x ; int y,i,yy ;for(i=1 ; i<80 ; i+) /*打印圖形的第一行*/if(i=40) printf("*") ;/* i 控制打印的列位置*/ else printf("-");printf("n");for(x=10.0 ; x<=360.0 ; x+=10.) /* 從 10 度到 360 度 */ y = 40+30*sin(

55、x*PAI/180.0);/* 計(jì)算對應(yīng)的列 */yy = 40>y ? 40 : y ; /*下一行要打印的字符總數(shù)*/for (i=1 ; i<=yy ; i+) /* 控制輸出圖形中的一行*/ if(i=y) printf("*") ; /* i 控制打印的列位置 */else if(i=40) printf("|") ;/* 打印中心的豎線*/else printf("");printf("n");18分析:首先設(shè)計(jì)屏幕圖形,如果預(yù)計(jì)圓形在屏幕上打印20行,所以定義圓的直徑就是20,半徑為10,

56、圓的方程是X2 X Y2=R2,因?yàn)閳D形不是從中心開始打印而是從邊沿開始,所以丫從10變化到-10,根據(jù)方程求出 X,對求得的X值再根據(jù)屏幕行寬進(jìn)行必要的調(diào)整得到應(yīng)打印的屏幕位置。參考答案:#include <math.h>main() double y ;int x,m ;for(y=10 ; y>=-10 ; y-) /* 圓的半徑為 10 */ m = 2.5 * sqrt(100-y*y); /*計(jì)算行 y對應(yīng)的列坐標(biāo)m */*/for(x=1 ; x<30-m ; x+)printf(" ") ;/*輸出圓左側(cè)的空白*#* 口 Tz上*十p

57、rintf("*") ;/*輸出圓的左側(cè) */ for( ; x<30+m ; x+)printf(" ") ;/*輸出圓的空心部分 */printf("*n") ;/*輸出圓的右側(cè)*/19參考答案:#include <stdio.h>#include <math.h>main() double y ;int x, m, n, yy ;for( yy=0 ; yy<=20 ; yy+) y = 0.1*yy ;m = acos(1-y)*10 ;n = 45 * (y-1)+31;for( x=0 ; x<=62 ; x+ )if( x=m && x=n ) printf("+") ;else if(x=n) printf("+"

溫馨提示

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

最新文檔

評論

0/150

提交評論