课程概述

C语言是计算机程序语言的基础,兼具高级语言和低级语言的特点,它是一门结构化程序设计语言,利用它既可以独立开发软件,又有利于对面向对象语言的学习,例如C++、Java、C#等,它们都是在C语言的基础上发展而来的。

C语言的重要特色是指针,利用它可以直接与内存打交道,用于做比较底层的开发,因此除了计算机专业之外,电子、电气、通信专业、物联网等专业领域,也多用它来编写驱动或通信协议之类的程序。

  本课程各个章节的任务难度都控制在初学者“可承受”的范围内,所设计的案例“短小精悍”,有利于学习者快速掌握。本课程完整地介绍了C语言的基本数据类型及其运算、分支结构、循环结构、数组、函数、结构体、指针等内容,在内容的编排上没有沿袭传统的形式,而是对这些知识进行了“碎片化”,在学习过程中学习者不会因为内容太多,任务难度太大而感到气馁,在完成各章的学习任务后,学习者自然会形成一个完整的认识。

证书要求
  1. C语言程序设计》课程成绩总分100分。

  2. 总分=A单元测试成绩×15%+B单元作业成绩×14%+C课程讨论成绩×1%+D线下成绩(域外成绩)*70%

  3. A单元测试成绩:每次单元测验4次机会取最高分计入成绩,单选题和填空题都是每题2分;

  4. B单元作业成绩:一个单元可能有1-2个作业,每个作业的满分都是100分。每个学生需要即时提交作业,并至少互评5同学的作业。作业最终成绩是去掉最高分和最低分之后的平均分。如果没有参与互评,作业最终成绩×70%;如果互评数少于5,作业最终成绩×90%

  5. C课程讨论成绩由学生参与讨论的情况确定。在整个课程持续期间如果参与发贴有效评论数≧5将得到C课程讨论分满分。

  6. D线下成绩(域外成绩)=D1课堂表现成绩+D2期末考试成绩。

  7.               D1课堂表现成绩:由任课老师根据学生出勤和课堂回答问题等情况给分;

  8.               D2期末考试成绩:即学校的期末考试成绩,总分100分。题型包括但不限于:单选题、填空题、读程序写结果、程序填空、程序改错、编写程序等。


授课大纲

附录 运算符及其优先级和结合性 常用字符与ASCII编码对照表

附录 运算符及其优先级和结合性 常用字符与ASCII编码对照表

第1周:第一章 简易数字时钟(上)

第1周 编程题清单(共3题)

任务1.1显示时间(1)

任务1.2显示时间(2)

任务1.3计算时间间隔

单元作业 1.2

第2周:第一章 简易数字时钟(中)

第2周 编程题清单(共4题)

任务1.4最短耗时(1)

任务1.5求最短耗时(2)

任务1.6求最短耗时(3)

任务1.7判断整点时间的合法性

单元作业 1.7

第3周:第一章 简易数字时钟(下)

单元作业 1.10

第3周 编程题清单(共4题)

任务1.8对多个时间求最短时长(1)

任务1.9对多个时间求最短时长(2)

任务1.10对多个时间求最短时长(3)

第4周:第二章 数值处理(上)

任务2.1求取极值和平均值(1)(实数)

任务2.2求取极值和平均值(2)(for循环)

单元作业 2.2

第4周 编程题清单(共3题)

第5周 第二章 数值处理(下)

任务2.3批量数据求取极值和平均值(一维数组)

任务2.4统计及格的百分制分数(break continue)

单元测验(一):第一章、第二章

单元作业 2.4

第5周 编程题清单(共3题)

第6周 第三章 模拟滚屏输出(上)

任务3.1字母的输入输出及转换(字符型)

任务3.2 将百分制分数换算为等级成绩(字符型)

任务3.3 将等级成绩换算为百分制分数(switch case)

单元作业 3.3

第6周 编程题清单(共5题)

第7周 第三章 模拟滚屏输出(中)

任务3.4 模拟单个字符的移动输出(函数、双层循环)

任务3.5 按指定格式输出手机号码(字符型数组)

任务3.6 手机号码的整体性输入及输出(字符串)

单元作业 任务3.4

第7周 编程题清单(共4题)

第8周 第三章 模拟滚屏输出(下)

任务3.7 判断输入的字符串是否为手机号码(字符串处理库函数)

任务3.8 手机号码的滚屏输出(函数)

单元作业 任务3.7

第8周 编程题清单(共1题)

第9周 第四章 二维数组(上)

任务4.1 模拟字模打印数字5(二维数组)

任务4.2 模拟字模打印(二维数组)

单元作业 任务4.2

第9周 编程题清单(共3题)

第10周 第四章 二维数组(下)

第10周 编程题清单(共2题)

任务4.3 用字模实现倒计时(二维数组)

任务4.4 横向排版用字模输出“YES!”(二维数组)

单元作业 任务4.3

单元测验(二):第三章、第四章

第11周 第五章 模拟计时器(上)

任务5.1简易秒表计时

任务5.2复杂秒表计时

第12周 第五章 模拟计时器(下)

任务5.3简易倒计时器

任务5.4复杂倒计时器

第12周 编程题清单(共2题)

单元作业5.3

第13周 第六章 位运算

任务6.1求2的次幂

任务6.2 统计二进制数中1的个数

任务6.3 大小写转换

任务6.4 简易位运算计算器

第13周 编程题清单(共4题)

单元作业6.2

第14周 第七章 结构体

任务7.1 学龄判断

任务7.2 比身高

任务8.1 整型变量的间接访问

任务7.3 比身高(2)

第14周 编程题清单(共4题)

第15周 第八章 指针

第15周 编程题清单(共4题)

任务8.2 求两个整数的和差积商

任务8.3 查找学生最高最低成绩

任务8.4 对学生的成绩排序

任务8.5 使用指针求出不及格的学生

参考资料

[1] 李志球.实用C语言程序设计教程.北京:电子工业出版社,1999

[2] 王立柱.C/C++与数据结构.北京:清华大学出版社,2002

[3] 张高煜.C语言程序设计实训.北京:中国水利水电出版社,2002

[4] 谭浩强.C程序设计(第二版).北京:清华大学出版社,2000

[5] 谭浩强.C程序设计试题汇编.北京:清华大学出版社,2000

[6] 许秀林,董杨琴.程序设计基础教程(C语言与数据结构第三版).北京:中国电力出版社,2014

[7] 董杨琴,许秀林.程序设计基础教程(C语言与数据结构)配套教材-学习指导与习题集(第三版).北京:中国电力出版社,2014

[8] 严蔚敏,吴伟民.数据结构题集.北京:清华大学出版社,1998