切换到宽版
  • 19888阅读
  • 74回复

[等级考试]二级C考试专用贴 [复制链接]

上一主题 下一主题
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 15楼 发表于: 2006-09-14
数据类型部分
合法标识符和变量名的判断。这个知识点出选择题的可能性很大。判断也很简单:只有字母,数字,下划线是合法的,而且数字不能打头。
与此相关的另外一个知识点是:C是大小写敏感的,sum和SUM是两个变量。这属于隐形考察,通常会出现在找错型,判断结果型中。
另外还有一个小细节:TC2允许的变量名长度是32字节,但是超过32字节的变量名在编译时不会报错,而运行结果是错误的。
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 16楼 发表于: 2006-09-14
补充一点关于变量名的使用技巧:
不要用简单的类似a,b的变量名,不利于查错,也不利于养成好习惯。
尽量使用英文名称,千万不要把汉语拼音拿出来丢人。
上机的时候要注意,所有的变量,必须先声明才可以使用。
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 17楼 发表于: 2006-09-14
整型数据要注意数制的问题:128 = 0200 = 0x80
重要的知识点是原码,反码,补码的关系。理解了这个,你才能对某些看起来“奇怪”的运行结果有合理的解释。与之相关的是各类型整型数据的取值范围问题。例子请参照“整型数据的溢出”一节的例子。

由于数据保存的特点,整型和字符型是可以精确的保存数值的;而实型数据则不能精确保存。在此提供一个有名的例子:判断一个数值是否不等于0:
整型:if(test != 0)....
实型:if(test < -0.0001 || test >0.0001).....
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 18楼 发表于: 2006-09-14
字符型数据有时会考到“字符个数”的问题,对照书上的“转义字符及其表作用”就OK了。不过似乎这样的烂题把出题人的心理阴暗面暴露无遗
另外要注意一下'a'和"a"的区别,这通常会被出题人当作陷阱。比如“china”占用了 6 个字节。
具体解释参照“字符串常量”一节,不再多说。
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 19楼 发表于: 2006-09-19
自增,自减运算符从原理上说很简单,做这种题就要求细心。例如
int i = 5;
int b = (i++) + (--i);
那么b就是10, i等于5
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 20楼 发表于: 2006-09-19
关于自增。自减运算符,另外一种常见的考察方式就是和类似”+=“的复合赋值运算符结合。
例如:
int x=3, a=4;
a += --x;
那么运行完之后,a为6
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 21楼 发表于: 2006-09-19
顺便说明一下:本来复合赋值运算符是用来提高编译效率的:采用这种类似“逆波兰”式的写法,可以让代码执行效率更高,属于代码优化的范畴。但是被一些阴险的家伙用来出题难为考生,真是无语了。
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 22楼 发表于: 2006-09-19
逗号表达式这一块,书上的例子很好:
(a=3*5,a*4),a+5
最后表达式的值为20。
自己看一下分析,只要这个理解了,该知识点应该就掌握住了
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 23楼 发表于: 2006-09-20
字符数据的输入输出部分,通常会在两个地方做文章:一个是数值类型的转换,比如char和int类型,用printf("%d");的形式输出后,包含了数值的转换,造成输出结果的差别。
二是格式化和转义字符串,要求是遇到相关的题目要明白,出题人在考察考生那个方面的知识,明白了这个,解决就比较容易了。
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 24楼 发表于: 2006-09-20
选择结构部分
最基本的就是逻辑表达式的求值了。首先要区别开逻辑运算和位运算的区别(位运算通常不会深入的考察的)。逻辑运算的结果是“真-TC里面用1表示;假-TC里面用0表示“。位运算的结果是一个具体的数值。
另外,逻辑运算符多数是”两个字符“,比如&&,||,只有一个!是一个字符
位运算都是单字符,比如&,|,与逻辑运算符!对应的是取反:~
移位运算符不在讨论之列
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 25楼 发表于: 2006-09-20
逻辑表达式的求职问题
通常是把表达式求职和数值运算结合起来。具体的说,就是“空运行‘的问题。
在老谭的书的90-91页上有具体的说明,建议考生深入掌握。
这个知识点是出题人喜欢出题的地方,每年有很大的概率从这里出题!!
比如:int a=5, b=4;
if((a-- > b) || (a-- == b)).....
执行完该句之后a为4
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 26楼 发表于: 2006-09-20
if语句在理解上不太难,难点在于一下几点:
如上贴,数值的判断。
复合if语句的逻辑关系判断。
其变形形式,问号表达式的求值。
没有特别的知识点,要求就是心细。

另外要着重强调的是,上机自己编程时,代码风格一定要良好,这样在调试时才会顺手。这一点在调试IF语句时表现的十分明显。
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 27楼 发表于: 2006-09-20
实际上就代码风格本身来说,世界上还没有形成最后的规范,但是基本的几条已经达成了共识。就初学者来说,将所有的大括号单独占用一行,并顺次缩进是最好的代码风格。
这一点请考生不要学习老谭课本上的风格,他起始的大括号都没有单独占一行。
不过这只是我对于初学者的建议,等到考生能力不再限于二级C了,他们应该可以用自己的脑袋思考适合自己的代码风格。
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 28楼 发表于: 2006-09-20
循环是最重要的部分。
建议把WHILE循环跳过去,等到理解了FOR循环,WHILE就很简单了。
FOR循环一个最基础也是最重要的问题,就是循环的执行过程。
在老谭书本的110页上,一共五条。
考试需要掌握这个执行顺序,因为几乎所有的考察项目都是以此为基础的
离线shepherd
发帖
921
啄木币
962
鲜花
230
只看该作者 29楼 发表于: 2006-09-20
与FOR循环紧密联系的就是BREAK和CONITUE语句,但是理解上不存在困难,就不多说了,呵呵。
然后,建议考生把随后的几页的例题,课后练习(老谭的书,从116页到121页),统统弄懂弄熟。反正是想尽办法往脑子里装。
如果有不会的,可以在QQ上给我留言,我把解决办法发给你
快速回复
限100 字节
 
上一个 下一个