1 标点和括号
C 语言用“分号”来结束一行代码,有的学生忘记写分号或写成逗号等都是错误的。单也有一些特殊的地方需要注意:⑴一行结束后不加分号的情况,函数定义结束后,花括号“{”、“}”括起代码段,花括号独占一行,一些关键字如 if、switch、for、while、do、else 等,宏的定义,头文件的引用;⑵一行结束后需要加分号:do…while 结束,用 { } 初始化数组元素的,break、continue 关键字后,函数声明和函数调用,全局和局部变量的声明。
2 变量的命名规则
针对学生阅读程序的便捷性[2],标识符命名时建议采用以下规则:⑴变量采用“tXxxYyy”的方式进行命名,t 表示该变量定义类型的第一个字母,XxxYyy 表示对该变量的描述,多个单词之间使用首字母大写进行分割,如果是某种指针类型的变量,则在类型之前加“p”,变成“ptXxxYyy”,如果有 signed 或 unsigned 则再类型前追加上该单词的首字母,如unsigned intuiMyCount 又如定义一个指向无符号单精度的指针变量,unsigned float * pufYourName;⑵静态变量建议在变量最前面用“s_”标识,如 int s_iSchoolNum,全局变量加“g_”,函数的形参,建议在变量的最前面用“ v_”标识,如 int add(intv_iNumber1,v_iNumber2);⑶宏名和常量由大写字母、数字或下划线组成,以下划线作为区分语义各部分的分割符,如#define SCHOOL_STUDENT_NUMBER 12000; ⑷ 结 构 体前 加“st_”, 枚 举 前 加“en_”, 指 针 前 加“p”, 一 维数组前加“a”,二维前加“aa”,例如一个二维数组 intaaClassNumber[100][100];
3 代码版式布局
在学生在实际练习中,发现他们都喜欢把花括号和代码写在一行,如 if(i<10) { sum=sum+i ; i++; } 这样既不美观又不便于阅读,针对于此提出了几点建议。⑴在相对独立的程序块之间、变量说明之后、每个函数定义结束之后都要加一行空行;⑵在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔;⑶每行最多包含一个声明或定义,一行只能包含一条语句,if、for、while、do 等语句自占一行,执行语句不得紧跟其后,不论执行语句有多少都要加“{}”, 并且“{”和 “} ”独占一行;⑷写完代码后,在 VC6.0 编译环境下可以使用 alt+F8 来调整代码行的版式,使用 ctrl+] 来检验“{ }”、“[]”和“( )”的对称性或是否缺失。
4 循环控制语言的操作
一定要注意三种循环控制语句 (for、while、do…while) 的操作,⑴要让学生严格按照三种循环的格式来书写循环语句;⑵对于循环控制变量的命名建议写为 i,j,k,m,n,方便阅读;⑶一定要注意死循环,几个死循环盲点有:三种循环控制关键字后直接加分号,如 while(i<10);{ sum=sum+i, i++};循环内部控制结束时用 if 语句进行判断时,不要将“= =”写成“=”,否则会产生死循环;循环控制变量的类型永远达不到结束条件的,如 unsigned int i; i 最大到 655635,而 for 循环结束条件为i<8888888;⑷要理解三种循环控制语句之间的相互转换,这样才能灵活的掌握这三种控制语句。
5 指针的操作
指针可能是 C 语言学习中最难懂的一部分,也是 C 语言的核心和精华,在讲解中,首先一定要分清对于任何一个“变量名”,它是指针变量还是一般的普通变量,即它应该存储地址还是数值,然后再分清 * 和 & 的操作作用,最后再来看表达式的相关计算,比如定义数组 int array; 那么 &array[5]+1 表示取先取数组中第 6 个元素的地址然后加 1,即得到第 7 个元素的地址。
不要对指针进行以下操作:⑴不要对指针进行“!”,“&&”,或“||”操作,不要将两个指针相加;只能对指向相同数组的指针进行比较或相减;⑵应当将指针变量用“= =”或“!=”与 NULL比较,指针为空时,不能赋值0;⑶一定要为指针申请足够的内存;⑷尽量避免使用多重指针,尤其是不要使用三重及三重以上的指针。
6 几个良好编程习惯
下面几个良好的编程习惯,建议大家注意:⑴尽量使用 C语言的注释符为“ /*…*/”,注释量要达到代码量的 30% 左右,同时注意注释的有效性和简单性;⑵实型变量比较大小的书写,如 float x 与“零值”比较,const float EPSINON = 0.00001;if((x >= - EPSINON) && (x <= EPSINON),不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
⑶函数入口参数不要包含多余信息,尽可能使函数的功能单一化,避免使用超大的万能函数;⑷建议使用 alt+F8 和 ctrl+],来调整代码的排版和括号是否缺失和对称;⑸ switch…case 语句中每个 case 语句的结尾不要忘记加 break,否则会导致多个分支重叠(除非有意使用多个重叠),分支结束后一定要加 defaultbreak;[3,4]⑹在表达式中用括号使子表达式的运算顺序清晰;用括号保证运算次序尤其在可能有副作用的子表达式中,必须保证有准确定义的运算顺序。比如表达:*p+++5++,在不使用括号时会表述不清楚,使用括号后为 ((*p)++)+(5++) 此时简单明了;⑺一定要注意大于等于和小于等于的书写,正确为“>=”、“<=”,有些学生容易写成“=>”、“=<”,注意“/”和“%”的功能;⑻变量类型,必须根据其存储值的类型和大小来定义,要做到量体裁衣,如一个变量取值仅仅在 0 到 1000 之间,那么就定义整型,没必要定义长整型;⑼要严格注意变量类型的隐式转换,尽量进行要显式的强制类型转换,如此就避免了许多错误;⑽对于一些可能发生变化的常量建议使用宏定义或 const来修饰[5].
7 结语
计算机软件技术是一项不断发展的高新技术,而 C 语言是计算机软件技术的基础,对学生学习其他软件技术有很大的帮助。高校 C 语言教师应结合当前计算机技术的发展,改进自身教学方法,提升教学能力,多进行实践,促进计算机应用型人才的培养[6].
参考文献:
[1]冯颖凌。C语言教学过程中的几点建议[J].科教论坛,2007 (468)。
[2]谭浩强。C程序设计(第四版)[M].北京:清华大学出版社,2010.
[3] 王怀峰 .C 语言教学浅析 [J]. 福建电脑 ,2014(3)。
[4] 林清野 . 如何提高高校学生对《C 语言程序设计》课的兴趣 [J].内江科技 ,2013(9)。
[5]林锐,韩永泉。高质量程序设计指南:C++/C语言(第3版)。北京 : 电子工业出版社 ,2012.
[6] 杜燕萍 , 乔沛荣 .C 语言教学方法探讨 [J]. 计算机与现代化 ,1998(3):32-36.
一、混合式学习方式概述所谓混合式学习就是要把传统学习方式的优势和网络化学习的优势结合起来,也就是说,既要发挥教师引导、启发、监控教学过程的主导作用,又要充分体现学生作为学习过程主体的主动性、积极性与创造性。①目前国际教育技术界的共识是,...
审计学是一门专业性、逻辑性、实践性和综合性都较强的学科。审计的过程就是排除合理怀疑的过程。是审计人员基于对被审计单位的内控、生产、技术、产品、市场的了解,从被审计单位的业务流程入手,对被审计单位的财务状况、经营成果及现金流量提出合理的怀疑...
《国际商法》是全国各经济管理学院国际贸易专业开设的必修课、专业核心课程之一。随着我国市场经济体制的完善与深化,国际商贸发展迅猛,熟悉以国际商务游戏规则为主要内容的《国际商法》与我们学生的生活工作越来越密切。由于该课程实用性强,国际贸易发展...
PBL(problem-basedlearning)教学是一种以病例为依托、问题为基...
词汇,是第二语言学习与教学中需要充分重视的语言要素之一。英国语言学家威尔金斯说:没有语法,人们还能进行一些言语交流,但是没有词汇,人们就根本无法说话了。近几年来,关于对外汉语词汇教学的研究越来越多,它在第二语言教学中越来越受到人们的重视。...
社区课程资源具有丰富性和多样性,是社区教育课程实施的重要因素,也是社区教育课程的重要组成部分。即社区本身就是社区教育的课堂,社区所处的社会环境和自然环境对社区课程教学具有十分重要的实践教学意义。本文着重对社区课程资源在生物教学中的应用进行...
4.3培养基地农科类职教师资培养过程中存在的主要问题通过调查分析培养基地农科类专业师范生培养现状及典型案例,可以发现培养过程中的一些优势,如专业设置较合理、硬件设施较全面、师资结构较好、办学模式多样等。当然,也可以看出培养过程中所存在的一些...
《审计学》是会计学专业的核心课程,是审计学专业和注册会计师专门化方向学生最重要的专业课,通过这门课程的学习,使学生能够应用各种基本的审计方法来处理新情况、新问题,提高学生对审计方法的应用能力,达到学以致用的目的。目前我国大多数学校的审计...
《微生物学》是生物制药专业学生的专业基础课,为后续的《发酵技术》打基础,在教学中要注重与生产实践联系,与后续教学衔接一、《微生物学)「设在三年级,学生在校已经学习了两年多的时问在这两年多的时问里,他们学习完成了《无机化学》《有机化学》等基础...
物业管理是一门实践性很强的学科,其专业知识涉及到建筑施工、设备养护、环境绿化、社会学、管理学、心理学、行为科学等诸多领域.传统的物业管理课堂教学过多采用填鸭式教学,侧重知识的积累和理论的掌握,培养出的学生更擅长于考试,解决实际问题能力不足,远不...