青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

怎么學好C程序設計(轉貼)

Posted on 2006-03-25 23:59 我愛C 閱讀(1425) 評論(2)  編輯 收藏 引用 所屬分類: 學習與討論
教了多年《C程序設計》課程,大多學生覺的這門課程難學。其實,按照我們現在的教學大綱和教學要求,只要同學們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學好的。
《C程序設計》的內容很豐富,按照我們現在的教學大綱,教學的主要內容是基礎知識、四種結構的的程序設計、函數與數組的應用和一些簡單的算法。在學習時,同學們應該把主要精力放在這些部分,通過實踐(練習和上機調試等熟練掌握。當然,在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完后面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎么說自己聽不懂呢?相應的根本就沒學習,又談何學的好?
學習C語言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學習知識的重要方法,就是說,學習后面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。比如:在C語言中最典型的是關于結構化程序設計構思,不管是那種教材,一開始就強調這種方法,這時也許你不能充分體會,但是學到函數時,再回頭來仔細體會,溫故知新,理解它就沒有那么難了。學習C語言就是要經過幾個反復,才能前后貫穿,積累應該掌握的C知識。
那么,我們如何學好《C程序設計》呢?
一.學好C語言的運算符和運算順序
這是學好《C程序設計》的基礎,C語言的運算非常靈活,功能十分豐富,運算種類遠多于其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之后,記住這些運算也就不困難了,有些運算符在理解后更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運算符按優先級不同分類,《C程序設計》運算符可分為15種優先級,從高到低,優先級為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序。下面我們通過幾個例子來說明:
(1) 5*8/4%10 這個表達式中出現3種運算符,是同級運算符,運算順序按從左至右結合,因此先計算5 *8=40,然后被4除,結果為10,最后是%(求余數)運算,所以表達式的最終結果為10%10 = 0;
(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;
對于c=++a*b來說,按表中所列順序,+ +先執行,*后執行,所以+ + a執行后,a的值為4,由于+ +為前置運算,所以a的值4參與運算,C的值計算式為4*5=20而不是3*5=15了;而對于d=a++*b來說,由于a + +為后置運算,所以a值為4參與運算,使得d的值仍為20,而a參與運算后其值加1,值為5。 這個例子執行后,a的值為5,b的值為5,c的值為20,d的值也是20;
(3)(a = 3,b = 5,b+ = a,c = b* 5)
例子中的“,”是逗號結合運算,上式稱為逗號表達式,自左向右結合,最后一個表達式的結果值就是逗號表達式的結果,所以上面的逗號表達式結果為40,a的值為3,b的值為8,c的值為40。
(4)a=5;b=6;c=a>b?a:b;
例中的a>b?a:b是一個三目運算,它的功能是先做關系運算a>b部分,若結果為真,則取問號后a的值,否則取冒號后b的值,因此c的值應該為6,這個運算可以用來代替if…else…語句的簡單應用。
二.學好C語言的四種程序結構
(1)順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a = 3,b = 5,現交換a,b的值,這個問題就好象交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那么正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。 順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。
(2) 分支結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對于要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在于構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合于帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然后根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易于理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
學習分支結構不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
①if(條件)
{
分支體
}
這種分支結構中的分支體可以是一條語句,此時“{ }”可以省略,也可以是多條語句即復合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x<0時其絕對值是為x的反號,因此程序段為:if(x<0) x=-x;
②if(條件)
{分支1}
else
{分支2}
這是典型的分支結構,如果條件成立,執行分支1,否則執行分支2,分支1和分支2都可以是1條或若干條語句構成。如:求ax^2+bx+c=0的根
分析:因為當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac<0)有兩個共軛復根。其程序段如下:


d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x1=(-b-sqrt(d))/2a;
printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(“x1=%8.4f+%8.4fi\n”r, i);
printf(“x2=%8.4f-%8.4fi\n”r,i)
}
③嵌套分支語句:其語句格式為:
if(條件1) {分支1};
else if(條件2) {分支2}
else if(條件3) {分支3}
……
else if(條件n) {分支n}
else {分支n+1}
嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套后,語句結構變得非常復雜,對于程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。
④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決于開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else 語句,它的所有分支都是并列的,程序執行時,由第一分支開始查找,如果相匹配,執行其后的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。
(3)循環結構:
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do –while循環和for循環。四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤,在學習中我們主要學習while、do…while、for三種循環。常用的三種循環結構學習的重點在于弄清它們相同與不同之處,以便在不同場合下使用,這就要清楚三種循環的格式和執行順序,將每種循環的流程圖理解透徹后就會明白如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。特別要注意在循環體內應包含趨于結束的語句(即循環變量值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
在學完這三個循環后,應明確它們的異同點:用while和do…while循環時,循環變量的初始化的操作應在循環體之前,而for循環一般在語句1中進行的;while 循環和for循環都是先判斷表達式,后執行循環體,而do…while循環是先執行循環體后判斷表達式,也就是說do…while的循環體最少被執行一次,而while 循環和for就可能一次都不執行。另外還要注意的是這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,是不能用break和 continue語句進行控制的。
順序結構、分支結構和循環結構并不彼此孤立的,在循環中可以有分支、順序結構,分支中也可以有循環、順序結構,其實不管哪種結構,我們均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現各種算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
(4)模塊化程序結構
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然后通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。 因些,對函數的定義、調用、值的返回等中要尤其注重理解和應用,并通過上機調試加以鞏固。
三.掌握一些簡單的算法
編程其實一大部分工作就是分析問題,找到解決問題的方法,再以相應的編程語言寫出代碼。這就要求掌握算法,根據我們的《C程序設計》教學大綱中,只要求我們掌握一些簡單的算法,在掌握這些基本算法后,要完成對問題的分析就容易了。如兩個數的交換、三個數的比較、選擇法排序和冒泡法排序,這就要求我們要清楚這些算法的內在含義,其中選擇法排序和冒泡法排序稍難,但只要明白排序的具體過程,對代碼的理解就不難了。如用選擇法對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)與a[1]交換,此時a[1]中存放了10個中最小的數。第二輪將a[2]與a[3]~a[10]比較,將剩下9個數中的最小者a與a[2]交換,此時a[2] 中存放的10個數中第2小的數;依此類推,共進行9輪比較,a[1]到a[10]就已按從小到大的順序存放。即每一輪都找出剩下數中的最小一個,代碼如下:
for(i=1;i<=9;i++)
for(j=i+1;j<=10;j++)
if(a>a[j]
{temp=a;
a=a[j];
a[j]=temp;
}
結語:當我們把握好上述幾方面后,只要同學們能克服畏難、厭學、上課能專心聽講,做好練習與上機調試,其實C語言并不難學。

Feedback

# re: 怎么學好C程序設計(轉貼)  回復  更多評論   

2007-12-28 08:01 by 汪應杰
讀程序寫結果:
1、main( )
{ int sum, pad,pAd;
sum=pad=5; pAd=sum + + ,pAd + + , + + pAd;
printf("%d\n",pad);
}
2、main()
{ int i=010 , j = 10;
printf("%d,%d\n",+ +i , j - -);
}
3、main()
{ char c1='A', c2='a';
printf("%d,%d\n",c1,c2);
}
4、main( )
{ union EX
{struct
{int x;int y;}in;
int a;
int b;
}e;
e.a=1; e.b=2; e.in.x=e.a*e.b; e.in.y=e.a+e.b;
printf(“%d,%d\n”,e.in.x,e.in.y);
}

# re: 怎么學好C程序 函數那章  回復  更多評論   

2008-06-21 11:18 by 周佳
一個新手的求救

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美xart系列在线观看| 久久亚洲春色中文字幕| 国产精品毛片| 国产精品扒开腿做爽爽爽软件| 欧美大片免费观看| 欧美日韩精品国产| 国产美女精品视频| 亚洲美女视频在线观看| 欧美性大战xxxxx久久久| 欧美人与禽猛交乱配视频| 欧美三区美女| 国产在线日韩| 91久久精品国产| 亚洲无人区一区| 欧美主播一区二区三区美女 久久精品人| 亚洲欧美日韩一区在线观看| 久久精品国产精品亚洲精品| 蜜臀久久99精品久久久久久9| 亚洲国产欧美一区| 亚洲国产精品久久久久秋霞影院| 亚洲激情另类| 亚洲一区二区三区欧美| 久久综合给合久久狠狠色| 欧美日韩亚洲成人| 在线成人小视频| 亚洲欧美国产精品va在线观看| 久久激情一区| av成人手机在线| 久久先锋影音| 欧美午夜精品久久久| 韩国三级在线一区| 亚洲午夜成aⅴ人片| 久久天天躁狠狠躁夜夜av| 亚洲精品日韩在线观看| 久久精品1区| 国产精品欧美日韩久久| 亚洲精品1区| 久久久久久亚洲精品中文字幕| 亚洲精品久久嫩草网站秘色| 午夜亚洲激情| 欧美精品手机在线| 在线欧美一区| 西西人体一区二区| 亚洲日本中文字幕| 欧美一区二区三区日韩视频| 欧美日韩mv| 亚洲人成人一区二区三区| 久久在线免费视频| 99成人在线| 欧美激情综合亚洲一二区| 欧美一区二区三区免费观看 | 久久久久成人精品| 亚洲啪啪91| 国产精品久久久久毛片大屁完整版| 午夜国产精品视频免费体验区| 久久精品一区二区国产| 国产亚洲午夜| 欧美高清在线播放| 亚洲黄一区二区| 99精品国产福利在线观看免费| 亚洲一区中文| 亚洲欧美综合另类中字| 欧美中文字幕视频在线观看| 国产欧美精品日韩| 亚洲精品在线观看免费| 国产亚洲成人一区| 亚洲在线播放| 中文久久乱码一区二区| 欧美视频中文一区二区三区在线观看| 日韩一二在线观看| 99精品欧美一区二区三区综合在线| 欧美精品乱码久久久久久按摩| 亚洲精品美女久久久久| 欧美国产精品一区| 欧美激情中文不卡| 亚洲制服欧美中文字幕中文字幕| 99国产精品一区| 国产精品高潮呻吟视频| 亚洲欧美日韩国产成人精品影院 | 欧美一区二区三区的| 亚洲一区成人| 国产亚洲欧美日韩美女| 欧美在线日韩精品| 久久国产精品久久久| 亚洲第一偷拍| 欧美性一二三区| 亚洲一区二区在线| 亚洲欧美另类综合偷拍| 精品动漫3d一区二区三区免费| 免费成人美女女| 欧美好吊妞视频| 午夜精品福利视频| 久久人人97超碰人人澡爱香蕉| 99视频热这里只有精品免费| 亚洲女与黑人做爰| 亚洲人成网站777色婷婷| 亚洲网站视频福利| 亚洲国产黄色片| 亚洲一区在线免费观看| 亚洲国产精品高清久久久| 在线亚洲欧美视频| 亚洲国产精品久久久久秋霞不卡| 亚洲视频综合| 亚洲剧情一区二区| 性欧美video另类hd性玩具| 亚洲日本久久| 欧美一区二区三区四区在线观看地址| 亚洲人体大胆视频| 欧美影院午夜播放| 亚洲一区二区伦理| 久久综合一区二区三区| 亚洲欧美另类综合偷拍| 欧美成人a视频| 美女久久一区| 亚洲人成网站在线播| 亚洲欧美成人| 国产精品99久久99久久久二8| 久久亚洲春色中文字幕| 久久不见久久见免费视频1| 欧美精品在线看| 欧美成人午夜免费视在线看片| 国产日韩一区二区三区| 在线性视频日韩欧美| 在线视频你懂得一区二区三区| 久久免费精品视频| 久久噜噜噜精品国产亚洲综合| 国产精品久久午夜| 一本一本久久a久久精品综合麻豆| 亚洲国产一区视频| 久久亚洲国产精品日日av夜夜| 久久久精品网| 国产综合色产在线精品| 欧美一区国产二区| 久久久免费观看视频| 国产麻豆一精品一av一免费| 亚洲少妇一区| 午夜精品影院| 国产精品主播| 欧美在线精品一区| 老司机精品福利视频| 在线成人免费视频| 欧美成人激情在线| 日韩视频二区| 午夜精品一区二区三区电影天堂 | 在线视频中文亚洲| 亚洲一级在线观看| 国产精品久久国产三级国电话系列| av成人激情| 欧美在线视频观看免费网站| 国产日韩视频| 久久综合网色—综合色88| 亚洲激情图片小说视频| 亚洲看片免费| 国产精品国产三级国产aⅴ浪潮 | 国产精品第13页| 亚洲欧美制服中文字幕| 久久久久99| 亚洲日本成人| 国产精品久久久久久亚洲毛片| 午夜免费电影一区在线观看| 免费91麻豆精品国产自产在线观看 | 99国内精品久久| 亚洲免费在线视频| 国内精品久久久久久| 蜜臀99久久精品久久久久久软件| 91久久久久久| 欧美一区二区三区久久精品茉莉花| 国产女精品视频网站免费| 久久久成人网| av成人老司机| 欧美风情在线| 欧美亚洲一区在线| 久久久国产91| 欧美一区二区在线免费播放| 好吊视频一区二区三区四区| 欧美不卡高清| 午夜精品久久久久久99热软件| 男女精品网站| 午夜在线观看欧美| 亚洲精品乱码视频| 国产视频精品免费播放| 欧美电影免费观看大全| 午夜欧美大尺度福利影院在线看| 欧美国产丝袜视频| 久久99在线观看| 在线一区免费观看| 亚洲国产精品va| 国产视频一区二区在线观看 | 在线视频精品一区| 欧美好吊妞视频| 久久精品亚洲| 亚洲自拍偷拍福利| 99在线精品观看| 亚洲激情网址| 亚洲成人直播| 激情欧美一区二区三区在线观看| 国产精品伦理| 国产精品久久久| 欧美香蕉视频| 国产精品久久久久久模特|