友情提示:本文共有 1593 个字,阅读大概需要 4 分钟。
#c语言#
C语言作为现在大多数理工科本科生的必修课,很多从未有过编程概念的同学也不得不开始学习这门课程。但是由于授课老师水平参差不齐,有些学生学着学着便开始直呼“头痛”,不得不说是十分真实了。
作为必修课,又不能挂科,那么我们应该怎么学呢?下面将从两个角度来探讨C语言的学习。
一、应试角度
毫无疑问,C语言本身是一门必修课,这意味着它具有课程的共性,即知识存在基础知识、重点知识和难点知识等。注意,C语言的基础知识是基本的逻辑,而不是计算机的组成原理,恰好相反的是,我们正是通过学习C语言来逐步了解计算机的原理的。在高中时代,我们学过用程序框图和伪代码来描述算法,如果这部分的知识掌握了的话,那么我们就相当于拥有了学习C语言的基础知识。
C语言是面向过程的,也就是以过程为中心。而面向过程的程序本质上是通过一种规范表述来描述数据结构和算法,C语言正是其中的一种规范表述。因此C语言的重点就是理解关键字和符号的基本含义,结合我们的基础的逻辑思维,让我们能看懂程序的过程,也就是程序实际上干了一些什么事。下面简单举个例子。
比如我们要用C语言计算1+2+……+100的值, 如果以课程角度来看,首先这样的题目考了一个什么知识点?肯定考了循环语句这个知识点,因为计算的每一步都是加法,假如这道题是一个改错题,题目的程序如上图所示,那么其中一种改法就是在小于号后面加个等于号,变成小于等于号。我们先看一下for关键字后面的小括号里的内容,根据for循环的知识,小括号其中被两个分号夹住的部分如果成立则运行,不成立则退出循环,而且括号里面的i++表示i会在每次循环之后增加1,因此,按图中程序,当i为100的时候,会先判断i是否小于100,由于不成立,所以退出循环,而我们输出的数据是sum,相当于输出的1+2+……+99的值,所以一种办法就是让sum在for循环就计算出正确的值,另外一种改法就是不输出sum,而输出sum+100的值。
上面的例子体现出,首先程序类的题目很多情况都不止一个解决办法,其次正确理解C语言程序需要掌握C语言的语法基础,比如关键字、运算符、语句、数据类型和常用函数等。C语言的最大难点就是指针。如果单纯以通过期末考试的角度来看待这个知识点的话,那么应该翻一下历年期末的指针是怎么考查的,直接将可能考的方式和答案记住。这个角度适用于应试能力强,对于C语言毫无兴趣的同学。
二、研究和实用角度
从第二个角度来看待C语言,就是C语言实际上有什么作用,具体干了什么,怎么干的。第一个角度里可以直接无视#include
比如,C语言里,以#开头的语句称为预编译语句,C语言程序首先会通过编译器生成中间文件。编译器就是一个已经做好的程序,就像翻译官一样,把C语言翻译成机器能够读懂的语言,而中间文件是已经翻译好的你写的那部分程序,预编译语句则是对编译器翻译程序做一些准备工作。比如#include
再一个就是要多考虑如何用C语言来解决实际问题,实践能很快地提高一个新手的技能水平,并能清醒地意识到自己哪方面还不懂。具体可以做的项目,比如用C语言来计算同时期的极限和积分的题目,或者学习一下简单的图形库,做个简单的游戏之类的,也可以通过刷OJ来提高算法和语法水平。
本文如果对你有帮助,请点赞收藏《令小白头痛的C语言 到底该怎么学?》,同时在此感谢原作者。