一、課程基本情況
課程中文名稱
C語言程序設計
課程英文名稱
The C Programming
課程編碼
1303068
課程類別
學科基礎平臺課程
課程性質
必修課
總學時
48學時[課內學時:48學時 ,實踐學時:0學時]
學 分
3
授課對象
計算機科學與技術學院一年級各專業本科生
前導課程
無
課程簡介
「C語言程序設計」是我校計算機學院計算機科學與技術專業一年級的專業學科基礎課程。該課程以C語言為平臺,以程序設計為主線,介紹結構化程序設計的思想和方法。通過本課程的學習,使學生擁有計算思維、分析能力,具備運用工程基礎知識和本專業基本理論解決實際工程問題的能力,為數據結構、編譯原理、作業系統和資料庫應用等計算機專業後續課程的學習奠定良好的基礎,能承擔計算機軟體應用和開發的任務。
二、課程目標
通過講授C語言的數據類型、運算符和表達式、順序結構、選擇結構、循環結構、數組、函數、指針、結構體等知識點,使學生理解高級程序設計語言的結構,掌握電腦程式設計理論與方法,具備軟體開發能力和計算思維能力。
開設這門課程的具體目標為:
1、使學生掌握C語言程序設計的基本概念、基本語法、基本編程技術和基本算法等基礎知識。對畢業設計2-2的達成提供支持。
2、使學生掌握結構化程序設計的思想和方法,並能靈活應用計算機語言進行程序設計。對畢業設計2-2和3-1的達成提供支持。
3、使學生具備運用C語言程序設計基礎知識求解實際問題的意識、思路,具備利用計算機知識解決實際問題的能力。對畢業設計2-2和3-1的達成提供支持。
三、教學內容及基本要求第1部分 概述(支撐教學目標1)
1.1 程序設計及程序設計語言
1.2 算法及其表示方法
1.3 C語言簡介
1.4 VisualC++2010集成開發環境簡介
基本要求:
1.了解程序設計及程序設計語言的概念
2.理解並掌握算法及其表示方法
3.了解C語言的基本信息
4. 掌握VisualC++2010集成開發環境
重 點:
1.程序設計及程序設計語言的概念
2.算法及其表示方法
難 點:
1.算法及其表示方法
第2 部分 基本數據類型、運算符與表達式(支撐教學目標1)
2.1 C語言的數據類型
2.2 常量
2.3變量
2.4 C語言的運算符和表達式
基本要求:
1.熟練掌握整數、實數、字符和字符串常量的各種表示形式
2.掌握整型數據、實型數據和字符型數據的特點和使用方法
3.熟練掌握變量的定義和初始化方法
4.熟練掌握運算符的功能,包括算術運算符(含自增、自減操作)、賦值運算符熟練掌握運算符的優先級和結合方向
5.熟練掌握各類表達式的組成規則和計算過程
重 點:
1.C語言中各種數據類型的分類、類型名及存儲長度
2.符號常量的定義和使用,常用符號常量的含義(如NULL、EOF等)
3.字符的轉義序列
4.變量的定義和初始化方法
5.C語言中各種運算符的功能,包括算術運算符(含自增、自減操作)、賦值運算符等
6.各種運算符的優先級和結合性
7.各類表達式的組成規則和計算過程
8.有符號數與無符號數之間的運算問題
難 點:
1.C語言中各種數據類型的存儲長度
2.符號常量的定義和使用
3.字符的轉義序列
4. C語言中自增、自減、%運算符的要求與操作
5.各種運算符混合運算時的優先級和結合性
第3部分 輸入輸出與簡單程序設計(支撐教學目標 1、2 )
3.1 概述
3.2流程控制結構與語句
3.3基本的標準輸入輸出函數
3.4 單個字符的輸入和輸出
3.5 格式化輸出
3.6 格式化輸入
3.7簡單程序設計
基本要求:
1.熟練掌握格式化輸入、輸出函數的格式和用法
2.熟練掌握字符數據的非格式化輸入輸出方式
3.熟練掌握簡單程序設計的方法與步驟
重 點:
1.字符數據的非格式化輸入輸出方式
2.格式化輸入、輸出函數中各種控制符的含義和使用方法
3.簡單程序設計的方法與步驟
難 點:
1.格式化輸入、輸出函數中各種控制符的含義和使用方法
2.簡單程序設計的方法與步驟
第4部分 選擇結構程序設計(支撐教學目標 1、2 )
4.1 if語句
4.2 switch語句
基本要求:
1.熟練掌握if 語句的用法
2.熟練掌握switch語句的用法
3.熟練運用流程圖表示給定問題的算法
重 點:
1.運用流程圖表示給定問題的算法
2.運用表達式表達給定條件的方法
3.各種不同結構 if語句的用法
4.switch語句的用法
難 點:
1.運用流程圖表示單分支和兩分支算法
2.各種不同結構 if語句的用法
3.switch語句的要求及如何將條件轉化為switch中的常量表達式
第5部分 循環結構程序設計(支撐教學目標 1、2、3)
5.1 while語句
5.2 do…while語句
5.3 for語句
5.4 用goto語句和if語句構成循環
5.5 循環的嵌套
5.6 關於循環語句的幾點說明
5.7 break語句和continue語句
基本要求:
1.熟練掌握while語句、do-while語句、for語句的用法
2.熟練掌握循環的嵌套
3.熟練掌握break與continue語句的用法
4.熟練掌握循環結構程序設計的方法
重 點:
1.while語句、do-while語句、for語句的用法
2.循環嵌套的用法及注意事項
3.break與continue語句的區別
4.循環結構程序設計的方法
難 點:
1.do-while語句中條件表達式的書寫
2.循環嵌套中內外循環的循環變量的初始化位置
3.循環結構算法的思維訓練
第6 部分 數組(支撐教學目標1、2、3)
6.1一維數組
6.2二維數組
6.3 字符數組
6.4 數組綜合應用舉例
基本要求:
1.熟練掌握一維數組的定義、引用、初始化方法
2.熟練掌握運用一維數組解決相關問題
3.熟練掌握二維數組定義、引用、初始化方法
4.熟練掌握字符數組的定義與使用方法
5.熟練掌握字符串數組的定義與使用方法
重 點:
1.一維數組的說明、引用、初始化方法及所能進行的運算
2.二維數組定義、引用、初始化方法
3.字符數組的定義與使用方法
難 點:
1.一維數組的說明、引用、初始化方法及所能進行的運算
2.二維數組定義、引用、初始化方法
3.字符數組的定義與使用方法
第7 部分 函數(支撐教學目標1 、2、3)
7.1 結構化程序設計與函數
7.2 函數定義與函數說明
7.3 函數調用和參數傳遞
7.4 函數的嵌套調用和遞歸調用
7.5 數組作為函數參數
7.6 局部變量和全局變量
7.7 變量的存儲類型
7.8 內部函數和外部函數
基本要求:
1.理解並掌握函數的概念、掌握函數的定義和調用的方法
2.熟練掌握函數的傳遞方式,掌握函數的形式參數和實際參數以及函數調用時的參數傳遞
3.熟練掌握函數嵌套調用的方法
4.熟練掌握簡單變量作為函數參數的使用方法
5.熟練掌握遞歸函數的定義並會編寫遞歸函數
重 點:
1.函數的概念、定義和調用的方法
2.函數的形式參數和實際參數以及函數調用時的參數傳遞
3.簡單變量作為函數參數的使用方法
4.函數嵌套調用的方法
5.遞歸函數的編寫方法
難 點:
1.函數的概念、定義和調用的方法
2.函數的形參和實參的區別,函數調用時的參數傳遞方式的區別
3.函數嵌套調用的方法
4.遞歸函數的思想及編寫方法
第8部分 指針(支撐教學目標1 、2、3)
8.1 地址和指針的基本概念
8.2 指針變量
8.3 通過指針引用數組
8.4 指針與字符串
8.5函數指針變量
8.6 指針型函數
8.7 指針數組和指向指針的指針
基本要求:
1.熟練掌握指針的概念,指針變量的定義、指針變量的賦值和指針運算
2.熟練掌握指針、數組和地址間的關係
3.熟練掌握指向字符串指針的使用方法
4.熟練掌握用指針數組表示字符串數組的使用方法
重 點:
1.指針的概念,指針變量的定義、指針變量的賦值和指針運算
2.指針、數組和地址間的關係
3.指向字符串指針的使用方法
4.用指針數組表示字符串數組的方法
難 點:
1.指針變量的定義、賦值,指針進行運算的要求
2.指針和一維數組的關係
3.指針和二維數組的關係
4.指向字符串指針的使用方法
5.指針數組的使用
6.用指針作為函數參數
第9部分 結構與聯合(支撐教學目標1、2、3)
9.1 概述
9.2 結構類型的聲明與引用
9.3 結構數組
9.4 指向結構類型數據的指針
9.5 結構與函數
基本要求:
1.熟練掌握結構類型的概念,掌握其定義的常用形式和應用方法
2.熟練掌握結構變量值的輸入輸出和賦值的方法
3.熟練掌握結構數組的使用方法
4.熟練掌握結構變量與函數的關係
5.熟練掌握結構與函數的關係
重 點:
1.結構類型的概念,掌握其定義的常用形式和應用方法
2.結構變量值的輸入輸出和賦值的方法
3.結構指針的使用方法
4.結構數組的使用方法
5.結構變量與函數的使用方法
6.結構與函數的使用方法
難 點:
1.結構類型的定義方法
2.結構變量值的輸入輸出和賦值的方法
3.結構數組的定義和使用
4.結構變量和結構體指針作為函數參數的使用方法
5.結構作為函數參數的使用方法
四、教學內容安排
課程內容與學時分配表
部分
總學時
課內學時
實踐學時
講課
實驗
上機
第1部分
概述
2
2
0
0
0
第2部分
基本數據類型、運算符與表達式
2
2
0
0
0
第3部分
輸入輸出與簡單程序設計
4
4
0
0
0
第4部分
選擇結構程序設計
4
4
0
0
0
第5部分
循環結構程序設計
8
8
0
0
0
第6部分
數組
6
6
0
0
0
第7部分
函數
8
8
0
0
0
第8部分
指針
8
8
0
0
0
第9部分
結構與聯合
4
4
0
0
0
複習
2
2
0
0
0
合計
48
48
0
0
0
五、教學方法
本課程教學根據程序設計課程的知識結構和學科特點,主要採用「T」字型教學思想以及「厚基礎、寬知識、強能力、高素質」的教學模式,以任務驅動為主線,循序漸進、因材施教,培養學生的分析能力、設計能力和創新能力。督促學生從基礎知識、綜合設計兩方面進行訓練,同時通過基礎驗證實驗、綜合設計實驗,多層次全方位對學生進行實踐訓練,全面提高學生的分析能力和設計能力,為後續「數據結構」、「作業系統」、「編譯原理」等專業課程的學習和應用打下良好基礎。
本課程以教學相長、學以致用為原則,充分利用慕課對課堂教學和實驗教學進行補充。學生可以通過觀看視頻,對課堂講授內容進行預習和複習。慕課提供的章節作業主要包括客觀測試、主觀作業和隨堂測驗。老師通過該功能可以了解學生對相關知識點的掌握情況,該測試結果也可以記入網絡學習考核。
六、教學方式與考核
1.教學方式:本課程以線上線下混合式教學方式開展教學,以課堂講授為主,網絡學習為輔。
2.課程考核:本課程的考核包括期末閉卷考試、在線學習情況、作業完成情況。
3.成績評定:課程總成績=期末考試成績(60%)+平時成績(40%)。其中平時成績包括:課堂考勤(佔平時成績的20%)、網絡學習(佔平時成績的40%)、課後作業(佔平時成績的40%)。
七、課程目標達成度評價
(1)課程目標1的達成度通過閉卷筆試、在線學習綜合考評;
(2)課程目標2的達成度通過閉卷筆試、在線學習與作業綜合考評;
(3)課程目標3的達成度通過閉卷筆試、案例討論與作業綜合考評;
課程目標考核權值分配
序號
教學環節
課程目標1
課程目標2
課程目標3
合計
1
理論教學
10
15
15
40
2
在線學習
8
9
9
26
3
討論課
10
10
4
作業
10
14
24
分值
18
34
48
100
課程分目標達成度,為總評成績中支撐該課程分目標相關考核環節得分之和與對應的目標總分的比值,其計算公式為:
。
課程總目標達成度,為各個課程分目標達成度的加權和,其計算公式為:
。
八、教材與參考資源
教 材:
[1] 王曉峰等.C語言程序設計.北京:清華大學出版社,2020
參考資源:
[1] 武漢科技大學網絡平臺:http://mooc1.chaoxing.com/course/205406810.html
[2] 吳文虎,徐明星,鄔曉鈞.程序設計基礎(第4版).北京:清華大學出版社,2011年
二○二○~二○二一學年第 一 學期
教學日曆
授課年級:
課程名稱: C語言程序設計
授課教師:
授課周次:第 周至第 周
總學時: 48 理論學時 48 實踐學時 0
考核方式: 考試R 考查£
成績構成: 平時成績40%+期末考試成績60%
使用教材:《C語言程序設計》,王曉峰等編,北京:清華大學出版社,2020年8月
系(教研室)主任:
二○二○年九月一日
周次
教學內容
教學方式
理論學時
實踐學時
授課
教師
第6周
第1次
第1章 概述
1.1 程序設計及程序設計語言
1.2 算法及其表示方法
1.3 C語言簡介
第2章 基本數據類型、運算符與表達式
2.1 C語言的數據類型
2.2 常量
2.3 變量
講授
2
第6周
第2次
第2章 基本數據類型、運算符與表達式
2.3運算符與表達式
講授
2
第7周
第1次
第3 章 輸入輸出與簡單程序設計
3.1 概述
3.2 流程控制結構與語句
3.3基本的標準輸入輸出函數
3.4 單個字符的輸入和輸出
講授
2
第7周
第2次
第3章 輸入輸出與簡單程序設計
3.5 格式化輸出
3.6 格式化輸入
3.7 簡單程序設計
講授
+
案例教學
2
第8周
第1次
第4章 選擇結構程序設計
4.1 if語句
講授+
案例教學
2
第8周
第2次
第4章 選擇結構程序設計
4.2 switch語句
講授+
案例教學
2
第9周
第1次
第5章 循環結構程序設計
增加:循環結構算法設計
講授+
案例教學
2
第9周
第2次
第5章 循環結構程序設計
5.1 while語句
5.2 do—while 語句
5.3 for語句
講授
2
第 1 頁
周次
教學內容
教學方式
理論學時
實踐學時
授課
教師
第10周
第1次
第5章 循環結構程序設計
5.4 用goto語句和if語句構造循環
5.5 循環的嵌套
5.6 關於循環語句的幾點說明
講授
2
第10周
第2次
第5章 循環結構程序設計
5.7 break語句和continue語句
循環結構程序設計舉例
講授
+
案例教學
2
第11周
第1次
第6章 數組
6.1 一維數組
講授
2
第11周
第2次
第6 章 數組
6.2 二維數組
講授
2
第12周
第1次
第6 章 數組
6.3 字符數組
6.4 數組綜合應用舉例
講授+
案例教學
2
第12周
第2次
第7 章 函數
7.1 結構化程序設計與
7.2 函數的定義與函數說明
7.3 函數調用和參數傳遞
講授
2
第13周
第1次
第7 章 函數
7.4函數的嵌套調用和遞歸調用
7.4.1 函數的嵌套調用
案例教學
2
第13周
第2次
第7 章 函數
7.4函數的嵌套調用和遞歸調用
7.4.2 函數的遞歸調用
講授
+
案例教學
2
第14周
第1次
第7 章 函數
7.5 數組作為函數參數
7.6 局部變量和全局變量
7.7 變量的存儲類型
7.8 內部函數和外部函數
講授+
討論
2
第14周
第2次
第9章 指針
9.1 地址和指針的基本概念
9.2 指針變量
講授
2
第 2 頁
周次
教學內容
教學方式
理論學時
實踐學時
授課
教師
第15周
第1次
第9章 指針
9.3通過指針引用數組
講授
2
第15周
第2次
第9章 指針
9.4 指針與字符串
講授+
案例教學
2
第16周
第1次
第9章 指針
9.5 函數指針變量
9.6 指針型函數
9.7 指針數組和指向指針的指針
講授+
討論
2
第16周
第2次
第10章 結構與聯合
10.1 概述
10.2 結構類型的聲明與引用
10.3 結構數組
講授
2
第17周
第1次
第10章 結構與聯合
10.4 指向結構類型數據的指針
10.5 結構與函數
講授+
案例教學
2
第17周
第2次
期末複習
講授
2
註:
1、此表一式兩份,本人留存一份,開課學院一份。
2、原則上以課堂為單位(即2學時)填寫。
3、如遇放假衝突,教師可酌情另覓時間補課。
第 3 頁
本書以標準C為框架。按照緊扣基礎和面向應用的原則,介紹了C語言程序設計的基本規範、思路和方法。本書從培養學生的實際編程能力出發,注重實例教學和實踐練習,突出重點講解和難點分析,圖文並重,文字流暢。本書概念清楚,內容全面,書中所有示例程序均給出了算法思路的分析、算法步驟及運行結果。每個程序都遵循標準化的編程風格,便於學生理解和自學。
全書共包括11章。
第1章介紹程序設計和算法的基本概念,並以Visual C++ 2010為例,介紹程序的集成開發環境及調試過程。
第2章介紹數據類型、運算符與表達式。
第3~5章介紹標準輸入輸出操作以及流程控制結構。
第6章介紹數組的定義、引用,以及如何以數組作為數據類型進行程序設計。
第7章介紹函數的定義、調用的基本概念,以及嵌套函數、遞歸函數的基本規範及程序設計方法。
第8章介紹編譯預處理命令。
第9章介紹指針的概念以及指針與數組、指針與函數之間的聯繫和應用。
第10章介紹複雜數據類型中的結構與聯合,並介紹鍊表的基本概念及操作。
第11章介紹文件指針的概念以及文件的讀寫操作。
本書概念清晰、邏輯嚴謹,語言描述通俗易懂;循序漸進、深入淺出,在詳細介紹C語言基本語法規範的同時,配套講解了豐富的典型例題,便於學生掌握程序設計的基本方法與技巧。
理論與實踐相結合,實例和配套資源豐富,著重講解重點與難點。
提供教學課件、教學大綱、原始碼、教學日曆、考試試卷及答案
本書適合作為高等院校各類專業C語言程序設計課程的教材,亦適合初學者自學和供廣大程序設計開發人員參考。