前言:中文期刊網精心挑選了c語言程序范文供你參考和學習,希望我們的參考范文能激發(fā)你的文章創(chuàng)作靈感,歡迎閱讀。
c語言程序范文1
關鍵詞:Java;JNT;C++;DLL
在現(xiàn)今的軟件開發(fā)領域中,Java以其跨平臺的優(yōu)勢得到大量的應用,其代碼可以一次編譯多處執(zhí)行。但這種特性給Java帶來了一定的局限性,幸好Java提供了完備的C/C++語言接口,這樣我們可以利用C語言的強大功能實現(xiàn)Java難以實現(xiàn)的功能,在一定程序上消除Java的局限性和低效率。
JNI是Java Native Interface的英文縮寫,中文翻譯為本地調用,自從Java 1.1開始就成為了Java標準的一部分。
C/C++是系統(tǒng)級的編程語言,可以用來開發(fā)任何和系統(tǒng)相關的程序和類庫, 但是Java本身編寫底層的應用比較難實現(xiàn),使用JNI可以調用現(xiàn)有的本地庫,極大地靈活了Java的開發(fā)。
C/C++的效率是目前最好的語言,可以使用C/C++來實現(xiàn)一些實時性非常高的部分。 C/C++和Java本身都是非常流行的編程語言,一些大型軟件中經常使用語言之間的混合編程。
一、創(chuàng)建DLL文件
使用某一種C/C++開發(fā)工具創(chuàng)建Dll文件,實現(xiàn)某一功能,供JAVA調用,例如本文在此使用Visual studio 2005創(chuàng)建一個名為testdll的動態(tài)庫文件。
二、使用JNI
JNI是Java Native Interface的縮寫,中文為JAVA本地調用。它允許Java代碼和其他語言寫的代碼進行交互。
1.JAVA類
在JAVA程序中,首先需要在類中聲明所調用的庫名稱,如下:
static {
System.loadLibrary(“testdll”); //加載動態(tài)庫,testdll為DLL文件名稱
}
還需要對將要調用的方法做本地聲明,關鍵字為native。并且只需要聲明,而不需要具體實現(xiàn)。如下:
public native static void set(int i);
public native static int get();
然后編譯該JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就會生成C/C++的頭文件。
例如程序testdll.java,內容為:
public class testdll { static { System.loadLibrary(“testdll”); } public native static int get(); public native static void set(int i); public static void main(String[] args) { testdll test = new testdll(); test.set(10); System.out.println(test.get()); } }
用javac testdll.java編譯它,會生成testdll.class。
再用javah testdll,則會在當前目錄下生成testdll.h文件,這個文件需要被C/C++程序調用來生成所需的庫文件。
2.C/C++
創(chuàng)建C/C++項目需要增加的頭文件有jni.h、jni_md.h這兩個文件是JNI中必須的;還有就是增加testdll.h。
對于已生成的.h頭文件,C/C++所需要做的,就是把它的各個方法具體的實現(xiàn)。然后編譯連接成庫文件即可。再把庫文件拷貝到JAVA程序的路徑下面,就可以用JAVA調用C/C++所實現(xiàn)的功能了。
接上例子。我們先看一下testdll.h文件的內容:
#include #ifndef _Included_testdll #define _Included_testdll #ifdef __cplusplus extern "C" { #endif JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass); JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint); #ifdef __cplusplus } #endif #endif
在具體實現(xiàn)的時候,我們只關心兩個函數原型 JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass);和 JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint);這里JNIEXPORT和JNICALL都是JNI的關鍵字,表示此函數是要被JNI調用的。而jint是以JNI為中介使JAVA的int類型與本地的int溝通的一種類型,我們可以視而不見,就當做int使用。函數的名稱是JAVA_再加上java程序的package路徑再加函數名組成的。參數中,我們也只需要關心在JAVA程序中存在的參數,至于JNIEnv*和jclass我們一般沒有必要去碰它。
下面我們用testdll.cpp文件具體實現(xiàn)這兩個函數:#include "testdll.h" int i = 0; JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv * jclass) { return i; } JNIEXPORT void JNICALL Java_testdll_set (JNIEnv * jclass jint j) { i = j+5; }
編譯連接成庫文件,這里就是testdll.dll。把testdll.dll拷貝到testdll.class的目錄下,java testdll運行它,就可以觀察到結果了。
三、總結
使用JNI可以在JAVA中調用其它語言編寫的代碼,在一定程度上消除JAVA的局限性和低效率。
參考文獻:
c語言程序范文2
【關鍵詞】C語言程序設計;教學內容;教學手段;教學方法;教學改革
C語言是一種廣泛使用的程序設計語言,它具有高級語言的特性與直接操縱計算機硬件的能力。因而,在當前許多高校中,C語言被列為程序設計課程的首選語言,成為了計算機專業(yè)的必修課程,也越來越多地被非計算機專業(yè)所采用[3]。然而在《C語言程序設計》課程的教學中,由于C語言概念比較復雜,規(guī)則繁多,同時在實踐中又具有靈活多變運用,所以教師對于課程教學難易度的把握有困難,學生對于課程的學習與實踐亦感到迷惑,甚至產生一些畏難心理[2]。作為實踐性很強的C語言程序設計課程,它的學習有自身特點:光聽只看是不夠的,還必須加以練習,通過大量的編程訓練,反復夯實語言的概念基礎,并在實踐中培養(yǎng)程序設計的基本能力,逐步理解和掌握程序設計的思維與方法。所以,C語言程序設計課程的教學重點是培養(yǎng)學生的實踐編程能力,以程序設計為中心來組織課程內容。在筆者多年的教學實踐中,針對《C語言程序設計》課程的難點與特點,在教學內容、教學手段、教學方法等方面做出了一些改革與嘗試,收到了較好的教學效果。
1、教學內容的改革[1][3]
1.1課堂教學內容的改革
目前關于C語言的教材很多,內容主要包括數據類型、表達式、分支、循環(huán)、函數、數組、指針、結構體、文件的概念和應用以及指針和各種構造類型的混合運用、基本算法等。很多教材側重于語言本身的理論體系介紹,而對于編程方面的介紹卻相對較少,這樣的安排雖然突出了知識結構的認識,但是也弱化了學生的程序設計能力和語言應用能力,而這些能力對于學生學好這門課程又恰恰是至關重要的。筆者在教學中,嘗試以程序設計為向導,輔以編程應用,將案例和問題引入課堂,使學生盡快建立起程序設計的思想和方法,然后在這些框架上穿插講解相關的語言知識。在前幾次課中,簡單介紹相關的背景知識和利用編程求解問題的過程,然后引入實例,在對問題的解決過程中介紹順序、分支和循環(huán)3種控制結構以及函數的使用,使學生對C語言有一個大概的了解。然后深入講解程序設計的思想和方法,并演示應用C語言解決問題。通過實例程序的引入來介紹語言知識,在每節(jié)課中介紹一些程序設計的方法、技巧以及編程中的常見錯誤,并設置練習題,鼓勵學生多思考、多練習,提高綜合能力,每章課程結束后, 設置綜合性的習題,包括本章的綜合以及從第一章到本章的綜合,主要是程序設計題。學生要想學會并應用C語言進行程序設計,除了對程序設計語言了解外,更重要的是在實踐中領會并掌握程序設計的基本思想和方法,要求學生從開始學習C語言起就試著編寫程序,先模仿例題中的程序,然后嘗試加以改寫,循序漸進,最后能獨立地編寫程序來解決比較復雜的問題。
1.2實驗教學內容的改革
C語言的教學特別需要重視實踐環(huán)節(jié),包括編程和上機實驗。針對不同水平的學生,筆者在教學班中抓兩頭,學得好的學生鼓勵給大程序,難一點的實驗,學得一般的學生做基礎性的題目。在保留基礎性實驗的同時,增加一些實用性強的、難度略大的實驗,并組織學生討論得出算法流程,然后上機編程調試。
按照實驗指導書上的內容,每個實驗內容以編程題為主,學生可以先模仿課堂案例操作,然后再做實驗題,通過“模仿-改寫-編寫”三步曲的上機實踐過程,在循序漸進的引導中逐步熟悉編程環(huán)境,理解和掌握程序設計的思想、方法和技巧,以及程序調試方法[4]。
實驗題分為必做題和選做題,在實驗過程中針對學生有問題的程序統(tǒng)一講解,然后再選一個有錯誤的程序讓學生自己找錯誤(開始一個月內的時間,讓學生學會找到語法錯誤)。這樣學生能力會提高很快,在后期發(fā)現(xiàn)邏輯錯誤,也會自己先找出,然后再求助老師。實驗題量一次課(2節(jié)課)至少留6-8題實驗。
2、教學手段的改革
運用多媒體技術輔助教學,是當前課堂上很流行的一種教學手段,因為這種方式包含的信息量大、豐富,學生學習起來感覺生動,提高了學習的興趣,同時也能夠優(yōu)化教學過程。但是多媒體輔助教學的弊端也越來越被了解,比如不恰當的使用會分散學生注意力,甚至影響學生對主要問題的理解。所以將多媒體教學引入C語言程序設計課程教學過程中,必須要考慮到兩者的特點與優(yōu)勢,取長補短,將傳統(tǒng)教學與多媒體教學進行有機的結合。比如:對于C語言的概念性知識點如數據類型、變量類型、運算符、程序結構等,可以采用多媒體教學,通過課件的制作,既滿足了課堂上演示的需要,也簡化了傳統(tǒng)教學大量板書的缺點。而對于程序的編寫或案例的分析,就需要發(fā)揮傳統(tǒng)教學的優(yōu)勢,更靈活的進行板書講解、課堂討論,使問題在師生之間的良性互動中得以解決。因此,教學中將各種手段如PPT、板書、現(xiàn)場編程并運行等多種手段有機結合,使得課堂教學達到最優(yōu)化,如果條件允許盡量現(xiàn)場編程(或事先準備好的程序),學生可以學習教師的思路考慮問題,收到更好的效果,同時也能加快教學進度。
另外,利用網絡資源的便利性,將大綱、電子教案、課件、練習題等放在網絡上,方便學生隨時查用學習,同時通過飛信、QQ、Email等網絡交流手段與學生進行答疑、討論等互動交流,從而擴展了課堂教學的空間。
賞識學生,注重學習興趣的培養(yǎng)。在教學過程中,教師應運用多種信息技術適時的輔導,創(chuàng)設豐富的情境,發(fā)揮最佳效應,運用多種教學手段激發(fā)學生主動學習獲取知識的熱情。
c語言程序范文3
關鍵詞:C語言;空指針;NULL
中圖分類號:G642 文獻標識碼:B
1引言
指針在C語言編程中占有非常重要的地位,使用指針可對內存進行動態(tài)分配、直接訪問內存以及表示復雜的數據結構等。正確而靈活地使用指針可編寫出優(yōu)質的程序,可以說指針充分體現(xiàn)了C語言的優(yōu)點。但由于指針具有高度的靈活性,對它的完全掌握也較為困難。
在某些場合下會使用到一種稱為空指針的指針,由于這種指針在程序中不以普通指針的形式出現(xiàn),并沒有對它進行顯式的定義或賦值,所以常常被忽視,但作為指針的一類,空指針這一概念卻是不應該被忽略或混淆的。
那么,什么是空指針呢?
2空指針的概念
空指針是一種不指向任何對象的指針,它的值為NULL。NULL在中是這樣定義的:
#define NULL0
或:
#define NULL 0L
也即是說,NULL的值是一個純粹的零,這樣,空指針就與普通指針有了區(qū)別:空指針的值是一個整型值,而普通指針值是不允許是整型值的。但這個純粹的零需要時可以被強制轉換成void *或char *類型。
3空指針的用途
3.1用作函數調用失敗時的返回值
某些函數的返回值是一個指針,若函數調用成功,返回一個指向某一對象的指針;反之則返回一個空指針。很多C庫函數在調用失敗時的返回值就是一個指針,如:
#include
main( )
{char *string[5];
int i=0;
while(i
{if((string[i]=(char *)malloc(32))= = NULL)
{ printf(“failure”);
exit(0);
}
else
gets(string[i];
i++;
}
for(i=0;i
}
這個程序中定義了一個指針數組分別指向五個字符串,這五個字符串的存儲位置在是程序執(zhí)行過程中調用malloc( )函數動態(tài)分配得到的,若分配失敗,malloc( )函數的返回值即為一個空指針,程序中if語句的條件就是以判斷malloc( )函數的返回值是否為空指針來確定程序的流向。
3.2用來終止對遞歸數據結構的間接引用
單鏈表是一種常見的遞歸數據結構,其結構非常簡單,包含一個值域和一個指向鏈表中下一個元素的指針域。下面以一個只含一個整型數據域的單鏈表為例:
struct linklist
{intdata;
struct linklist*next;
};
在這樣一個鏈表中,通過指向第一個元素的指針(頭指針)開始引用該鏈表,并通過每個元素的指針不斷引用下一個元素,將鏈表中最后一個元素的指針賦值為NULL,用以控制對該鏈表引用的終止。如下例是對如上定義的單鏈表求其長度的函數:
int length(struct linklish *head)/*head為頭指針,函數結果用i返回*/
{struct linklist *p;p=head;
int i=0;
while(p!=NULL)
{p=p->next;
++i; }
return(i);
}
在本例中,while循環(huán)的執(zhí)行條件“p!=NULL”判斷指針p是否移動到鏈表尾,若該條件不成立,表示已到鏈表最后一個元素,終止對鏈表的引用。
3.3用作main函數形參argv[ ]的結束警戒值
一般情況下main函數是不帶參數的,但有時它可有兩個形參:argc和argv[ ]。一個帶形參的main函數如下例:
#include
main(argc, argv)
int argc;
char *argv[ ];
{ int i=0;
while(argv[i]!=NULL)
{printf(“argv[%d]=%s\n”,i, argv[i]);
i++;}
}
其中argc是指在操作命令狀態(tài)下執(zhí)行main函數時命令行中參數的個數,argv[ ]則是一個指針數組,指向命令行各參數字符串的首地址。
若該函數編譯后生成的可執(zhí)行文件名為file,則可在操作命令狀態(tài)下輸入如下命令行:
filepara1para2para3
則argc的值為4(文件名也看作一個參數),argv[0]指向命令行中第一個字條串“file”,argv[1]指向“para1”,argv[2]指向“para2”,argv[3]指向“para3”,實際上還有一個argv[4],其值即為NULL。該程序的功能是依次輸出命令行中的各參數字符串,while循環(huán)體的執(zhí)行條件是“argv[i]!=NULL”,該循環(huán)體執(zhí)行四次依次輸出命令行中四個參數字符串后,到達指針數組的最后一個元素argv[4],其值為空,循環(huán)終止。
4關于空指針的討論
4.1空指針與void指針的區(qū)別
空指針與void指針是完全不同的,前面已經說明空指針是不指向任何對象的,而void指針卻需指向某個對象,只是這個被指向的對象是不屬于任何類型的,void指針在需要時可與其它類型的指針互換。
void指針常用作指向函數的指針,而這對空指針而言是不可想象的。
4.2空指針的值是否總是為0
對于空指針的值是否總是為0這一問題,如果理解為“NULL與0比較,結果相等”,那么回答是肯定的,也就是說NULL總是等于0;但是如果將這一問題理解為“其存儲方式總是與整型值0相同”,則并不一定,因為就存儲方式而言,不同類型的“0”顯然是不同的,所以程序中若在需要時將NULL的值強制轉換成void *或char *類型后,其存儲方式必然與整型的0不同了,一個字符型的0在內存中存放的是其ASCII代碼的值(048),一般而言占用一個字節(jié),而一個整型的0在內存中存放就是其本身的值(0),則所占字節(jié)數隨編譯系統(tǒng)的不同而不同,一般為兩個字節(jié),因此,在這種意義下則可說空指針的值并不一定總是為0。
4.3NULL與NUL的不同
前面在說明空指針的概念時已經知道NULL是在中定義的一個宏,其值為0或0L。而NUL則是指ASCII中第一個字符----空字符’\0’,常用作字符串的結束標志,它并不是C語言中預定義的宏,它與NULL是完全不同的。
5結束語
在程序設計語言的發(fā)展歷程中,C是一個重要的里程碑。在面向對象、可視化、基于網絡的程序設計語言占據主流地位的今天,C仍然是計算機專業(yè)和非計算計專業(yè)學生進入程序設計領域的重要基礎。指針是C語言中的一個極為重要的概念,全面正確地掌握指針是進行C語言程序設計的必備基礎。空指針雖然不像C語言中其它普通指針那樣得到廣泛的使用,但對其有一個明晰的概念,了解了它的用途后,對程序的閱讀及實現(xiàn)某些編程技巧卻是很有用的。
參考文獻:
c語言程序范文4
目的:研究用C語言實現(xiàn)DSP程序設計的有關問題。方法;選取TMS320C4X系列芯片為樣本,采用C語言完成了2種設置DSP中斷向量表的方法。結果:用C語言實現(xiàn)DSP程序設計,可以使設計方法得到簡化,同時能夠達到提高系統(tǒng)集成性,節(jié)約開發(fā)與設計成本的目的,提高效率的目的。結論:應采用C語言實現(xiàn)DSP程序設計,以解決傳統(tǒng)設計方法存在的問題,提高系統(tǒng)可靠性。
【關鍵詞】C語言 DSP程序設計 實現(xiàn)
DSP程序設計語言存在很多種,匯編語言與C語言都是非常重要的組成部分。在過去很長一段時間內,前者一直是DSP程序設計所以來的主要語言,但其在實現(xiàn)過程中,通常存在開發(fā)周期長的特點,且維護相對困難。采用C語言實現(xiàn)DSP程序設計,可以有效解決這一問題,對程序設計開發(fā)效率的提高具有重要價值。
1 用C語言實現(xiàn)DSP程序設計的過程
1.1 中斷向量表
中斷向量又稱中斷服務程序地址,其需要裝載到存儲器的合適區(qū)域內,中斷向量表的功能正在于此,能夠通過對中斷向量的定位,實現(xiàn)存儲。目前有效的中斷向量表基地質包括0x0以及0x1000等多種。
1.2 用C語言實現(xiàn)DSP程序設計的方法
1.2.1 將匯編語句嵌入C語言
采用該種方法實現(xiàn)對中斷向量表的設置,其地址為0x0,需要將IVTP寄存其中:
asm (“PUSH R0”);
asm (“LDI Oh, R0”);
asm (“LDPE R0, IVTP”);
asm (“POP R0”);
納鮮鍪迪止程中可以看出,采用將匯編語言嵌入到C語言中的方法,實現(xiàn)DSP程序設計,其設計過程十分簡單,不僅能夠有效的解決傳統(tǒng)設計方法中存在的設計過程長,需要時間多的問題,同時其設計效果也能夠達到較高的標準。由此可見,采用上述方法實現(xiàn)DSP程序設計很有必要。
1.2.2 采用TMS320C4X的PRTS實現(xiàn)DSP程序設計
在TMS320C4X系列芯片的運行過程中,需要依賴與其并行運行的支持庫來提高運行的可靠性。以上述原理為基礎,實現(xiàn)對中斷向量表的設置,是一種主要的設計手段,同時也能夠使設計效率得到提高,使效果得到改善。采用上述方法完成設計,地址為0x02ff800,具體實現(xiàn)方法與過程如下:
-1 prts40. Lib
MEMORY
{
RAMO; org=0x02ff800, len=0x400
)
SECTIONS
}
“. Vector”:{}>RAM0
)
中斷向量表設計完成之后,其安裝的過程與方法如下:
#include
voide-int99 (void)
{
set -ivtp (DEFAULT);
Install-int-vector((void*)e-int99, 2);
相對于將匯編語言嵌入到C語言中的方法而言,采用該種方法實現(xiàn)設計,其過程相對復雜,但實現(xiàn)效果相對較好。
2 結果
在C語言的支持下,采用上述兩種方法實現(xiàn)對TMS320C4X系列芯片的設計,增強了芯片應用系統(tǒng)的集成度,使其得到了極大的增加,在此基礎上,降低了設計成本,相對于傳統(tǒng)匯編語言而言,其經濟性得到了體現(xiàn),同時芯片的性價比也得到了提高。除此之外,以將匯編語言嵌入到C語言中的設計方法為例,其同時具有設計過程簡單,設計效率高的特點,這同樣成為了其主要優(yōu)勢之一,對于以該芯片為主的產品設計效率的提高能夠起到積極的促進作用。鑒于該設計方法易于維護與修改的特點,將其用于產品的設計,還能夠使產品的升級換代過程更加簡單,在社會創(chuàng)新水平不斷提高,新產品出現(xiàn)速度不斷加快的今天,這一優(yōu)勢必定能夠使產品的市場占有率得到提高。
3 討論
DSP又稱數字信號處理,是隨著信息化技術水平的提高而出現(xiàn)的一種新技術與新方法。功能在于對數字信號進行處理。數字信號主要包括一維、二維和多維三種,其維度與自變量的個數有關,一維為例,其指的是一個自變量的函數。采用DSP對數字信號進行濾波以及壓縮等方面的處理,能夠使數字信號得到優(yōu)化,更好的體現(xiàn)出來。
DSP程序設計是支持DSP功能實現(xiàn)的基礎,傳統(tǒng)采用匯編語言實現(xiàn)對程序設計過程,但隨著信息化水平的不斷提高,以及社會對DSP程序設計水平與效果要求的增加,匯編語言中存在的問題也開始逐漸暴露出來。程序設計效率低、過程復雜、對成本要求高,均屬于其缺陷的主要體現(xiàn)。將C語言用于DSP程序設計,能夠使上述問題得到有效解決。采用將匯編語言嵌入到C語言中的方法,實現(xiàn)程序設計,具有設計簡單,效率高的特點,且能夠達到較好的設計效果,易于修改與維護。采用TMS320C4X的PRTS實現(xiàn)DSP程序設計的方法,同樣能夠達到提高設計水平的目的。由此可見,信息與通信工程領域,應加強對上述程序設計方法的重視,這對于該領域的長遠發(fā)展具有重要價值。
TMS320C4X芯片作為數字信號處理的主要代表,其設計過程可以應用上述設計方法來實現(xiàn)。隨著設計成本的降低,以該芯片為代表的數字信號處理器,必定能夠被應用到更多領域當中,進而為社會的發(fā)展帶來更大的促進作用。
綜上所述,鑒于傳統(tǒng)匯編語言實現(xiàn)DSP程序設計的方法中的缺陷已經開始逐漸暴露,將C語言應用到設計過程中,已經成為了DSP程序設計應用的主要方法之一,C語言的應用能夠使設計效率得到提高,使設計成本得到降低,各領域應將C語言應用到數字信號處理過程中,以為自身的發(fā)展提供更好的保障。
參考文獻
[1]胡世鋒,張海濤.用C語言實現(xiàn)DSP程序設計的新方法[J].河北北方學院學報(自然科學版),2009(03):64-66.
[2]武曉春.用C語言設計TMS320VC54x系列DSP的用戶bootloader程序[J].計算機與網絡,2009(Z1):142-144.
[3]李理.用C語言設計程序實現(xiàn)多頁程序的引導裝載[J].計算機與數字工程,2007(09):200-202+214.
[4]白漢斌,劉峰,張明敏.基于TMS320C6000系列DSP的Flash編程方法[J].電子測量技術,2006(06):107-109.
[5]胡洪凱,鄭紅,吳冠.TMS320C54X DSP混合編程的方法研究[J].電子技術應用,2001(08):68-70.
c語言程序范文5
關鍵詞:C語言;實驗教學;教學改革
中圖分類號:G434 文獻標識碼:A 文章編號:16727800(2012)011016703
作者簡介:溫菊屏(1979-),女,碩士,佛山科學技術學院電子與信息工程學院講師,研究方向為數據挖掘、信息安全。
0 引言
《C語言程序設計》課程是大學計算機專業(yè)及理工類非計算機專業(yè)一門重要的公共基礎課程,它不僅是其它高級編程語言的基礎,而且通過這門課的學習可以掌握程序設計的思想。該門課程具有較強的理論性和實踐性,學好這門課程將為后續(xù)專業(yè)課程的學習打下扎實的理論和實踐基礎。學生普遍反應,C語言課程內容繁多,雖然感覺課堂上基本聽懂教學內容,但上機實驗也常常顯得力不從心,課堂和上機嚴重脫節(jié)。值得一線教師思考的是程序設計類課程上機實驗的重要性絲毫不亞于課堂教學,這是鞏固和發(fā)展課堂知識十分重要的一環(huán),在抓課堂教學質量的同時,要切實重視實驗教學環(huán)節(jié)。因此,必須認真思考這門課程實驗環(huán)節(jié)存在的種種問題,找到解決問題的辦法,切實提高實驗教學的效果。
1 實驗教學存在的問題
1.1 實驗課效率低下
在以往上機實驗課上,有相當一部分學生事先沒有預習實驗內容,坐在電腦前看教材、看實驗指導書,而不是打開電腦動手編寫程序,導致上機實驗課效率十分低下,根本無法完成實驗任務。
1.2 過度依賴老師解決問題
很大一部分學生在上機調試程序時,不會根據提示的編譯錯誤找到錯誤所在,一味依賴教師把錯誤指出加以改正,造成學生發(fā)現(xiàn)、解決問題的能力沒有得到鍛煉與提高。
1.3 實驗素材有待完善
通過上機實驗環(huán)節(jié),可以加深學生對講授內容的理解,尤其是一些繁瑣、枯燥的語法知識,可以通過上機實驗加以鞏固。因此,上機實驗的素材和實驗內容安排是否合理顯得尤為重要。以往使用的實驗教材是和教材配套的實驗指導書,實驗項目基本上是教材每章后面的程序編寫題,每個程序代碼都可以在實驗指導書中找到答案,學生只需要把書中的源程序代碼輸入計算機,進行一些簡單的調試工作。這樣一來,學生只能依葫蘆畫瓢,無法很好地掌握所學知識點,學生喪失獨立思考和創(chuàng)新的能力。
1.4 學生自我檢測和老師測評環(huán)節(jié)缺失
學好C語言這門課程,僅靠課堂和上機實驗的有限時間是不夠的,需要學生課后花很多時間上機實踐。以往學生課后只能依靠教材、實驗指導書和課件復習所學知識點,學習資源匱乏,并且學生無法對自己知識點的掌握情況做評估,不能很好地補缺補漏。教師也沒有提供階段測評環(huán)節(jié)及時掌握學生各階段的學習情況。
2 實驗教學探索
2.1 抓好實驗預習工作,培養(yǎng)學生良好的預習習慣
上機實驗是程序設計課程一個非常重要的環(huán)節(jié),通過上機實驗編寫程序,可以進一步鞏固對理論知識的理解。在以往的實際教學中,教師往往容易忽視實驗課前預習工作,學生事先不做準備,到機房才開始看題目思考如何編寫程序,很難在有限的課堂時間內完成作業(yè)。因此,近幾年的教學中,教師要求學生事先將要完成的實驗程序代碼在預習本上寫出,在上機實驗時將代碼輸入計算機進行調試。教師做到每次上機課檢查學生的預習本,實施“沒有完成預習工作的學生不能進機房”的懲罰措施,經過嚴格的督促,所有學生養(yǎng)成了事先預習的好習慣,保證了上機實驗的效率。
2.2 養(yǎng)成良好程序書寫規(guī)范,掌握程序調試工具,培養(yǎng)學生發(fā)現(xiàn)問題、解決問題的能力 以往在批改學生作業(yè)時,發(fā)現(xiàn)大部分學生的程序代碼雖然沒有語法錯誤,但程序書寫很不規(guī)范,給查錯、日后閱讀帶來很大的不便。程序書寫應該清晰,便于閱讀、理解、維護,遵循以下規(guī)則:①一個語句占一行;②使用{}時,兩個花括號單獨占一行,并且在同一列的位置;③低一層次的語句比高一層次的語句右縮進幾個字符;④在必要的地方加上注釋語句。
其實在VC 6.0編譯環(huán)境中,系統(tǒng)有自動右縮進的功能,代碼書寫每次換行,系統(tǒng)會根據層級關系自動右縮進幾個字符;并且對于沒有正確采取右縮進對齊的代碼,可以通過按ALT+F8組合鍵進行自動對齊。
由于C語言內容比較復雜,對初學者而言,很容易在編寫程序時遇到各種各樣問題,加上學生的英語水平有限,對于調試出現(xiàn)的錯誤和警告信息看不明白,出現(xiàn)問題就會有畏難情緒和依賴思想。
程序調試能力是程序設計能力一個非常重要的方面,在以往的教學中,學生調試錯誤能力的培養(yǎng)往往被忽視。很多教師在輔導上機時,只要學生出現(xiàn)調試錯誤,教師直接把錯誤指出,學生發(fā)現(xiàn)問題、解決問題的能力沒有得到鍛煉。
程序錯誤包括兩類:一類是語法錯誤,一類是邏輯錯誤。語法錯誤是學生比較容易犯的錯誤,對于這類錯誤,教師要告訴學生找錯方法。對于邏輯錯誤教師應該在課堂上教會學生使用調試工具,強調調試工具使用的重要性,在上機實驗時,鼓勵學生經常使用調試工具,特別對于循環(huán)結構的程序,通過調試工具,可以很好地觀察一些重要變量的變化情況。
2.3 完善實驗教材,合理安排實驗內容
以往教學中,使用的實驗教材是譚浩強版的《C語言程序設計題解與上機指導》,這門書的實驗內容基本上是程序編寫題,并且已經附有答案,學生使用該教材實驗效果很不理想。
2009年10月,在廣東省教育廳下達的課題“C語言程序設計立體教材開發(fā)”的資助和要求下,課題組集中精力編寫了一本有助于從多個層次培養(yǎng)學生讀程序、分析程序、修改程序以及編寫程序能力的實驗教材——《C語言實訓教程》。該實驗教材共有12個實驗,其中1個驗證性實驗、9個設計性實驗、2個綜合性實驗。驗證性實驗立足于語法規(guī)則,目的在于鞏固C語言的基礎語法知識。設計性實驗是在給定實驗目的和要求的條件下,由學生結合所學知識,自行設計實驗方案并加以實現(xiàn)的實驗,目的在于培養(yǎng)學生充分運用所學知識,去發(fā)現(xiàn)問題、解決問題。設計性實驗突破以往只有編寫程序題的模式,每個實驗的實驗任務都設置了3個層次:
(1)程序改錯題:讀程序找出其中的錯誤,通過改錯訓練,可以讓學生掌握調試工具的使用,并且避免以后編寫程序時犯類似常見錯誤。
(2)程序擴展題:培養(yǎng)學生在分析、理解原始程序的基礎上,對程序進行擴充修改,為獨立編寫程序打下基礎。
(3)程序編寫題:訓練學生獨立編寫程序能力以及解決實際問題的能力。
經過“讀程序—模仿改寫程序—編寫程序”實驗環(huán)節(jié),讓學生在由淺入深的逐步引導中理解和掌握程序設計的思想、方法和技巧。
綜合性實驗是學生經過一個階段的學習之后,運用所學知識點,對實驗技能和方法進行綜合訓練的實驗。綜合性實驗是學生反映最難,也是收獲最大的一個部分。在以往教學中,綜合性實驗在課程快結束的時候布置,學生面對如此綜合性的實驗任務,要一步到位,從無到有寫出一個完整的程序,顯得思緒混亂、手忙腳亂、無從下手。教師應該在學習初期就把綜合性實驗要求提出,演示程序,讓學生直觀感受課程最后要完成一個怎樣的任務。在這樣一個大任務的驅使下,激發(fā)學生的學習興趣,隨著知識點的不斷學習,將一個簡單的小程序逐步完善成一個復雜的程序。以《C語言實訓教程》為例,綜合性實驗具體實驗任務是編寫一個學生信息管理系統(tǒng),每個學生信息包括學號、姓名、性別、班級、3門課成績,主要功能包括數據輸入、數據輸出、數據修改、按照某字段排序、查詢學生信息、統(tǒng)計平均分及不及格科目等功能模塊,通過選擇不同的菜單項來實現(xiàn)各功能模塊。此綜合性實驗涉及到知識點有選擇結構、循環(huán)結構、函數、結構體數組等內容,基本上涵蓋了C語言中所有知識點。
綜合性實驗不是一步到位的,而是分步驟實施,逐步完善程序代碼,具體步驟如下:①在選擇結構實驗環(huán)節(jié)中,要求學生編寫程序1.cpp:使用switch語句完成“學生信息管理系統(tǒng)”菜單的輸出顯示;②在循環(huán)結構實驗環(huán)節(jié)中,要求學生修改程序1.cpp:在1.cpp基礎上,使用while或do while語句實現(xiàn)菜單的循環(huán)顯示,修改后的文件名為2.cpp;③在函數實驗環(huán)節(jié)中,要求學生修改程序2.cpp:在2.cpp基礎上,對每個菜單項對應設計一個空函數(只有函數名,函數體內是空語句,留待以后加以完善),選擇不同菜單項則調用不同的函數,此時管理信息系統(tǒng)最初的程序框架已經修改,建立修改后的文件名為3.cpp;④在數組和結構體的實驗環(huán)節(jié)中,要求學生把綜合性實驗中的每個功能模塊分別用一個獨立的cpp文件編寫調試成功,假設有n個模塊,此時程序名分別為41.cpp,42.cpp,…,4n.cpp;⑤新建一個新的cpp文件——5.cpp,在該文件中寫入所有功能模塊對應的函數定義,函數定義部分代碼提煉于步驟4所有獨立的cpp程序文件(41.cpp,42.cpp,…,4n.cpp),main( )函數里順序調用各函數,順序執(zhí)行各功能模塊;⑥要求學生修改程序3.cpp:將5.cpp程序中所有函數定義的代碼,填入到3.cpp程序中對應的空函數的函數體內部,經過調試修改,最終完成綜合性實驗程序。
通過以上循序漸進的步驟,學生能夠深刻體會如何將一個復雜的問題分解成一個個小任務加以解決,從而使得學生編寫復雜程序的能力得到很好的鍛煉。
2.4 借助立體化資源,培養(yǎng)學生自主學習能力
《C語言程序設計》課程具有信息量大的特點,僅僅依靠64學時課堂教學和上機實驗無法達到良好的教學效果。因此,如何把課堂進行延伸為學生搭建一個課堂外的課堂,為學生自主學習提供一個平臺是值得教師思考的一個問題。
本課題組除了編寫實驗教材之外,還制作了實驗教材配套的輔導學習光碟,光碟中提供了每個實驗項目問題分析及解決方法的講解視頻、流程圖及參考程序;搭建Blackboard網絡教學管理平臺,BB平臺除了提供學生自主學習的課程資源之外,還提供了學生進行自我測評的“在線測試”,測試題目以章節(jié)為單位,涉及單選、填空、閱讀程序及編程題,此環(huán)節(jié)允許學生反復練習,點擊“提交”按鈕之后,客觀題會自動評分并提供正確的參考答案,讓學生對自己所學知識的掌握情況有個全面了解。通過“實驗教材+輔導光碟+網絡平臺”三位一立體化的資源,使得本課程的實驗教學模式由原來單一的依賴實驗指導書資源學習,轉變?yōu)閷W生依托立體化資源進行自主學習的模式。
2.5 增加階段性測試,及時了解學生學習情況
以往教師只能通過學生提交的實驗程序來了解學生知識掌握情況,而大部分實驗作業(yè)是學生通過翻看教材和共同討論完成的,教師無法了解學生掌握知識的真實情況,無法及時對掌握不好的知識點加以強化學習。針對這一問題,本課題組利用計算機技能自動測評系統(tǒng)對學生進行階段性測試,通過2~3次的小測試,了解各階段學生知識點掌握情況,及時補缺補漏。測試成績也作為平時成績的一部分,從而督促學生及時復習所學知識點,不至于邊學邊忘。
3 結語
針對多年來C語言實驗教學中存在的若干問題,本課題組經過一系列教學實驗改革和實踐,取得了較好的效果,學生對課程和教師的滿意率也顯著提高。在學生對26名任課教師的教學質量評價中,有5位《C語言程序設計》任課老師排名前7名,是歷年來教學評價最好的一次。由此可見,對于C語言實驗教學環(huán)節(jié),改進方法在實際教學實施過程中取得了良好教學效果。今后要在實踐教學中勤于思考、時時總結、不斷改進,爭取在教學實踐中取得更好的成績。
參考文獻:
[1]侯建花,楊長青.《C語言程序設計》實驗教學的改革與實踐——以淮海工學院為例[J].計算機教育,2010(1).
[2]潘麗麗,鐘少宏,姜瑜.非計算機專業(yè)C語言程序設計實驗教學模式[J].計算機教育,2011(18).
c語言程序范文6
關鍵詞:C語言程序設計;以應用為本位;啟發(fā)式教學
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2013)10-2412-03
C語言功能豐富,應用面廣,當下,很多高校依然把C語言作為非計算機專業(yè)學生的一門通識平臺課開設。然而,在C語言課程的開設過程中,教師和學生不同程度地存在著缺位和誤區(qū),教與學的效果不盡如人意。在C語言的教學過程中,不少任課教師因循守舊,教學目標不清,教學方法單一,教學觀念陳舊,使C語言的課堂蛻化為單純的語法規(guī)則的灌輸,使C語言的學習變?yōu)楹唵蔚恼Z法知識的學習,學生普遍反映難學厭學。C語言程序設計課程一般面向的都是大學一年級的新生,他們剛剛結束高中生活步入大學校園,對一切充滿了新鮮感和不適應感,學習觀念、學習目的和學習方法有待轉變和調整,學習的主體意識和自覺性有待增強和提高。針對這些問題和現(xiàn)象,筆者在自己的教學過程中進行一些了探索和實踐,取得了一定的效果。
1 教師自覺轉變教學觀念,提高自身素質
縱觀C語言程序設計課程的教學,現(xiàn)在最典型影響面最大的教學模式就是由教師和學生構成一個教學體,教師在講臺上自我表演,學生充當看客或聽眾【1】。所謂知識也好、信息也好,都是一個從教師到學生的單向流動。在這種以教師為主導、以教材為核心、以課堂為中心的教學模式下,教學蛻化成為一種單純的知識傳授,學生學習的積極性和主動性的調動,學生創(chuàng)新能力和創(chuàng)新思維的培養(yǎng),都無從談起。面對這樣的現(xiàn)狀和背景,教師教學觀念的轉變和自身素質的提高顯得尤為重要。本著對學生負責,對學校負責的態(tài)度,教師應在自身責任感的驅使下,主動了解先進的教育思想和教學理念,像教學互動性、學生主體性和知識建構性等等;認真思考大學教育的功能,比如授人以魚還是授人以漁;結合教學實際,轉變教學觀念,改變傳統(tǒng)的教與學的地位,由過去的“以教師為中心”轉變?yōu)椤敖處熤鲗В詫W生為主體”,營造民主的教學氛圍;改變課堂老師單向灌輸、學生被動聽講的授課模式,引入多元化的教學方法,比如啟發(fā)式,探究式,引導學生獨立思考,鼓勵學生主動參與學習。
2 引導學生轉變學習觀念,培養(yǎng)學生學習的主體意識
C語言程序設計課程的開設面對的多數是大學一年級的新生,而對于剛入校的大學生來說,受中學養(yǎng)成的學習習慣的影響,學習的自主意識淡薄,學習還習慣性地全部寄托在老師身上,對老師的依附心理嚴重。同時,面對大學里比中學多得多的自由學習時間不知如何有效地管理和支配,對新的學習環(huán)境和新的學習生活有不同程度的不適應和困惑。面對這樣一個處在比較特殊階段的學生群體,承擔C語言程序設計課程的任課教師要有針對性對學生進行引導和管理。首先,任課教師從一開始就讓學生明確一個觀點,即C語言是學生自己學會的,而不是老師教會的。俗話說,“師傅領進門,修行在個人”,盡管教師的教在教學活動中起著主導作用,但更重要的是學生的學,學習的主體是學生本人,只有學生充分發(fā)揮自己學習的自覺性和主動性,教師的教學思想才能得到很好地貫徹,教學效果才能得到很大的提高,整個學習活動也才會成功。其次,強化學生的責任意識。對絕大多數學生來說,如果單從年齡判斷,步入大學校園也往往意味著步入成年人的行列。而成年人也就意味著要對自己負完全責任了。教師在教學過程中要不斷強化學生對這一點變化的認知,讓他們知道要對自己負責,對自己的學習負責,而不應再完全依賴教師或家長的監(jiān)督。最后,教師的指導和管理。學習觀念的轉變,新的學習習慣的養(yǎng)成,不是一蹴而就的事情,需要在實際的學習活動中逐步完成。課前的預習、課堂的參與、課后的作業(yè)、實驗的完成、期末的考試等是C語言教學活動不可或缺的環(huán)節(jié),每一個環(huán)節(jié)里需要學生完成的任務,任課教師從一開始都給出一個明確的要求并嚴格按照要求去管理,將大大有益于轉變學生的學習觀念,培養(yǎng)學生學習的主體意識。
3 激發(fā)學生的學習興趣,調動學生學習的積極性
在C語言程序設計課程的教學過程中,往往有學生反映C語言比較抽象,課堂教學又枯燥無味,很容易喪失學習的興趣和熱情。如何激發(fā)學生學習C語言的興趣并始終保有這種興趣,也常常是教授C語言課程的老師很頭疼且又不能回避的問題。“興趣是最好的老師”,每位教師都深知學生的學習興趣對教學活動成功的重要性,但C語言程序設計課程側重思維訓練的特點又決定了在這方面留給任課教師的空間是有限的。筆者在自己的教學實踐中做了一些嘗試。
1)演示典型的完整的C語言應用,培養(yǎng)學生的學習興趣
學生在學習C語言程序設計課程之初,對該門課程的學習目的和學習目標多數是模糊的,對C語言的認識也多半是空白,任課教師適當的引導很容易引起學生學習的興趣和探究的欲望,因此該門課程的開篇很重要。筆者摒棄了以往通過文字抽象地介紹C語言的產生、C語言的特點和C語言的應用的做法,直接從演示典型的完整的C語言的應用開始。演示的程序有難有易,涉及的范圍涵蓋實際生活中的應用、有趣的數學問題、圖形動畫、游戲等。筆者一度選擇了圖書管理系統(tǒng)、文本編輯器、學生成績管理系統(tǒng)、兔子產子問題、百錢百雞問題、圖形時鐘、撲克牌的自動發(fā)牌、猜數游戲、五子棋游戲等應用,引起了學生濃厚的學習興趣。
2)營造輕松的學習氛圍,創(chuàng)造愉快的學習體驗,強化學生的學習興趣
要引起學生對C語言一時的興趣不是一件難事,但要讓學生在整個C語言程序設計課程的教學過程中始終抱有這樣的學習興趣就不是一件易事了。哪位任課教師做到了這一點,他的教學活動無疑就是成功的。C語言比較抽象,課堂教學容易枯燥無味,是一個不爭的事實。為此,在實際的教學活動中,選擇難易適中貼近生活的問題,比如利息的計算、持有的股票價值的計算、學生成績的管理、募捐活動的模擬等;涉及C語言的語法特性時,盡量使用生活化的直白的語言,少用專業(yè)術語;課堂教學的開展過程中鼓勵學生積極參與,對學生提出的任何有意義的問題都及時地給予肯定;面對問題,對學生做出的任何有價值的回答都及時地給予表揚,都有助于營造輕松的學習氛圍,有助于讓學生體驗到成功的歡樂,有一種成就感,有助于強化學生學習的學習興趣和熱情。
4 踐行以應用為本位的教學思路,有選擇性地采用以知識為本位的教學思路
C語言程序設計課堂教學的組織有兩種思路兩種模式。一種是以知識為本位的教學思路下形成的“建筑模式” 【2】,課堂教學以講授語法為主,先是提出語法概念,然后解釋該語法概念,最后舉例說明其應用,強調先系統(tǒng)學習理論打下寬厚的理論基礎,然后再進行應用,講究的是理論的系統(tǒng)性與嚴密性。另一種是以應用能力為本位的教學思路下形成的“生物模式”,課堂教學以程序設計為中心,以編程為目的,從應用的角度切入,先是提出問題,然后引導學生分析解決問題,最后著重介紹涉及的C語言的語法特性,強調結合應用學習必要的理論知識,隨著應用的展開,編程難度的逐步提高,算法和語法的學習同步趨向深入,有利于學生能力的培養(yǎng)。
C語言系人工設定的具有確定內涵的概念和知識體系[3],同時C語言程序設計又是一門實踐性很強的學科。為此,在C語言程序設計課堂教學的組織上,筆者始終踐行以應用為本位的教學思路,同時根據課程內容的特點有選擇性采用以知識為本位的教學思路,比如C語言中的基本數據類型、運算符和表達式、文件等基本概念和語法知識,在教學中只需把規(guī)定的內容闡述清楚,使學生理解并接受,同時又不破壞這些理論知識的系統(tǒng)性,就適宜采用以知識為本位的教學思路。
5 根據課程內容特征,選擇靈活多樣的教學方法
教學方法是在教學過程中,教師為了實現(xiàn)教學目的、完成教學任務而采取的教與學相互作用的活動方式的總稱。C語言程序設計課程的教學目的是使學生掌握用C語言進行程序設計的基本思想和方法,并具有靈活應用這些思想和方法分析解決實際問題的能力。實現(xiàn)這一教學目的要完成的教學任務包括C語言基本語法的介紹,結構化、模塊化程序設計思想和方法的引入,基本程序設計訓練以及程序調試方法的演示等。面對這些多樣的教學目標和任務,靈活多樣的教學方法的選擇和恰當應用成為必須。筆者在自己的教學實踐中,結合課程內容的特點,有選擇性地應用了如下的教學方法。
1)啟發(fā)式教學,引導學生思考,在應用中學習。
在C語言程序設計的課堂教學中,根據課程內容的特點,精心設計任務或場景,引導學生發(fā)現(xiàn)問題、思考問題,使學生在啟發(fā)誘導下獲取知識,解決學習中的疑難問題。比如,在引入數組時,筆者設計了這樣一個任務,即編寫一個C語言成績管理程序,要求能夠統(tǒng)計出學生C語言成績的平均分、最高分、最低分以及各個分數段的人數(為了說明問題的方便,假設當前要處理的有10個學生的成績)。第一步,引導學生描述出10個學生的成績。根據之前的學習經驗,學生很容易想到用10個float類型的簡單變量表示,比如score1,score2,、、、,score10。第二步,為節(jié)省時間,直接給出用這10個相互獨立的簡單變量實現(xiàn)的程序,引導學生觀察。在學生感嘆程序復雜之余,帶領學生讀程序,引導學生發(fā)現(xiàn),當前的程序無論是成績的錄入、求學生成績的最高分、最低分,還是統(tǒng)計各個分數段的人數,對每位學生成績的處理方法都是一樣的,存在大量的相似的操作。同時提出問題,這些相似的操作能不能用循環(huán)結構描述和實現(xiàn),讓學生思考。誘導學生分析發(fā)現(xiàn),要想用循環(huán)結構描述這些相似的操作,學生成績的描述必須有一個統(tǒng)一的表示方法。適時地給出score[i]這一表示方法,指出讓i從0到9變化表示10個學生的成績,和學生一塊用該表示形式改寫之前程序的關鍵部分。讓學生比較改寫前后的兩個程序,很容易得出結論,用score[i]描述批量數據,方便和循環(huán)結合起來使用,數據的處理更為有效。最后指出score[i]這一描述形式就是數組,接下來介紹數組的定義完善改寫后的程序。
和學生一塊模擬執(zhí)行該程序,由之前的知識積累學生知道,形參m、n和實參a、b對應的是不同的存儲單元,m、n和temp是自動變量,從變量的作用域和生存周期的角度,容易得出一個讓學生意外的結論,該swap函數中形參m、n值的交換影響不到實參a、b。在學生詫異之余,啟發(fā)學生思考,誘導學生嘗試給出不同的解決方法。往往有學生提出定義a、b為全局變量,誠然這不失為一種解決方法,在鼓勵學生的同時,再次誘導學生發(fā)現(xiàn)問題的關鍵并在此基礎上找解決方法。和學生一塊梳理思路,發(fā)現(xiàn)swap函數中形參m、n值的交換傳遞不到實參a、b,一方面是因為彼此對應的是不同的存儲單元,另一方面是由于變量的作用域和生存周期的問題。學生提出的定義a、b為全局變量的解決方法顯然是從后者考慮的,現(xiàn)在有意識地誘導學生只從前者考慮,讓學生大膽假設在什么樣的前提下形參m、n值的交換即是實參a、b值的交換。毋庸置疑,只有當形參m、n和實參a、b對應的是相同的內存單元時。在學生給出了這一假設之后,啟發(fā)學生思考該假設能不能成立以及如何成立。和學生一塊分析,要使形參m、n和實參a、b對應的是相同的內存單元,表面上看它們不能是相同的類型,但實現(xiàn)又要求形參m、n操作的對象是實參a、b,顯然形參m、n操作的對象和實參a、b應該是相同類型,同時形參m、n指向的是和實參a、b相同的內存單元,學生相對容易想到形參m、n應該是指向實參a、b的指針變量,問題由此迎刃而解。最后結合該任務的完成引導學生總結,在主調函數和被調函數之間雙向傳遞數據變化,全局變量和指針變量都是不錯的解決方法。
2)注重當堂實踐,現(xiàn)場編程互動,在學習中應用。
C語言程序設計是一門實踐性很強的課程,在踐行以應用為本位的教學思路的過程中,筆者不僅重視實驗課這一實踐環(huán)節(jié),更是把實踐延伸到課堂教學中。在帶領學生對特別設計的問題做了充分的分析之后,引導學生當堂實踐,或者師生現(xiàn)場編程互動,不僅可以調動學生學習的積極性,更能培養(yǎng)學生解決實際問題的能力。
參考文獻:
[1] 李克東.教育技術學研究方法[M].北京:北京師范大學出版社,2003:132-137.