C语言笔记

1)变量为什么必须初始化

   所谓初始化就是赋值的意思。

  1. 常量在C语言中是如何表示

   整数:

     十进制: 传统写法 例:int a = 123;

     十六进制: 前面加0X(0是数字零,X可以大小写)

     八进制: 前面加0(0是数字零)

  浮点数:

传统写法 例:float  a = 3.2;

科学计数法 例:float a = 3.2e3; 或 float a = 3.2e-2;(e表示为10)

     浮点数的存储所带来的问题

       Float和double都不能保证可以精确的存储一个小数。

       

  字符:

单个字符用单引号括起来;字符串用双引号括起来

     例:‘A’表示字符A.(注意:‘AB’是错误的,正确写法“AB”。)

         “A”是正确的,因为“A”代表了‘A’‘\0’的组合(0是数字)

  1. 常量以什么样的二进制代码存储在计算机中

   整数是以补码的形式转化为二进制代码存储在计算机的

   实数是以IEEE754标准转化为二进制代码存储在计算机的

   字符的本质实质也是与整数的存储方式相同

  1. 什么是字节

   字节就是存储数据的单位,并且是硬件所能访问的最小单位。(一个字节 =  8个位)

  1. 什么是ASCII

   ASCII不是一个值,而是一种规定。ASCII规定了不同的字符是使用哪个整数值去表示。

   ‘A’ ——  65; ‘B’ ——  66; ‘a’—— 97; ‘b’ —— 98;

‘0’ —— 48 (0是数字)

  1. 运算符

   算术运算符

     +   —   *   /(除)  %(取余)   

 除法 / 的运算结果和运算对象的数据类型有关,两个数都是int,则商就是int,若商有     小数,则截取小数部分;被除数和除数中只要有一个或两个都是浮点型数据,则则商也是浮 点型,不截取截取小数部分。

   例: 16 / 3 == 5; 16 / 5.0 ==3.20000; 16.0 / 5 == 3.20000

         3 / 5 == 0;  5 / 3 == 1

 取余 % 的运算对象必须是整数,结果是整除后的余数,其余数的符号和被除数相同。

   例: 13 % 3 == 1;  13 % —3 = 1; —13 % 3 == —1; —13 % —3 == —1

         

   关系运算符

 >    >=    <     <=   !=     =

   

逻辑运算符

     !(不等于)  &&(并且)    ||(或)

 && 左边的表达式为假,右边的表达式肯定不执行

  | |  左边的表达式为真,右边的表达式肯定不执行

   赋值运算符

     =  *=(a *= 3等价于a = a * 3)

   优先级别

     算术 > 关系 >  逻辑 > 赋值

三目运算符

  A ? B :C  等价于  if (A) B; else  C;

逗号表达式

  (A,B,C,D) 功能:从左到右执行,最终表达式的值是最后一项的值

  1. 如何使用scanf编写出高质量代码

   1. 使用scanf之前最好先使用printf提示用户以什么样的方式输入

     如:printf("请输入两个值(中间用空格分隔):\n");

         scanf("%d %d", &a, &b);

         printf("a = %d, b = %d\n", a, b);

   2.  Scanf中尽量不要使用非输入控制符,尤其不要 \n

        Scanf  (“ %c”,ch); / /  %c 前面必须加一个空格

   3. 应该编写代码对用户的非法输入做适当的处理

     如: char ch;

          While ( ( ch = getchar( ) )  != ‘\ n’)

             Continue;

     例:

# include <stdio.h>

int main(void)

{

   int a;

   int b;

   char ch;

   

   scanf("%d", &a);

   printf("a = %d\n", a);

   while ( (ch = getchar()) != '\n' )

   continue;

   scanf("%d", &b);

   printf("b = %d\n", b);

   return 0;

}

  1. if的范围问题

   1. If (表达式)

        语句A;

        语句B;

 If默认只控制语句A的执行或不执行,if 无法控制语句B。

   2. If (表达式)

       {

          语句A;

          语句B;

        }

     此时if可以控制语句A和语句B

由上可知:if默认只能控制一个语句,如果想控制多个语句,就必须把这些语句用{}括起来

  1. if的常见问题解释

  1. 空语句的问题

      If ( a > b);

   等价于

      If ( a > b

        ; / / 这是一个空语句

  2. If ( a > b);/ / 这里不应该加分号

       A;

else   

   B;

这是错误的语句

   3.  If (表达式1)

          A;

      Else if (表达式2)

          B;

      Else if (表达式3)

          C;

      Else

          D;

 即便表达式1和2都成立,也只会执行A语句

   4.  If (表达式1)

          A;

      Else if (表达式2)

          B;

      Else if (表达式3)

          C;

     这样写法不会出错,但逻辑上有漏洞

   5.  If (表达式1)

          A;

      Else if (表达式2)

          B;

      Else if (表达式3)

          C;

      Else  (表达式4)/ / 正确写法要么去掉表达式4,要么在else后面加if

          D;

     这样写是错误的

   6.  If (表达式1)

          A;

      Else if (表达式2)

          B;

      Else if (表达式3)

          C;

      Else  (表达式4);/ / 无实际意义的语句

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值