C语言常见易错题.doc_第1页
C语言常见易错题.doc_第2页
C语言常见易错题.doc_第3页
C语言常见易错题.doc_第4页
C语言常见易错题.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C语言常见易错题1. 数据溢出int a = 32767;a = a + 1; 此时a的值为 327682. (-1)&(-1) 值为:1非0的数,逻辑值均为1只有数0,逻辑值为03. 设a=5, b=6, c=7, d=8, m=2, n=2执行 (m = a b) & ( n = c b)结果:n 的值为 2解析:&是短路(shortway)运算符,当&左边表达式的值为0时,不再执行右边的表达式4. 1 / 2 = 0 1.0 / 2 = 0.55. 转义字符遇到字符应注意转义字符问题,比如,ddd就是转义字符常见考法:Q:”a045+045b”有几个字节? A:8个字节(分别是a,045,+,0,4,5,b,0)字符串结束符如上题,”a045+045b”含有最后的字符串结束符0,因而长度为8个字节注意:计算字符串长度时,sizeof会将0计算在内,strlen()则不算Main()char b = “hello, you”;b5 = 0;printf(“%sn”, b); 运行结果:hello解析:b5=0 ;等价于 b5 = 0;6. + i , i +x = 5;y1 = x+ * x+;y2 = +x * +x; 此时y1的值为25,y2的值为497. printfl 考法1x = 11, y = 10;printf(“%d, %d”, (x+, y), y+); 输出结果:11,10解析:1) printf函数按参数从右到左顺序进行分析y+ x+ y | | 10,后y变11 112) 分析结束,输出顺序是从左到右;即:11, 10l 考法2printf(“%4s”, “abc”); / 输出结果 (空格)abcprintf(“%-4s”, “abc”); / 输出结果 abc(空格)printf(“%4s”, “abcde”); / 输出结果 abcdeprintf(“%9.3f”, 12.3456); / 输出结果 1.234e+018. scanfscanf(“%7.2f”, &a); / 错,不能规定精度scanf(“%3d”, &a); / 正确scanf(“%d:%d”, &a, &b); / 输入格式:(整数)整数) 例 12:34scanf(“%3c”, &ch); / 正确。但是ch只取输入字符中的第一个字符 / 例:输入abc,则ch值为a9. 注意switch中的break10. while (a = 1) / 注意这里是赋值号11. for( x = 0, y = 3, i = 0; (y 3)&(x 表达式2 循环体表达式312. 数组int a10 = 0, 1, 2, 3 / 正确。前四个元素赋值,后6个元素全为0int a22 = 1,2,3,4 / 正确 int a 2 = 1,2,3,4 / 正确。第一维可以省略int a2 = 1,2,3,4 / 错误。非第一维不能省略13. 预处理定义宏:#define s(x) x*x表达式 s(a+b) 宏展开为: a + b*a + b 定义宏:#define s(x) (x)*(x)表达式 s(a+b) 宏展开为: (a + b)*(a + b)14. 指针l 若定义: int a10, *p; p = a;则: a + i 是地址*(a+i) 是地址a + i的内容l 数组是指针*(a+i) 和 *(p+i) 是等价的ai 和 pi是等价的l 字符串也是指针若定义: char *sp = “bug”; char s = b,u,g;则: s与sp是等价的15. 函数l 值传递:Void swap1(int a, int b)int c = a;a = b;b = c;void main()int x = 1, y = 2;swap1(x, y);printf(“%d, %d”, x, y); 程序运行输出结果:1,2 可见x与y变量的值没有交换l 地址传递:Void swap2(int *a, int *b)int *c = a;*a = *b;*b = *c;void main()int x = 1, y = 2;swap1(&x, &y);printf(“%d, %d”, x, y); 程序运行输出结果:2,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论