本章主要介紹指針相關的基礎知識,本節課的主要以下 算法
(1)經過示例"密碼開鎖"引入指針的概念和主要知識點,分析了密碼開鎖的過程來講明變量、內存單元和地址之間的關係,從而引入指針的基本概念,接着介紹了指針的基本運算以及指針變量的初始化。數組
(2)經過例子"角色互換"引入指針做爲函數參數的用途和用法,區分按值調用和引用調用,分析了3個swap()函數進行對比,最後經過給定的年和天數計算是某年某月某日的實例學習瞭如何使用指針做爲函數參數返回多個值,解決了之前一個函數最多隻能return一個值的問題。 函數
(3)經過示例"冒泡排序"引入數組名做爲函數參數,重點介紹指針、數組和地址之間的關係,經過例子說明了指針和數組能夠實現相同的操做。引出上節課學習的選擇排序進行了對比。學習
1. 重作課本上P191例8-5,要求使用選擇排序算法和冒泡排序算法分別實現。(注意:分別對應兩個函數,由主函數分別調用) 網站
2. 編寫一個利用指針找最大值的函數,並用主函數調用。 spa
。 .net
3. 實現一個拆分實數的整數與小數部分的簡單函數,並用主函數調用。 指針
4. 在數組中查找指定元素:輸入一個正整數n(1<n<=10),而後輸入n個整數存入數組a中,再輸入一個整數x,在數組a中查找x,若找到則輸出相應的下標,不然顯示"Not found"。要求定義和調用函數search(int list[],int n,int x),在數組list中查找元素x,若找到則返回相應下標,不然返回-1,參數n表明數組list中元素的數量。試編寫相應程序。blog
1. 做業的Deadline: 2016-12-8 20:00pm 排序
2. 將本次實驗內容的代碼上傳到https://coding.net/ 網站。 (60分)
3. 寫一篇隨筆,內容分爲四個部分:(總分40分)
寫出本次課學習到的知識和體會、學習的時長、學習過程當中遇到的問題、問題解決的方法及問題的疑惑等。
隨筆的格式以下:
題目:實驗11——指針的基礎應用
本次課學習到的知識點:(5分)
(1)…….
(2)……..
………..
2. 實驗過程當中遇到的問題及解決方法:(10分)
(1)
(2)
…….
3. 實驗心得體會及本章學習總結(10分)
………
4. 幾個問題的思考與回答(15分)
(1)兩個相同類型的指針變量能不能相加?爲何
(2)在使用scanf()函數時,輸入參數列表須要使用取地址操做符&,但當參數爲字符數組名時並無使用,爲何?若是在字符數組名前加上取地址操做符&,會發生什麼?
(3)C語言不容許用賦值表達式直接對數組賦值,爲何?
1. 要求編寫函數,判斷給定的一串字符是否爲"迴文"。所謂"迴文"是指順讀和倒讀都同樣的字符串。如"XYZYX"和"xyzzyx"都是迴文。
2.二分查找。設已有一個10個元素的整型數組a,且按值從小到大有序排列。輸入一個整數x,而後在數組中查找x,若是找到,輸出相應的下標,不然,輸出"Not found"。
總分100分:其中,coding中程序提交60分(根據代碼的步驟、格式、註釋、結構正確性來酌情分配),博客書寫40分;,延遲一天扣10分,直至扣完100分。