本書是為C語言程序設(shè)計課程編寫的實驗指導(dǎo)用書。全書以寧波大學(xué)程序設(shè)計在線評判系統(tǒng)(NBU OJ)為平臺,在該平臺上匯集了我們設(shè)計、整理的大量程序設(shè)計題目。
為了幫助讀者有效學(xué)習(xí),本書精選了NBU OJ上不同類型的30多道題目,并提供了完善的參考程序,介紹了Visual C 6.0環(huán)境下程序調(diào)試的技巧以及NBU OJ上的評判規(guī)則,總結(jié)了程序開發(fā)中容易犯的錯誤,同時還挑選了OJ上的160多道題目供學(xué)生實驗使用。讀者可以先模仿實例操作,然后再做上機實驗題,通過模仿調(diào)試編寫的上機實踐過程,循序漸進地熟悉編程環(huán)境及OJ平臺,掌握程序設(shè)計的思想和方法。本書還提供了兩個綜合課程設(shè)計,并給出了程序的基礎(chǔ)代碼,供讀者模仿完善。書中還提供了少量習(xí)題,可供讀者鞏固C語言方面的理論知識。
本書可作為高等院校理工科相關(guān)專業(yè)的程序設(shè)計類課程實踐教材,也可作為以ACM/ICPC為目標的大學(xué)生程序設(shè)計競賽的入門培訓(xùn)教材,還可供對程序設(shè)計感興趣的普通讀者學(xué)習(xí)參考。
本書以寧波大學(xué)自主開發(fā)的程序設(shè)計在線評判系統(tǒng)(NBU OJ)為實驗平臺,根據(jù)C課程的教學(xué)要求設(shè)計了對應(yīng)的實驗項目,幾乎所有項目都可以在NBU OJ上找到題目來源,而且學(xué)生寫完代碼后可以在線提交到NBU OJ上,系統(tǒng)會自動給出評判信息,如果是班級使用的話,系統(tǒng)還會給出大致的排名信息。教材中選取了NBU OJ上的若干題目作為實例分析,詳細介紹了VC下的編程要點以及OJ上的評判規(guī)則,同時給出若干題目供學(xué)生實踐使用。本教材的使用為教師免除了出題的麻煩,而配套系統(tǒng)的使用也為教師免除了重復(fù)檢查學(xué)生代碼的負擔(dān)。同時,在線實踐的模式也有利于增強學(xué)生的學(xué)習(xí)積極性,并對促進學(xué)生的課外學(xué)習(xí)有級大幫助。教材及平臺適合本科院校理工科學(xué)生程序設(shè)計C課程的實踐教學(xué),而且平臺是面向因特網(wǎng)開放的,不收取任何費用。
目錄
第1部分在
線 實 驗
實驗1熟悉C編程環(huán)境
1.1實驗?zāi)康暮鸵?/p>
1.2熟悉Visual C 集成開發(fā)環(huán)境
1.2.1啟動Visual C
1.2.2新建或打開源程序文件
1.2.3程序的編輯、編譯、連接和運行
1.2.4程序的關(guān)閉
1.3程序調(diào)試中的錯誤
1.3.1編譯錯誤
1.3.2連接錯誤
1.3.3運行錯誤
1.3.4邏輯錯誤
1.4實例分析
1.4.1開學(xué)的問候
1.4.2顯示簡單圖案
1.4.3自動應(yīng)答器
1.5上機實驗題
1.5.1自我介紹
1.5.2才藝秀
1.5.3菜單顯示
1.5.4加強版自動應(yīng)答器
實驗2在線評判系統(tǒng)(NBU OJ)的使用
2.1實驗?zāi)康暮鸵?/p>
2.2NBU OJ系統(tǒng)簡介
2.3在NBU OJ上注冊
2.4在NBU OJ上做題
2.4.1學(xué)生自主式做題
2.4.2教師指導(dǎo)式做題
2.5在線課程(ONLINE COURSE)管理
2.5.1課程管理(教師用戶)
2.5.2成績管理(教師用戶)
2.5.3課程學(xué)習(xí)(學(xué)生用戶)
2.6NBU OJ上輸入輸出的特殊要求
2.7實例分析
2.7.1數(shù)字自動應(yīng)答器(題號: 1000,難度: ★)
2.7.2單組A B(題號: 1002,難度: ★)
2.8上機實驗題
2.8.1字符應(yīng)答器(題號: 1001,難度: ★)
2.8.2兩數(shù)交換輸出順序(題號: 1015,難度: ★)
2.8.3小神探的小問題(題號: 1215,難度: ★)
實驗3基本數(shù)據(jù)類型與順序結(jié)構(gòu)
3.1實驗?zāi)康暮鸵?/p>
3.2實例分析
3.2.1計算月收入(題號: 1006,難度: ★)
3.2.2溫度轉(zhuǎn)換(題號: 1007,難度: ★)
3.2.3衛(wèi)生包干區(qū)的面積(題號: 1011,難度: ★)
3.2.4三位數(shù)的數(shù)位分離(題號: 1029,難度: ★)
3.3上機實驗題
3.3.1三數(shù)求平均值(題號: 1005,難度: ★)
3.3.2圓周長和圓面積(題號: 1008,難度: ★)
3.3.3梯形面積(題號: 1205,難度: ★)
3.3.4植樹問題(題號: 1018,難度: ★)
3.3.5成績預(yù)算(題號: 1021,難度: ★)
3.3.6簡單譯碼(題號: 1022,難度: ★)
3.3.7多項式求值2(題號: 1025,難度: ★)
3.3.8存款利息(題號: 1027,難度: ★)
3.3.9不同國家的日期寫法(題號: 1258,難度: ★)
3.3.10雞兔同籠(1)(題號: 1014,難度: ★)
3.3.11四位數(shù)的數(shù)字和(題號: 1247,難度: ★)
3.3.12平面上兩點的距離(題號: 1013,難度: ★)
3.3.13旅行時間和花費(題號: 1242,難度: ★)
3.3.14零錢兌換(題號: 1243,難度: ★)
實驗4選擇結(jié)構(gòu)
4.1實驗?zāi)康暮鸵?/p>
4.2實例分析
4.2.1成績合格問題(題號: 1058,難度: ★)
4.2.2符號屬性判斷(題號: 1036,難度: ★)
4.2.3分段函數(shù)(1)(題號: 1041,難度: ★)
4.2.4單個字母大小寫互換(題號: 1047,難度: ★)
4.2.5平面上的三角形判斷(1)(題號: 1012,難度: ★)
4.3上機實驗題
4.3.1判斷奇數(shù)偶數(shù)(題號: 1038,難度: ★)
4.3.2分段函數(shù)(3)(題號: 1043,難度: ★)
4.3.3單個字符類型判斷(題號: 1049,難度: ★)
4.3.4五級制成績評級(題號: 1060,難度: ★)
4.3.5是否閏年(題號: 1072,難度: ★)
4.3.6求點的高度(題號: 1082,難度: ★)
4.3.7求1到10的英文單詞(題號:
1083,難度:
★)
4.3.8簡單計算器(題號: 1084,難度: ★)
4.3.9正方形還是圓形(題號: 1218,難度: ★)
4.3.10三數(shù)求大值(題號: 1064,難度: ★)
4.3.11模擬萬年歷(題號: 1073,難度: ★)
4.3.12加油站加油(題號: 1078,難度: ★)
4.3.13數(shù)字加密(題號: 1077,難度: ★)
4.3.14一元二次方程(題號: 1081,難度: ★)
4.3.15石頭剪刀布(題號: 1232,難度: ★)
4.3.16計算火車運行時間(題號: 1492,難度: ★)
4.3.17機器人的移動問題(題號: 1238,難度: ★★)
實驗5基本循環(huán)結(jié)構(gòu)
5.1實驗?zāi)康暮鸵?/p>
5.2實例分析
5.2.11到N連續(xù)求和(題號: 1090,難度: ★)
5.2.2簡單分數(shù)數(shù)列求和(題號: 1098,難度: ★)
5.2.3一組整數(shù)求平均(題號: 1108,難度: ★)
5.2.4不確定組數(shù)的A B(題號: 1003,難度: ★)
5.3上機實驗題
5.3.1簡單數(shù)字打。}號: 1086,難度: ★)
5.3.2符號變化的整數(shù)數(shù)列求和(題號: 1091,難度: ★)
5.3.3乘法數(shù)列求和(題號: 1095,難度: ★)
5.3.4分數(shù)數(shù)列求和(題號: 1101,難度: ★)
5.3.5計算n!(題號: 1104,難度: ★)
5.3.6正/負數(shù)統(tǒng)計(題號: 1113,難度: ★)
5.3.7N組A B(題號: 1004,難度: ★)
5.3.8數(shù)字字符統(tǒng)計(題號: 1052,難度: ★)
5.3.9字符分類統(tǒng)計(題號: 1053,難度: ★)
5.3.10各位數(shù)字求和(題號: 1032,難度: ★)
5.3.11數(shù)據(jù)逆序顯示(題號: 1031,難度: ★)
5.3.12水仙花數(shù)(題號: 1126,難度: ★)
5.3.13判斷完全數(shù)(題號: 1127,難度: ★)
5.3.14分解質(zhì)因數(shù)(題號: 1128,難度: ★)
5.3.15蟠桃記(題號: 1136,難度: ★)
5.3.16還是雞兔同籠(題號: 1211,難度: ★)
5.3.17判斷親密數(shù)(題號: 1213,難度: ★)
5.3.18角谷猜想(題號: 1458,難度: ★)
5.3.19畫正方形(題號: 1080,難度: ★)
5.3.20用天平找小球(題號: 1491,難度: ★)
5.3.21數(shù)星星(題號: 2547,難度: ★)
5.3.22統(tǒng)計衣服尺寸(題號: 1265,難度: ★)
5.3.23勤勞的螞蟻(題號: 1233,難度: ★★)
5.3.24回流的時光(題號: 1235,難度: ★★)
5.3.25一數(shù)三平方數(shù)(題號: 1421,難度: ★★)
實驗6嵌套循環(huán)結(jié)構(gòu)
6.1實驗?zāi)康暮鸵?/p>
6.2實例分析
6.2.1繪制字符正方形(題號: 1226,難度: ★)
6.2.2求階乘之和(題號: 1105,難度: ★)
6.3上機實驗題
6.3.1表示成兩個數(shù)的平方和(題號: 1222,難度: ★)
6.3.2多組整數(shù)求和(題號: 1109,難度: ★)
6.3.3百錢百雞問題(題號: 2095,難度: ★)
6.3.4九九乘法表(題號: 1119,難度: ★★)
6.3.5字母金字塔(題號: 1166,難度: ★★)
6.3.6打印菱形(題號: 1214,難度: ★★)
6.3.7哥德巴赫猜想(題號: 1174,難度: ★★)
6.3.8計算等式(題號: 1103,難度: ★★)
6.3.9不重復(fù)的三位數(shù)(題號: 1801,難度: ★★)
6.3.10雞、兔、鳥同籠(題號: 1434,難度: ★★)
6.3.11滿載著愛的代碼(題號: 1241,難度: ★★★)
實驗7一維數(shù)值型數(shù)組
7.1實驗?zāi)康暮鸵?/p>
7.2實例分析
7.2.1無序數(shù)組的查找(題號: 1151,難度: ★)
7.2.2最大值和最小值(題號: 1152,難度: ★)
7.2.3一維數(shù)組的刪除(題號: 1154,難度: ★★)
7.3上機實驗題
7.3.1一維數(shù)組基本練習(xí)(題號: 1149,難度: ★)
7.3.2平均分及不合格人數(shù)(題號: 1111,難度: ★)
7.3.3簡單評委打分(題號: 1147,難度: ★)
7.3.4求年月日(題號: 1075,難度: ★)
7.3.5一維數(shù)組逆序顯示(題號: 1155,難度: ★)
7.3.6斐波那契的兔子問題(題號: 1124,難度: ★)
7.3.7有序數(shù)組的查找(題號: 1158,難度: ★)
7.3.8一維數(shù)組的插入(題號: 1153,難度: ★)
7.3.9剔除數(shù)字0(題號: 1194,難度: ★)
7.3.10簡單一維數(shù)組排序(題號: 1156,難度: ★)
7.3.11最高分和最低分(題號: 1157,難度: ★)
7.3.12統(tǒng)計素數(shù)(題號: 1131,難度: ★)
7.3.13百燈判熄(題號: 1122,難度: ★★)
7.3.14十進制轉(zhuǎn)換成八進制(題號: 1172,難度: ★★)
7.3.15冪之和(題號: 1209,難度: ★★)
7.3.16三天打魚兩天曬網(wǎng)(題號: 1228,難度: ★★)
7.3.17數(shù)制轉(zhuǎn)換(題號: 1239,難度: ★★)
7.3.18一位數(shù)出現(xiàn)的次數(shù)(題號: 1252,難度: ★★)
7.3.19susan的貨幣兌換(題號: 1167,難度: ★★)
7.3.20無重復(fù)的排序(題號: 1262,難度: ★★)
實驗8二維數(shù)值型數(shù)組
8.1實驗?zāi)康暮鸵?/p>
8.2實例分析
8.2.1二維數(shù)組的輸入和輸出(題號: 1141,難度: ★)
8.2.2二維數(shù)組的最大值(題號: 1161,難度: ★)
8.3上機實驗題
8.3.1單位矩陣初始化(題號: 1140,難度: ★)
8.3.2二維數(shù)組求行平均值(題號: 1142,難度: ★)
8.3.3對角線元素和(題號: 1164,難度: ★)
8.3.4上三角置零(題號: 1298,難度: ★)
8.3.5內(nèi)部和(題號: 1299,難度: ★)
8.3.6邊界積(題號: 1312,難度: ★)
8.3.7二維數(shù)組最大值及位置(題號: 1162,難度: ★★)
8.3.8楊輝三角形(題號: 1165,難度: ★★)
8.3.9二維數(shù)組行列互換(題號: 1169,難度: ★★)
8.3.10二維數(shù)組的鞍點(題號: 1181,難度: ★★)
實驗9字符數(shù)組和字符串
9.1實驗?zāi)康暮鸵?/p>
9.2實例分析
9.2.1字符變換(題號: 1057,難度: ★)
9.2.2回文數(shù)字(題號: 1144,難度: ★)
9.3上機實驗題
9.3.1相鄰字符判相等(題號: 1054,難度: ★)
9.3.2特定字符出現(xiàn)次數(shù)(題號: 1056,難度: ★)
9.3.3單詞譯碼(題號: 1139,難度: ★)
9.3.4數(shù)字提。}號: 1187,難度: ★)
9.3.5鏡像文字(題號: 1336,難度: ★)
9.3.6回文字符串(題號: 1145,難度: ★)
9.3.7輸出最短字符串(題號: 1201,難度: ★)
9.3.8數(shù)字字符出現(xiàn)頻率(題號: 1148,難度: ★★)
9.3.9字母出現(xiàn)頻率(題號: 1159,難度: ★★)
9.3.10文章中字符數(shù)統(tǒng)計(題號: 1150,難度: ★★)
9.3.11C語言合法標識符(題號: 1190,難度: ★★)
9.3.12判斷字符串類型(題號: 1199,難度: ★★)
9.3.13首字母變大寫(題號: 1337,難度: ★★)
9.3.14清除行注釋(題號: 1138,難度: ★★)
9.3.15查找最大元素(題號: 1175,難度: ★★)
9.3.16城市名排序(題號: 1185,難度: ★★)
9.3.17你能找出多少個整數(shù)(題號: 1315,難度: ★★)
9.3.18幸運抽獎(題號: 1340,難度: ★★)
9.3.19去過的城市(題號: 1352,難度: ★★)
9.3.20快樂的字符串(題號: 1341,難度: ★★)
實驗10函數(shù)的基本使用
10.1實驗?zāi)康暮鸵?/p>
10.2實例分析
10.2.1大寫字母變小寫(題號: 2628,難度: ★)
10.2.2求階乘(題號: 2629,難度: ★)
10.3上機實驗題
10.3.1兩整數(shù)相加(題號: 2627,難度: ★)
10.3.2多項式求值(題號: 2630,難度: ★)
10.3.3求兩數(shù)平均值(題號: 2631,難度: ★)
10.3.4求兩數(shù)最大值(題號: 2634,難度: ★)
10.3.5是否素數(shù)(題號: 2636,難度: ★)
10.3.6判斷區(qū)域內(nèi)的素數(shù)(題號: 2633,難度: ★)
10.3.7是否完全數(shù)(題號: 2635,難度: ★)
10.3.8字母金字塔(題號: 2632,難度: ★)
10.3.9求最大公約數(shù)(題號: 2644,難度: ★)
10.3.10不一樣的斐波那契(題號: 2645,難度: ★)
10.3.11漢諾塔(題號: 1143,難度: ★★)
實驗11指針、數(shù)組與函數(shù)
11.1實驗?zāi)康暮鸵?/p>
11.2實例分析
11.2.1最大值和最小值(題號: 1152,難度: ★)
11.2.2單位矩陣初始化(題號: 1140,難度: ★)
11.3上機實驗題
11.3.1簡單數(shù)字顯示(題號: 2637,難度: ★)
11.3.2一維數(shù)組元素加1顯示(題號: 2639,難度: ★)
11.3.3兩數(shù)求和(題號: 2641,難度: ★)
11.3.4求數(shù)組中的最大值(題號: 2646,難度: ★)
11.3.5計算總分(題號: 1110,難度: ★)
11.3.6還是平均分(題號: 1112,難度: ★)
11.3.7一維數(shù)組排序(題號: 1170,難度: ★)
11.3.8二維數(shù)組元素加1操作(題號: 1160,難度: ★)
11.3.9字符串長度(題號: 1182,難度: ★)
11.3.9連接字符串(題號: 1183,難度: ★)
11.3.10字符串復(fù)制(題號: 1256,難度: ★)
11.3.11比較串的大。}號: 1404,難度: ★)
11.3.12正數(shù)的平均值(題號: 1200,難度: ★)
11.3.13數(shù)組中對應(yīng)元素相減(題號: 2647,難度: ★)
11.3.14無序數(shù)組的查找(題號: 1151,難度: ★)
11.3.15二維數(shù)組的輸入輸出(題號: 1141,難度: ★)
11.3.16數(shù)字剔除(題號: 1443,難度: ★★)
11.3.17字符接龍(題號: 1444,難度: ★★)
實驗12結(jié)構(gòu)體
12.1實驗?zāi)康暮鸵?/p>
12.2實例分析
12.2.1牛刀小試結(jié)構(gòu)體(題號: 1435,難度: ★)
12.2.2課程平均分(題號: 1445,難度: ★)
12.3上機實驗題
12.3.1初學(xué)結(jié)構(gòu)體(題號: 1436,難度: ★)
12.3.2結(jié)構(gòu)體的嵌套(題號: 1437,難度: ★)
12.3.3計算總分(題號: 1438,難度: ★)
12.3.4候選人得票統(tǒng)計(題號: 1887,難度: ★)
12.3.5最高分與平均分(題號: 1310,難度: ★)
12.3.6教務(wù)系統(tǒng)之輸入輸出(題號: 1331,難度: ★)
12.3.7教務(wù)系統(tǒng)之平均成績(題號: 1414,難度: ★)
12.3.8考試之后(題號: 1372,難度: ★★)
12.3.9OJ上的簡單排名(題號: 1429,難度: ★★)
12.3.10慶功晚宴(題號: 1370,難度: ★★)
12.3.11情人節(jié)的百寶箱(題號: 1371,難度: ★★)
12.3.12獎學(xué)金(題號: 1439,難度: ★★)
12.3.13購買賀年卡(題號: 1440,難度: ★★★)
12.3.14最簡真分數(shù)遞增序列(題號: 1400,難度: ★★★)
實驗13單向鏈表
13.1實驗?zāi)康暮鸵?/p>
13.2實例分析
13.2.1靜態(tài)鏈表的建立和查詢(題號: 1327,難度: ★)
13.2.2鏈表刪除(題號: 1392,難度: ★★)
13.3上機實驗題
13.3.1動態(tài)鏈表的建立和查詢(題號: 1425,難度: ★)
13.3.2鏈表插入(題號: 1394,難度: ★★)
13.3.3約瑟夫(題號: 1390,難度: ★★)
13.3.4復(fù)雜的鏈表刪除(題號: 1392,難度: ★★)
實驗14文件
14.1實驗?zāi)康暮鸵?/p>
14.2實例分析
14.2.1CoCo的小把戲
14.2.2存儲學(xué)生信息
14.3上機實驗題
14.3.1信息的顯示
14.3.2專家的工作
14.3.3奇偶數(shù)分離
14.3.4學(xué)生成績管理
實驗15課程設(shè)計
15.1小學(xué)生四則運算小游戲
15.1.1問題描述
15.1.2知識點
15.1.3功能分析
15.1.4參考代碼1.0
15.1.5參考代碼2.0
15.2學(xué)生成績管理系統(tǒng)
15.2.1問題描述
15.2.2知識點
15.2.3功能分析
15.2.4參考代碼1.0
15.2.5參考代碼2.0
第2部分習(xí)
題 匯 編
習(xí)題1計算機與程序設(shè)計概述
習(xí)題2基本數(shù)據(jù)類型與順序結(jié)構(gòu)
習(xí)題3選擇結(jié)構(gòu)
習(xí)題4循環(huán)結(jié)構(gòu)
習(xí)題5數(shù)值型數(shù)組
習(xí)題6字符數(shù)組和字符串
習(xí)題7函數(shù)
習(xí)題8指針、數(shù)組與函數(shù)
習(xí)題9結(jié)構(gòu)體
習(xí)題10鏈表
習(xí)題11文件
習(xí)題參考答案
參考文獻