C語言注意事項

2023-01-03 07:06:05 字數 4836 閱讀 8757

c語言程式課程設計

課程編號:16020173

課程名稱:c語言程式課程設計

英文名稱:c programming curriculum design

適應專業:資訊與計算科學專業

執筆人:郭紅微

一、學時與學分

總學時:1周總學分:2

二、課程設計的任務、性質與目的

「c語言課程設計」是在學習「c語言程式設計基礎」課程之後進行的乙個實踐教學環節,課程設計的目的是:

1、 進一步培養學生結構化程式設計的思想,加深對高階語言基本語言要素和控制結構的理解

2、 針對c語言中的重點和難點內容進行訓練,獨立完成有一定工作量的程式設計任務,同時強調好的程式設計風格。

3、 掌握c語言的程式設計技巧和上機除錯程式的方法。

4、 掌握程式設計的常用演算法。

為了使學生從課程設計中盡可能取得比較大的收穫,對課程設計題目分成二類,一類為基礎訓練題目,學生從中學習到程式設計的常用演算法。另一類為綜合題目。學生從這兩型別題目中各選擇部分完成。

三、課程設計的基本要求

設計步驟的規範不但可以培養學生科學的工作方法和作風,而且還能有效地減少錯誤,提高工作效率。因此必須嚴格執行良好的實驗步驟規範(包括上級操作規範)。本課程設計的基本步驟與要求是:

1、問題分析及解決方案框架確定

充分地分析和理解問題本身,弄清要求做什麼(what to do?)。

在確定解決方案框架過程中(how to do?),考慮怎樣使程式結構清晰、合理、簡單和易於除錯,並確定每個函式的簡單功能,以及函式之間的呼叫關係。

2、詳細設計和編碼

確定演算法的主要流程,再此基礎上進行**設計(coding),每個明確的功能模組程式一般不超過60行,否則要進一步劃分。

3、上機前編寫程式與檢查

上機前程式檢查可有效提高除錯效率,減少上機除錯程式時的無謂錯誤。

程式檢查主要有兩種途徑:用一組測試資料手工執行程式;通過閱讀或給別人講解自己的程式而深入全面地理解程式邏輯。把程式中的明顯錯誤事先排除。

4、上機除錯程式

5、完成課程設計報告

①問題描述:題目要解決的問題是什麼。

②設計設計演算法:主要演算法思想,用流程圖表示。

實現注釋:各項功能的實現程度。

除錯報告:除錯過程中遇到的主要問題,是如何解決的;對設計和編碼的回顧討論和分析;改進設想;經驗和體會等

③附錄:源程式清單和結果。如果題目規定了測試資料,則結果要包含這些測試資料和執行輸出,當然還可以含其他測試資料和執行輸出。

四、課程設計的內容

(一)基本要求題目

1、猜數遊戲(掌握程式結構及隨機函式應用)

程式說明:遊戲的開始由機器產生乙個隨機數(1~100之間,用庫函式random(),用法見後面的說明),然後遊戲者在程式的提示下猜數,若輸入的數比這個數大,程式提示:your answer is high,try again.

,否則,程式提示:your answer is low,try again.,直到猜對為止。

程式可實現連續猜數,直到遊戲者退出。

程式輸出要求:累計遊戲者猜對乙個數所需次數n,當n<=7時,給出「congratulation」字樣;當7<n<15時,給出「i can bet you can do it better.」;當n>=15時,用exit(0)庫函式退出程式。

2、百錢百雞(窮舉演算法)

我國古代數學家張丘鍵在《算經》**了一道題「雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?

注:窮舉法是最簡單、最常見的一種程式設計方法。它充分利用了計算機處理的高速特性。使用窮舉法的關鍵是確定正確的窮舉範圍,即不能過分擴大、也不能過分縮小窮舉的範圍。

3、簡單計算器

請編寫乙個程式計算表示式:data1 op data2的值。其中,op為運算子+、-、*、/。

4、列印出所有的「水仙花數」

所謂「水仙花數」是指乙個3位數,其各位數字立方和等於該數本身。例如,153是一水仙花數,因為:153=13+53+33 。

5、字串處理函式

編寫三個函式:求字串長度函式(函式原型為:int strlen(char *p)),字串複製函式(函式原型為:

void strcpy(char *p1,char *p2)),字串比較函式(函式原型為:int strcmp(char *p1,char *p2),返回值為第乙個不相同字元的ascii碼差。)。

要求:在主函式中根據使用者需要呼叫不同的函式功能。

6、編一程式,實現將輸入的乙個無符號整數轉換為二進位制和八進位制表示,分別存入字元陣列中並輸出。(提示:演算法採用模擬人工法。)

注:計算機模擬人工是程式設計中常用的方法,這種方法要求程式設計者首先分析在人工方式下解決問題的過程,從中找出步驟和規律,然後編寫程式,按照人工解決問題的步驟和規律進行操作。

7、判斷乙個數是否是陣列中的成員(用二分法查詢)

已知資料a中一共有10個已排序的整數(由小到大排列)。現在從鍵盤上輸入乙個數,判斷這個數是否是陣列a中的數,如果是的話,列印出此數在陣列a中的位置來,否則列印「找不到「。

(提示:①設待查詢的數為x,設三個位置變數l、m、h分別代表查詢範圍的頂部、中間位置和底部,m=(l+h)/2,把數分成以a[m]為中點的兩段範圍。②判斷x 是否等於a[m],若是,則找到。

③若大於a[m],則x必在後半段範圍,即在a[m+1]至a[h]。則捨棄前半段,再在後半段重新劃分兩段範圍,定出l、m和h,重複以上步驟,逐步縮小查詢範圍。)

8、位數大小排序(掌握數值排序演算法)

程式說明:輸入乙個五位整數,對此整數中的五個數值進行從大到小的順序排序,形成乙個新的五位整數,並輸出這個整數。

要求:用函式呼叫。

9、請編寫函式fun,函式的功能是求出二維陣列周邊元素之和,作為函式值返回。二維陣列中的值在主函式中賦予。(陣列維數用巨集定義)

10、矩陣乘法(數值求解演算法)

編寫乙個函式實現矩陣a(2行3列)與矩陣b相乘(3行2列),乘積放在c陣列中。

在主函式中輸入相乘的兩陣列,並輸出結果。

11、求所有不超過200的n值,n的平方是具有對稱性質的回文數。回文數就是將乙個數從左向右讀是一樣的,如滿足題意要求的數有:n=11,112=121。

12、插入後自動排序(掌握用窮舉法進行比較、交換)

把乙個整數插入到按由小到大排列的數列中,插入後仍然保持由小到大的順序排列。

要求:用資料指標。

13、計算分數的精確值

使用陣列精確計算m/n(0注:由於計算機內字長有限,常規的浮點運算都有精度限制,為了得到高精度的計算結果,就必須自行設計演算法。

提示:可將商存放在一維陣列中,進行除法運算時,可模擬人的手工操作,即每次求出商的一位後,將餘數乘以10,再計算商的下一位。若某次餘數為0,則為有限不迴圈小數。

若某次計算後的餘數與前面的某個餘數相同時,則m/n是無限迴圈小數。

14、馬克思手稿中的數學題(窮舉演算法)

馬克思手稿中有一道趣味數學題:有30個人,其中有男人、女人和小孩,在一家飯館吃飯共花了50先令:每個男人花3先令,每個女人花2先令,每個小孩花1先令,問男人、女人、小孩各有幾人?

15、用梯形法求定積分(數值求解演算法)

用梯形法程式設計求函式f(x)=x2+2x+1的定積分

提示:把積分區間[a,b]等分為n等分(a,b,n的值由程式輸入。),可得到若干個小梯形,積分面積就近似為這些小梯形面積之和。

16、小孩吃梨問題:小孩買了一些梨,當即吃了一半,還不過癮,又多吃了乙個,第二天早上又將剩下的梨吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半,並又多吃了乙個。

到第18天只剩下乙個梨了,問小孩共買了多少梨?

(提示:據初始條件,用倒推法。)

17、乙個奇異的三位數(窮舉演算法)

乙個自然數的七進製表示式是乙個三位數,而這個自然數的九進製表示也是乙個三位數,且這兩個三位數的數碼順序正好相反,求這個三位數。

18、約瑟夫問題(掌握一維陣列的用法)。15個**徒和15個異教徒在海上遇險,必須將一半的人投入大海,其餘的人才能倖免於難,於是想了乙個辦法:30個人圍成乙個圓圈,從第乙個人開始依次報數,每數到第9個人就將他扔入大海,如此迴圈直到僅餘15個人為止。

問怎樣排法,才

19、將100元人民幣換成面值1元 2元 5元的鈔票,給出所有的兌換方案,並顯示對換方案的種類。

20、有3個紅球,5個白球,6個黑球,程式設計實現從這些球中取8個球的所有取法,要求這8個球中至少有1個是白球。

21、有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

22、篩法求素數。

23、選擇排序,氣泡排序。

24、將乙個字串拆分成乙個乙個的單詞,單詞之間使用指定的字元分割,如逗號,分號,空格等。

25、判斷ip位址是否合法。

26、將數字串轉換為數字。

27、將數字轉換為字串。

28、去掉字串中的指定字元。

29、求子串,將s串中從pos(從0開始計數)開始的len個字元放到目的串t中。

30、拆分合法的ip位址串。將ip的四個數字寫到乙個整數陣列中。

31、判斷字串s是否以字串t為字首。

32、判斷字串是否以字串t為字尾。

33、從串s的起始位置開始找是否存在t子串,如果存在,返回首次出現的下標,找不到返回-1。

34、從串s的fromindex開始找是否存在t子串,存在返回首次出現的下標,找不到返回-1。

35、劇場座位使用 n*n的二維陣列表示,元素值為1,代表票已售出,為0代表尚未售出,使用者要求購買劇場中一塊連續的num*num個座位,返回座位的起始行列座標,找不到返回-1。

36、刪除無序的整數陣列中的重覆記錄。

37、刪除遞增有序的整數陣列中的重覆記錄。

38、 刪除整數陣列中的從第i 個位置開始的k個元素。(i從1開始計數)。

39、原地進行整數陣列的逆置。

40、求兩個用有序的整數陣列表示的整數集合的交集。

C程式設計注意事項

static的作用 在c語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。1 先來介紹它的第一條也是最重要的一條 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,乙個是a.c,另...

C語言源程式結構特點及注意事項

1 乙個 語言程式由乙個或多個原始檔組成,每個原始檔以 作為副檔名。2 每個原始檔可由乙個或多個函式組成。3 乙個源程式不論由多少個檔案組成,都必須有且僅有乙個main函式,即主函式,整個程式的執行總是從主函式開始執行其中的語句。4 源程式中可以由於處理命令 include命令僅為其中一種 預處理命...

C證面試注意事項

一 自我個性心理分析包括 範例 我屬於偏重於多血質的終合型氣質,具有穩定 持久 愉快的情緒,熱愛學習,興趣廣泛,自控能力 自我調節情緒的能力強,具有豁達 大方 誠實 正直 勤勞 認真 細心 坦誠 主動 謙虛 自信 自豪的性格,富有同情心 集體主義強,具有良好的意志品質,意志堅強 堅韌不拔 百折不撓 ...