南师大 C语言易错易考点.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言笔试易错考点 作者按:虽然了解以下的知识对于你的编程能力基本不会有什么提高,但我们希望体现的是研究一门学问时的细心和专注。作为程序设计的入门语言C,如果你在学习时能很留意这些细节的知识点,那么可以预测你在将来漫长的计算机学习过程中也会很顺利的。 1. 关于条件表达式。形如:逻辑表达式? 表达式1 : 表达式2。 逻辑表达式的值若为非零(真),则条件表达式的值等于表达式1,若逻辑表达值的值为零(假),则条件表达式的值等于表达式2的值。特别要注意的是条件表达式的结合方向是从右向左结合的。 例:与 y x 0?1:x 0?-1:0 ;的功能相同的if语句是: if x 0 y 1; else if x 0 y -1; else y 0; 解:y x 0?1:x 0?-1:0 与y x 0?1: x 0?-1:0 等价。 2. 关于赋值表达式,将赋值号 右侧表达式的值赋给赋值号左边的变量。赋值表达式的值为执行赋值后被赋值的变量的值。形如a b ,b会被转换为符合a的类型,如果不能转换,要么报警告,要么报错。赋值表达式也是从右向左结合的。 例:下列选项中,不正确的赋值语句是__C__ A ++t B n1 n2 n3 0 C k 1 j D a b+c 1 解:C选项里先执行的是右结合的1 j显然错误,注意B选项是以赋值表达式赋值,是正确的,其整个表达式最终的值是0。 3. 关于逗号表达式,顺序求(表达式1,表达式2……表达式n)的值,则整个表达式的类型和值都为表达式n的值。 例:设有以下定义: main int x 10,y 3,z; printf %d\n,z x%y,x/y ; 输出结果是__3__ 4. 关于实型表达式,只要表达式中有一个运算量是实型(float或double),运算过程中所有的运算量都要转换为double型,表达式的结果也为实型。其余类似,即往宽的地方转换。如果两个整形值相除,其结果被截尾取整,如果该操作数是负数,则截断的方向并无规定。 例:若已定义X和Y为double型,则表达式:x 1,y x+3/2的值是__C__ A 1 B 2 C 2.0 D 2.5 解: /的优先级较高,所以先算3/2,这是两个整形相除,结果是1,而不是1.5。然后算x+1,因为x是double型,所以整形的运算量1要转换为double型,最终结果为double型。 5. 形如a+ x的表达式的等价于a a+x 。 例:设int a 12,则执行完语句a+ a- a*a后,a的值是__-264___ 解:赋值表达式的结合顺序是从右向左结合的。 先执行 a- a*a ,即 a a-a*a,在这一步时 a 12-12*12,即a -132 再执行 a+ , 即 a a+a,在这一步时 a -132+ -132 ,所以a -264 6. 常用字符ASCII码:0——48, 9——57, A——65, a——97, \0或\000——0(代表空操作字符,同时也是字符串的结束标记),小写字母比大写字母的ASCII码大,两者相差32。 例:若有以下定义和语句: char c1 b,c2 e; printf %d,%c\n,c2-c1,c2-a+A ; 则输出结果是___B___ A 2,M B 3,E C 2,e D 输出结果不确定 7. a++就是将a的值先用作表达式的值,然后a的值再加1,++a是先将a的值加1,然后再将a的值作为表达式的值。 例1:main int a 10; int i; i a++ + ++a + a++ + ++a; printf i %d,a %d\n,i,a ; 问i 多少,a 多少? 解:这题的答案是不确定的,a 14,但i根据编译器的不同或者等于45,或者等于48。 例2: 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是__7 和5__ main int x; scanf %d,x ; if x++ 5 printf %d,x ; else printf %d\n,x-- ; 8. 各类运算符的优先级别:详细请看谭老的《C程序设计(第二版)》的P375页。 初等运算符(括号加结构体运算符) 单目运算符(注意逻辑非运算符! 它是除初等运算符外具有最高优先级别的) 算术运算符(先乘除模,后加减,再移位) 关系运算符 逻辑运算符( ,|| ,不包括 ! ) 条件运算符(唯一一个三目运算符,即 ? : ) 赋值运算符 逗号运算符 (即顺序求值运算符) 例:以下十个运算符+ ! ! , ?: || %中优先级别最高和最低的分别是____!____和____,____。 9. static的作用。

文档评论(0)

80092355km + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档