1.先學(xué)習(xí)C語言的基礎(chǔ)知識。現(xiàn)在正在學(xué)C語言的在校學(xué)生可以直接進入第2步學(xué)習(xí)。
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計、網(wǎng)站制作和遂寧聯(lián)通機房的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗和案例。
2.按照《C語言程序設(shè)計入門學(xué)習(xí)六步曲》進行上機練習(xí)。
3.在上機練習(xí)時要養(yǎng)成良好的編程風(fēng)格。點擊查看C語言的編程風(fēng)格
4.積極參加C、C++興趣小組,養(yǎng)成和老師與同學(xué)交流習(xí)慣,從而相互收益。有時別人不經(jīng)意的一句話可能使你茅塞頓開--“一句話點醒夢中人”。
5.及時總結(jié)自己的學(xué)習(xí)經(jīng)驗,養(yǎng)成寫C語言日記的習(xí)慣。軟件有編程日記功能。
6.從網(wǎng)上或教材上找一個自己感興趣的題目(選題時根據(jù)自己的能力,可先易后難,培養(yǎng)自己的成就感,如果有了成就感,即使再苦再累還是感覺C語言學(xué)習(xí)是一件快樂的事,同學(xué)們喜歡打游戲,經(jīng)常通宵達旦地玩游戲也樂而不疲就是這個道理)進行實戰(zhàn)訓(xùn)練,提高自己的C語言綜合應(yīng)用能力。
7. 由于C語言靈活、強大,初學(xué)者要全面地掌握它是不可能的,因此在學(xué)習(xí)C語言的過程中,不要在細枝末節(jié)上浪費精力(比如++、--用于表達式的計算,實際上是沒有意義的),但一定要熟練掌握C語言的流程控制語句、數(shù)組、函數(shù)、指針等基礎(chǔ)知識的應(yīng)用,為學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計打下堅實的基礎(chǔ)。如果這些知識你學(xué)不好,要后續(xù)學(xué)習(xí)好C++、可視化的程序設(shè)計Visual C++或C++Builder就像空中樓閣,是不現(xiàn)實的。
C語言程序設(shè)計入門學(xué)習(xí)六步曲
筆者在從事教學(xué)的過程中,聽到同學(xué)抱怨最多的一句話是:老師,上課我也能聽懂,書上的例題也能看明白,可是到自己動手做編程時,卻不知道如何下手。發(fā)生這種現(xiàn)象的原因有三個:
一、所謂的看懂聽明白,只是很膚淺的語法知識,而我們編寫的程序或軟件是要根據(jù)要解決問題的實際需要控制程序的流程,如果你沒有深刻地理解C語言的語句的執(zhí)行過程(或流程),你怎么會編寫程序解決這些實際問題呢?
二、用C語言編程解決實際問題,所需要的不僅僅是C語言的編程知識,還需要相關(guān)的專業(yè)知識。例如,如果你不知道長方形的面積公式,即使C語言學(xué)得再好你也編不出求長方形的面積的程序來。
三、C語言程序設(shè)計是一門實踐性很強的課程,“紙上談兵”式的光學(xué)不練是學(xué)不好C語言的。例如,大家都看過精彩自行車雜技表演,假如,你從來沒有騎過自行車,光聽教練講解相關(guān)的知識、規(guī)則、技巧,不要說上臺表演、就是上路你恐怕都不行。
出現(xiàn)問題原因清楚了,那么如何學(xué)習(xí)呢?請你看【C語言學(xué)習(xí)六步曲】
在程序開發(fā)的過程中,上機調(diào)試程序是一個不可缺少的重要環(huán)節(jié)?!叭志幊唐叻终{(diào)試”,說明程序調(diào)試的工作量要比編程大得多。這里以如何上機調(diào)試C程序來說明C語言的學(xué)習(xí)方法。
第一步、驗證性練習(xí)
在這一步要求按照教材上的程序?qū)嵗M行原樣輸入,運行一下程序是否正確。在這一步基本掌握C語言編程軟件的使用方法(包括新建、打開、保存、關(guān)閉C程序,熟練地輸入、編輯C程序;初步記憶新學(xué)章節(jié)的知識點、養(yǎng)成良好的C語言編程風(fēng)格)。
初學(xué)者最容易犯的錯誤是:
1、沒有區(qū)分開教材上的數(shù)字1和字母l,字母o和數(shù)字0的區(qū)別,造成變量未定義的錯誤。另一個易錯點是將英文狀態(tài)下的逗號,分號;括號()雙引號""輸入出入成中文狀態(tài)下的逗號,分號;括號(),雙引號“”造成非法字符錯誤。
2、C語言初學(xué)者易犯語法錯誤:使用未定義的變量、標(biāo)示符(變量、常量、數(shù)組、函數(shù)等)不區(qū)分大小寫、漏掉“;”、“{”與“}”、“(”與“)”不匹、控制語句(選擇、分支、循環(huán))的格式不正確、調(diào)用庫函數(shù)卻沒有包含相應(yīng)的頭文件、調(diào)用未C聲明的自定義函數(shù)、調(diào)用函數(shù)時實參與形參不匹配、數(shù)組的邊界超界等。
3、修改C語言語法錯誤時要注意以下兩點:
(1)、由于C語言語法比較自由、靈活,因此錯誤信息定位不是特別精確。例如,當(dāng)提示第10行發(fā)生錯誤時,如果在第10行沒有發(fā)現(xiàn)錯誤,從第10行開始往前查找錯誤并修改之。
(2)、一條語句錯誤可能會產(chǎn)生若干條錯誤信息只要修改了這條錯誤,其他錯誤會隨之消失。特別提示:一般情況下,第一條錯誤信息最能反映錯誤的位置和類型,所以調(diào)試程序時務(wù)必根據(jù)第一條錯誤信息進行修改,修改后,立即運行程序,如果還有很多錯誤,要一個一個地修改,即,每修改一處錯誤要運行一次程序。
第二步、照葫蘆畫瓢
在第一步輸入的C程序的基礎(chǔ)上進行試驗性的修改,運行一下程序看一看程序結(jié)果發(fā)生了什么變化,分析結(jié)果變化的原因,加深新學(xué)知識點的理解。事實上這和第一步時同步進行的,實現(xiàn)“輸入”加深知識的記憶,“修改”加深對知識的理解。記憶和理解是相輔相成的,相互促進。
例如:將最簡單的Hello World!程序
#include "stdio.h"
int main()
{
printf("Hello World!\n");
return 0;
}
中的
printf("Hello World!\n");
中的Hello World!改成你的姓名,運行一下程序,看有什么變化?
再如求1+2+3...+100的和的程序
#include stdio.h
main()
{
int i,sum=0;
for(i=1;i=100;i++)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
}
第1次將for(i=1;i=100;i++)中的100改成50,運行一下程序,看有什么變化?
第2次將for(i=1;i=100;i++)中的i++改成i=i+2,運行一下程序,看有什么變化?
找出程序結(jié)果變化的原因,就加深了對C語句的理解。
第三步、不看教材看是否能將前兩步的程序進行正確地輸入并運行。
在這一步要求不看教材,即使程序不能運行,看能否將其改正,使其能正確運行。目的是對前兩步的記憶、理解進一步強化。
第四步、增強程序的調(diào)試能力
在教材中每章都有C語言初學(xué)者易犯的錯誤,按照易出錯的類型,將教材中的正確的程序改成錯誤的程序,運行一下程序,看出現(xiàn)的錯誤信息提示,并記下錯誤信息,再將程序改成正確的,運行一下程序。這樣反復(fù)修改,就能夠?qū)W習(xí)C語言程序發(fā)生錯誤的原因和修改錯誤的能力。
注意:每次只改錯一個地方,目的是顯示發(fā)生該錯誤的真正原因,避免一次改動多個地方,搞清發(fā)生錯誤的真正原因,切記?。。。?/p>
注意:上機調(diào)試程序時要帶一個記錄本,記下英文錯誤提示信息和解決該錯誤問題的方法,積累程序調(diào)試經(jīng)驗,避免在編程犯同樣的錯誤,切記!?。?!。
例如,將Hello World程序中語句
printf("Hello World!\n");
中的;改成中文的分號;
運行一下程序,看有什么結(jié)果?
調(diào)試程序是一種實踐性很強的事,光紙上談兵是是沒用的,就像游泳運動員只聽教練講解示范,而不親自下水練習(xí),是永遠學(xué)不會游泳的。
即使在優(yōu)秀的程序員編寫程序也會犯錯誤的,可能事最低級的語法錯誤,但他能快速發(fā)現(xiàn)錯誤并改正錯誤,而我們C語言初學(xué)者面對錯誤提示,不知道發(fā)生了什么錯誤,如何改正,這就事差別。
第五步、研究典型的C語言程序,提高程序設(shè)計能力
C語言初學(xué)者遇到最多的困惑是:上課也能聽懂,書上的例題也能看明白,可是到自己動手做編程時,卻不知道如何下手。發(fā)生這種現(xiàn)象的原因是:所謂的看懂聽明白,只是很膚淺的語法知識,而沒有深刻地理解C語言的語句的執(zhí)行過程(或流程)。
計算機是按照人的指令(編寫的程序)去執(zhí)行的,如果不知道這些C語句在計算機中是如何執(zhí)行的,你怎么回靈活運用這些知識去解決實際問題呢?
解決問題的方法是要先理解C語言各種語句的流程(即計算機是如何執(zhí)行這些語句的過程),然后研讀現(xiàn)成C語言經(jīng)典程序,看懂別人事如何解決問題的,以提高自己的程序設(shè)計能力。
第六步、研究課程設(shè)計源成序,提高C語言的綜合應(yīng)用能力.
c語言知識點有:
1、C語言程序是由多個函數(shù)構(gòu)成的。
2、每個C語言程序中有且只有一個main函數(shù)。
3、C語言不使用行號,無程序行的概念。
4、程序中可使用空行和空格。
5、C語言程序格式常用鋸齒形書寫格式。
6、C語言程序中可加任意多的注釋,注釋形式/*……*/,并且注釋形式不能嵌套,即不能注釋里面又有另一個注釋。//行注釋是C++當(dāng)中新增加的內(nèi)容。
7、引用C語言標(biāo)準(zhǔn)庫函數(shù),一般要用文件包含預(yù)處理命令將其頭文件包含進來。
8、用戶自定義的函數(shù),必須先定義后使用。
9、變量必須先定義后使用。
10、變量名,函數(shù)名必須是合法的標(biāo)識符,標(biāo)識符習(xí)慣用小寫字母,C語言是字母大小寫敏感的語言。
11、不能用關(guān)鍵字來命名變量和函數(shù)。
12、C語言的語句都是以分號結(jié)尾的。
13、計算機中使用的進制數(shù)是二進制數(shù),而不是十進制數(shù),因為二進制只有兩個數(shù)碼,運算簡單便于硬件實現(xiàn),同時二進制便于邏輯運算。
將十進制數(shù)轉(zhuǎn)換成二進制數(shù)應(yīng)分為整數(shù)部分轉(zhuǎn)換和小數(shù)部分轉(zhuǎn)換,整數(shù)部分轉(zhuǎn)換可采用基數(shù)除法來實現(xiàn),小數(shù)部分轉(zhuǎn)換可采用基數(shù)乘法來實現(xiàn)。八進制和十六進制也是C語言中經(jīng)常表示數(shù)據(jù)的進制,因為它們與二進制之間的轉(zhuǎn)換非常方便,但要注意他們不是計算機中使用的進制。
14、機器數(shù)的表示形式有原碼、反碼和補碼幾種形式,計算機中通常使用補碼的形式來表示一個數(shù),因為補碼運算可以連同符號位一起參與運算,這便于運算器的設(shè)計與實現(xiàn)。
C語言中一個函數(shù)(function)是一個可以從程序其它地方調(diào)用執(zhí)行的語句塊。
1、通過使用函數(shù)(functions)我們可以把我們的程序以更模塊化的形式組織起來,從而利用C語言所支持的結(jié)構(gòu)化程序設(shè)計。
2、從數(shù)學(xué)角度,函數(shù)即集合A和集合B之間的映射關(guān)系。實際上計算機中的函數(shù)概念也是源于此,因此,一般函數(shù),都有形參和返回值。
3、從計算機組成原理的角度來看,函數(shù)即是一個小型的計算機系統(tǒng),依據(jù)馮諾伊曼的“存儲程序原理”,每一個計算機系統(tǒng)包含:輸入系統(tǒng)、輸出系統(tǒng)、運算器以及控制器,實際上對于C語言中的函數(shù)來說,它是“存儲程序原理”的軟實現(xiàn),其中形參、實參這是輸入系統(tǒng),返回值是輸出系統(tǒng),函數(shù)體中的運算符,比如+、-、*、/四則運算即為運算器,而邏輯運算符以及if、while等控制語句便是一個控制器。