- 5
- 0
- 约4.12千字
- 约 5页
- 2018-03-08 发布于河南
- 举报
c语言常考易错的点汇总
1 不许对几个变量同时赋同一个初值。 如:int i=j=k=0;2 注:e或E之前必须有数字,且后指数必须为整数) 例如:3.5E-5 2e3 E2 3.6e3.5 .e6 e3 a与A是不同的字符常量 abc和?a均错4 ab\0efg字符串长度为2而ab\011efg长度为六。5 注意: 在“/”运算中,若操作数均为整数,则执行整除运算,舍去小数部分。例如:5/3=1 1/2=0 %是取余数运算符,只能作用于两个整数。运算结果的符号与被除数的符号一致。注意:“%”运算不能用于float 和 double型数据 5%3=2; 5%-3=2; -5%3=-2 ; 而,5%3.0是不允许的。 6 赋值表达式的值为被赋值的变量的值例如:a=b=c=6 (可以连续赋值) a=(b=4)+(c=6) a=(b=4)*(c=6)7 例如:若a=12,计算表达式a+=a-=a*a,运算后a的值? 第一步: a-=a*a a=a-a*a=12-12*12=-132 第二步: a+=-132 a=a+(-132)=-2648 逗号表达式的值为:表达式n的值 例如:a=3*5,a*4表达式的值为60 a为15 a=3*5,a*4,a+5 表达式的值为20 a为15 x=(a=4%3 , a+1, a*10) x=10 a为19 main( ) {int a=3,b=4,c; c=(a+=b,a-b) a=7 c=3 b=b+a,c+a; b=11 表达式的值为10 printf(b=%d,c=%d\n,b,c); 结果为b=11;c=3 }10 float x=8.6 ; int y; y=(int)x ; x还是等于8.611 ++ 、--只能用于变量,而不能用于常量或表达式。12 i=2;k=i++ +i++ +i++;结果k=6;i=513 a+++b=(a++)+b 从左尽可能多的组成一个运算符。14 -%m.nf 无符号则右对齐 有则左对齐 共m位 小数占n位 如:%d按整型数据的实际长度输出。 %md m为指定的输出字段的宽度.若数据的位数小于m,则左端补以空格;若大于m,则按实际位数输出。 %ld输出长整型数据.15 printf(“%e”,123.456); 输出:1.234560e+002一共十二位 整数、小数、二指数分别占1、6、3位(注意补零的方式)16 %g自由选择%e和%f占宽度较小的,且不带0 最简输出。上式中结果则为123.45617 scanf 可以指定域宽 但不能指定精度。如%3d可以,但是%8.2f不行18 %d%d%d和%d,%d,%d可不一样,后者在输入时要输进去 “,”。19 输入时格式控制符中不能加“\n” 20 运算顺序:非 运算 关系 与 或 赋值21 结合性:与和或是左结合,非 右结合22(1) abc a非0时再判断 b, a、b均非0再判断c(2) a||b||c 若a为非0,不必判断 b和 c,结果一定为 1 此时注意若b和c为表达式时是不计算的,还是原值。例:已知 :a=1,b=2,c=3,d=4,m=1,n=1执行(m=ab)(n=cd) 之后 m=?n=? 由于 ab的值为 0,的结果一定为0,即 m=0(n=cd)不再运算,n维持原有的值,即 n=1。23 条件表达式中的表达式1的类型可以与表达式2和表达式3的类型不同,条件表达式值的类型为二者中较高的类型。如: xy ? 1.2 : 6 , 当xy成立时条件表达式的值为1.2 ,否则为实型数据6.0。24 switch 语句中一定要在case后留一个空格。25 一般形式: goto标号; 其中:标号用标识符表示,即由字母、数字和下划线组成,且首字符必须为字母或下划线。不能用整数作标号功能:当程序执行到语句时,改变程序自上而下的执行顺序,执行语句标号指定的语句,并从该语句往下顺序执行程序。26 for循环的三个表达式均可以省略。 (第六章有编程的作业)27 C语言中不允许对数组的大小作动态定义。28 数组名是数组的首地址,是一个地址常量。29 int a[2][3]={5,6,7,8}; 得到的数组为: 5 6 7 8 0 030 字符串实际占有单元的数量等于字符串长度+1。31 用单个字符对字符数组初始化例如:char ch[6]={C,H,I,N,A};初值的个数不能超过数组元素的个数,用单个字符对字符数组初始化时,大括号不能省略,也不能直接带上\0.32 scanf(?%s?,a);/*键盘输入的字符串存入a数组*/printf(?%s?,a);/*输出a数组中的字符串*/ 33 puts
原创力文档

文档评论(0)