-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
中國高等院校計算機基礎教育課程體系規劃教材C程序設計教程(第3版)學習輔導/譚浩強 版權信息
- ISBN:9787302503835
- 條形碼:9787302503835 ; 978-7-302-50383-5
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
中國高等院校計算機基礎教育課程體系規劃教材C程序設計教程(第3版)學習輔導/譚浩強 本書特色
本書為普通高等教育“十一五”國家級規劃教材,榮獲全國高校出版社**書一等獎。本書是與譚浩強所著的《C程序設計教程(第3版)》(清華大學出版社出版)配合使用的參考書,全書可分四個部分。**部分為《C程序設計教程(第3版)》習題與參考解答,包括了該書各章的全部習題,對全部編程習題都給出了參考解答,包括114個程序;第二部分為常見錯誤分析和程序調試;第三部分為C語言上機指南,詳細介紹了利用Visual C++ 6.0集成環境和Visual Studio 2010編輯、編譯、調試和運行程序的方法;第四部分為上機實驗,提供了學習本課程應當進行的12個實驗。 本書內容豐富、實用性強,是學習C語言的一本好參考書,可作為《C程序設計教程(第3版)》和其他C語言教材的配套教材,既適合高等學校師生使用,也可供報考計算機等級考試者和其他自學者參考。
中國高等院校計算機基礎教育課程體系規劃教材C程序設計教程(第3版)學習輔導/譚浩強 內容簡介
本書是與譚浩強所著的《C程序設計教程(第3版)》(清華大學出版社出版)配合使用的參考書,全書可分4個部分。靠前部分為《C程序設計教程(第3版)》習題與參考解答,包括了該書各章的全部習題,對全部編程習題都給出了參考解答,包括114個程序;第二部分為常見錯誤分析和程序調試;第三部分為C語言上機指南,詳細介紹了利用Visual C++ 6.0集成環境和Visual Studio 2010編輯、編譯、調試和運行程序的方法;第四部分為上機實驗,提供了學習本課程應當進行的12個實驗。 本書內容豐富,實用性強,是學習C語言的一本好參考書,可作為《C程序設計教程(第3版)》和其他C語言教材的參考書,既適合高等學校師生使用,也可供報考計算機等級考試者和其他自學者參考。
中國高等院校計算機基礎教育課程體系規劃教材C程序設計教程(第3版)學習輔導/譚浩強 目錄
目錄
第1章程序設計和C語言3
第2章*簡單的C程序設計——順序程序設計8
第3章選擇結構程序設計16
第4章循環結構程序設計25
第5章利用數組處理批量數據42
第6章利用函數進行模塊化程序設計64
第7章善于使用指針90
第8章根據需要創建數據類型114
第9章利用文件保存數據147
第二部分常見錯誤分析和程序調試
第10章常見錯誤分析169第11章程序的調試與測試185
11.1程序的調試185
11.2程序錯誤的類型187
11.3程序的測試189
第三部分C語言上機指南
第12章Visual C++ 6.0的上機操作19712.1Visual C++ 6.0的安裝和啟動197
12.2輸入和編輯源程序198
12.2.1新建一個C源程序的方法198
12.2.2打開一個已有的程序200
12.2.3通過已有的程序建立一個新程序的方法200
12.3編譯、連接和運行201
12.3.1程序的編譯201
12.3.2程序的調試202
12.3.3程序的連接204
12.3.4程序的執行205
12.4建立和運行包含多個文件的程序的方法206
12.4.1由用戶建立項目工作區和項目文件206
12.4.2用戶只建立項目文件211
第13章用Visual Studio 2010運行C程序213
13.1關于Visual Studio 2010213
13.2怎樣建立新項目213
13.3怎樣建立文件217
13.4怎樣進行編譯219
13.5怎樣運行程序220
13.6怎樣打開項目中已有的文件221
13.7怎樣編輯和運行一個包含多文件的程序222
13.8關于用Visual Studio 2010編寫和運行C程序的說明225
第四部分上 機 實 驗
第14章實驗指導22914.1上機實驗的目的229
14.2上機實驗前的準備工作230
14.3上機實驗的步驟230
14.4實驗報告231
14.5實驗內容安排的原則231
第15章實驗安排 232
15.1實驗1C程序的運行環境和運行C程序的方法232
15.2實驗2*簡單的C程序設計——順序程序設計234
15.3實驗3選擇結構程序設計236
15.4實驗4循環結構程序設計237
15.5實驗5利用數組(一)238
15.6實驗6利用數組(二)239
15.7實驗7函數調用(一)240
15.8實驗8函數調用(二)241
15.9實驗9善用指針(一)242
15.10實驗10善用指針(二)243
15.11實驗11使用結構體244
15.12實驗12文件操作245
參考文獻246
中國高等院校計算機基礎教育課程體系規劃教材C程序設計教程(第3版)學習輔導/譚浩強 節選
第5章 利用數組處理批量數據 5.1用篩選法求100之內的素數。 解: 解題思路: 所謂“篩法”指的是“埃拉托色尼(Eratosthenes)篩法”。埃拉托色尼是古希臘的著名數學家。他采取的方法是,在一張紙上寫上1~1000的全部整數,然后逐個判斷它們是否是素數,找出一個非素數,就把它挖掉,*后剩下的就是素數,見圖51。① 2 3 ④ 5 ⑥ 7 ⑧ ⑨ ⑩ 11 13 17 19 23 29 31 37 41 43 47 … 圖51 具體做法如下: (1) 先將1挖掉(因為1不是素數)。 (2) 用2去除它后面的各個數,把能被2整除的數挖掉,即把2的倍數挖掉。 (3) 用3去除它后面各數,把3的倍數挖掉。 (4) 分別用4,5…各數作為除數去除這些數以后的各數。這個過程一直進行到在除數后面的數已全被挖掉為止。例如在圖51中找1~50的素數,要一直進行到除數為47為止。事實上,可以簡化,如果需要找1~n范圍內的素數表,只須進行到除數為n(取其整數) 即可。例如對1~50,只須進行到將7(即50的整數部分)作為除數即可。請讀者思考為什么? 上面的算法可表示如下: (1) 挖去1; (2) 用下一個未被挖去的數 p去除p后面各數,把p的倍數挖掉; (3) 檢查p是否小于n的整數部分(如果n=1000,則檢查p<31?),如果是,則返回(2)繼續執行,否則就結束; (4) 剩下的數就是素數。 用計算機解此題,可以定義一個數組 a。數組元素a\[1\]~a\[n\] 分別代表1~n這n個數。如果檢查出數組a的某一元素的值是非素數,就使它變為0,*后剩下不為0的就是素數。 編寫程序如下:#include #include//程序中用到求平方根函數sqrt int main() { int i,j,n,a\[101\];//定義a數組包含101個元素 for (i=1;i a\[i\]=i; //使a\[1\]~a\[100\] 的值為1到100 a\[1\]=0; //先"挖掉"a\[1\] for (i=2;i for (j=i+1;j { if(a\[i\]!=0 && a\[j\]!=0) if (a\[j\]%a\[i\]==0) a\[j\]=0; //把非素數“挖掉” } printf("\\n"); for (i=2,n=0;i {if (a\[i\]!=0)//選出值不為0的數組元素,即素數 {printf("%5d",a\[i\]);//輸出素數,寬度為5列 n++; //累計本行已輸出的數據個數 } if(n==10) { printf("\\n"); n=0; } } printf("\\n"); return 0; }運行結果:2357111317192329 31374143475359616771 737838997 輸入數組a各元素for (i=1; i≤9; i++)min=ifor (j=i+1; j≤10; j++)a [min]>a[j] TFmin=j交換a[min]與a[i]輸出已排序的10個數圖525.2用選擇法對10個整數排序。 解: 解題思路: 選擇法的思路如下: 設有10個元素a\[1\]~a\[10\], 將a\[1\] 與a\[2\]~a\[10\]比較,若a\[1\]比a\[2\]~a\[10\]都小,則不進行交換,即無任何操作。若a\[2\]~a\[10\]中有一個以上比a\[1\] 小,則將其中*大的一個(假設為a\[i\]) 與a\[1\] 交換,此時a\[1\]中存放了10個數中*小的數。第2輪將a\[2\]與a\[3\]~a\[10\]比較,將剩下9個數中的*小者a\[i\]與a\[2\]對換,此時a\[2\]中存放的是10個中第二小的數。依此類推,共進行9輪比較,a\[1\]~a\[10\] 就已按由小到大的順序存放了。NS圖如圖52所示。 編寫程序如下:#include int main() { int i,j,min,temp,a\[11\]; printf("enter data:\\n"); for (i=1;i {printf("a\[%d\]=",i); scanf("%d",&a\[i\]);//輸入10個數 } printf("\\n"); printf("The orginal numbers:\\n"); for (i=1;i printf("%5d",a\[i\]);//輸出這10個數 printf("\\n"); for (i=1;i {min=i; for (j=i+1;j if (a\[min\]>a\[j\]) min=j; temp=a\[i\];//以下3行將a\[i+1\]~a\[10\]中*小者與a\[i\]對換 a\[i\]=a\[min\]; a\[min\]=temp; } printf("\\nThe sorted numbers:\\n");//輸出已排好序的10個數 for (i=1;i printf("%5d",a\[i\]); printf("\\n"); return 0; }運行結果:enter data: a\[1\]=1↙ a\[2\]=16↙ a\[3\]=5↙ a\[4\]=98↙ a\[5\]=23↙ a\[6\]=119↙ a\[7\]=18↙ a\[8\]=75↙ a\[9\]=65↙ a\[10\]=81↙ The orginal numbers: 1 165 98 23119 18 75 65 81 The sorted numbers: 15 16 18 23 65 75 81 98119 5.3求一個3×3的整型二維數組對角線元素之和。 解: 編寫程序如下:#include int main() { int a\[3\]\[3\],sum=0; int i,j; printf("enter data:\\n"); for (i=0;i for (j=0;j scanf("%d",&a\[i\]\[j\]); for (i=0;i sum=sum+a\[i\]\[i\]; printf("sum=%6d\\n",sum); return 0; }運行結果:enter data: 1↙ 2↙ 3↙ 4↙ 5↙ 6↙ 7↙ 8↙ 9↙ sum=15關于輸入數據方式的討論: 在程序的scanf語句中用%d作為輸入格式控制,上面輸入數據的方式顯然是可行的。其實也可以在一行中連續輸入9個數據,如:1 2 3 4 5 6 7 8 9↙結果也一樣。在輸入完9個數據并按回車鍵后,這9個數據被送到內存中的輸入緩沖區中,然后逐個送到各個數組元素中。下面的輸入方式也是正確的:1 2 3↙ 4 5 6↙ 7 8 9↙或者:1 2↙ 3 4 5 6↙ 7 8 9↙都是可以的。 請考慮,如果將程序第7~9行改為for (j=0;j scanf(" %d %d %d",&a\[0\]\[j\],&a\[1\]\[j\],&a\[2\]\[j\]);應如何輸入?是否必須一行輸入3個數據,如:1 2 3↙ 4 5 6↙ 7 8 9↙答案是可以按此方式輸入,也可以不按此方式輸入,而采用前面介紹的方式輸入,不論分多少行、每行包括幾個數據,只要求*后輸入完9個數據即可。 程序中用的是整型數組,運行結果是正確的。如果用的是實型數組,只須將程序第4行的int改為float或double即可,并且在scanf函數中使用%f或%lf格式聲明。 5.4已有一個已排好序的數組,要求輸入一個數后,按原來排序的規律將它插入數組中。 解: 解題思路: 設數組a有n個元素,而且已按升序排列,在插入一個數時按下面的方法處理: (1) 如果插入的數num比a數組*后一個數大,則將插入的數放在a數組末尾。 (2) 如果插入的數num不比a數組*后一個數大,則將它依次和a\[0\]~a\[n-1\] 比較,直到出現a\[i\]>num為止,這時表示a\[0\]~a\[i-1\]各元素的值比num小,a\[i\]~a\[n-1\] 各元素的值比num大。num理應插到a\[i-1\] 之后、a\[i\]之前。怎樣才能實現此目的呢?將a\[i\]~a\[n-1\] 各元素向后移一個位置(即a\[i\]變成a\[i+1\],…,a\[n-1\]變成a\[n\])。然后將num放在a\[i\]中。NS圖如圖53所示。顯示初始數組輸入待插入的數值numnum>末尾元素
中國高等院校計算機基礎教育課程體系規劃教材C程序設計教程(第3版)學習輔導/譚浩強 作者簡介
譚浩強教授,我國著名計算機教育專家,計算機普及和高校計算機基礎教育開拓者之一,現任全國高校計算機基礎教育研究會會長。他創造了3個世界紀錄:(1)20年來他(及其合作者)共編著出版了140余部計算機著作,此外主編了300多部計算機書籍,是出版科技著作數量最多的人。(2)他編著和主編的書發行量近5000萬冊,是讀者最多的科技作家。(3)他和別人合作編著的《BASIC語言》發行了1250萬冊,創科技書籍發行量的世界紀錄。他善于用讀者容易理解的方法和語言說明復雜的概念。許多人認為他“開創了計算機書籍貼近大眾的新風”,為我國的計算機普及事業做出了重要的貢獻。
- >
伯納黛特,你要去哪(2021新版)
- >
伊索寓言-世界文學名著典藏-全譯本
- >
唐代進士錄
- >
巴金-再思錄
- >
人文閱讀與收藏·良友文學叢書:一天的工作
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
經典常談
- >
中國人在烏蘇里邊疆區:歷史與人類學概述