




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、哈爾濱工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院蘇小紅C語言實驗1主教材:蘇小紅等,? C語言大學(xué)實用教程?,電子工業(yè)出版社,2004,8蘇小紅等,? C語言大學(xué)實用教程第2版?,電子工業(yè)出版社,2007,2實驗教材:蘇小紅等,?C語言大學(xué)實用教程習(xí)題與實驗指導(dǎo)?,電子工業(yè)出版社,2004,8蘇小紅等,?C語言大學(xué)實用教程學(xué)習(xí)指導(dǎo)?,電子工業(yè)出版社,2007,4實驗內(nèi)容實驗1: 熟悉上機環(huán)境和順序結(jié)構(gòu)編程練習(xí)鍵盤輸入與屏幕輸出練習(xí) 問題1:要使下面程序的輸出語句在屏幕上顯示1,2,34,那么從鍵盤輸入的數(shù)據(jù)格式應(yīng)為以下備選答案中的哪一個? #include main()char a,b; int c; sc
2、anf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);A) 1 2 34 B) 1, 2, 34 C) 1,2,34 D) 12 34實驗1: 熟悉上機環(huán)境和順序結(jié)構(gòu)編程練習(xí)鍵盤輸入與屏幕輸出練習(xí) 問題2:與上面程序的鍵盤輸入相同的情況下,要使上面程序的輸出語句在屏幕上顯示1 2 34,那么應(yīng)修改程序中的哪條語句?怎樣修改? #include main()char a,b; int c; scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);問題3:要使上面程序的鍵盤輸入數(shù)據(jù)格式為1,2,34,輸出語句在屏幕上顯示的結(jié)
3、果也為1,2,34,那么應(yīng)修改程序中的哪條語句?怎樣修改?#include main()char a,b; int c; scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);實驗1: 熟悉上機環(huán)境和順序結(jié)構(gòu)編程練習(xí)鍵盤輸入與屏幕輸出練習(xí) 問題4:要使上面程序的鍵盤輸入數(shù)據(jù)格式為1,2,34,而輸出語句在屏幕上顯示的結(jié)果為1,2,34,那么應(yīng)修改程序中的哪條語句?怎樣修改?提示:利用轉(zhuǎn)義字符輸出字符單引號字符。#include main()char a,b; int c; scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a
4、,b,c);實驗1: 熟悉上機環(huán)境和順序結(jié)構(gòu)編程練習(xí)鍵盤輸入與屏幕輸出練習(xí) 問題5:要使上面程序的鍵盤輸入無論用下面哪種格式輸入數(shù)據(jù),程序在屏幕上的輸出結(jié)果都為1,2,34,那么程序應(yīng)修改程序中的哪條語句?怎樣修改?第一種輸入方式:1,2,34以逗號作為分隔符第二種輸入方式:1 2 34以空格作為分隔符第三種輸入方式:1 2 34以Tab鍵作為分隔符第四種輸入方式:1 2 34以回車符作為分隔符 實驗1: 熟悉上機環(huán)境和順序結(jié)構(gòu)編程練習(xí)鍵盤輸入與屏幕輸出練習(xí) 實驗1: 熟悉上機環(huán)境和順序結(jié)構(gòu)編程練習(xí)計算定期存款本利之和 設(shè)銀行定期存款的年利率rate為2.25%,并存款期為n年,存款本金為ca
5、pital元,試編程計算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由鍵盤輸入。 實驗2: 選擇結(jié)構(gòu)編程練習(xí)身高預(yù)測 每個做父母的都關(guān)心自己孩子成人后的身高,據(jù)有關(guān)生理衛(wèi)生知識與數(shù)理統(tǒng)計分析說明,影響小孩成人后身高的因素有遺傳、飲食習(xí)慣與堅持體育鍛煉等。小孩成人后身高與其父母身高和自身性別密切相關(guān)。設(shè)faHeight為其父身高,moHeight為其母身高,身高預(yù)測公式為:男性成人時身高 = (faHeight + moHeight) * 0.54(cm)女性成人時身高 = (faHeight * 0.923 + moHeight) / 2(c
6、m)此外,如果喜愛體育鍛煉,那么可增加身高2%,如果有良好的衛(wèi)生飲食習(xí)慣,那么可增加身高1.5%。實驗2: 選擇結(jié)構(gòu)編程練習(xí)身高預(yù)測 編程從鍵盤輸入你的性別用字符型變量sex存儲,輸入字符F表示女性,輸入字符M表示男性、父母身高用實型變量存儲,faHeight為其父身高,moHeight為其母身高、是否喜愛體育鍛煉用字符型變量sports存儲,輸入字符Y表示喜愛,輸入字符N表示不喜愛、是否有良好的飲食習(xí)慣等條件用字符型變量diet存儲,輸入字符Y表示喜愛,輸入字符N表示不喜愛,利用給定公式和身高預(yù)測方法對你的身高進行預(yù)測。 實驗2:選擇結(jié)構(gòu)編程練習(xí)簡單的計算器程序 要求用switch語句編程設(shè)
7、計一個簡單的計算器程序。要求根據(jù)用戶從鍵盤輸入的表達式:操作數(shù)1 運算符op 操作數(shù)2計算表達式的值,指定的算術(shù)運算符為加+、減-、乘*、除/。例4.8:計算器程序編程設(shè)計一個簡單的計算器程序,要求根據(jù)用戶從鍵盤輸入如下形式的表達式: 操作數(shù)1 運算符op 操作數(shù)2 然后,計算并輸出表達式的值 指定的運算符為 加+ 減- 乘* 除/ main()int data1, data2; /*定義兩個操作符*/char op; /*定義運算符*/printf(Please enter the expression:);scanf(%d%c%d, &data1, &op, &data2); /*輸入運算
8、表達式*/switch (op) case +: /*處理加法*/printf(%d + %d = %dn, data1, data2, data1 + data2); break;case -: /*處理減法*/printf(%d - %d = %dn, data1, data2, data1 - data2);break;case *: /*處理乘法*/printf(%d * %d = %dn, data1, data2, data1 * data2); break;case /: /*處理除法*/if (0 = data2) printf(Division by zero!n);else
9、 printf(%d/%d = %dn, data1, data2, data1/data2); break;default: printf(Unknown operator! n);例4.8實驗2:選擇結(jié)構(gòu)編程練習(xí)簡單的計算器程序 本實驗程序是在例4.8根底上,增加如下要求:1如果要求程序能進行浮點數(shù)的算術(shù)運算,程序應(yīng)該如何修改? 如何比較實型變量data2和常數(shù)0是否相等?2如果要求輸入的算術(shù)表達式中的操作數(shù)和運算符之間可以參加任意多空白符,那么程序如何修改?3選作題如果要求連續(xù)做屢次算術(shù)運算,每次運算結(jié)束后,程序都給出提示:Do you want to continue(Y/N or y
10、/n)?如果用戶輸入Y或y時,程序繼續(xù)進行其它算術(shù)運算,否那么程序才退出運行狀態(tài)。那么,程序如何修改? 語句 if (0 = data2)的必要性1998年11月?科學(xué)美國人?雜志,描述了美國導(dǎo)彈巡洋艦約克敦號上的一起事故,除零錯導(dǎo)致軍艦推進系統(tǒng)的關(guān)閉如果要求程序能進行浮點數(shù)的算術(shù)運算,語句 if (0 = data2)還能用于比較實型變量data2和常數(shù)0的大小嗎?if (fabs(data2) = 1e-7)如果要求輸入的算術(shù)表達式中的操作數(shù)和運算符之間可以參加任意多個空格符,那么程序如何修改?scanf(%d%c%d, &data1, &op, &data2);scanf(%d%1s%d
11、, &data1, &op, &data2);實驗2:選擇結(jié)構(gòu)編程練習(xí)簡單的計算器程序 實驗3:循環(huán)結(jié)構(gòu)編程練習(xí)猜數(shù)游戲 在這個實驗中,我們將嘗試編寫一個猜數(shù)游戲程序,這個程序看上去有些難度,但是如果你按以下要求以循序漸進方式進行編程實現(xiàn),你就會發(fā)現(xiàn)其實這個程序是很容易實現(xiàn)的。先編寫第一個程序,然后試著在第一個程序的根底上編寫第二個程序,。程序1:編程先由計算機“想一個1到100之間的數(shù)請人猜,如果人猜對了,那么計算機給出提示:“Right!, 否那么提示:“Wrong!,并告訴人所猜的數(shù)是大(Too high)還是小(Too low),然后結(jié)束游戲。要求每次運行程序時機器所“想的數(shù)不能都是一
12、樣的。 猜數(shù)游戲用到的庫函數(shù)隨機函數(shù)srand為函數(shù)rand()設(shè)置隨機數(shù)種子來實現(xiàn)對函數(shù)rand所產(chǎn)生的偽隨機數(shù)的 “隨機化 通過鍵入隨機數(shù)種子,產(chǎn)生0,100之間的隨機數(shù)scanf(%u, &seed); srand(seed); magic = rand() % 100 + 1; #include #include main() int magic; int guess; int counter; unsigned int seed; printf(Please enter seed:);scanf(%u, &seed);srand(seed);magic = rand() % 100
13、+ 1; counter = 0; doprintf(Please guess a magic number:);scanf(%d, &guess); counter +; if (guess magic) printf(Wrong! Too high!n);else if (guess magic) printf(Wrong! Too low!n);while (guess != magic); printf(Right!n); printf(counter = %d n, counter); 猜數(shù)游戲用到的庫函數(shù)使用計算機讀取其時鐘值并把該值自動設(shè)置為隨機數(shù)種子,產(chǎn)生0,100之間的隨機數(shù)
14、函數(shù)time()返回以秒計算的當前時間值,該值被轉(zhuǎn)換為無符號整數(shù)并用作隨機數(shù)發(fā)生器的種子 #include srand(time(NULL); magic = rand() % 100 + 1; #include #include #include main() int magic; int guess; int counter; srand(time(NULL);magic = rand() % 100 + 1; counter = 0; doprintf(Please guess a magic number:);scanf(%d, &guess); counter +; if (gues
15、s magic) printf(Wrong! Too high!n);else if (guess magic) printf(Wrong! Too low!n);while (guess != magic); printf(Right!n); printf(counter = %d n, counter); 程序2:編程先由計算機“想一個1到100之間的數(shù)請人猜,如果人猜對了,那么結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜的水平,否那么計算機給出提示,告訴人所猜的數(shù)是太大還是太小,直到人猜對為止。 實驗3:循環(huán)結(jié)構(gòu)編程練習(xí)猜數(shù)游戲 程序3:編程先由計算機“想一個1到
16、100之間的數(shù)請人猜,如果人猜對了,那么結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜的水平,否那么計算機給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,那么結(jié)束游戲。 實驗3:循環(huán)結(jié)構(gòu)編程練習(xí)猜數(shù)游戲 #include #include #include main() int magic; int guess; int counter; srand(time(NULL); magic = rand() % 100 + 1; counter = 0; doprintf(Please guess a magic number:);sca
17、nf(%d, &guess); counter +; if (guess magic) printf(Wrong! Too high!n);else if (guess magic) printf(Wrong! Too low!n);elseprintf(Right!n);while (guess != magic) & (counter 10); printf(counter = %d n, counter); 程序4:編程先由計算機“想一個1到100之間的數(shù)請人猜,如果人猜對了,并在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜的水平,且結(jié)束游戲,否那么計算機給出提示,告訴人所猜的
18、數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,那么停止本次猜數(shù),然后繼續(xù)猜下一個數(shù)。每次運行程序可以反復(fù)猜多個數(shù),直到操作者想停止時才結(jié)束。 實驗3:循環(huán)結(jié)構(gòu)編程練習(xí)猜數(shù)游戲 實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題 程序1:通過輸入兩個加數(shù)給學(xué)生出一道加法運算題,如果輸入答案正確,那么顯示“Right!,否那么顯示“Not correct! Try again!;實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題/* 函數(shù)功能: 計算兩整型數(shù)之和,如果與用戶輸入的答案相同,那么返回1,否那么返回0 函數(shù)參數(shù): 整型變量a和b,分別代表被加數(shù)和加數(shù) 函數(shù)返回值:當a加b的結(jié)果與用戶輸入的答案相
19、同時,返回1,否那么返回0*/int AddTest(int a, int b)int answer;printf(%d+%d=, a, b);scanf(%d, &answer);if (a+b = answer) return 1;else return 0;void Print(int flag) if (flag) printf(Right!n); else printf(Not correct!n);實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題 程序2:通過輸入兩個加數(shù)給學(xué)生出一道加法運算題,如果輸入答案正確,那么顯示“Right!,否那么顯示“Not correct! Try again!
20、,直到做對為止;main() int a, b, answer; printf(Input a,b:); scanf(%d,%d, &a, &b); answer = AddTest(a, b); Print(answer);do while (answer = 0);實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題 實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題 程序3:通過輸入兩個加數(shù)給學(xué)生出一道加法運算題,如果輸入答案正確,那么顯示“Right!,否那么提示重做,顯示“Not correct! Try again!,最多給三次時機,如果三次仍未做對,那么顯示“Not correct. You have tri
21、ed three times! Test over!程序結(jié)束;main() answer = AddTest(a, b); Print(answer, chance); chance = 0; do chance+; while (answer = 0 & chance 3);實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題 實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題 程序4:連續(xù)做10道題,通過計算機隨機產(chǎn)生兩個110之間的加數(shù)給學(xué)生出一道加法運算題,如果輸入答案正確,那么顯示“Right!,否那么顯示“Not correct!,不給時機重做,10道題做完后,按每題10分統(tǒng)計總得分,然后打印出總分和做錯的題目
22、數(shù)量。 srand(time(NULL); error = 0; score = 0; for (i=0; i10; i+) a = rand()%10 + 1; b = rand()%10 + 1; answer = AddTest(a, b); Print(answer); if (answer = 1) score = score + 10; else error+; 實驗4:函數(shù)編程練習(xí)小學(xué)生加法考試題 實驗5:數(shù)組編程練習(xí)檢驗并打印魔方矩陣 在下面的55魔方矩陣中,每一行、每一列、每一對角線上的元素之和都是相等的,試編寫程序?qū)⑦@些魔方矩陣中的元素讀到一個二維整型數(shù)組中,然后,檢驗其是
23、否為魔方矩陣,并將其按如下格式顯示到屏幕上。 17241815235714164613202210121921311182529實驗5:數(shù)組編程練習(xí)餐飲效勞質(zhì)量調(diào)查打分 有40個學(xué)生被邀請給自助餐廳的食品和效勞質(zhì)量打分110等級,統(tǒng)計調(diào)查結(jié)果,并用*打印如下形式的統(tǒng)計結(jié)果直方圖 Grade CountHistogram 1 5* 2 10* 3 7* .實驗5:數(shù)組編程練習(xí)餐飲效勞質(zhì)量調(diào)查打分 提示定義數(shù)組score存放打的分數(shù)定義數(shù)組count為計數(shù)器(count0不用)計算統(tǒng)計結(jié)果:設(shè)置一個循環(huán),依次檢查數(shù)組元素值scorei,是1那么將數(shù)組元素count1加1,是2那么將數(shù)組元素coun
24、t2加1,依此類推for (i=0; iSTUDENTS; i+)countscorei +;打印統(tǒng)計結(jié)果,設(shè)置一個循環(huán),按count數(shù)組元素的值,打印相應(yīng)個數(shù)的符號*實驗6:一維數(shù)組和函數(shù)綜合編程練習(xí) 學(xué)生成績統(tǒng)計 從鍵盤輸入一個班全班最多不超過30人學(xué)生某門課的成績,當輸入成績?yōu)樨撝禃r,輸入結(jié)束,分別統(tǒng)計以下內(nèi)容:1統(tǒng)計不及格人數(shù)并打印不及格學(xué)生名單;2統(tǒng)計成績在全班平均分及平均分之上的學(xué)生人數(shù)并打印其學(xué)生名單;3統(tǒng)計各分數(shù)段的學(xué)生人數(shù)及所占的百分比; 實驗6:一維數(shù)組和函數(shù)綜合編程練習(xí) 學(xué)生成績統(tǒng)計 提示:1用numi存放第i+1個學(xué)生的學(xué)號,用scorei存放第i+1個學(xué)生的成績。設(shè)置
25、計數(shù)器count,當scorei=aver時,打印numi和scorei。3將成績分為六個分數(shù)段,60分以下為第0段,6069為第1段,7079為第2段,8089為第3段,9099為第4段,100分為第5段,因此,成績與分數(shù)段的對應(yīng)關(guān)系為:各分數(shù)段的學(xué)生人數(shù)保存在數(shù)組stu中,用stui存放第i段的學(xué)生人數(shù)。對于每個學(xué)生的成績,先計算出該成績所對應(yīng)的分數(shù)段,然后將相應(yīng)的分數(shù)段的人數(shù)加1,即stui+。 實驗7:二維數(shù)組、函數(shù)和常用算法綜合編程練習(xí) 成績排名次 某班期末考試科目為數(shù)學(xué)(MT)、英語(EN)和物理(PH),有最多不超過30人參加考試??荚嚭笠螅?計算每個學(xué)生的總分和平均分;2按總
26、分成績由高到低排出成績的名次;3打印知名次表,表格內(nèi)包括學(xué)生編號、各科分數(shù)、總分和平均分;4任意輸入一個學(xué)號,能夠查找出該學(xué)生在班級中的排名及其考試分數(shù) 實驗7:二維數(shù)組、函數(shù)和常用算法綜合編程練習(xí) 成績排名次 提示:用二維數(shù)組score存放每個學(xué)生各門課程的成績,用一維數(shù)組num存放每個學(xué)生的學(xué)號,用一維數(shù)組sum存放每個學(xué)生的總分,用一維數(shù)組aver存放每個學(xué)生的平均分。1用函數(shù)編程實現(xiàn)計算每個學(xué)生的總分;2用函數(shù)編程實現(xiàn)按總分由高到低對學(xué)生成績排序,注意:排序時,一維數(shù)組sum元素的變化應(yīng)連同二維數(shù)組score和一維數(shù)組num和aver一起變化;3用函數(shù)編程實現(xiàn)查找學(xué)號為k的學(xué)生在班級中
27、的排名名次及相關(guān)成績等信息,找不到時返回-1值。 實驗8:數(shù)組、指針和函數(shù)綜合編程練習(xí) 打印最高分和學(xué)號 假設(shè)每班人數(shù)最多不超過40人,具體人數(shù)由鍵盤輸入,試編程打印最高分及其學(xué)號。程序1:用一維數(shù)組和指針變量作函數(shù)參數(shù),編程打印某班一門課成績的最高分和學(xué)號。int FindMax(int score, long num, int n, long *pMaxNum); /* 函數(shù)功能:計算最高分及最高分學(xué)生的學(xué)號 函數(shù)參數(shù):整型數(shù)組score,存儲學(xué)生的成績 長整型數(shù)組num,存儲學(xué)生的學(xué)號 長整型指針變量pMaxNum,存儲求出來的最高分學(xué)生的學(xué)號 函數(shù)返回值:最高分*/int FindMa
28、x(int score, long num, int n, long *pMaxNum) int i;int maxScore;maxScore = score0;*pMaxNum = num0; for (i=1; i maxScore) maxScore = scorei; *pMaxNum = numi; return (maxScore); 實驗8:數(shù)組、指針和函數(shù)綜合編程練習(xí) 打印最高分和學(xué)號 程序2:用二維數(shù)組和指針變量作函數(shù)參數(shù),編程打印3個班學(xué)生假設(shè)每班4個學(xué)生的某門課成績的最高分,并指出具有該最高分成績的學(xué)生是第幾個班的第幾個學(xué)生。int FindMax(int scoreC
29、LASSSTU, int m, int *pRow, int *pCol); int FindMax(int scoreSTU, int m, int *pRow, int *pCol) int i, j, maxScore;maxScore = score00; *pRow = 0; *pCol = 0; for (i = 0; im; i+)for (j = 0; j maxScore) maxScore = scoreij; *pRow = i; *pCol = j; return (maxScore); 實驗8:數(shù)組、指針和函數(shù)綜合編程練習(xí) 打印最高分和學(xué)號 實驗8:數(shù)組、指針和函數(shù)綜
30、合編程練習(xí) 打印最高分和學(xué)號 程序3:用指向二維數(shù)組第0行第0列元素的指針作函數(shù)參數(shù),編寫一個能計算任意m行n列的二維數(shù)組中的最大值,并指出其所在的行列下標值的函數(shù),利用該函數(shù)計算3個班學(xué)生假設(shè)每班4個學(xué)生的某門課成績的最高分,并指出具有該最高分成績的學(xué)生是第幾個班的第幾個學(xué)生。int FindMax(int *p, int m, int n, int *pRow, int *pCol); int FindMax(int *p, int m, int n, int *pRow, int *pCol) int i, j, maxScore; maxScore = p0; *pRow = 0; *
31、pCol = 0; for (i = 0; im; i+) for (j = 0; j maxScore) maxScore = pi*n+j; *pRow = i; *pCol = j; return (maxScore); 實驗8:數(shù)組、指針和函數(shù)綜合編程練習(xí) 打印最高分和學(xué)號 實驗8:數(shù)組、指針和函數(shù)綜合編程練習(xí) 打印最高分和學(xué)號 程序4:編寫一個能計算任意m行n列的二維數(shù)組中的最大值,并指出其所在的行列下標值的函數(shù),利用該函數(shù)和動態(tài)內(nèi)存分配方法,計算任意m個班、每班n個學(xué)生的某門課成績的最高分,并指出具有該最高分成績的學(xué)生是第幾個班的第幾個學(xué)生。 int FindMax(int *p,
32、 int m, int n, int *pRow, int *pCol); 實驗9:結(jié)構(gòu)體編程練習(xí)在屏幕上模擬顯示一個數(shù)字式時鐘 定義一個時鐘結(jié)構(gòu)體類型:struct clock int hour; int minute; int second;typedef struct clock CLOCK;然后,將以下用全局變量編寫的時鐘模擬顯示程序改成用CLOCK結(jié)構(gòu)體變量類型重新編寫。 時:分:秒void update(CLOCK *t) t-second+; if (t-second = 60) t-second = 0; t-minute+; if (t-minute = 60) t-minu
33、te = 0; t-hour+; if (t-hour = 24) t-hour = 0;void display(CLOCK *t) printf(%2d:%2d:%2dr, t-hour, t-minute, t-second);實驗9:結(jié)構(gòu)體編程練習(xí)在屏幕上模擬顯示一個數(shù)字式時鐘實驗10:文件編程練習(xí) 文件拷貝程序1:根據(jù)程序提示從鍵盤輸入一個已存在的文本文件的完整文件名,并再輸入一個新文本文件的完整文件名,然后編程將已存在文本文件中的內(nèi)容全部拷貝到新文本文件中去,利用文本編輯軟件,通過查看文件內(nèi)容驗證程序執(zhí)行結(jié)果。實驗10:文件編程練習(xí) 文件拷貝程序2:模擬DOS命令下的COPY命令,
34、在DOS狀態(tài)下鍵入命令行,以實現(xiàn)將一個已存在文本文件中的內(nèi)容全部拷貝到新文本文件中去,利用文本編輯軟件,通過查看文件內(nèi)容驗證程序執(zhí)行結(jié)果。實驗10:文件編程練習(xí) 文件拷貝程序3:選作根據(jù)提示從鍵盤輸入一個已存在的文本文件的完整文件名,并再輸入另一個已存在的文本文件的完整文件名,然后編程將第一個文本文件的內(nèi)容追加到第二個文本文件的原內(nèi)容之后,利用文本編輯軟件,通過查看文件內(nèi)容驗證程序執(zhí)行結(jié)果。實驗10:文件編程練習(xí) 文件拷貝程序4:選作根據(jù)提示從鍵盤輸入一個已存在的文本文件的完整文件名,并再輸入另一個已存在的文本文件的完整文件名,然后編程將源文本文件的內(nèi)容追加到目的文本文件的原內(nèi)容之后,并編程實
35、現(xiàn)在顯示器上顯示源文件和目的文件的文件內(nèi)容,以此來驗證程序執(zhí)行結(jié)果。 課外實驗題目實驗一 計算到期存款本息之和 銀行整存整取存款不同期限的月息利率分別為:2.25% 期限一年2.43% 期限二年2.70% 期限三年2.88% 期限五年3.00% 期限八年要求輸入存錢的本金和期限,求到期時,能從銀行得到的利息與本金的合計。提示:用switch語句編程。 課外實驗題目實驗二 存款預(yù)算 假設(shè)銀行一年整存零取的月息為1.875%,現(xiàn)在某人手頭有一筆錢,他打算在今后的五年中每年的年底取出1000元作為孩子來年的教育金,到第五年孩子畢業(yè)時剛好取完這筆錢,現(xiàn)在請你算一算第一年年初他應(yīng)存入銀行多少錢呢? 課外
36、實驗題目實驗二 存款預(yù)算 提示:分析存錢和取錢的過程可采用逆推的方法,然后采用迭代法求解。假設(shè)第五年年底連本帶息要取出1000元,那么第五年年初銀行中的存款數(shù)額y5應(yīng)為:y5 = 1000 / (1 + 12 * 0.01875)按題意,由第五年年初銀行中的存款數(shù)額y5,求得第四年年初銀行中的存款數(shù)額y4應(yīng)為:y4 = (y5 + 1000) / (1 + 12 * 0.01875)依此類推,可由第n+1年年初銀行中的存款數(shù)額yn+1求得第n年年初銀行中的存款數(shù)額y n為:y n = (y n+1 + 1000) / (1 + 12 * 0.01875)以0作為y n+1的初值,對上式進行逆推
37、迭代,迭代5次的結(jié)果即為第1年年初銀行中的存款數(shù)額y 1,也就是他現(xiàn)在要存入銀行的錢數(shù)。 課外實驗題目實驗三 尋找最正確存款方案 銀行整存整取存款不同期限的月息利率分別為:2.25% 期限一年2.43% 期限二年2.70% 期限三年2.88% 期限五年3.00% 期限八年假設(shè)銀行對定期存款過期局部不付利息,現(xiàn)在某人有2000元錢,要存20年,問怎樣存才能使20年后得到的本利之和合計最多? 課外實驗題目實驗三 尋找最正確存款方案提示:為了得到最多的利息,存入銀行的錢應(yīng)在到期時馬上就取出來,然后立刻將原來的本金和利息加起來再作為新的本金存入銀行,這樣本利不斷地滾動直到滿二十年為止。由于存款的利率不
38、同,所以,不同的存款方法年限存二十年得到的利息也是不一樣的。分析題意,設(shè)2000元存20年,其中一年期存了n1次,二年期存了n2次,三年期存了n3次,五年期存了n5次,八年期存了n8次,那么到期時存款人應(yīng)得的本利之和為:其中,rateN對應(yīng)存款年限的利率。課外實驗題目實驗三 尋找最正確存款方案根據(jù)題意,還可得到以下限制條件:0 n8 20 n5 (20 8 * n8) / 50 n3 (20 8 * n8 5 * n5) / 30 n2 (20 8 * n8 5 * n5 3 * n3) / 2n1 = 20 8 * n8 5 * n5 3 * n3 2 * n2采用窮舉法窮舉所有的n8,n5
39、,n3,n2,n1組合,代入本利計算公式,計算得到所有的存款方案。求最大存款方案的方法為:將現(xiàn)行存款方案與過去記錄的最大存款方案max進行比較,假設(shè)現(xiàn)行存款方案可得到的本利之和大,那么記錄現(xiàn)行存款方案即n1,n2,n3,n5,n8的值和本利之和的最大值max。 課外實驗題目實驗四 抓交通肇事犯 一輛卡車違反了交通規(guī)那么,撞人后逃逸?,F(xiàn)場有三人目擊事件,但都沒有記住車號,只記住車號的一些特征。甲說:車號的前兩位數(shù)字是相同的;乙說:車號的后兩位數(shù)字是相同的,但與前兩位不同;丙是位數(shù)學(xué)家,他說:四位的車號正好是一個整數(shù)的平方。現(xiàn)在請你根據(jù)以上線索幫助警方找出車號以便盡快破案。 課外實驗題目實驗四 抓
40、交通肇事犯 提示:假設(shè)這個四位數(shù)的前兩位數(shù)字都是i,后兩位數(shù)字都是j,那么這個可能的四位數(shù)k為:k = 1000 * i + 100 * i + 10 * j + j其中,i和j都在09之間變化?,F(xiàn)在還需使k滿足是一個整數(shù)m的平方,由于k是一個四位數(shù),所以,m值不可能小于31,因此,可從31開始試驗是否滿足k = m*m,假設(shè)不滿足,那么m加1再試,直到找到滿足這些限制條件的k為止結(jié)束測試。 課外實驗題目實驗五 求解不等式 立方和不等式為:13 + 23 + + m3 = n時,利用break語句退出循環(huán),打印出相應(yīng)的結(jié)果。這里,因立方運算數(shù)值較大,n應(yīng)定義為長整型。 課外實驗題目實驗六 計算
41、禮炮聲響次數(shù) 為慶?;顒?,現(xiàn)在,A、B、C三條軍艦要同時開始鳴放禮炮各21響。A艦每隔5秒放1次,B艦每隔6秒放1次,C艦每隔7秒放1次。假設(shè)各炮手對時間的掌握非常準確,那么請問觀眾總共可以聽到幾次禮炮聲呢? 課外實驗題目實驗六 計算禮炮聲響次數(shù) 提示:用n作為聽到的禮炮聲響的計數(shù)器,用t表示時間,從第0秒開始放第1響,到放完最后一響,最長時間為20*7,因此,可以用一個for循環(huán)來模擬每一秒鐘的時間變化,即t從0開始循環(huán)到t20*7時結(jié)束。在循環(huán)體中判斷:如果時間t是5的整數(shù)倍且21響未放完,那么A艦放一響,計數(shù)器n加1;如果時間t是6的整數(shù)倍且21響未放完,那么B艦放一響,計數(shù)器n加1;如果時間t是7的整數(shù)倍且21響未放完,那么C艦放一響,計數(shù)器n加1。但要注意:當有兩艦或三艦同時鳴放時,應(yīng)作1響統(tǒng)計,即n不能同時計數(shù),只要有一個執(zhí)行了計數(shù),其它兩個就不能再進行計數(shù)。 利用continue語句編程實現(xiàn)。 課外實驗題目實驗七 產(chǎn)值翻番 假設(shè)當年產(chǎn)值為100,工業(yè)產(chǎn)值的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醋酐項目安全調(diào)研評估報告
- 骨科科室年終總結(jié)(5篇)
- 2025-2030年中國蠶絲舒膚毯行業(yè)深度研究分析報告
- 七年級語文常用知識點
- 十三五重點項目-焊接煙塵凈化設(shè)備項目資金申請報告
- 2025年通訊設(shè)備零部件行業(yè)深度研究分析報告
- 2020-2025年中國重型自卸汽車行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 典當公司合同范本
- 一年級數(shù)學(xué)知識點湘教版
- 2025年曲枘總成行業(yè)深度研究分析報告
- 信息科技課的跨學(xué)科主題學(xué)習(xí)PP義務(wù)教育課程方案和課程標準國家級示范培訓(xùn)課件
- 五年級下冊英語作文訓(xùn)練-外研版(三起)
- 第七節(jié)碎石路基施工方案
- 三年級數(shù)學(xué)興趣班綱要及教案
- 記者行業(yè)現(xiàn)狀分析及發(fā)展趨勢
- 2024年漯河食品職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 廣東省深圳市2023年中考英語試題(含答案與解析)
- 《看看我們的地球》
- 吉林省地方教材家鄉(xiāng)小學(xué)一年級下冊家鄉(xiāng)教案
- 蘇教版數(shù)學(xué)五年級(下冊)第1課時 單式折線統(tǒng)計圖
- 實驗經(jīng)濟學(xué)實驗設(shè)計案例
評論
0/150
提交評論