本書是為C語言程序設計課程編寫的實驗指導用書。全書以寧波大學程序設計在線評判系統(tǒng)(NBU OJ)為平臺,在該平臺上匯集了我們設計、整理的大量程序設計題目。
為了幫助讀者有效學習,本書精選了NBU OJ上不同類型的30多道題目,并提供了完善的參考程序,介紹了Visual C 6.0環(huán)境下程序調(diào)試的技巧以及NBU OJ上的評判規(guī)則,總結(jié)了程序開發(fā)中容易犯的錯誤,同時還挑選了OJ上的160多道題目供學生實驗使用。讀者可以先模仿實例操作,然后再做上機實驗題,通過模仿調(diào)試編寫的上機實踐過程,循序漸進地熟悉編程環(huán)境及OJ平臺,掌握程序設計的思想和方法。本書還提供了兩個綜合課程設計,并給出了程序的基礎代碼,供讀者模仿完善。書中還提供了少量習題,可供讀者鞏固C語言方面的理論知識。
本書可作為高等院校理工科相關專業(yè)的程序設計類課程實踐教材,也可作為以ACM/ICPC為目標的大學生程序設計競賽的入門培訓教材,還可供對程序設計感興趣的普通讀者學習參考。
本書以寧波大學自主開發(fā)的程序設計在線評判系統(tǒng)(NBU OJ)為實驗平臺,根據(jù)C課程的教學要求設計了對應的實驗項目,幾乎所有項目都可以在NBU OJ上找到題目來源,而且學生寫完代碼后可以在線提交到NBU OJ上,系統(tǒng)會自動給出評判信息,如果是班級使用的話,系統(tǒng)還會給出大致的排名信息。教材中選取了NBU OJ上的若干題目作為實例分析,詳細介紹了VC下的編程要點以及OJ上的評判規(guī)則,同時給出若干題目供學生實踐使用。本教材的使用為教師免除了出題的麻煩,而配套系統(tǒng)的使用也為教師免除了重復檢查學生代碼的負擔。同時,在線實踐的模式也有利于增強學生的學習積極性,并對促進學生的課外學習有級大幫助。教材及平臺適合本科院校理工科學生程序設計C課程的實踐教學,而且平臺是面向因特網(wǎng)開放的,不收取任何費用。
目錄
第1部分在
線 實 驗
實驗1熟悉C編程環(huán)境
1.1實驗目的和要求
1.2熟悉Visual C 集成開發(fā)環(huán)境
1.2.1啟動Visual C
1.2.2新建或打開源程序文件
1.2.3程序的編輯、編譯、連接和運行
1.2.4程序的關閉
1.3程序調(diào)試中的錯誤
1.3.1編譯錯誤
1.3.2連接錯誤
1.3.3運行錯誤
1.3.4邏輯錯誤
1.4實例分析
1.4.1開學的問候
1.4.2顯示簡單圖案
1.4.3自動應答器
1.5上機實驗題
1.5.1自我介紹
1.5.2才藝秀
1.5.3菜單顯示
1.5.4加強版自動應答器
實驗2在線評判系統(tǒng)(NBU OJ)的使用
2.1實驗目的和要求
2.2NBU OJ系統(tǒng)簡介
2.3在NBU OJ上注冊
2.4在NBU OJ上做題
2.4.1學生自主式做題
2.4.2教師指導式做題
2.5在線課程(ONLINE COURSE)管理
2.5.1課程管理(教師用戶)
2.5.2成績管理(教師用戶)
2.5.3課程學習(學生用戶)
2.6NBU OJ上輸入輸出的特殊要求
2.7實例分析
2.7.1數(shù)字自動應答器(題號: 1000,難度: ★)
2.7.2單組A B(題號: 1002,難度: ★)
2.8上機實驗題
2.8.1字符應答器(題號: 1001,難度: ★)
2.8.2兩數(shù)交換輸出順序(題號: 1015,難度: ★)
2.8.3小神探的小問題(題號: 1215,難度: ★)
實驗3基本數(shù)據(jù)類型與順序結(jié)構(gòu)
3.1實驗目的和要求
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成績預算(題號: 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實驗目的和要求
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實驗目的和要求
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實驗目的和要求
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不重復的三位數(shù)(題號: 1801,難度: ★★)
6.3.10雞、兔、鳥同籠(題號: 1434,難度: ★★)
6.3.11滿載著愛的代碼(題號: 1241,難度: ★★★)
實驗7一維數(shù)值型數(shù)組
7.1實驗目的和要求
7.2實例分析
7.2.1無序數(shù)組的查找(題號: 1151,難度: ★)
7.2.2最大值和最小值(題號: 1152,難度: ★)
7.2.3一維數(shù)組的刪除(題號: 1154,難度: ★★)
7.3上機實驗題
7.3.1一維數(shù)組基本練習(題號: 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無重復的排序(題號: 1262,難度: ★★)
實驗8二維數(shù)值型數(shù)組
8.1實驗目的和要求
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實驗目的和要求
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實驗目的和要求
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實驗目的和要求
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字符串復制(題號: 1256,難度: ★)
11.3.11比較串的大。}號: 1404,難度: ★)
11.3.12正數(shù)的平均值(題號: 1200,難度: ★)
11.3.13數(shù)組中對應元素相減(題號: 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實驗目的和要求
12.2實例分析
12.2.1牛刀小試結(jié)構(gòu)體(題號: 1435,難度: ★)
12.2.2課程平均分(題號: 1445,難度: ★)
12.3上機實驗題
12.3.1初學結(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教務系統(tǒng)之輸入輸出(題號: 1331,難度: ★)
12.3.7教務系統(tǒng)之平均成績(題號: 1414,難度: ★)
12.3.8考試之后(題號: 1372,難度: ★★)
12.3.9OJ上的簡單排名(題號: 1429,難度: ★★)
12.3.10慶功晚宴(題號: 1370,難度: ★★)
12.3.11情人節(jié)的百寶箱(題號: 1371,難度: ★★)
12.3.12獎學金(題號: 1439,難度: ★★)
12.3.13購買賀年卡(題號: 1440,難度: ★★★)
12.3.14最簡真分數(shù)遞增序列(題號: 1400,難度: ★★★)
實驗13單向鏈表
13.1實驗目的和要求
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復雜的鏈表刪除(題號: 1392,難度: ★★)
實驗14文件
14.1實驗目的和要求
14.2實例分析
14.2.1CoCo的小把戲
14.2.2存儲學生信息
14.3上機實驗題
14.3.1信息的顯示
14.3.2專家的工作
14.3.3奇偶數(shù)分離
14.3.4學生成績管理
實驗15課程設計
15.1小學生四則運算小游戲
15.1.1問題描述
15.1.2知識點
15.1.3功能分析
15.1.4參考代碼1.0
15.1.5參考代碼2.0
15.2學生成績管理系統(tǒng)
15.2.1問題描述
15.2.2知識點
15.2.3功能分析
15.2.4參考代碼1.0
15.2.5參考代碼2.0
第2部分習
題 匯 編
習題1計算機與程序設計概述
習題2基本數(shù)據(jù)類型與順序結(jié)構(gòu)
習題3選擇結(jié)構(gòu)
習題4循環(huán)結(jié)構(gòu)
習題5數(shù)值型數(shù)組
習題6字符數(shù)組和字符串
習題7函數(shù)
習題8指針、數(shù)組與函數(shù)
習題9結(jié)構(gòu)體
習題10鏈表
習題11文件
習題參考答案
參考文獻