版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言實(shí)驗(yàn),主教材:蘇小紅等,《 C語言大學(xué)實(shí)用教程(第2版)》,電子工業(yè)出版社,2007,2實(shí)驗(yàn)教材:蘇小紅等,《C語言大學(xué)實(shí)用教程學(xué)習(xí)指導(dǎo)》,電子工業(yè)出版社,2007,4,實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)1: 熟悉上機(jī)環(huán)境和順序結(jié)構(gòu)編程練習(xí)——鍵盤輸入與屏幕輸出練習(xí),問題1:要使下面程序的輸出語句在屏幕上顯示1,2,34,則從鍵盤輸入的數(shù)據(jù)格式應(yīng)為以下備選答案中的哪一個(gè)?,#include main(){char a,b;
2、int c; scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);}A) 1 2 34 B) 1, 2, 34 C) ’1’,’2’,34 D) 12 34,實(shí)驗(yàn)1: 熟悉上機(jī)環(huán)境和順序結(jié)構(gòu)編程練習(xí)——鍵盤輸入與
3、屏幕輸出練習(xí),問題2:與上面程序的鍵盤輸入相同的情況下,要使上面程序的輸出語句在屏幕上顯示1 2 34,則應(yīng)修改程序中的哪條語句?怎樣修改?,#include main(){char a,b; int c; scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);},問題
4、3:要使上面程序的鍵盤輸入數(shù)據(jù)格式為1,2,34,輸出語句在屏幕上顯示的結(jié)果也為1,2,34,則應(yīng)修改程序中的哪條語句?怎樣修改?,#include main(){char a,b; int c; scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);},實(shí)驗(yàn)1: 熟悉
5、上機(jī)環(huán)境和順序結(jié)構(gòu)編程練習(xí)——鍵盤輸入與屏幕輸出練習(xí),問題4:要使上面程序的鍵盤輸入數(shù)據(jù)格式為1,2,34,而輸出語句在屏幕上顯示的結(jié)果為’1’,’2’,34,則應(yīng)修改程序中的哪條語句?怎樣修改?[提示:利用轉(zhuǎn)義字符輸出字符單引號(hào)字符。],#include main(){char a,b; int c; scanf("%c%c%d",&a,&b,&a
6、mp;c);printf("%c,%c,%d\n",a,b,c);},實(shí)驗(yàn)1: 熟悉上機(jī)環(huán)境和順序結(jié)構(gòu)編程練習(xí)——鍵盤輸入與屏幕輸出練習(xí),問題5:要使上面程序的鍵盤輸入無論用下面哪種格式輸入數(shù)據(jù),程序在屏幕上的輸出結(jié)果都為’1’,’2’,34,則程序應(yīng)修改程序中的哪條語句?怎樣修改?第一種輸入方式:1,2,34↙(以逗號(hào)作為分隔符)第二種輸入方式:1 2 34↙(以空格作為分隔符)第三種輸入方式:1
7、 2 34↙(以Tab鍵作為分隔符)第四種輸入方式:1↙ 2↙ 34↙(以回車符作為分隔符),實(shí)驗(yàn)1: 熟悉上機(jī)環(huán)境和順序結(jié)構(gòu)編程練習(xí)——鍵盤輸入與屏幕輸出練習(xí),實(shí)驗(yàn)1: 熟悉上機(jī)環(huán)境和順序結(jié)構(gòu)編程練習(xí)——計(jì)算定期存款本利之和,設(shè)銀行定期存款的年利率rate為2.25%,并已知存款期為n
8、年,存款本金為capital元,試編程計(jì)算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由鍵盤輸入。,實(shí)驗(yàn)2: 選擇結(jié)構(gòu)編程練習(xí)——身高預(yù)測,每個(gè)做父母的都關(guān)心自己孩子成人后的身高,據(jù)有關(guān)生理衛(wèi)生知識(shí)與數(shù)理統(tǒng)計(jì)分析表明,影響小孩成人后身高的因素有遺傳、飲食習(xí)慣與堅(jiān)持體育鍛煉等。小孩成人后身高與其父母身高和自身性別密切相關(guān)。設(shè)faHeight為其父身高,moHeight為其母身高,身
9、高預(yù)測公式為:男性成人時(shí)身高 = (faHeight + moHeight) * 0.54(cm)女性成人時(shí)身高 = (faHeight * 0.923 + moHeight) / 2(cm)此外,如果喜愛體育鍛煉,那么可增加身高2%,如果有良好的衛(wèi)生飲食習(xí)慣,那么可增加身高1.5%。,實(shí)驗(yàn)2: 選擇結(jié)構(gòu)編程練習(xí)——身高預(yù)測,編程從鍵盤輸入你的性別(用字符型變量sex存儲(chǔ),輸入字符F表示女性,輸入字符M表示男性)、父母身高(用實(shí)
10、型變量存儲(chǔ),faHeight為其父身高,moHeight為其母身高)、是否喜愛體育鍛煉(用字符型變量sports存儲(chǔ),輸入字符Y表示喜愛,輸入字符N表示不喜愛)、是否有良好的飲食習(xí)慣等條件(用字符型變量diet存儲(chǔ),輸入字符Y表示喜愛,輸入字符N表示不喜愛),利用給定公式和身高預(yù)測方法對(duì)你的身高進(jìn)行預(yù)測。,實(shí)驗(yàn)2:選擇結(jié)構(gòu)編程練習(xí)——簡單的計(jì)算器程序,要求用switch語句編程設(shè)計(jì)一個(gè)簡單的計(jì)算器程序。要求根據(jù)用戶從鍵盤輸入的表達(dá)式:
11、操作數(shù)1 運(yùn)算符op 操作數(shù)2計(jì)算表達(dá)式的值,指定的算術(shù)運(yùn)算符為加(+)、減(-)、乘(*)、除(/)。,例4.8:計(jì)算器程序,編程設(shè)計(jì)一個(gè)簡單的計(jì)算器程序,要求根據(jù)用戶從鍵盤輸入如下形式的表達(dá)式: 操作數(shù)1 運(yùn)算符op 操作數(shù)2 然后,計(jì)算并輸出表達(dá)式的值 指定的運(yùn)算符為 加(+) 減(-) 乘(*) 除(/),main(){
12、int data1, data2; /*定義兩個(gè)操作符*/char op; /*定義運(yùn)算符*/printf("Please enter the expression:");scanf("%d%c%d", &data1, &op, &data2); /*輸入運(yùn)算表達(dá)式*/swit
13、ch (op) {case '+': /*處理加法*/printf("%d + %d = %d\n", data1, data2, data1 + data2); break;case '-': /*處理減法*/printf("%d - %d
14、 = %d\n", data1, data2, data1 - data2);break;case '*': /*處理乘法*/printf("%d * %d = %d\n", data1, data2, data1 * data2); break;case '/':
15、 /*處理除法*/if (0 == data2) printf("Division by zero!\n");else printf("%d/%d = %d\n", data1, data2, data1/data2); break;default: printf("Unknown operator
16、! \n");}},例4.8,實(shí)驗(yàn)2:選擇結(jié)構(gòu)編程練習(xí)——簡單的計(jì)算器程序,本實(shí)驗(yàn)程序是在例4.8基礎(chǔ)上,增加如下要求:(1)如果要求程序能進(jìn)行浮點(diǎn)數(shù)的算術(shù)運(yùn)算,程序應(yīng)該如何修改? 如何比較實(shí)型變量data2和常數(shù)0是否相等?(2)如果要求輸入的算術(shù)表達(dá)式中的操作數(shù)和運(yùn)算符之間可以加入任意多空白符,那么程序如何修改?(3)(選作題)如果要求連續(xù)做多次算術(shù)運(yùn)算,每次運(yùn)算結(jié)束后,程序都給出提示:Do you wan
17、t to continue(Y/N or y/n)?如果用戶輸入Y或y時(shí),程序繼續(xù)進(jìn)行其它算術(shù)運(yùn)算,否則程序才退出運(yùn)行狀態(tài)。那么,程序如何修改?,語句 if (0 == data2)的必要性1998年11月《科學(xué)美國人》雜志,描述了美國導(dǎo)彈巡洋艦約克敦號(hào)上的一起事故,除零錯(cuò)導(dǎo)致軍艦推進(jìn)系統(tǒng)的關(guān)閉如果要求程序能進(jìn)行浮點(diǎn)數(shù)的算術(shù)運(yùn)算,語句 if (0 == data2)還能用于比較實(shí)型變量data2和常數(shù)0的大小嗎?if (fabs
18、(data2) <= 1e-7)如果要求輸入的算術(shù)表達(dá)式中的操作數(shù)和運(yùn)算符之間可以加入任意多個(gè)空格符,那么程序如何修改?scanf("%d%c%d", &data1, &op, &data2);scanf("%d%1s%d", &data1, &op, &data2);,實(shí)驗(yàn)2:選擇結(jié)構(gòu)編程練習(xí)——簡單的計(jì)算器程序,實(shí)驗(yàn)3:循環(huán)結(jié)構(gòu)編程
19、練習(xí)——猜數(shù)游戲,在這個(gè)實(shí)驗(yàn)中,我們將嘗試編寫一個(gè)猜數(shù)游戲程序,這個(gè)程序看上去有些難度,但是如果你按下列要求以循序漸進(jìn)方式進(jìn)行編程實(shí)現(xiàn),你就會(huì)發(fā)現(xiàn)其實(shí)這個(gè)程序是很容易實(shí)現(xiàn)的。先編寫第一個(gè)程序,然后試著在第一個(gè)程序的基礎(chǔ)上編寫第二個(gè)程序,……。程序1:編程先由計(jì)算機(jī)“想”一個(gè)1到100之間的數(shù)請(qǐng)人猜,如果人猜對(duì)了,則計(jì)算機(jī)給出提示:“Right!”, 否則提示:“Wrong!”,并告訴人所猜的數(shù)是大(Too high)還是小(Too
20、low),然后結(jié)束游戲。要求每次運(yùn)行程序時(shí)機(jī)器所“想”的數(shù)不能都是一樣的。,猜數(shù)游戲用到的庫函數(shù),隨機(jī)函數(shù)srand為函數(shù)rand()設(shè)置隨機(jī)數(shù)種子來實(shí)現(xiàn)對(duì)函數(shù)rand所產(chǎn)生的偽隨機(jī)數(shù)的 “隨機(jī)化” 通過鍵入隨機(jī)數(shù)種子,產(chǎn)生[0,100]之間的隨機(jī)數(shù)scanf("%u", &seed); srand(seed); magic = rand() % 100 + 1;,#include #i
21、nclude main(){ int magic; int guess; int counter; unsigned int seed; printf("Please enter seed:");scanf("%u", &seed);srand(seed);mag
22、ic = rand() % 100 + 1; counter = 0; do{printf("Please guess a magic number:");scanf("%d", &guess); counter ++; if (guess > magic) printf("Wrong! T
23、oo high!\n");else if (guess < magic) printf("Wrong! Too low!\n");}while (guess != magic); printf("Right!\n"); printf("counter = %d \n", co
24、unter); },猜數(shù)游戲用到的庫函數(shù),使用計(jì)算機(jī)讀取其時(shí)鐘值并把該值自動(dòng)設(shè)置為隨機(jī)數(shù)種子,產(chǎn)生[0,100]之間的隨機(jī)數(shù)函數(shù)time()返回以秒計(jì)算的當(dāng)前時(shí)間值,該值被轉(zhuǎn)換為無符號(hào)整數(shù)并用作隨機(jī)數(shù)發(fā)生器的種子 #include srand(time(NULL)); magic = rand() % 100 + 1;,#include #include #include main(){ int m
25、agic; int guess; int counter; srand(time(NULL));magic = rand() % 100 + 1; counter = 0; do{printf("Please guess a magic number:");scanf("%d&
26、quot;, &guess); counter ++; if (guess > magic) printf("Wrong! Too high!\n");else if (guess < magic) printf("Wrong! Too low!\n");}while (guess != magic);
27、 printf("Right!\n"); printf("counter = %d \n", counter); },程序2:編程先由計(jì)算機(jī)“想”一個(gè)1到100之間的數(shù)請(qǐng)人猜,如果人猜對(duì)了,則結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對(duì)此數(shù),以此來反映猜數(shù)者“猜”的水平,否則計(jì)算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,直到人猜對(duì)為止。,實(shí)驗(yàn)3:
28、循環(huán)結(jié)構(gòu)編程練習(xí)——猜數(shù)游戲,程序3:編程先由計(jì)算機(jī)“想”一個(gè)1到100之間的數(shù)請(qǐng)人猜,如果人猜對(duì)了,則結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對(duì)此數(shù),以此來反映猜數(shù)者“猜”的水平,否則計(jì)算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,則結(jié)束游戲。,實(shí)驗(yàn)3:循環(huán)結(jié)構(gòu)編程練習(xí)——猜數(shù)游戲,#include #include #include main(){ int magi
29、c; int guess; int counter; srand(time(NULL)); magic = rand() % 100 + 1; counter = 0; do{printf("Please guess a magic number:");scanf("%d",
30、&guess); counter ++; if (guess > magic) printf("Wrong! Too high!\n");else if (guess < magic) printf("Wrong! Too low!\n");elsepri
31、ntf("Right!\n");}while ((guess != magic) && (counter < 10)); printf("counter = %d \n", counter); },,程序4:編程先由計(jì)算機(jī)“想”一個(gè)1到100之間的數(shù)請(qǐng)人猜,如果人猜對(duì)了,并在屏幕上輸出人猜了多少次才猜對(duì)此數(shù),以此來反映猜數(shù)者“猜”的水平
32、,且結(jié)束游戲,否則計(jì)算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,則停止本次猜數(shù),然后繼續(xù)猜下一個(gè)數(shù)。每次運(yùn)行程序可以反復(fù)猜多個(gè)數(shù),直到操作者想停止時(shí)才結(jié)束。,實(shí)驗(yàn)3:循環(huán)結(jié)構(gòu)編程練習(xí)——猜數(shù)游戲,實(shí)驗(yàn)4:函數(shù)編程練習(xí)——小學(xué)生加法考試題,程序1:通過輸入兩個(gè)加數(shù)給學(xué)生出一道加法運(yùn)算題,如果輸入答案正確,則顯示“Right!”,否則顯示“Not correct! Try again!”;
33、,實(shí)驗(yàn)4:函數(shù)編程練習(xí)——小學(xué)生加法考試題,/* 函數(shù)功能: 計(jì)算兩整型數(shù)之和,如果與用戶輸入的答案相同,則返回1,否則返回0 函數(shù)參數(shù): 整型變量a和b,分別代表被加數(shù)和加數(shù) 函數(shù)返回值:當(dāng)a加b的結(jié)果與用戶輸入的答案相同時(shí),返回1,否則返回0*/int AddTest(int a, int b){int answer;printf("%d+%d=", a, b);scanf
34、("%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");},實(shí)驗(yàn)4:函數(shù)編程
35、練習(xí)——小學(xué)生加法考試題,程序2:通過輸入兩個(gè)加數(shù)給學(xué)生出一道加法運(yùn)算題,如果輸入答案正確,則顯示“Right!”,否則顯示“Not correct! Try again!”,直到做對(duì)為止;,main(){ int a, b, answer; printf("Input a,b:"); scanf("%d,%d", &a, &b); ans
36、wer = AddTest(a, b); Print(answer);},do{ }while (answer == 0);,實(shí)驗(yàn)4:函數(shù)編程練習(xí)——小學(xué)生加法考試題,實(shí)驗(yàn)4:函數(shù)編程練習(xí)——小學(xué)生加法考試題,程序3:通過輸入兩個(gè)加數(shù)給學(xué)生出一道加法運(yùn)算題,如果輸入答案正確,則顯示“Right!”,否則提示重做,顯示“Not correct! Try again!”,最多給三次機(jī)會(huì),如果三次仍未做對(duì),
37、則顯示“Not correct. You have tried three times! Test over!”程序結(jié)束;,main(){ answer = AddTest(a, b); Print(answer, chance); },chance = 0; do{ chance++; }while (answer == 0 &&
38、 chance < 3);,實(shí)驗(yàn)4:函數(shù)編程練習(xí)——小學(xué)生加法考試題,實(shí)驗(yàn)4:函數(shù)編程練習(xí)——小學(xué)生加法考試題,程序4:連續(xù)做10道題,通過計(jì)算機(jī)隨機(jī)產(chǎn)生兩個(gè)1~10之間的加數(shù)給學(xué)生出一道加法運(yùn)算題,如果輸入答案正確,則顯示“Right!”,否則顯示“Not correct!”,不給機(jī)會(huì)重做,10道題做完后,按每題10分統(tǒng)計(jì)總得分,然后打印出總分和做錯(cuò)的題目數(shù)量。,srand(time(NULL)); error = 0;
39、 score = 0; for (i=0; i<10; i++) { a = rand()%10 + 1; b = rand()%10 + 1; answer = AddTest(a, b); Print(answer); if (answer == 1) score = score + 10; else error++;
40、},實(shí)驗(yàn)4:函數(shù)編程練習(xí)——小學(xué)生加法考試題,實(shí)驗(yàn)5:數(shù)組編程練習(xí)——檢驗(yàn)并打印魔方矩陣,在下面的5×5魔方矩陣中,每一行、每一列、每一對(duì)角線上的元素之和都是相等的,試編寫程序?qū)⑦@些魔方矩陣中的元素讀到一個(gè)二維整型數(shù)組中,然后,檢驗(yàn)其是否為魔方矩陣,并將其按如下格式顯示到屏幕上。,實(shí)驗(yàn)5:數(shù)組編程練習(xí)——餐飲服務(wù)質(zhì)量調(diào)查打分,有40個(gè)學(xué)生被邀請(qǐng)給自助餐廳的食品和服務(wù)質(zhì)量打分(1~10等級(jí)),統(tǒng)計(jì)調(diào)查結(jié)果,并用*打印如下形
41、式的統(tǒng)計(jì)結(jié)果直方圖 Grade CountHistogram 1 5***** 2 10********** 3 7******* ...,實(shí)驗(yàn)5:數(shù)組編程練習(xí)——餐飲服務(wù)質(zhì)量調(diào)查打分,提示定義數(shù)組score存放打的分?jǐn)?shù)定義數(shù)組count為計(jì)數(shù)器(count[0]不用)計(jì)算統(tǒng)計(jì)結(jié)果:設(shè)置一個(gè)循環(huán),依次檢查數(shù)組元素值score[i]
42、,是1則將數(shù)組元素count[1]加1,是2則將數(shù)組元素count[2]加1,依此類推for (i=0; i<STUDENTS; i++){count[score[i]] ++;}打印統(tǒng)計(jì)結(jié)果,設(shè)置一個(gè)循環(huán),按count數(shù)組元素的值,打印相應(yīng)個(gè)數(shù)的符號(hào)’*’,實(shí)驗(yàn)6:一維數(shù)組和函數(shù)綜合編程練習(xí) ——學(xué)生成績統(tǒng)計(jì),從鍵盤輸入一個(gè)班(全班最多不超過30人)學(xué)生某門課的成績,當(dāng)輸入成績?yōu)樨?fù)值時(shí),輸入結(jié)束,分別統(tǒng)計(jì)下
43、列內(nèi)容:(1)統(tǒng)計(jì)不及格人數(shù)并打印不及格學(xué)生名單;(2)統(tǒng)計(jì)成績?cè)谌嗥骄旨捌骄种系膶W(xué)生人數(shù)并打印其學(xué)生名單;(3)統(tǒng)計(jì)各分?jǐn)?shù)段的學(xué)生人數(shù)及所占的百分比;,實(shí)驗(yàn)6:一維數(shù)組和函數(shù)綜合編程練習(xí) ——學(xué)生成績統(tǒng)計(jì),提示:(1)用num[i]存放第i+1個(gè)學(xué)生的學(xué)號(hào),用score[i]存放第i+1個(gè)學(xué)生的成績。設(shè)置計(jì)數(shù)器count,當(dāng)score[i]=aver時(shí),打印num[i]和score[i]。(3)將成績分為六個(gè)分?jǐn)?shù)段,
44、60分以下為第0段,60~69為第1段,70~79為第2段,80~89為第3段,90~99為第4段,100分為第5段,因此,成績與分?jǐn)?shù)段的對(duì)應(yīng)關(guān)系為:各分?jǐn)?shù)段的學(xué)生人數(shù)保存在數(shù)組stu中,用stu[i]存放第i段的學(xué)生人數(shù)。對(duì)于每個(gè)學(xué)生的成績,先計(jì)算出該成績所對(duì)應(yīng)的分?jǐn)?shù)段,然后將相應(yīng)的分?jǐn)?shù)段的人數(shù)加1,即stu[i]++。,實(shí)驗(yàn)7:二維數(shù)組、函數(shù)和常用算法綜合編程練習(xí) ——成績排名次,某班期末考試科目為數(shù)學(xué)(MT)、英語(EN)和物理
45、(PH),有最多不超過30人參加考試。考試后要求:(1)計(jì)算每個(gè)學(xué)生的總分和平均分;(2)按總分成績由高到低排出成績的名次;(3)打印出名次表,表格內(nèi)包括學(xué)生編號(hào)、各科分?jǐn)?shù)、總分和平均分;(4)任意輸入一個(gè)學(xué)號(hào),能夠查找出該學(xué)生在班級(jí)中的排名及其考試分?jǐn)?shù),實(shí)驗(yàn)7:二維數(shù)組、函數(shù)和常用算法綜合編程練習(xí) ——成績排名次,提示:用二維數(shù)組score存放每個(gè)學(xué)生各門課程的成績,用一維數(shù)組num存放每個(gè)學(xué)生的學(xué)號(hào),用一維數(shù)組sum存放每個(gè)
46、學(xué)生的總分,用一維數(shù)組aver存放每個(gè)學(xué)生的平均分。(1)用函數(shù)編程實(shí)現(xiàn)計(jì)算每個(gè)學(xué)生的總分;(2)用函數(shù)編程實(shí)現(xiàn)按總分由高到低對(duì)學(xué)生成績排序,注意:排序時(shí),一維數(shù)組sum元素的變化應(yīng)連同二維數(shù)組score和一維數(shù)組num和aver一起變化;(3)用函數(shù)編程實(shí)現(xiàn)查找學(xué)號(hào)為k的學(xué)生在班級(jí)中的排名名次及相關(guān)成績等信息,找不到時(shí)返回-1值。,實(shí)驗(yàn)8:數(shù)組、指針和函數(shù)綜合編程練習(xí) ——打印最高分和學(xué)號(hào),假設(shè)每班人數(shù)最多不超過40人,具體人數(shù)
47、由鍵盤輸入,試編程打印最高分及其學(xué)號(hào)。程序1:用一維數(shù)組和指針變量作函數(shù)參數(shù),編程打印某班一門課成績的最高分和學(xué)號(hào)。int FindMax(int score[], long num[], int n, long *pMaxNum);,/* 函數(shù)功能:計(jì)算最高分及最高分學(xué)生的學(xué)號(hào) 函數(shù)參數(shù):整型數(shù)組score,存儲(chǔ)學(xué)生的成績 長整型數(shù)組num,存儲(chǔ)學(xué)生的學(xué)號(hào) 長整型指針變量pMaxNum,存
48、儲(chǔ)求出來的最高分學(xué)生的學(xué)號(hào) 函數(shù)返回值:最高分*/int FindMax(int score[], long num[], int n, long *pMaxNum) { int i;int maxScore;maxScore = score[0];*pMaxNum = num[0]; for (i=1; i maxScore) {
49、 maxScore = score[i]; *pMaxNum = num[i]; }return (maxScore); },實(shí)驗(yàn)8:數(shù)組、指針和函數(shù)綜合編程練習(xí) ——打印最高分和學(xué)號(hào),程序2:用二維數(shù)組和指針變量作函數(shù)參數(shù),編程打印3個(gè)班學(xué)生(假設(shè)每班4個(gè)學(xué)生)的某門課成績的最高分,并指出具有該最高分成績的學(xué)生是第幾個(gè)班的第幾個(gè)學(xué)生。int FindMax(i
50、nt score[CLASS][STU], int m, int *pRow, int *pCol);,int FindMax(int score[][STU], int m, int *pRow, int *pCol) {int i, j, maxScore;maxScore = score[0][0]; *pRow = 0; *pCol = 0;
51、 for (i = 0; i maxScore) {maxScore = score[i][j]; *pRow = i; *pCol = j; }}}return (maxScore); },實(shí)驗(yàn)8:數(shù)組、指針和函數(shù)綜合編程練習(xí) ——打印最高分和學(xué)號(hào),實(shí)驗(yàn)8:數(shù)組、
52、指針和函數(shù)綜合編程練習(xí) ——打印最高分和學(xué)號(hào),程序3:用指向二維數(shù)組第0行第0列元素的指針作函數(shù)參數(shù),編寫一個(gè)能計(jì)算任意m行n列的二維數(shù)組中的最大值,并指出其所在的行列下標(biāo)值的函數(shù),利用該函數(shù)計(jì)算3個(gè)班學(xué)生(假設(shè)每班4個(gè)學(xué)生)的某門課成績的最高分,并指出具有該最高分成績的學(xué)生是第幾個(gè)班的第幾個(gè)學(xué)生。int FindMax(int *p, int m, int n, int *pRow, int *pCol);,int FindMax
53、(int *p, int m, int n, int *pRow, int *pCol) { int i, j, maxScore; maxScore = p[0]; *pRow = 0; *pCol = 0; for (i = 0; i maxScore) {maxScore = p[i*n+j];
54、*pRow = i; *pCol = j; }} } return (maxScore); },實(shí)驗(yàn)8:數(shù)組、指針和函數(shù)綜合編程練習(xí) ——打印最高分和學(xué)號(hào),實(shí)驗(yàn)8:數(shù)組、指針和函數(shù)綜合編程練習(xí) ——打印最高分和學(xué)號(hào),程序4:編寫一個(gè)能計(jì)算任意m行n列的二維數(shù)組中的最大值,并指出其所在的行列下標(biāo)值的函數(shù),利用該函數(shù)和動(dòng)態(tài)內(nèi)存分配方法,計(jì)算任
55、意m個(gè)班、每班n個(gè)學(xué)生的某門課成績的最高分,并指出具有該最高分成績的學(xué)生是第幾個(gè)班的第幾個(gè)學(xué)生。 int FindMax(int *p, int m, int n, int *pRow, int *pCol);,實(shí)驗(yàn)9:結(jié)構(gòu)體編程練習(xí)——在屏幕上模擬顯示一個(gè)數(shù)字式時(shí)鐘,定義一個(gè)時(shí)鐘結(jié)構(gòu)體類型:struct clock{ int hour; int minute; int second;};type
56、def struct clock CLOCK;然后,將下列用全局變量編寫的時(shí)鐘模擬顯示程序改成用CLOCK結(jié)構(gòu)體變量類型重新編寫。,時(shí):分:秒,void update(CLOCK *t) { t->second++; if (t->second == 60) { t->second = 0; t->minute++; } if (t-&g
57、t;minute == 60) { t->minute = 0; t->hour++; } if (t->hour == 24) t->hour = 0;},void display(CLOCK *t) { printf("%2d:%2d:%2d\r",
58、 t->hour, t->minute, t->second);},,實(shí)驗(yàn)9:結(jié)構(gòu)體編程練習(xí)——在屏幕上模擬顯示一個(gè)數(shù)字式時(shí)鐘,實(shí)驗(yàn)10:文件編程練習(xí) ——文件拷貝,程序1:根據(jù)程序提示從鍵盤輸入一個(gè)已存在的文本文件的完整文件名,并再輸入一個(gè)新文本文件的完整文件名,然后編程將已存在文本文件中的內(nèi)容全部拷貝到新文本文件中去,利用文本編輯軟件,通過查看文件內(nèi)容驗(yàn)證程序執(zhí)行結(jié)果。,實(shí)驗(yàn)10:文件
59、編程練習(xí) ——文件拷貝,程序2:模擬DOS命令下的COPY命令,在DOS狀態(tài)下鍵入命令行,以實(shí)現(xiàn)將一個(gè)已存在文本文件中的內(nèi)容全部拷貝到新文本文件中去,利用文本編輯軟件,通過查看文件內(nèi)容驗(yàn)證程序執(zhí)行結(jié)果。,實(shí)驗(yàn)10:文件編程練習(xí) ——文件拷貝,程序3:(選作)根據(jù)提示從鍵盤輸入一個(gè)已存在的文本文件的完整文件名,并再輸入另一個(gè)已存在的文本文件的完整文件名,然后編程將第一個(gè)文本文件的內(nèi)容追加到第二個(gè)文本文件的原內(nèi)容之后,利用文本編輯軟件,
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五個(gè)“動(dòng)作”打造四六級(jí)最高分
- 最高分.txt
- 最高分.txt
- 最高分1.txt
- 最高分1.txt
- 考研英語最高分93分達(dá)人英語筆記
- 17個(gè)全球最高
- 一年考過13門課拿到3個(gè)證的感悟
- 揚(yáng)州個(gè)園的學(xué)生作文
- 科學(xué)探究8個(gè)基礎(chǔ)學(xué)生活動(dòng)課標(biāo)解讀3
- 銷售的最高境界=聊天,這10個(gè)頂尖話術(shù)!記住3個(gè)就夠了……
- 小學(xué)生做閱讀理解的3個(gè)步驟和5個(gè)解題技巧
- 盤點(diǎn)17個(gè)全球“最高”
- 2018年東南大學(xué)國民經(jīng)濟(jì)學(xué)初試最高分最低分
- 2018年東南大學(xué)產(chǎn)業(yè)經(jīng)濟(jì)學(xué)初試最高分最低分
- 2018年東南大學(xué)國民經(jīng)濟(jì)學(xué)初試最高分最低分
- 2018年東南大學(xué)產(chǎn)業(yè)經(jīng)濟(jì)學(xué)初試最高分最低分
- 大學(xué)生求職簡歷優(yōu)秀模板(共4個(gè))
- 兩個(gè)正態(tài)總體的假設(shè)檢驗(yàn)8-3
- 小學(xué)生500個(gè)常用的成語
評(píng)論
0/150
提交評(píng)論