999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

對C語言中循環結構的認識

2009-04-29 00:00:00孫明月
考試周刊 2009年1期

摘要: 循環結構是結構化程序設計中的三種基本結構之一,也是程序設計的基礎,它和順序結構、選擇結構共同作為各種復雜程序的基本構造單元。但是,對于初學者來說,循環結構與人類日常的思維習慣不同,較難掌握。本文用幾個實例闡述了在《C語言程序設計》課程中循環結構的教學方法。

關鍵詞: 循環結構 C語言 程序設計

引言

順序、選擇、循環是結構化程序設計的三種基本結構,所以在高級語言程序設計課程中,掌握這三種結構是學好程序設計的基礎。循環結構是這三者中最復雜的一種,幾乎所有的程序都離不開循環,因此,熟練掌握循環結構是程序設計的最基本的要求。在C語言中,循環結構主要是由for和while、do-while語句實現的,其中for語句的應用更為普遍一些。for語句的用法對于有程序設計經驗的學生來說輕而易舉,但是對于那些沒有經驗的初學者來說難度卻不小。本文從初學者的角度,闡述了C語言中循環結構幾種典型應用的實現方法。

一、用循環結構實現幾何圖形

輸出簡單的幾何圖形,是循環結構的典型應用之一。對于這一類型的題目,初學者往往直接采用一條或若干條輸出語句printf完成,這樣雖然可以完成題目要求,但是很顯然缺乏靈活性,不符合程序設計的思想。按照正常的程序設計思想,應該先分析圖形的構成,找出其中的規律:如圖1中的實心三角形,每一行由若干個空格、星號和一個回車換行符構成,將行號、空格數和星號數分別設為i、m和n,則可形成表1:

*

***

*****

*******

*********

由表1可以得出,行號i與空格數m、星號數n有如下的數學關系:

m=5-i,n=2×i-1

則實心三角形的構成規律可以描述為:第i行由(5-i)個空格和(2×i-1)個星號和一個回車符構成。把行號i作為for語句的循環變量,則此程序中的循環部分如下:

for(i=1;i<=5;i++)

{

/*輸出(5-i)個空格;*/

for(m=1;m<=5-i;m++)

printf(“”);

/*輸出(2*i-1)個星號;*/

for(n=1;n<=2*i-1;n++)

printf(“*”);

/*輸出回車符;*/

printf(“\n”);

}

采用上面的方法,可以使學生很容易編寫出類似的程序,其中關鍵在于讓學生找出圖形中行號與每一行的空格數及星號數的關系。

二、循環結構在數組中的應用

在C語言中,for語句經常與數組相結合,用于實現數組元素的賦值、輸入和輸出。對于初學者來說,更習慣于用順序結構的語句來實現(如圖2左)。我們將圖2左的幾條語句作比較,可以看出在這5條語句中,不同的只有數組下標,那么就可以將這5條語句合并成一條for語句,將數組下標換成for語句的循環變量i,而i的值從0增加到4。按照for語句的基本語法規則可以很容易寫出圖2右的for語句。

同樣,對于下面這個輸出二維數組元素的例子,也可以用上述方法實現,不過轉換過程比上例要復雜一些:經過對比圖3左側方框中順序結構的12條語句,可以發現也是只有數組下標在變化,但是由于是二維數組,行下標和列下標同時都在變化,很顯然不能直接用一條簡單的for語句來實現。但是我們可以把這12條語句細分一下,3條語句為一組,而在同一組中的語句只有列下標在變化,這時可以采用上例中的方法,將列下標都用循環變量j來代替,得到圖3右上的形式。再次對比圖3右上的4條for語句,不同的是行下標,同樣用新的循環變量i來代替,合并后得到圖3右下最終二重for循環的語句。

三、循環結構中的效率問題

程序設計的初學者往往以完成題目要求的功能為目的,程序的執行效率是最容易忽略的一個問題。在循環結構中,具體表現為循環體的執行次數。例如,一個經典的素數判定問題。在數學中素數的定義為:素數即指那些大于1,且除了1和它本身外,不能被其它任何數整除的數。根據這一定義,初學者很容易編寫出如下所示的程序段:

int isprime(int n)

{

int i;

for(i=2;i<n;i++)

if(n%i==0)return 0;

return 1;

}

上面的程序,完全可以實現題目要求的功能,初學者往往滿足于此。但是當對for循環的執行次數進行分析時,我們發現:當n不是素數時,沒有任何問題;而當n是素數時,循環體就要執行(n-2)次,而實際上是不需要這么多次的。根據數學的知識,可以將次數降為n/2或n的算術平方根,這樣可以大大減少循環體的執行次數,提高程序的效率。

程序的執行效率是編程中時刻需要考慮的問題,也是程序設計中的基本要求。這需要許多算法方面的知識,對于初學者來說,要求可能過高,但是我們在講授過程中要注意向學生灌輸這種思想,從學習之初就要打下良好的基礎,尤其是類似上面例子中這樣顯而易見的情況,可以提醒學生在編制完一道程序以后,檢驗一下,是否還有可優化的地方,這對以后進一步學習高級編程都是必要的。

如何讓一名初學者盡快擺脫日常的思維定式,更加透徹地理解和掌握程序設計中的基本思想,領會程序設計的精髓,是高級語言程序設計這門課程的講授過程中應該時刻注意的問題。希望本文能在這方面起到一點作用。

參考文獻:

[1]譚浩強.C語言程序設計(第二版)[M].北京:清華大學出版社,1999.

[2]蘇運霖譯.計算機程序設計藝術第1卷.基本算法[M].北京:國防工業出版社,2002.

主站蜘蛛池模板: 中日韩欧亚无码视频| 国产乱子伦手机在线| 欧美成a人片在线观看| 久久伊人色| 国产黄色片在线看| 欧美一级片在线| 欧美中文字幕一区二区三区| 国产另类视频| 极品性荡少妇一区二区色欲| a级毛片在线免费观看| 国产成人精品在线| 亚洲精品日产AⅤ| 激情六月丁香婷婷四房播| 欧美日韩激情| 国产成人精品免费av| 国产精品伦视频观看免费| 久久一日本道色综合久久| 精品无码国产一区二区三区AV| 亚洲国产中文在线二区三区免| 日本免费新一区视频| 精品欧美视频| 老司国产精品视频| 国内精品久久久久久久久久影视| a在线观看免费| 国产在线视频福利资源站| 天堂va亚洲va欧美va国产| 波多野结衣无码AV在线| 91色在线视频| 欧美特级AAAAAA视频免费观看| 亚洲AⅤ波多系列中文字幕| 国产青榴视频在线观看网站| 国产免费羞羞视频| 找国产毛片看| 国产噜噜噜| 激情乱人伦| 欧美天堂在线| 囯产av无码片毛片一级| 一级毛片免费不卡在线| 国产欧美日韩精品第二区| 国产精品性| 精品一区二区三区无码视频无码| 高潮爽到爆的喷水女主播视频 | 婷婷色丁香综合激情| 国精品91人妻无码一区二区三区| 视频一本大道香蕉久在线播放| 成人精品亚洲| 精品福利国产| 国产成人久久777777| 亚洲国产成人久久精品软件| 九九热免费在线视频| 亚洲小视频网站| 国内精品小视频福利网址| 亚洲成av人无码综合在线观看| 1024你懂的国产精品| 97在线国产视频| 日本成人精品视频| 免费日韩在线视频| 国产成人一区免费观看| 中文字幕永久在线看| 国产99视频在线| 亚洲AV永久无码精品古装片| 在线观看精品国产入口| 久久久久夜色精品波多野结衣| 福利一区在线| 亚洲欧美在线综合图区| 九色在线视频导航91| 精品无码一区二区三区电影| 四虎永久免费地址| 青青青国产视频手机| 亚洲人成日本在线观看| 欧美啪啪一区| а∨天堂一区中文字幕| 亚洲天堂网2014| 91久久性奴调教国产免费| 极品国产一区二区三区| 精品一区国产精品| 最新国产网站| 成·人免费午夜无码视频在线观看| 永久免费无码成人网站| 国产成人亚洲精品色欲AV| 精品国产毛片| 久久综合九九亚洲一区|