简单程序设计——顺序结构(一)

一·赋值语句

在C++语言中,“=”作为赋值运算符,而不表示“等于”判断。赋值语句是由赋值表达式再加上分号构成的表达式语句,它是程序中使用最多的语句之一。

  1. 变量=表达式;

在赋值语句的使用中,需要注意以下几点:
 1)由于赋值运算符“=”右边的表达式也可以是赋值表达式,因此,下述形式 :
变量=(变量=表达式);
是成立的,从而形成嵌套的情形。其展开之后的一般形式为:
变量=变量=…=表达式;
  例如,“a=b=c=d=e=5;”,它实际上等价于:e=5;d=e;c=d;b=c;a=b;
2)在进行赋值运算时,如果赋值运算符两边的数据类型不同,系统将会自动进行类型转换,即将赋值运算符右边的数 据类型转换成左边的变量类型。当左边是整型而右边是实型时,将去掉小数部分并截取该整型对应的有效位数。
3)说明:
结合方向:自右向左
左侧必须是变量,不能是常量或表达式

例· 数学中经典的“鸡兔同笼”问题,已知头共30个,脚共90只,问笼中的鸡和兔各有多少只?
  【分析】 设鸡为j只,兔为t只,头为h,脚为f,那么有:
  	j+t=30	①
     2j+4t=90	②
  假设笼中30 个头全都是兔,那么都按每头4只脚计算,总脚数为(4h),与实际脚数(f )之差为(4h-f),如果这个差=0,则笼中全是兔(即鸡为0只);如果这个差值 >0,说明多计算了脚数,凡是鸡都多计算了两只脚,用它除以2就能得到鸡的只数,算法为:① j=(4*h - f)/2 //先用脚数差值除以2算出鸡的只数
   ② t=h - j //再用总头数减鸡数算出免的只数
  注意这两步运算的先后顺序。程序如下:
#include                       //使用getchar()语句, 须调用cstdio库
  #include                     //使用cin,cout,须调用iostream库
  using namespace std;
  int main()
  {   int h,f,j,t;                                         //定个变量
      h=30;f=90;                                     //赋初始值
      j=(4*h-f)/2;                                      //计算鸡的只数
      t=h-j;                                               //计算免的只数
      cout<<"j="<

二·运算符和表达式

运算符纵览

1.算术运算符
用于各类数值运算。包括加(+)、减(-)、乘()、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。
2.关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,
=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(??。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)二种运算。
9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(->,.)等几种。

1. 算术运算符

1)、模运算符
求余的运算符“%”也称为模运算符,是双目运算符,两个操作数都是整型数。a%b的值就是a除以b的余数,5%2余数为1。其操作对象只能是整型数,而其他四种运算符对int,float,double,char都适用。
2)、除法运算符
C++语言的除法运算符有一些特殊之处,即如果a、b是两个整数类型的变量或常量,那么a/b的值是a除以b的商。例如, 5/2的值是2,而不是2.5,而5.0/2或5/2.0的值是2.5。
3)、自增自减运算符
自增、自减运算符用来对一个操作数进行加1或减1运算,其结果仍然赋予该操作数,而且参加运算的操作数必须是变量,而不能是常量或表达式。
1)自增运算符。例如,x++表示在使用x之后,使x的值加1,即x=x+1;++x表示使用x之前,先使x的值加1,即x=x+1。
2)自减运算符。例如,x–表示在使用x之后,使x的值减1,即x=x-1;–x表示使用x之前,先使x的值减1,即x=x-1。

前置 ++i, --i (先执行i+1或i-1,再使用i值) 
后置 i++, i-- (先使用i值,再执行i+1或i-1)
++i与i++的区别在于: 
如果++i与i++又作为分量参加其他运算的话, 
++i是先令i加1然后参加其他运算; 
 i++是先令i参加其他运算,而后再令i加1。 
例:  x=i++;   //结果等价于{ x=i; i=i+1; } 
 x=++i;   //结果等价于{ i=i+1; x=i; } 
++ -- 只能用于变量,不能用于常量和表达式 因为表达式在内存内没有具体空间,常量所占的空间不 能重新赋值 
如5++ (  ),(a+b)++ (  ) ,(-i)++ (  )  ++ --结合方向:  自右向左 例 -i++   -(i++)  
优先级:++ -- ------>* / % ----->+ -

4)、复合算术赋值。 例如,a+=1,相当于a=a+1; a+=b,相当于a=a+b。
复合赋值运算符

种类:+=  -=  *=  /=  %=         
<<=  >>=  &=  ^=  |=  //位运算 
含义: exp1 op= exp2  , exp1 = exp1  op  exp2 
 注意: 两个符号之间不可以有空格 ,exp2若是包含若干项的表达式,则相当于它有括号     
a+=3        等价于  a=a+3    
 x*=y+8      等价于  x=x*(y+8)    
 x%=3        等价于  x=x%3 
优点: 
简化程序,使程序精炼; 
 提高编译效率。 

2. 关系运算符

关系运算符用于数值的大小比较。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种,它们都是双目运算符。
 关系运算符运算的结果是整型,值只有两种:0或1,0代表关系不成立,1代表关系成立。
请看下面的例子:

int main()
{     int n1=4,n2=5,n3;
      n3=n1>n2;                       //n3的值为0
      n3=n1

3. 逻辑运算符

C++语言中提供了三种逻辑运算符:
与运算(&&)、或运算(||)、非运算(!)。与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。 非运算符(!)为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:
   按照运算符的优先顺序可以得出:
    a>b && c>d等价于(a>b) && (c>d)
    !b==c||d     a+b>c && x+yc) && ((x+y) 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。其求值规则如下:
a) 与运算&&参与运算的两个量都为真时,结果才为真,否则为假。例如,5>0 && 4>2,由于5>0为真,4>2也为真,相与的结果也为真。
b) 或运算||参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>0||5>8,由于5>0为真,相或的结果也就为真
c) 非运算!参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。

4. 位运算符

简单程序设计——顺序结构(一)_第1张图片

5. 运算的简写

简单程序设计——顺序结构(一)_第2张图片
算术运算符、关系运算符、逻辑运算符和赋值运算符的优先级如下:
  赋值运算符 逻辑运算符 关系运算符 算术运算符
低 > > > > 高
  关系运算符的结合性为:自左至右。

6. 常用库函数

简单程序设计——顺序结构(一)_第3张图片

你可能感兴趣的:(随堂笔记)