C语言几乎是科大所有同学的必修课,也是绝大部分同学第一门有关计算机语言的课程。临近期末,相信大家的C语言课程进度也接近尾声了,不知道大家对于课程知识是否掌握牢固、应用熟练了呢?为了更好地帮助大家掌握知识、高效备考,小蜗特地为大家联系了相关课程的老师、助教以及一些优秀师兄师姐,帮助大家收集整理了课程学习和备考的相关建议,希望对大家有所帮助:
问答
问
C语言这门课程的基本要求是什么?如果想更深入地学习有什么推荐的进阶内容?
答
虽然每年课程的考纲考点都会有变化,但基础的课程要求就是大家这学期课堂上的学习内容:
主要包括基础概念(运算符、变量、常用语法、数据类型等)、对数据的排序查找、指针、字符串、数组、链表,以及文件的读写操作。
课程的进阶内容:
这一部分当然是对写代码有用的知识点了,在学有余力的情况下,可以去了解如何配置语言环境(配置环境对于以后使用Python、Java等常用语言非常的重要),还可以了解一下C语言图形界面的写法。
除此以外,我觉得还有一点很重要的是学习代码的规范写法,因为我们写的代码是需要和别人交流的,甚至以后需要几个人一起来写一个代码,因此代码的规范性就非常的重要。想更进一步了解学习C语言的话,可以学习一下C++,C++是在C语言的基础上进行扩充,引入了更多的概念,换而言之,C语言是C++的子集。
问
如何学好C语言?
答
第一步要掌握好基础概念和基础语法。我们拿指针举例,学习指针的相关知识,首先你要了解指针到底是什么?指针本质上是一个内存地址,指针变量也就是用来表征内存地址的变量,它和其他变量一样,可以被声明或赋值。只有明白指针到底是什么,在学习指针的相关知识时你才不会云里雾里。掌握概念这一步看似简单基础,但往往有同学会直接忽略概念去学习语法,这样只会事倍功半、得不偿失。
其次是语法,C语言的很多知识不像数理课程中的结论,可以靠自己推导获得。它是一种“语言法则”,不能靠推导获得,而只能靠记忆。倘若你不知道如何定义或声明一个指针变量,不知道要用什么语法对指针进行赋值或访问,那么就算你对指针的理解再深刻,你也写不出一段可以运行的代码。因此对于C语言的初学者来说,一定要多记多背,牢记相关功能的基本语法。这是我们去编写代码的基础。
第二步是要掌握概念之间的联系,这也是最开始学C语言的时候让很多同学犯难的一部分。在学习完函数、数组、指针、字符串等概念后,你会发现它们并不是互相“井水不犯河水”的,反而是互通有无的好兄弟。比如指针数组、传递指针的函数、指向数组的指针以及多维数组和指针的关系,等等,这些概念之间的联系与变换很容易把人绕晕,因此一定要从概念出发仔细地理解对应代码的逻辑与内容,而不是单纯地记住一些结论,否则你在考试面对一些变形或者更加复杂的代码时会措手不及。
最后一步,就是常用算法的掌握。我们在这学期的课程中会学到大量的算法,这些算法有一些是为了让大家更好地理解课堂上的内容,比如一些经典数学问题的计算。还有一些往往是一些功能的实现基础。比如链表的建立与插入,文件的创建、读入、读出与保存等,这就是我们计算机基础功能的实现,也往往是考试会要求的内容。
问
写代码的时候都要注意什么?
答
写代码的时候我觉得最需要注意的就是一些小细节,比如你的逗号是不是在中文状态下的。我本人就遇到过类似情况,代码检查了大概两三个小时,最后发现是因为一个逗号打错。
还有在写代码的时候,你要去提前想好这段代码的逻辑关系,不能想到哪里写到哪里,这样往往会出现很多问题并且难以调整。
另外向大家一个debug的小技巧,在debug的时候,你写的循环体可以先验证第一个是不是按照你想要的逻辑去执行的,一般情况下还会再检查一下第二个值的执行结果,这样往往可以帮助你迅速缩小debug范围。
还有一个就是当你写的函数出了问题时,可以先用printf()函数把这个函数的输入和输出都先显示出来,这样会帮助你确认是在函数之前出了问题,还是在函数执行的过程中出了问题。然后你再根据出现问题的地方用printf()把值输出,这样的话,你就可以知道你写的和你想的到底有什么不一样,才能更有针对地进行更改。
问
关于备考有什么经验可以分享?
答
有一点需要注意的是,往年考试常常会考一些平常不会很在意的知识点,比如运算符的优先级等,因此大家复习一定要全面,不要因为觉得有些知识点没用就不去看。
除此以外,其实C语言的复习相对比较单调,你只要老老实实地去看老师讲过的相关内容,把相关算法的逻辑理解清楚,掌握好常用的操作一般就足够了。至于复习资料,一般课本和作业就已经可以满足大部分的复习要求了,当然考试前一段时间可以去找一些往年的期末试卷做一做,以查缺补漏、熟练手感,尤其是考试会考手写代码,如果平常习惯了软件的debug和看着书写代码,大家最好提前多练一下。