1. /*  C 语句    */ 
  2.  
  3. //  C 语句的作用和分类  
  4. 一个函数包含 声明部分 和 执行部分 。  
  5. C 语句分为以下 5 类:  
  6. 1.控制语句  
  7. if()...else     (条件语句)  
  8. for()...        (循环语句)  
  9. while()...      (循环语句)  
  10. do...while()    (循环语句)  
  11. continue        (结束本次循环语句)  
  12. break           (中止执行switch或循环语句)  
  13. switch          (多分支选择语句)  
  14. return          (从函数返回语句)  
  15. goto            (转向语句,在结构化程序中基本不用goto语句)  
  16.  
  17. 2.函数调用语句  
  18. 函数调用语句是由一个函数调用加一个分号构成。  
  19. 例如:printf("This is a c statement.");  
  20.  
  21. 3.表达式语句  
  22. 由一个表达式加一个分号构成。  
  23. 例如: a=3;  
  24.  
  25. 4.空语句  
  26. ;  
  27. 用来作为流程的转向点,也可用来作为循环语句中的循环体。  
  28.  
  29. 5.复合语句  
  30. 用{}把一些语句和声明括起来成为复合语句(又称语句块)。  
  31. 例如:  
  32. {  
  33.     float pi=3.14159,r=2.5,area;  
  34.     area=pi * r * r;  
  35.     printf("area=%f",area);  
  36. }  
  37.  
  38. //  最基本的语句——赋值语句  
  39.  
  40. 在C 程序中,最常用的语句是:赋值语句和输入输出语句。  
  41.  
  42. #include "stdafx.h"  
  43. #include "math.h"  
  44.  
  45.  
  46. int _tmain(int argc, _TCHAR* argv[])  
  47. {  
  48.     double a,b,c,s,area;                //定义各变量,均为double型  
  49.     a=3.67;                             //对边长a赋值  
  50.     b=5.43;                             //对边长b赋值  
  51.     c=6.21;                             //对边长c赋值  
  52.     s=(a+b+c)/2;                        //计算 s  
  53.     area=sqrt(s*(s-a)*(s-b)*(s-c));     //计算 area  
  54.     printf("a=%f\tb=%f\t%f\n",a,b,c);   //输出三边a,b,c的值  
  55.     printf("area=%f\n",area);           //输出面积area的值  
  56.     return 0;                             
  57. }  
  58.  
  59. // 由于要调用数学函数库中的函数,必须在程序的开头加一条 #include指令,把头文件"math.h"包含到程序中来  
  60. // printf 函数双引号内字符串中的"\t"是转义字符,它的作用是"使输出位置跳到下一个tab位置"  
  61.  
  62. 1.赋值运算符  
  63. 赋值符号=就是赋值运算符,它的作用是将一个数据赋给一个变量。  
  64.  
  65. 2.复合的赋值运算符  
  66. 在赋值赋=之前加上其他运算符,可以构成复合的运算符。  
  67. 例如:  
  68. a+=3    等价于 a=a+3   //使a进行一次自加3的操作  
  69. x*=y+8  等价于 x=x*(y+8)  
  70. x%=3    等价于 x=x%3  
  71.  
  72. 3.赋值表达式  
  73. 由赋值运算符将一个变量和一个表达式连接起来的式子称为"赋值表达式" 
  74. 它的一般形式为 变量   赋值运算符   表达式  
  75. 赋值运算符左侧 应该是 一个可修改的"左值"(left value,简写lvalue)  
  76. 能出现在赋值运算符右侧的表达式称为"右值"(right value,简写rvalue)  
  77. b=a;                //b是左值  
  78. c=b;                //b也是右值  
  79. 赋值表达式中的"表达式",又可以是一个赋值表达式  
  80. a=(b=5)  
  81.  
  82. 4.赋值过程中的类型转换  
  83. 如果赋值运算符两侧的类型一直,则直接进行赋值。  
  84. 如:  
  85. i=234;              //设已定义i为整型变量  
  86.  
  87. 类型转换规则:  
  88. a.将浮点型数据(包括单、双精度)赋给整型变量时,先对浮点数取整,即舍弃小数部分,然后赋予整型变量。  
  89. 如果 i 为整型变量,执行"i=3.56"的结果是使 i 的值为 3,以整型形式存储在整型变量中。  
  90. b.将整型数据赋给单、双进度变量时,数值不变,但以浮点形式存储在变量中。  
  91. 如果有 float 变量f,执行"f=23;"。先将 23 转换成实数 23.0,再按指数形式存储在变量f中。  
  92. 如将 23 赋给 double 型变量d,即执行"d=23;",则将整数23转换成双精度实数 23.0,然后以  
  93. 双精度浮点数形式存储到变量d中。  
  94. c.将一个double型数据赋给 float 变量时,先将双精度数转换成 单精度,  
  95. 即只取 6~7 位有效数字,存储到 float 变量的 4个字节中。  
  96. d.字符型数据赋给整型变量时,将字符的ASCII代码赋给整型变量。如:  
  97. i='A';          //已定义i为整型变量  
  98. e.将一个占字节多的整型数据赋给一个占字节少的整型变量或字符变量时,  
  99. 只将其低字节原封不动地送到被赋值的变量(即发生"截断")。  
  100. 例如:  
  101. int i=289;  
  102. char c='a';  
  103. c=i;  
  104. c 的值为33,如果用"%c"输出c,将得到字符"!"(其ASCII码为33)  
  105.  
  106. 5.赋值表达式和赋值语句  
  107. if((a=b)>0)  
  108. max=a;  
  109. //  先进行赋值(将b的值赋给a),然后判断a是否大于0,如大于0,执行max=a  
  110.  
  111. 区分赋值表达式和赋值语句:  
  112. //  赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号。  
  113. //  一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。  
  114.  
  115. 6.变量赋初值  
  116. 例如:  
  117. int a=3;            //指定a为整型变量,初值为3  
  118. float f=3.56;       //指定f为浮点型变量,初值为3.56  
  119. char c='a';         //指定c为字符变量,初值为'a'  
  120. int a,b,c=5;        //指定a,b,c为整型变量,但只对c初始化,c的初值为5  
  121.  
  122. 如果对几个变量赋予同一个初值,应写成  
  123. int a=3,b=3,c-3;  
  124. 表示a,b,c的初值都是3。不能写成 int a=b=c=3;  
  125.  
  126. int a=3;  
  127. 相当于  
  128. int a;  
  129. a=3;  
  130.  
  131. 又如:  
  132. int a,b,c=5;  
  133. 相当于  
  134. int a,b,c;  
  135. c=5;