摘 要:基礎(chǔ)知識是C語言程序設(shè)計課程教學(xué)的基礎(chǔ)內(nèi)容,包括常量、變量、運算符以及表達式等等。本文簡述了在教學(xué)實踐中如何講解C語言基礎(chǔ)知識的經(jīng)驗和方法,并且解答了學(xué)生在學(xué)習(xí)過程中遇到的常見問題。
關(guān)鍵詞:C語言;教學(xué);變量;表達式
一、引言
在眾多的軟件開發(fā)語言中,C語言無疑是其中的佼佼者,在工程實踐中得到了廣泛應(yīng)用。它既具有高級語言的全部功能,又具有與計算機硬件操作密切相關(guān)的特點。它具有豐富靈活的數(shù)據(jù)結(jié)構(gòu)、簡潔而高效的語句表達、清晰的程序結(jié)構(gòu)、良好的可移植性等特點,從而得到了眾多程序設(shè)計者的青睞?!禖語言程序設(shè)計》不僅是計算機專業(yè)的基礎(chǔ)課程,也是大多數(shù)工科專業(yè)的必修課程。C語言作為入門級計算機課程,針對的基本上是大一新生,他們沒有編程概念,甚至往往缺少計算機相關(guān)基本知識。C語言教學(xué)的重點在于如何利用有限的課時,讓學(xué)生迅速掌握C語言常用語法和編程基本技術(shù)。特別是在前期基礎(chǔ)知識的授課中,更應(yīng)把握要點,一切從編程角度出發(fā),讓學(xué)生盡快建立程序設(shè)計的整體思路。在第一次講課時,教師一般會給學(xué)生提供一個最簡單的C程序,代碼如下:
#include
main()? ?*主函數(shù)*/
{
printf ("welcome to C world!\n");
}
可以先運行程序給學(xué)生演示一下結(jié)果,屏幕上會顯示:welcome to C world! 首先應(yīng)該給學(xué)生建立函數(shù)的概念,這是C程序的基本模塊,類似文章的一段。C程序由函數(shù)組成,每一個函數(shù)完成一個相對獨立的功能。本程序只有一個函數(shù),它的名字叫做main,一個完整的C程序有且僅有一個main函數(shù)。讓學(xué)生明白main函數(shù)的重要性,它又稱為主函數(shù),起著控制程序執(zhí)行的作用,一個程序總是從main函數(shù)開始執(zhí)行,在main函數(shù)結(jié)束執(zhí)行。
函數(shù)的詳細(xì)語法知識以及深入應(yīng)用可以暫時擱置,先讓學(xué)生對函數(shù)有一個感性認(rèn)識。函數(shù)由函數(shù)頭和函數(shù)體組成,函數(shù)頭包括函數(shù)名和一對圓括號,圓括號內(nèi)可以寫函數(shù)的參數(shù)。函數(shù)體由一些語句組成,它們被一對花括號所包圍。函數(shù)體一般有說明語句和執(zhí)行語句,本程序只有一條執(zhí)行語句,語句以分號結(jié)束。講解庫函數(shù)調(diào)用時可以用高中學(xué)過的代數(shù)函數(shù)的使用做類比,printf是C語言提供的庫函數(shù),相當(dāng)于一個工具,它的作用是在屏幕上輸出指定的內(nèi)容,本例輸出welcome to C world!字符串。至于\n轉(zhuǎn)義字符和/*和*/注釋,可以和學(xué)生簡單解釋一下,而stdio.h頭文件以及#include編譯預(yù)處理命令可以暫時略過不提。
二、常量和變量
在程序中,不同類型的數(shù)據(jù)既可以常量的形式出現(xiàn),也可以變量的形式出現(xiàn)。常量是指在程序執(zhí)行期間其值不發(fā)生變化的量,變量則是指在程序執(zhí)行期間其值可以變化的量,一定要讓學(xué)生清楚,變量實際上對應(yīng)了內(nèi)存的一段存儲空間。常量有不同的數(shù)據(jù)類型,它可以分為直接常量和符號常量。直接常量即指可以從字面直接識別的常量,分為數(shù)值常量和字符常量;符號常量則是指用標(biāo)識符描述的常量,可以先讓學(xué)生有一個印象,不做深入解釋。
整型常量有十進制、八進制和十六進制三種形式,實型數(shù)據(jù)有兩種形式,分別為十進制形式和指數(shù)形式,例如326E+2或326E2都表示326×102。字符常量用單引號括起來的字符表示,如‘B、‘m、‘@、‘+等都是字符常量。用反斜杠(\)開頭的一個字符或一個數(shù)字序列也可以表示字符常量,稱為轉(zhuǎn)義字符,讓學(xué)生了解‘\n代表換行符即可,其他轉(zhuǎn)義字符可以先略過。字符串是由一對雙引號括起來的字符序列,如“CHINA”、“Mp3”等。要讓學(xué)生注意的是,“a”和‘a(chǎn)是不同的常量,其實質(zhì)區(qū)別可以在講字符數(shù)組時,再和學(xué)生講清楚。
變量是程序運行期間,其值可以改變的量。要和學(xué)生講清楚變量有名字,實際代表內(nèi)存中某一存儲空間,其中可以存放數(shù)據(jù)即變量的值,存儲空間的大小由變量的數(shù)據(jù)類型來決定。變量必須先定義,后使用。變量定義語句的一般格式為:類型變量名1,變量名2,…變量在定義時可以賦初值,即初始化。變量的類型主要有整型、實型和字符型,整型變量的基本型是int,實型變量分為單精度型和雙精度型兩種,分別用float和double表示。字符型變量用char表示,在內(nèi)存中占一個字節(jié)。這里可以向?qū)W生介紹一下ASCII編碼,從0開始,每一個字符對應(yīng)一個ASCII碼。例如字符‘a(chǎn)的ASCII碼是97,字符‘A的ASCII碼是65。
三、運算符和表達式
運算符用于對數(shù)據(jù)進行運算,被運算的數(shù)據(jù)稱為運算量或操作數(shù)。學(xué)好運算符要注意以下幾點,運算符的功能、運算符的優(yōu)先級、運算符所需的操作數(shù)個數(shù)和類型以及運算符的結(jié)合性。表達式描述對哪些數(shù)據(jù)以什么順序施以什么樣的操作,它由運算符和操作數(shù)組成。操作數(shù)既可以是常量,也可以是變量,還可以是函數(shù)調(diào)用。講課重點應(yīng)該是算術(shù)運算符和賦值運算符,要讓學(xué)生注意與平時習(xí)慣的區(qū)別。C語言的基本算術(shù)運算符共有5種:+(加)、—(減)、*(乘)、/(除)、%(求余),它們都是雙目運算符,例如運算x+y、x﹣y、x*y、x/y、x%y等。使用算術(shù)運算符要注意以下幾點:(1)%運算的操作數(shù)必須為整型數(shù)據(jù)。(2)兩個整數(shù)相除,結(jié)果仍然是整數(shù)。如5/3=1,-9/4=-2,采用“向零取整”的方法(即取整后向零靠攏)。(3)整型除法與實型除法是不同的。例如1/2的結(jié)果是0,而1.0/2.0的結(jié)果是0.5。可以給學(xué)生列舉梯形面積公式,對應(yīng)的C語言表達式應(yīng)該寫為1.0/2*(a+b)*h。如果寫成1/2,則得到的梯形面積始終是0。
C語言的賦值運算符為=,它的作用是將賦值運算符右邊的數(shù)據(jù)賦給左邊的變量。要提醒學(xué)生賦值運算符雖然與代數(shù)符號相同,但是意義完全不同,不能理解為“等于”。由賦值運算符將一個變量和一個表達式連接起來的式子稱作賦值表達式,它的一般形式為:變量=表達式,例如a=8+y,先求算術(shù)表達式8+y的值,然后將值賦給變量a。
講課時可以給學(xué)生適當(dāng)介紹一下自增運算符++,它在循環(huán)語句中經(jīng)常出現(xiàn)。a++的結(jié)果是a的值自動加1,相當(dāng)于賦值表達式a=a+1。簡略提一下前綴運算符和后綴運算符的區(qū)別,在使用時對變量(即操作數(shù))自身而言運算結(jié)果都是一樣的,但是對整個表達式的結(jié)果的影響是不一樣的。做前綴運算時,++a先將變量a的值增1,然后再使用它的值;做后綴運算時,a++表示先使用該運算對象的值,再將變量a的值增1。
四、結(jié)語
在程序中數(shù)據(jù)描述是通過數(shù)據(jù)類型體現(xiàn)的,基本數(shù)據(jù)類型主要有整型、實型和字符型,各種類型都有常量和變量。數(shù)據(jù)處理是通過運算符和表達式完成的,賦值表達式是最重要的表達式之一,它負(fù)責(zé)把數(shù)據(jù)賦給變量,完成數(shù)據(jù)在內(nèi)存的存儲。在教學(xué)中應(yīng)該刪繁就簡,引導(dǎo)學(xué)生了解C語言的特點,在程序設(shè)計中正確運用。
參考文獻:
[1] 王曉東. C程序設(shè)計簡明教程(第二版)[M].北京:中國水利水電出版社, 2008.