c语言 硬件开发实例_C语言课程教与学(含教学大纲和期末试卷)

C语言程序设计》教学大纲

一、课程基本信息

课程编号:

91010002  

课程中文名称:

C语言程序设计

课程英文名称:

C Language  Programming

课程类别:

专业必修课

适用专业:

计算机科学与技术专业本科生

开课学期:

第2学期

总学时(计划内):

54学时

理论课

54学时

实验课

计划外实验学时:

36

总 学 分:

3

先修课程:

信息科学导论

课程简介:

基本概念和基本知识:C语言的基本语法、数据类型及运算符、程序格式和结构(顺序、分支和循环)、数组、指针、函数、结构、文件等。

基本技能:熟练掌握C语言的语法规则,能够利用C语言进行结构化程序设计,解决具有一定规模的实际应用问题。

重点:C语言语法、算法、结构化程序设计理念。

难点:结构体、指针、文件操作。

二、课程性质与教学目标

“C语言程序设计”课程是为计算机科学与技术专业本科低年级学生开设的一门专业必修课程。它为其它专业课程奠定程序设计的基础,又是其它专业课程的程序设计工具。

根据培养应用型人才的需要,本课程的目标是通过对C语言的语法规则、数据类型、数据运算、语句、系统函数、程序结构的学习,使学生掌握一门高级程序设计语言,了解程序设计的基本概念与方法,进而学会利用C语言学会解决一般应用问题,为进行各种实用程序的开发以及为《数据结构》、《操作系统》等后续课程的学习奠定一个良好的基础。

本课程还应该特别强调培养学生解决实际问题的编程能力和软件设计能力。

三、教学内容及基本要求

第1单元 C语言程序设计基础

[知识点]

1. 计算机系统组成及工作原理;

2. 进位计数制及其转换;

3. 机器数的表示;

4. C语言的发展历史及其基本特性;

5. C程序的基本结构;

6. 编制C语言程序的基本步骤;

7. 计算机内部数值的表示及运算。

[教学内容]

初步了解计算机的工作原理;掌握十进制、二进制、八进制和十六进制之间的相互转换规则和各种进制数的算术运算规则;掌握机器数中补码的表示方法;了解C语言的发展历史及其基本特性;初步认识C语言程序的基本结构;掌握编制C语言程序的基本步骤。

[重点]

本章重点是了解一个C语言程序的完整结构,特别是关于源程序、标识符、函数、参数、主函数、变量、函数调用、程序注释等一系列概念的理解和把握。

[难点]

本章难点是机器数的表示及其表示范围、C语言程序结构的正确理解。

[教学要求]

1.本章作为了C语言程序设计的基础内容,要求教师首先应对计算机软、硬件结构作适当的讲解,让学生了解计算机系统的组成及工作原理。

2.要求教师必须对补码表示方法给与重点介绍,特别是关于补码的运算方法。

3. 要求教师以一些简单的C语言程序为实例,让学生初步了解C语言程序的基本结构及其有关的概念和注意事项;

4. 要求学生通过本章的学习,能够编制相对简单的C语言程序,并能上机调试通过。

第2单元 基本数据类型、运算符与表达式

 [知识点]

1.C语言的数据类型;

2.常量与变量;

3.简单数据类型与表示范围;

4.C语言的运算符与表达式;

5.运算符的优先级和结合性;

[教学内容]

掌握变量和常量的概念;理解各种类型的数据在内存中的存放形式;掌握各种类型数据的常量的使用方法;掌握各种整型、字符型、浮点型变量的定义和引用方法;了解调用printf函数输出各种类型数据的方法;掌握数据类型转换的规则以及强制数据类型转换的方法;掌握赋值运算符、算术运算符、位运算符、逗号运算符以及sizeof的使用方法;理解运算符的优先级和结合性的概念,记住所学的各种运算符的优先级关系和结合性;

[重点]

简单数据类型与表示范围;C语言的运算符与表达式;运算符的优先级和结合性;

[难点]

数据的表示范围;单目运算的结合性;转义字符;运算符的优先级;

[教学要求]

1.要求教师尽可能地结合实例进行教学。

2.要求教师在C语言基本数据类型及其表示范围方面进行重点详细讲解,让学生充分理解为什么C语言中要使用不同的数据类型,每种数据类型各适用于那些场合。

3.要求教师对C语言中的运算符及其优先级进行详细讲解,并给出一个综合的应用实例。

4.要求学生通过本章的学习能够对C语言中的简单数据类型、运算符及优先级进行很好的把握,并能通过实际编程加以理解和应用。

第3单元 基本输入/输出和顺序程序设计

[知识点]

1.C程序中的数据输出;

2.C程序中的数据输入;

3.程序的控制结构;

4.顺序程序设计的方法与特点;

[教学内容]

掌握各种类型数据的格式化输入输出方法;掌握字符数据的非格式化输入输出方法;学会简单顺序程序的设计方法;如何养成良好的程序设计习惯;

[重点]

1.如何利用scanf和printf函数实现格式化数据的输入和输出;

2.掌握C语言中与字符输入输出相关的库函数;

3.理解算法的基本概念以及算法的结构化描述方法;

4. 掌握程序的控制结构:顺序、分支和循环;

[难点]

格式化输入和输出的控制格式的运用;如何设计算法;

[教学要求]

1.要求教师尽可能地结合实例演示数据格式化输入输出中各种格式控制符的作用及技巧;

2.要求教师结合实例讲解算法在程序设计中的重要性及程序的三种控制结构。

3. 通过本章的学习要求学生能熟练的掌握利用scanf和printf函数进行数据的输入和输出,并对算法及其描述方法(流程图)能够很好的把握,能够编些一般顺序结构的C语言程序。

第4单元选择结构程序设计

[知识点]

1.C语言程序中语句的分类;

2.关系运算符和关系表达式;

3.逻辑运算符和逻辑表达式;

4.条件运算符和条件表达式

5.if语句

6.switch语句。

[教学内容]

1.从总体上理解选择结构程序设计的概念与设计原则;把握C语言程序中语句的分类;

2.掌握关系运算符、逻辑运算符和条件运算符的用法;

3. 掌握关系运算符、逻辑运算符和条件运算符与其它运算符的优先级关系和结合性;

4.掌握if、switch、break语句的使用方法;

[重点]

关系运算符、逻辑运算符和条件运算符与其它运算符的优先级关系和结合性;选择结构的程序设计方法;

[难点]

条件表达式、if语句与switch语句具体应用范围;

[教学要求]

1.要求教师尽可能地结合实例进行教学;让学生充分了解分支程序中语句执行的走向,以便更好地把握分支程序设计的方法和应用技巧;

2.要求学生能正确把握if语句与switch语句应用上的差异,并能熟练使用它们进行分支程序的设计来解决一些实际问题。

第5单元循环结构程序设计

[知识点]

1.while语句、do-while语句、for语句;

2.循环嵌套。

3.循环结构类型的选择及转换。

[教学内容]

掌握实现循环的基本方法;学会使用while语句、do-while语句、for语句进行循环程序设计。

[重点]

1.三种循环结构的编程方法和各自适用的场合;

2.循环结束条件;

3.break与continue语句的正确使用。

[难点]

循环结束的条件和方法。

[教学要求]

1.要求教师尽可能地结合实例进行教学;让学生充分了解循环程序中语句执行的走向,以便更好地把握循环程序设计的方法和应用技巧;

2.要求学生能正确把握三种循环结构应用上的差异,并能熟练使用它们进行循环程序的设计来解决一些实际问题。

第6单元数组

[知识点]

1.一维数组的定义与引用;

2.二维数组的定义与引用;

3.字符串与数组;

[教学内容]

理解数组变量在内存中的存放形式;掌握一维数组和二维数组变量的定义和数组元素的引用;掌握各种字符串库函数的用法;

[重点]

数组的定义与引用;字符串库函数的用法;

[难点]

二维数组的引用;二维数组的理解;字符串与数组;

[教学要求]

1.要求教师尽可能地结合实例进行教学,特别是数组与内存之间的印象关系要尽可能讲解清楚;;

2.要求学生充分把握数组的具体定义和操作,并能深刻认识数组的应用的重要意义及其应用的方法与技巧。

3. 让学生能利用数组并结合先前学过的有关知识来编制一定难度的C语言程序解决有关实际问题。

第7单元函数

[知识点]

1. 函数的定义和调用;

2. 变量的作用域和存储类别;

3. 函数的嵌套调用和递归调用;

4. 函数的作用域;

5. 函数应用;

[教学内容]

理解函数、形参、实参、作用域、生存期的概念;掌握各种函数的定义、原型声明和调用的方法;知道全局变量、局部变量、静态变量、静态函数的作用域和生存期;掌握递归函数的编写规则;掌握利用工程管理程序的方法;

[重点]

正确理解C语言程序中函数的意义;掌握函数参数传递的方法;深刻领会变量的作用域与生存期;掌握函数实现递归程序设计的方法。

[难点]

函数参数传递方法;静态存储类别;递归程序设计;

[教学要求]

1.要求学生从总体上了函数的基本概念,理解函数定义、声明及引用的方法;掌握变量的作用域与生存期的含义;学会递归程序设计来解决有关问题。

2.要求学生从结构化程序设计的角度来使用函数编程。

第8单元指针

[知识点]

1.指针变量的定义与引用;

2.指针的运算;

3.指针与数组;

4.指针与字符串;

5.指针与内存的动态分配;

6.指针与数组作为函数的参数;

7.带参数的main函数;

8.指针作为函数的返回值;

9.函数指针的定义与引用;

[教学内容]

理解指针的概念;掌握指针变量的定义与引用方法;掌握指针与数组、字符串之间的联系;掌握动态内存分配和释放的方法;掌握带指针型参数和返回指针的函数的定义方法;掌握函数指针的用法;

[重点]

指针变量的定义与引用;带参数的main函数;指针数组;数组指针;指针函数;函数指针;

[难点]

多级指针;数组指针;指针函数;函数指针;带参数的main函数;

[教学要求]

1.要求教师从内存的角度帮助学生正确的理解C语言中指针的含义与作用;

2.要求学生正确地把握指针与数组、指针与函数之间的关系与应用。

3. 学会利用指针编程来处理有关问题。

第9单元预处理命令

[知识点]

1. 预处理命令简介;

2. 宏定义;

3. 文件包括;

4. 条件编译;

[教学内容]

掌握#include、#define、#if、#ifdef、#else、#ifndef和#endif等命令的用法;掌握宏定义和宏替换的一般方法;掌握包含文件的处理方法;了解条件编译的作用和实现方法。

[重点]

掌握宏定义的正确使用;掌握条件编译的含义;

[难点]

宏定义及引用;

[教学要求]

要求学生充分理解C语言中预处理命令的含义与作用,能在自己的程序中正确地使用预处理命令,特别是宏定义和条件编译。

第10单元复杂数据类型

[知识点]

1.复杂数据类型概念;

2.结构体;

3.线性链表;

4.共用体;

5.位域;

6.枚举类型变量的定义和引用;

7.复杂数据类型作为函数参数和返回值;

[教学内容]

掌握结构体、共用体和枚举类型的定义方法;掌握结构体、共用体和枚举变量的定义和引用方法;了解线性链表的创建、插入节点、删除节点和撤销节点的算法;掌握利用复杂数据类型作为函数参数和返回值的函数定义方法;

[重点]

掌握结构体的定义和使用方法;掌握线性链表的有关操作方法;

[难点]

结构体与指针;联合体的定义和赋值;线性链表的建立、插入、删除;

[教学要求]

1.要求学生深刻领会结构体类型的实质及其应用领域;

2.要求学生能正确把握线性链表来解决实际问题的方法和技巧;

3.要求学生能运用复杂数据类型并结合指针来编写大型的应用程序;

第11单元文件操作

[知识点]

1.文件概述;

2.文件指针;

3.文件的打开、读写和关闭;

4.文件的定位读写;

[教学内容]

掌握文件的打开、读写、定位以及关闭的方法;掌握缓冲文件系统中有关文件操作的系统函数使用方法;能设计对文件进行简单处理的实用程序;

[重点]

二进制文件的读写;

[难点]

二进制文件与文本文件的差异;文件的随机读写;

[教学要求]

1. 要求学生深刻认识文本文件与二进制文件的差异。

2. 要求学生能利用C语言中文件操作的有关函数编制文件操作的有关程序;

四、学时分配

总学时:54学时。

序号

课堂授课内容

学时

授课方法

备注

1

C语言程序设计基础

4

理论课

2

基本数据类型、运算符与表达式

7

理论课

3

基本输入/输出和顺序程序设计

4

理论课

4

程序控制

6

理论课

5

数组

5

理论课

6

函数

7

理论课

7

指针

8

理论课

8

预处理命令

2

理论课

9

复杂数据类型

6

理论课

10

文件操作

3

理论课

11

习题课、复习课

2

理论课

五、教材与参考书

b3d895447eef467fdc22bb4314cca4f0.png

普通高等教育“十一五”国家级规划教材,提供源程序、习题程序、电子教案、教学大纲和期末考试试卷

作者:王敬华

定价:36元

ISBN:9787302204039

3c53d2dec01cd32370ac266a9bc08927.png

作者:王敬华、林萍、张清国、骆昌日

定价:29.50元

ISBN:9787302208815

六、考核方式

闭卷笔试

七、成绩评定

1、  平时作业及测验    40%

2、笔试成绩          60%

八、其他说明

C语言程序设计作为低年级本科生初次接触的程序设计语言必修课程,在学习的过程中必定会存在许许多多的问题,特别是在程序设计逻辑思维方面有一定的难度;而这一点是程序设计必须具备的基本要素,因此授课教师在讲述C语言程序设计基本语法、句法、数据类型等知识的同时,更应当注重学生逻辑思维的培养,这样一来才真正为后续课程的学习打下坚实的基础。另外,C语言程序设计这门课其实主要是围绕C语言数据类型、语法特点这一主干线来讲述的,因此要学好C语言就必须让学生知道C语言各种数据类型在内存中的表示形式及处理过程,只有这样才能够让学生真正领会和使用C语言来解决实际应用问题。

f01ec2776cf71116dde6e4d30b6428a1.png

d192f0ac4dbfc8265a0fcdd0c4ef69a1.png

85c8f7e29d5e337993338fbdc82a71c8.png

19ff07eb9a23ea4d93b1a166fa796509.png

3d2578951f2f4ce89fb8a01601ed5394.png

a4d879fab52bfd9a2ba640b3d50bcc57.png

146965d8c4ade0f6b9b4b9d014a6af41.png

f127a681cf15e56714969f1f5368cb91.png

a0e39031a88e9263526068379750acd1.png

b524087ab64cd53d5e75ab03289b28bc.png

b08683e786672e3aa53dc9baf3bfcd85.png

更多的课程教学大纲,点击页面下方的 [阅读原文]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值