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.