林寧
摘要:C語言程序設計題自動評閱技術是實現在線自動評閱的關鍵技術;本文首先分析了C語言編程題傳統的自動評閱技術以及存在的問題,進而提出一種改進的自動評閱技術;最后闡述了實現這種評閱技術所需的注釋去除和標準化printf函數算法,并給出了自動評閱的流程。
關鍵詞:C語言編程題;評閱技術;靜態評閱;動態評閱
中圖分類號:TP31 文獻標識碼:A 文章編號:1007-9416(2018)07-0199-02
1 現狀及問題
C語言程序設計是一門重要的基礎課程。為了提高學生的編程能力,減輕教師的工作量,近幾年諸多專家學者對程序設計語言類課程自動評閱技術展開了研究,取得了一定的成效,但評閱準確率仍有待進一步提高;程序設計題評閱主要從靜態評閱和動態評閱兩個方面進行,即分別從程序的內容和運行結果進行評閱。
靜態評閱一般是檢測源代碼語法是否正確、程序代碼中是否包含題目要求的框架或者是否包含必要的關鍵字等;動態評閱主要是運行程序得出結果,然后跟標準答案進行對比,這種方式對程序的運行輸出有非常嚴格的要求,輸出的字符串必須與標準答案完全匹配,當輸出的字符串多一個或少一個字符將被判為0分。
基于上述評閱方法,筆者認為需考慮以下問題:
(1)靜態評閱應該考慮程序中的注釋內容;如注釋中加入了多種結構的程序片段,這些注釋是不會對程序的編譯產生任何影響,但評閱時包含了題目要求的框架;(2)動態評閱主要是匹配運行結果,因此,在設計題目時往往要給出輸出格式的要求或者例子,但往往因為輸出一個空白符使得與標準答辯不匹配被判為0分。……