摘要 :C语言历史悠久,新时期用新的模式去学习C语言,会更好的理解编程并且会把C语言学习的更透彻。C语言手机编译器的广泛应用,为爱好C语言的朋友们,提供了便利。随时随地学习C语言源代码,更激发了朋友们的编程兴趣。本文主要讲解C语言新的学习模式。通过应用新模式学习C语言,可以达到全面理解C语言精华,掌握重点知识,提高自学能力的效果。
关键词:C语言 学习模式 编译器 自学能力
一、C语言学习模式概述
C语言历史悠久,2000年左右,笔者在上大学计算机科学与技术专业时,就有这门专业课。二十年后的今天,依旧作为专升本或考研的专业课之一,说明C语言是非常重要的课程。
好多朋友在学C语言的时候,会认为很难。还有一些朋友,一知半解。更有甚者,学了半年也没有入门,半途而废。针对朋友们的困惑,和急于学习编程语言精华的情况。笔者想分享一下新的C语言学习模式,来帮助这些朋友。使这些朋友用笔者独创的学习模式,对C语言进行学习,快速学会编程。本文C语言学习模式的创建,对提高学习编程兴趣,掌握编程精华具有重要意义。为更多学习大数据,人工智能,物联网,云计算,移动互联等新知识的朋友,打好编程基础。
从总体考虑,要想学好C 语言,首先要激发学习C语言编程课的兴趣,让学习C语言的朋友们,快速喜欢上程序设计这门课。就需要先了解编程所涉及的内容。在高级编程语言中,所涉及到的主要是面向过程和面向对象两个方面。另外,所有的程序设计,都要学习常量,变量,表达式和函数,这几部分。
笔者把C语言的学习模式,分成十部分。一是主函数,二是编程基础,三是数据类型,四是输入输出,五是程序结构,六是函数构成,七是指针和地址,八是数组应用,九是结构体,十是文件概念。本文将分别进行这十部分C语言学习模式的讲解。
二、C语言学习模式的解析
学习模式一.C语言主函数。主函数是编程者自己编写函数时,必不可少的部分。函数分为自定义函数,和本身有的函数即库函数两部分。主函数属于自定义函数中,必不可少的一部分。其中,注意的问题是,有且仅有一个,并且主函数是程序的入口点。
学习模式二.编程基础:常量,变量,表达式,函数。这些是学习编程的基础。不论学哪门编程语言,都必须学这部分的知识。
常量可以分为,普通常量和符号常量。注意区分#define AA x+y与 #define AA (x+y)中,最右边表达式加不加括号的问题。另外需要注意,定义符号常量,后边没有分号。一般位于main函数或者其他函数的上面。
变量,必须先定义后使用。一定要充分理解:执行语句a=1;a=2;后,a的值为2。并不是3,也不是不确定。同样适合字符串的情况。
例如:char a[7]=”1,2,3,6,4,1”;gets(a); 执行这两个语句的时候,如果输入ABC。那么字符数组a中,现在的值就是ABC。以前的值被覆盖。
除此之外,++i或i++自增以及自减也是常考的知识点之一。
例如,执行语句for(i=1;i++<3;)a=5;之后,变量i的值是多少。必须明白i的值已经是4了。就是因为,加号在后,后自增。而且必须明白3<3这句话,也执行了。才可以得到最后的正确结果。
自增自减中的难点是,区分表达式的值和变量的值。例如:int a=3;++a,a++;运行完,变量a的值是5,此逗号表达式的值是4。
表达式的分类,一般分为五类:算术表达式,赋值表达式,逗号表达式,关系表达式,逻辑表达式共五种。有的书中把条件表达式,表达式a?表达式b:表达式c也作为一种表达式列出来了。不过,笔者个人认为,还是分五种比较好。条件表达式,作为一个知识点掌握就行。
第一,算术表达式。一定注意运算符两边必须类型一致,所得结果,也是此类型。例如:1/2结果是0,而不是0.5。因为,运算符两边类型是整型,所以,得到的也是整型。另外,运算符中 “%”的意思是求余数,同时要注意,两边必须是整数,这是常考知识点。
第二,赋值表达式。赋值号左边只能是变量,不能是常量或表达式。这句话告诉大家,地址常量也不能放在赋值号的左边。另外,a+b=c这句话是错误的。因为,赋值号的左边不能是表达式。
第三,逗号表达式。它是常考知识点之一,必须注意,它是优先级最低的。并且,从左向右去计算,最后一个表达式的值,是此逗号表达式的值。在优先级别中,赋值表达式高于逗号表达式。例如:b=3,5+2与b=(3,5+2)这两个是完全不同的表达式,第一个是逗号表达式,第二个是赋值表达式。做完之后,b的值也不同。第一个b=3,第二个b=7。
第四,关系表达式。必须要明白,C語言中,没有专门的逻辑值。“非0”是真,“0”是假。另外,需注意一个特殊的情况。关系表达式的值,是“1”或“0”。比如:3>1,返回值是“1”。
第五,逻辑表达式。逻辑表达式的值,也是一个特殊情况。逻辑表达式的值,是“1”或“0”。比如:!5,返回值是“0”。
学习模式三.数据类型。C语言中,数据类型是非常简单的。分为数值型和非数值型两种,也就是数值型和字符型。由于,在C语言中,字符串和字符不一样。所以,对于数据类型分类,也可以分为数值型和字符型,字符串型三种。数值型,又分为整型和浮点型。浮点型又分为,单精度和双精度。其实,浮点型的数,就是带小数点的数。学习数据类型的主要目的,就是学会常量和变量。因为,有什么样的数据类型就会有什么样的常量,有什么样的数据类型就会有什么样的变量。这也是非常重要的一个知识点。需要注意,第一,转义字符中,\527,代表一个八进制数。\x56,代表一个十六进制数。第二,C语言中数字的表示有三种:十进制,八进制,十六进制。没有二进制。
学习模式四.输入和输出。C语言中,没有自己的输入和输出。必须调用库函数。
输出,必须学会三点:格式,注意的问题,以及小细节。第一,格式如下:printf(“xyz”);printf(“%d,%d”,a,b)。
第二,注意的问题是:输出%d%d不能连写。并且对于语句printf(“%d,%d “,a,b);前后类型一致,个数一致。
第三,小细节中,必须学会以下7点。”%5d” ,默认右对齐,共占五个字符长度。”%-d”,减号代表左对齐。”%+d”,正号代表变量对应数字的正负号。”%hd”,短整型。”%ld”,长整型。”%7.2f ”,代表小数一共7位,其中小数位占两位。”%%”,最后输出一个%。
对于输入,也一样,必须学会三点:格式,注意的问题,以及小细节。第一,格式scanf(格式控制,输入项表);
scanf(“%hd%f%lf”,&a,&b,&c);其中“&”为取地址符。
第二,注意的问题:一是,前后类型一致,个数一致。二是,输入时,如果是短整型必须用hd。如果是双精度,必须用lf。也就是说,单精度用%f。双精度用%lf。三是,%7f,正确。%7.2f错误。
第三,小细节。一是,输入的数据,必须用间隔符隔开,比如空格,回车,制表符。二是,输入完数据后,必须用回车键。三是,指定数据所占宽度。scanf(“%3d%5f%5lf” ,&k,&a,&y);例如:123456.789.123。四是,跳过某个数据,例如:scanf(“%d%*d%d”,&a,&b)。五是,在格式控制字符串中插入其他字符。scanf(“input a,b,c:%d%d%d”,&a,&b,&c)。例如:scanf(“%d,%d,%d”,&a,&b,&c);在运行时,如图1所示。
学习模式五.程序结构。顺序,选择,循环。顺序结构需注意:/*,*/中间部分如果有语句也不执行。
选择结构。第一,要明白,例如if(a
循环结构。它在C语言中,是最核心的课程。只有把这个章节学好了,才能真正理解程序设计。第一,是while结构,要明白每次循环,一定画图。如图2所示。当条件对的时候,做循环体里的语句,执行多次,知道条件错误为止。需要注意,条件错误,也要写出来。这样就不容易错了。另外,还需注意,只要条件对,就要把循环体中的所有语句都做完。
第二,是do-while语句。此结构,先执行,后判断。而while语句则是,先判断,后执行。学习这个语句,同样要画图,如图3所示。两个语句的区别是,while最少做零次,而do-while语句最少做一次。
第三,是for语句。基本格式是for(语句1;语句2;语句3) 循环体。具体执行过程如图4。循环中,难点是嵌套循环。需要整理清除思路。认真做题。才可以充分理解。
学习模式六.函数构成。分函数头,函数体两部分。函数体中又可以分为说明部分和执行部分。函数,必须会的是函数调用。特殊的是递归。函数调用部分,必须清楚四个知识点:第一,参数分类,实参和形参。第二,参数如何传递,传地址是双向;传值是单向。第三,返回值,两种方式,第一种是参数,通过传地址方式进行传回。第二种是函数名,通过return语句,进行数据传送。第四,必须明白什么时候写函数说明。函数说明的格式也有两种。参数中的变量省略或者不省略。
学习模式七.指针与地址。学习最难的这三部分指针,数组,结构体,必须会画图。首先,看一下指针如何画图,如图5。学习指针,必须明白指针就是地址,存放地址的变量,就是指针变量。
学习模式八.数组学习。数组就是数据类型相同的多个变量。看成了一组元素。学习数组一定要画图。如图6。学会定义,赋初值,引用三部分知识。
在数组定义中,数组名就是地址,或者说数组名就是存放这个数组的首地址。逐个存放a[0], a[1], a[2], a[3]。数组和变量的用法一样。但是,数组的优越性是,可以把他们看成是一个系列,或者是相关类型的数据元素放到一起。便于管理和使用。从形式上,也看起来美观。数组常用在数据结构算法中,用来描述一系列相同数据类型的元素。比如各种排序算法,大多都会应用到数组元素的相互比较。另外,学习数组,重要知识点有,一维数组和指针,以及二维数组和指针。
学习模式九.结构体。可以从两个方面理解。一个是自定义数据类型这个角度,地位和int,char一样,只不过int,char是系统本身的,而结构体可以自己定义。另一个角度,是和数组作比较,和数组一样的地方是,也是由多个数据元素构成,不同点是,数组中,所有元素的类型一致,而结构体中,每个元素的数据类型可以一样,也可以不一样。比如,结构体可以描述不同的学生。每个学生可以由名字,性别,所学课程,成绩组成。如图6所示。只有充分理解了结构体,才可以很好的理解c++或JAVA中的类。只是,结构体中描述的属性都是静态的。而在类中,有靜态特性,也有动态特性。
学习模式十.文件概念。文件,作为必不可少的一部分,只要把一些函数背会就可以啦。比如文件打开等。
三、结语
通过对以上C语言学习模式的研究,希望对爱好编程的朋友和想快速掌握并精通C语言的朋友有所帮助。同时,对提高自学C语言能力等方面有一定促进作用。新时代,一定要把握潮流,学好编程语言。朋友们,加油!
参考文献
[1]谭浩强.C程序设计(第四版)[M].清华大学出版社,2012.
[2]张小梅.C语言程序设计 [M].北京出版社,2016.
[3]王凌燕.基于大学城空间网络教学平台的学生自主学习能力研究[J].教育现代化,2017,4(38):194-195,198.
[4]任爱华,赵蔚蔚.创新型人才培养的“对分课堂”教学模式研究—-以“税收筹划”课程为例[J].河北农业大学学报(社会科学版),2019(2).
作者简介
裴江艳(1979-),女,汉,籍贯:山西太原,学历:本科,学位:硕士,职称:工程师,研究方向:计算机和信息化建设。