论文部分内容阅读
摘 要:《C语言程序设计》是计算机专业中的一门软件课程,主要用来编程,它具有难度性、抽象性、连续性和逻辑严密性,因此,很多学生认为这门课不好学,本人就多年的教学实践谈谈自己的看法。文章从为什么要学习《C语言程序设计》,如何来学习《C语言程序设计》两大方面来阐述。实践证明,这些学习方法是有效的,不仅有利于培养学生学习兴趣,而且有利于培养学生分析问题与解决问题的能力。
关键词:C语言;程序设计;学习方法;学习兴趣
中图分类号:TP312.1-4
《C语言程序设计》是计算机专业的一门核心专业基础课程,是专升本、考研和等级水平考试的必考科目,也是学生学习中感到比较吃力的一门课。那么,如何学习《C语言程序设计》这门课程呢?现根据自己多年在教学中的体会,谈一些粗浅的认识。
1 为什么要学习《C语言程序设计》
《C语言程序设计》是用C语言来编写程序的,每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了。除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识。它的好处如下:
1.1 C语言是一种计算机程序设计语言
它既具有高级语言的特点,又具有汇编语言的特点,既可以用来编写系统软件,又可以用来编写应用软件。它不仅具有绘图能力强,还具备很强的数据处理能力,因此也适于编写三维,二维图形和动画。
1.2 C语言具有功能强大、使用灵活、丰富的数据类型和运算符、结构化的控制语句、目标代码运行效率高、适用范围大、可移植性好等优点。
1.3 C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),还有各种语言的编译器,包括java虚拟机,各种嵌入式设备,如手机、PDA等都是C语言开发的。
1.4 C语言是基础,如果你学习过C语言,你就能学习现在任何的高级编程语言
因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等)。C语言学好了,将来想学其他的语言,就比较好入门了。
2 如何学习《C语言程序设计》
2.1 克服畏难心理,充满自信的学习《C语言程序设计》
大多数学生一看到《C语言程序设计》课程的教材,就有畏难的情绪,觉得C语言难学,学不会,因为他们对计算机语言不了解,另外有些英语差的同学,看到计算机编程是用英语编写的,就未学先弃了。其实学习语言并没有他们想象的那么难,英语差也对学习计算机语言影响不大,比如学C语言,真正要记的关键字不多,语法也不复杂,只要大家不带着畏难的心理,充满自信,一定能学好的。
2.2 要明确《C语言程序设计》的学习目的
通过《C语言程序设计》课程的学习,掌握C语言基本知识,掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练运用基本程序结构解决简单问题,理解模块化程序设计原则并能熟练使用C语言进行程序设计,具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。
2.3 要明白《C语言程序设计》与一般的计算机操作课程有所不同
《C语言程序设计》是计算机的一门软件编程课程,是用C语言来编写程序的,它具有难度性、抽象性、连续性和逻辑严密性。如果你第一次课来听了,第二次课没来,第三次课很可能就听不懂了。比如,第一次课讲的是数字1,2,3,4……,第二次课讲的是运算符号+,-,*,/,第三次课老师让你算1+2=?,如果你前两次课都来听了,那么你就能算出它的结果,否则你就算不出它的结果。因此,如果要想学好《C语言程序设计》,必须坚持每次课都来,如果那天确实不能来,就应在家自学,不懂的地方应及时向老师请教,一定不能落课。
2.4 要整体把握《C语言程序设计》
C语言是一种通用的程序设计语言,在开发系统软件和应用软件中得到广泛的应用,已成为当今计算机世界最流行的语言之一。C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。它包括C语言概述、数据类型(整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等)、运算符和表达式、流程控制语句、函数、数组、字符与字符串、指针、结构体、文件等。通过《C语言程序设计》的学习,掌握程序设计的基本概念、基本思想、基本方法和基本技能,进而学会利用C语言解决实际问题,培养计算机程序设计的能力和素质,以及思维方法,为以后学习其它计算机程序语言和后续的专业课程打下基础。
简单的C程序是由主函数和函数体两大部分组成。它的基本框架如下:
main()
{
}
其中main表示“主函数”。每一个C程序都必须有一个main函数,而且只能有一个main函数,它表示程序从这里开始执行。由花括号“{ }”括起的部分是函数体。其中函数体又包括定义变量、变量赋值、函数调用、输出打印等。
例:一个简单的求和程序
main() /*主函数*/
{
int a,b,sum; /*定义变量*/
a=123;b=456; /*变量赋值*/
sum=a+b; /*求两数之和*/
printf(“sum is %d\n”,sum); /*输出和值*/
}
这是一个简单的求和程序。/*...*/表示注释部分,只给人看的,对编译和运行不起作用。第3行是声明部分,定义变量a、b、sum,指定a、b、sum为整型(int)变量。第4行是两个赋值语句,使a和b的值分别为123和456。第5行使sum的值为a+b,第6行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式,“%d”表示“以十进制整数形式输出”。Printf函数中括弧内最右端sum是要输出的变量,现在它的值为579(即123+456之值)。因此输出一行信息为: sum is 579
从这个例子可以看出,想要把《C语言程序设计》这门课学好,不仅要知道《C语言程序设计》的基本框架,还要学好函数体中的内容(变量类型、定义变量、变量赋值、输入输出格式字符串、输入输出函数格式、调用函数等)。另外还要学好C语言的运算符、运算顺序 、四种程序结构(顺序结构、分支结构、循环结构、模块化程序结构 )、掌握一些简单的算法等。
2.5 熟练C程序的上机步骤
在编好一个C源程序后,如何上机运行呢?要经过编辑、编译、连接和运行四个步骤。
(1)编辑源文件。在编辑(Edit)状态下输入或修改源程序。
(2)编译源程序。选择“C编译”菜单并选择“编译到OBJ”,进行编译,得到一个后缀为.obj的目标程序。
(3)然后再选择菜单“L连接EXE文件”,进行连接操作,可得到一个后缀为.exe的可执行文件。
(4) 运行程序。在“RUN”菜单中选择“R运行程序”项,或直接按Ctr+F9键,系统就会运行已编译好的可执行目标文件。此时,TC集成环境窗口消失,屏幕上显示出程序运行的结果。如果程序需要输入数据,则应在此时,从键盘输入所需数据,然后程序会接着执行,输出结果。
2.6 要加强编程训练
《C语言程序设计》是实践性非常强的课程,要求学员要理论联系实际,在掌握C语言的基本语法和基本知识后,重点应放在提高编程能力的训练上。根据学生学习的认知特点,我认为主要应从以下几个方面进行强化训练:
(1)吃透课本例子。每学完一次新课,让学生对课本例子先分析任务、再仔细阅读程序,然后按书上的源代码敲出来,编译执行输出结果,如果结果跟书上一致就算完成,如果不一致,就要仔细找原因。再后不看书自己编写代码与课本对照,找出自己的不足,然后改进。最后在此例的基础上自己加以改造,举一反三,变为其它的例子,如此反复练习,不仅培养了学生动脑思考的习惯,而且养成了遇事三思、认真、周密的作风。
(2)精选上机题目,要求调试通过。每章找出一个或两个综合性的具有代表性的应用题目,如编写一个程序,计算一个整数的名位数字之和;用选择法对数组中10个整数,按由小到大的顺序进行排序等,要求用C语言编写可执行的源程序,上机调试。这样不仅锻炼了学生解决实际问题的能力,更重要的是激发了学生学习课程的兴趣,抽象变具体 ,理论变实践,对这门课有了更深的认识。
(3)阅读填空法。找一些经典程序,配上必要的说明,适当去掉语句或表达式,让学生通过阅读填补空白,训练学生的程序设计能力。例编写一个程序,输入月份号,输出月的英文月名,还有求和、排序、报号等。
(4)准备一个经验本,记下C语言重要的语法和知识点,还有自己出错的解决方法及老师讲解的其他同学出现的常见错误,抽空常翻看,逐步积累经验,加深印象,使以后避免。
(5)带着作业去上机。每次理论课结束后,老师都会给学生布置一些作业(如习题)让学生做,那么学生一定要认认真真的把作业完成好,先把程序编写在作业本上,上机时再把这些程序敲到计算机上,进行修改、调试、运行,最后输出结果。如果学生不带作业去上机,第一次老师警告下次一定带作业上机,如果第二次还没带作业,不准学生进机房,让学生到教室把作业做完后再到机房上机调试。有人说学生可以直接在机器上编写程序,固然没错,但对于初学者来说,如果在机器上边思考边编写,也就是说想一句编一句,再想一句再编一句,这样太浪费时间,一节课说不定连一个程序都编不好,所以老师一定要求学生在课下把程序编好,上机只需把程序敲出来进行修改、调试、运行,这样能节约大量的时间,学生上机时间本身都是有限的。
上述方法在教学实践中证明是行之有效的,学生对问题分析、程序设计的自觉性和能动性得到提高,动手能力加强,对后继课如《C++》、《面向对象程序设计》等,学习起来倍感轻松,较好地完成了该门课程的学习目标。总之,实践出真知,多学、多练、多思、多交流,勤奋好学才能学成。
参考文献:
[1]严桂兰.C语言程序设计与应用教程[M].福建:厦门大学出版社,2001.
[2]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.
[3]陈东.计算机多媒体教学改革的一些尝试[J].福建师范大学学报(自然版),2004,20(3):98.
[4]王兰.学好《C程序设计》的几点建议[J].科技信息,2007(9).
作者简介:薛玉莹(1976.07-),女,四川攀枝花人,研究生,计算机讲师,主要研究方向:计算机及经济学。
作者单位:四川机电职业技术学院科研处,四川攀枝花 617000
关键词:C语言;程序设计;学习方法;学习兴趣
中图分类号:TP312.1-4
《C语言程序设计》是计算机专业的一门核心专业基础课程,是专升本、考研和等级水平考试的必考科目,也是学生学习中感到比较吃力的一门课。那么,如何学习《C语言程序设计》这门课程呢?现根据自己多年在教学中的体会,谈一些粗浅的认识。
1 为什么要学习《C语言程序设计》
《C语言程序设计》是用C语言来编写程序的,每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了。除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识。它的好处如下:
1.1 C语言是一种计算机程序设计语言
它既具有高级语言的特点,又具有汇编语言的特点,既可以用来编写系统软件,又可以用来编写应用软件。它不仅具有绘图能力强,还具备很强的数据处理能力,因此也适于编写三维,二维图形和动画。
1.2 C语言具有功能强大、使用灵活、丰富的数据类型和运算符、结构化的控制语句、目标代码运行效率高、适用范围大、可移植性好等优点。
1.3 C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),还有各种语言的编译器,包括java虚拟机,各种嵌入式设备,如手机、PDA等都是C语言开发的。
1.4 C语言是基础,如果你学习过C语言,你就能学习现在任何的高级编程语言
因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等)。C语言学好了,将来想学其他的语言,就比较好入门了。
2 如何学习《C语言程序设计》
2.1 克服畏难心理,充满自信的学习《C语言程序设计》
大多数学生一看到《C语言程序设计》课程的教材,就有畏难的情绪,觉得C语言难学,学不会,因为他们对计算机语言不了解,另外有些英语差的同学,看到计算机编程是用英语编写的,就未学先弃了。其实学习语言并没有他们想象的那么难,英语差也对学习计算机语言影响不大,比如学C语言,真正要记的关键字不多,语法也不复杂,只要大家不带着畏难的心理,充满自信,一定能学好的。
2.2 要明确《C语言程序设计》的学习目的
通过《C语言程序设计》课程的学习,掌握C语言基本知识,掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练运用基本程序结构解决简单问题,理解模块化程序设计原则并能熟练使用C语言进行程序设计,具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。
2.3 要明白《C语言程序设计》与一般的计算机操作课程有所不同
《C语言程序设计》是计算机的一门软件编程课程,是用C语言来编写程序的,它具有难度性、抽象性、连续性和逻辑严密性。如果你第一次课来听了,第二次课没来,第三次课很可能就听不懂了。比如,第一次课讲的是数字1,2,3,4……,第二次课讲的是运算符号+,-,*,/,第三次课老师让你算1+2=?,如果你前两次课都来听了,那么你就能算出它的结果,否则你就算不出它的结果。因此,如果要想学好《C语言程序设计》,必须坚持每次课都来,如果那天确实不能来,就应在家自学,不懂的地方应及时向老师请教,一定不能落课。
2.4 要整体把握《C语言程序设计》
C语言是一种通用的程序设计语言,在开发系统软件和应用软件中得到广泛的应用,已成为当今计算机世界最流行的语言之一。C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。它包括C语言概述、数据类型(整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等)、运算符和表达式、流程控制语句、函数、数组、字符与字符串、指针、结构体、文件等。通过《C语言程序设计》的学习,掌握程序设计的基本概念、基本思想、基本方法和基本技能,进而学会利用C语言解决实际问题,培养计算机程序设计的能力和素质,以及思维方法,为以后学习其它计算机程序语言和后续的专业课程打下基础。
简单的C程序是由主函数和函数体两大部分组成。它的基本框架如下:
main()
{
}
其中main表示“主函数”。每一个C程序都必须有一个main函数,而且只能有一个main函数,它表示程序从这里开始执行。由花括号“{ }”括起的部分是函数体。其中函数体又包括定义变量、变量赋值、函数调用、输出打印等。
例:一个简单的求和程序
main() /*主函数*/
{
int a,b,sum; /*定义变量*/
a=123;b=456; /*变量赋值*/
sum=a+b; /*求两数之和*/
printf(“sum is %d\n”,sum); /*输出和值*/
}
这是一个简单的求和程序。/*...*/表示注释部分,只给人看的,对编译和运行不起作用。第3行是声明部分,定义变量a、b、sum,指定a、b、sum为整型(int)变量。第4行是两个赋值语句,使a和b的值分别为123和456。第5行使sum的值为a+b,第6行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式,“%d”表示“以十进制整数形式输出”。Printf函数中括弧内最右端sum是要输出的变量,现在它的值为579(即123+456之值)。因此输出一行信息为: sum is 579
从这个例子可以看出,想要把《C语言程序设计》这门课学好,不仅要知道《C语言程序设计》的基本框架,还要学好函数体中的内容(变量类型、定义变量、变量赋值、输入输出格式字符串、输入输出函数格式、调用函数等)。另外还要学好C语言的运算符、运算顺序 、四种程序结构(顺序结构、分支结构、循环结构、模块化程序结构 )、掌握一些简单的算法等。
2.5 熟练C程序的上机步骤
在编好一个C源程序后,如何上机运行呢?要经过编辑、编译、连接和运行四个步骤。
(1)编辑源文件。在编辑(Edit)状态下输入或修改源程序。
(2)编译源程序。选择“C编译”菜单并选择“编译到OBJ”,进行编译,得到一个后缀为.obj的目标程序。
(3)然后再选择菜单“L连接EXE文件”,进行连接操作,可得到一个后缀为.exe的可执行文件。
(4) 运行程序。在“RUN”菜单中选择“R运行程序”项,或直接按Ctr+F9键,系统就会运行已编译好的可执行目标文件。此时,TC集成环境窗口消失,屏幕上显示出程序运行的结果。如果程序需要输入数据,则应在此时,从键盘输入所需数据,然后程序会接着执行,输出结果。
2.6 要加强编程训练
《C语言程序设计》是实践性非常强的课程,要求学员要理论联系实际,在掌握C语言的基本语法和基本知识后,重点应放在提高编程能力的训练上。根据学生学习的认知特点,我认为主要应从以下几个方面进行强化训练:
(1)吃透课本例子。每学完一次新课,让学生对课本例子先分析任务、再仔细阅读程序,然后按书上的源代码敲出来,编译执行输出结果,如果结果跟书上一致就算完成,如果不一致,就要仔细找原因。再后不看书自己编写代码与课本对照,找出自己的不足,然后改进。最后在此例的基础上自己加以改造,举一反三,变为其它的例子,如此反复练习,不仅培养了学生动脑思考的习惯,而且养成了遇事三思、认真、周密的作风。
(2)精选上机题目,要求调试通过。每章找出一个或两个综合性的具有代表性的应用题目,如编写一个程序,计算一个整数的名位数字之和;用选择法对数组中10个整数,按由小到大的顺序进行排序等,要求用C语言编写可执行的源程序,上机调试。这样不仅锻炼了学生解决实际问题的能力,更重要的是激发了学生学习课程的兴趣,抽象变具体 ,理论变实践,对这门课有了更深的认识。
(3)阅读填空法。找一些经典程序,配上必要的说明,适当去掉语句或表达式,让学生通过阅读填补空白,训练学生的程序设计能力。例编写一个程序,输入月份号,输出月的英文月名,还有求和、排序、报号等。
(4)准备一个经验本,记下C语言重要的语法和知识点,还有自己出错的解决方法及老师讲解的其他同学出现的常见错误,抽空常翻看,逐步积累经验,加深印象,使以后避免。
(5)带着作业去上机。每次理论课结束后,老师都会给学生布置一些作业(如习题)让学生做,那么学生一定要认认真真的把作业完成好,先把程序编写在作业本上,上机时再把这些程序敲到计算机上,进行修改、调试、运行,最后输出结果。如果学生不带作业去上机,第一次老师警告下次一定带作业上机,如果第二次还没带作业,不准学生进机房,让学生到教室把作业做完后再到机房上机调试。有人说学生可以直接在机器上编写程序,固然没错,但对于初学者来说,如果在机器上边思考边编写,也就是说想一句编一句,再想一句再编一句,这样太浪费时间,一节课说不定连一个程序都编不好,所以老师一定要求学生在课下把程序编好,上机只需把程序敲出来进行修改、调试、运行,这样能节约大量的时间,学生上机时间本身都是有限的。
上述方法在教学实践中证明是行之有效的,学生对问题分析、程序设计的自觉性和能动性得到提高,动手能力加强,对后继课如《C++》、《面向对象程序设计》等,学习起来倍感轻松,较好地完成了该门课程的学习目标。总之,实践出真知,多学、多练、多思、多交流,勤奋好学才能学成。
参考文献:
[1]严桂兰.C语言程序设计与应用教程[M].福建:厦门大学出版社,2001.
[2]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.
[3]陈东.计算机多媒体教学改革的一些尝试[J].福建师范大学学报(自然版),2004,20(3):98.
[4]王兰.学好《C程序设计》的几点建议[J].科技信息,2007(9).
作者简介:薛玉莹(1976.07-),女,四川攀枝花人,研究生,计算机讲师,主要研究方向:计算机及经济学。
作者单位:四川机电职业技术学院科研处,四川攀枝花 617000