SPOC学校专有课程
2017春C语言程序设计(重庆邮电大学)
分享
spContent=​  欢迎各位参加《C语言程序设计》这门课程的学习! 本课程是面向重庆邮电大学所有理工类专业学生开设的SPOC课程。 课程内容包括基本的程序设计和调试方法、C语言语法,简单的数据结构和常用算法等。
—— 课程团队
课程概述

   

《C语言程序设计》是理工类专业学生必修的一门学科基础课。该课程的主要目的是培养学生程序设计及调试的基本方法。通过本课程的学习,使学生可以比较全面地掌握C语言的基本内容及程序设计的基本方法与编程技巧,形成优良的编程风格,培养学生应用计算机解决和处理实际问题的思维方法与基本能力,为后继课程的学习及将来从事软件开发和解决工程问题、科学技术问题奠定基础。

通俗点说,就是学习编程。学会以后,你不仅可以帮助你学习后续课程,也可以用她来参加一些竞赛,当然,最有趣的是,你会发现你能更好地控制计算机为你所用。

我们采用的方式是混合式教学方法,即对于基础的、简单的部分知识点,尤其是语法内容,采用结合SPOC视频及教材相关章节进行自学的方式完成;而对于一些重点、难点内容,则采取课堂精讲和讨论的方式进行。

另外,请注意本课程的学习方法:一定先读懂例题并上机后,再模仿例题编写类似的题目。此外,一定要多上机练习才会熟练。

那么,就让我们踏上有点艰辛、但也会让你充分体会到成就感的编程之旅吧。

 


授课目标
学会程序设计、调试、测试方法,理解简单算法和数据结构,能编程解决简单问题。
成绩 要求

本课程(32+16学时)的总成绩组成

  1、期末考试(50%,期末时在教室进行纸质闭卷考试

  2、单元测试(在实验课上进行,一共测试6次取其中较好的4次最好成绩,占总成绩的20%

  3、平时成绩(30%,SPOC自主学习+作业+考勤)。


其中,“SPOC自主学习+作业”在此网站上完成,课程结束后会导出作业分数。


课程大纲
预备知识

二进制肯定知道吧?信息编码、内存什么的知道吧?算法和三种结构(顺序、选择、循环)也都知道吧?《计算机科学导论》或《大学计算机基础》都学过吧?

如果忘了,可以复习一下,也可以参考中国大学MOOC 《程序设计基础慕课课程》 https://www.icourse163.org/course/HIT-56001#/info

参考资料

1.  参考教材

苏小红等. 《C语言程序设计学习指导》(第3版). 高等教育出版社. 2015.10(优点:题目丰富、趣味性强)

Brian W.Kernighan,Dennis Ritchie. 《C 程序设计语言(英文影印版)》(第二版). 清华大学出版社或机械工业出版社.(优点:由C语言的开发者编写,最专业、最准确)

琼斯,艾特肯(美). 《 21天学通C语言》(第6版). 信达工作室译. 人民邮电出版社. 2003(优点:循序渐进,深入浅出,结构合理,更适合自学)

颜晖. 《C语言程序设计实验指导》. 高等教育出版社. 2008(优点:调试过程截图丰富,便于学生课下自学)

凯尼格(美) 著,高巍译. 《C陷阱与缺陷》. 人民邮电出版社. 2008-2-1(经典书箱,帮助学习预防一些潜在的逻辑错误)

Perter Van Der Linden(美). C 专家编程. 人民邮电出版社. 2008-2-1(经典书箱,适合深入学习使用)

Kenneth A.Reek(美). C 和指针.人民邮电出版社.2008-4-1(经典书箱,适合深入学习使用)

明日科技 编著. C语言函数参考手册. 清华大学出版社. 2012-1-1(适合查阅库函数)

2.其它网络学习资源:

    https://www.icourse163.org/course/zju-9001#/info。翁凯.中国大学MOOC网站慕课课程《C语言程序设计》.

3.code::blocks集成开发环境的官网下载地址:

    https://www.codeblocks.org/downloads/26(例如codeblocks-13.12mingw-setup.exe)


常见问题

Q:如何提问,能得到快速的解答?

A:

1)标题:撰写标题时,要注意把要问的问题的出处和核心词写出来,最好用【】标出来,比如【第1周编程题在线测试的第1题】求解。

2)内容:内容上要把你不懂的地方说出来,最好详细点,把自己尝试修改的过程也说一下。

3)附源代码:把源码贴到讨论区(不要使用图片,因为图片看不清,也不能拷贝),这样大家可以通过你贴出的源码帮你分析错在哪里。

4)附错误提示:把编译出错的提示也贴出来(一般是英文形式),这样大家不用拷贝粘贴和调试程序也能帮你分析出错原因了。


Q:常见的运行结果错误的原因有哪些?

A:程序提交后通常显示三类错误:格式错误、结果错误、运行超时。

对于格式错误,请检查你的程序的输入输出信息是否和题目要求的完全一致。

对于结果错误,请检查你的程序使用的算法和计算公式是否正确。

对于运行超时错误,请检查你的程序是否存在死循环,死循环通常由永真的循环控制条件或者while后面添加了不必要的分号引起。

注意事项如下:

1)数据输入输出的格式没有严格按照题目的要求写,直接拷贝粘贴题目中给的格式字符串和提示信息,是最简单和不易出现格式错误的方法

2)输入输出字符串中的字符大小写有错误,或者空格数量和位置与题目中的要求不一致,或者缺少换行等。

3)仔细审题,例如题目要求计算半圆的周长,就不要加上直径,更不要计算整个圆的周长。

4)如果只有几个测试用例通过,还有没有通过的测试用例,那么说明你没有考虑所有的可能性,甚至是非法输入的情况。

5)检查是否为英文输入,切记切换成英文状态再输入。一些同学误用了中文作为输入法,就会出现不能编译的问题,例如中文状态下输入的分号和英文状态下输入的分号是完全不同的,语句的末尾使用的分号一定要在英文状态下输入。

Q:如果无法正常观看视频,我该怎么办?

A:如果无法正常观看视频,请尝试进行如下操作:

1.确认你使用了支持视频播放的浏览器。

2.清除浏览器的浏览数据及缓存。

3.关闭硬件加速。请在浏览器的 设置 - 显示高级设置 中,将“使用硬件加速模式”(如果可用)一项取消勾选,并重新启动浏览器。

4.检查你的网速。你可以尝试在其他视频网站播放视频(如优酷、土豆等),如果你在其他网站仍无法观看视频,那么你的网络连接很可能有问题。你需要重新连接你的网络或者切换至网速更快的网络以实现流畅的视频播放。

Q:我想考二级,学完这个课程可以考吗? 

A:二级考试题考查语言的语法细节较多,所以能否通过二级考试,要看你的应试水平如何。本课侧重于讲解程序设计的方法以及错误程序的排错方法,更关注实战能力,因此应该说本课程对学生的要求是高于二级考试的要求的。


Q:上机编写C语言程序使用什么软件好?

A:课程演示会使用Code::Blocks+gcc+gdb集成开发环境,但是你使用任何其他C语言开发工具也都可以。不过,我们推荐使用Code::Blocks,在教材网站(https://book.sunner.cn)上有软件下载的网址链接,《C语言程序设计学习指导(第2版)》上有关于如何使用这个软件的详细介绍,它是一个开源的跨平台的C/C++集成开发环境,它安装简单,比Visual C 6.0等其他集成开发环境更简单易学。

 

Q:使用codeblocks在sources中新建一个file,也就是不在原来默认的main.c里面写代码,那么应该如何调试才能使运行的时候直接运行新建的里面的程序呢?

A:给工程添加完新的文件后,移出旧的文件main.c再重新编译即可,移出文件的方法和添加的方法类似。

 

Q:为什么安装好软件后创建新项目的时候软件总是说:could not save project<invalid path> maybe the file is write-protected 呢?

A:codeblocks要求软件安装的目录最好不要带空格或汉字,不要按默认设置安装到program file目录下,卸载后再选择安装到根目录下试试。更多注意事项,参见高等教育出版社的《C语言程序设计学习指导(第2版)》


Q:请问为什么我在Code::Blocks里面点开Debug中的watch里面是空白的?

A按照视频1.2讲的方法新建一个控制台应用程序,不要直接新建一个C文件,直接新建或者打开一个 C文件是无法使用调试功能的。

检查一下是不是将CB安装到默认的program files目录下了,CB不能安装到中文或者有空格的目录下,请卸载软件,重新安装到根目录下,再试试。

此外,全速运行程序时,是看不到watch窗口内的内容的,必须在单步运行的时候才能看到watch窗口内的内容。


Q:为什么我的程序编译不了?

A:可能是你安装了不带编译器和调试器的版本,重新安装带编译器和调试器的版本。免费开源的C 语言集成开发环境Code::Blocks+gcc+gdb的官方下载网址:https://www.codeblocks.org/downloads/26(目前最新版本是codeblocks-16.01mingw-setup.exe)。请下载带gcc编译器和gdb调试器的code::blocks(下载软件名中务必包含mingw-setup),否则程序无法编译。无法从官方下载软件的,也可以从百度云盘上下载:链接: https://pan.baidu.com/s/1dDnLNET 密码: joyh

C 语言集成开发环境code::blocks的安装和使用方法见教材《C语言程序设计学习指导(第3版)》

如果不想重装系统,可参考

https://zhidao.baidu.com/link?url=T8WrKoa6dHXfZdTIOFex4uWais6SaTY2VbmNnLyKL77fb62LdzxrdJxBT_-UVf48AA9Z14K8l_nyueKFxD_q4Rh3BH0UMZvx5Kvxjx8o1MG重新设置编译器和调试器。

安装软件的完整步骤可参考:https://jingyan.baidu.com/article/b24f6c822756b886bfe5da90.html 


Q:为什么我的程序无法运行,显示cannot open output file bin\Debug\election.exe Permission denied.

A:可能是你的文件正在别的程序中使用,或者还有程序的副本正在执行(或者你上次运行没有关闭),因此不能写入election.exe,把副本关闭或者结束election.exe任务应该就能够纠正这个问题。另外,请检查一下你的IDE是不是是不是安装到C盘的默认目录下了,请将IDE安装到D盘,并将你的程序也保存到D盘,不要保存到C盘。


Q:为什么我的程序与网站上的程序运行结果中的小数点最后一位存在差异?

A: 这是因为网站的OJ使用的操作系统和编译器与我们自己使用的操作系统和编译器不一样,从而导致浮点运算的精度不一致。

此外,使用float和double定义变量得到的计算结果也可能在结果的最后一位小数上有所不同。