學好Scratch后,除了學習Python還可以學習c語言。筆者認為,如果讓孩子直接從純代碼編程開始學習并不合適,從Scratch開始學習便能起到非常好的引導作用,孩子在學習的過程中采用圖形化的方式了解未來純代碼語言中的變量、數組、分支、循環等知識點。由淺入深理解了這些知識后,等積累到了一定層次后自然就可以學習其他純代碼語言了。今后我們也會增加一些c語言的內容,讓我們能夠接觸更高級的編程知識。
今天就用c語言統計輸入字符的數量:“輸入一行文字,統計其中有多少個單詞,單詞之間以空格分開”。例如輸入“My name is Teacher_chen”,統計應得出有4個單詞。
首先我們要確定解題思路,如何確定出現了一個新的單詞呢?從第一個單詞逐個字符進行檢查,判斷此字符是否屬于新的單詞,如果有新單詞出現,變量num的值增加1(這里使用變量num統計單詞數量),最后得到的num的值就是單詞的總數。
根據出現空格來判斷出現了新單詞,連續若干個空格只作為一次空格。如果偵測到某個字符為非空格,只需要判斷它前面的字符是否為空格,如果前面字符為空格表示新單詞開始了,則num+l,否則還是原來的單詞,不改變num。因此新增一個變量word判斷是否出現了新單詞,若word等于o表示前一個字符為空格,如果word等于1,意味著前一個字符為非空格。我們用流程圖表示(如圖1)。

有了思路之后便可以據此編寫代碼,在c語言學習中我們會使用到C-Free軟件,它是一款支持多種編譯器的專業化c/c++集成開發環境(IDE)。c語言是一門面向過程的,抽象化的程序設計語言,應用于底層的開發,而且書寫格式極其嚴格。
第一行#includeVstdio h>為“預處理指令”,是c語言中的一個頭文件,stdioh頭文件包含了c語言標準庫函數的定義。c語言程序和其他語言一樣都是由一個或多個程序組成,必須包含一個mam函數(如圖2)。

在代碼中我們可以看到,首先定義了一個字符串和一些變量。c語言的循環寫法也有所不同,注意第日行代碼for(i=0,(c=string[i]),二‘\o,i++)分成了二部分,每部分用分號隔開。
第一部分是初始化變量i=0,第一部分是循環判斷條件,只要字符不是“\()”就繼續執行,第三部分就是增量,執行完循環體語句后的操作。在9到16行的循環體中先判斷字符是否為空格,如果字符為空格則word等于(),如果不為空格且word值為(),則使word為1,num累加1,表示增加一個單詞。
這樣我們就將流程圖轉化成了代碼,根據代碼運行直至這串字符結束,便可以統計出單詞的數量(如圖3)。

c語言相比其他語言有著更嚴格的格式要求,所以大家在學習過程中一定要多上機,多敲代碼,學會記筆記,遇到問題要記得網上有豐富的學習資料,會幫助你解決難題的,加油!