C语言之基本运算和流程控制

 

C语言一共有34种运算符,包括了常见的加减乘除运算

 

一、运算符的分类

主要分为三类:算术运算符,关系运算符,逻辑运算符

运算符根据参与运算数分为:

单目运算:只有一个运算数参与运算;i++

双目运算:有两个运算数参与;a++,b++

三木运算:c中唯一的,问号表达式

1. 算数运算符

 

1> 加法运算 +

 

除开能做加法运算,还能表示正号:+5、+90

2> 减法运算 -

除开能做减法运算,还能表示符号:-10、-29

3> 乘法运算 *

注意符号,不是x,而是*

4> 除法运算 /

注意符号,不是÷,也不是\,而是/

整数除于整数,还是整数。1/2的值是0,这个并不是二分之一

5> 取余运算%

 

  • 什么是取余:两个整数相除之后的余数
  • %两侧只能是整数
  • 正负性取决于%左侧的数值

 

 

6. 注意点

 

1> 自动类型转换

int a = 10.6;

int b = 10.5 + 1.7;

自动将大类型转换为了小类型,会丢失精度

2> 自动类型提升

int b = 10.5 + 10;

将右边的10提升为了double类型

double b = 1.0 / 2;

解决除法的精度问题

3> 强制类型转换

double a = (double)1 / 2;

double b = (double)(1 / 2);

4> 运算顺序

表达式:

  结合性(结合方向):2+3+4

优先级:5+4*8-3

 

2.赋值运算符:

1> 简单赋值

 

int a = 10 + 5;  //  先运算等号右边10+5=15,然后将15赋值给a;

a = b = 10;  //  运算过程是 将10 赋值给 b,然后再讲b=10赋值给a

  等号左边不能是常量,比如10 = 11;

2.>复合赋值

复加减乘除余:a += 4 + 5; //  a = a + 4 + 5

             3> 注意:

 

如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。

总结如下:

  • 实型赋予整型,舍去小数部分。
  • 整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。
  • 字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量。

3. 逻辑运算符:

1> &&逻辑与运算符

2> ||逻辑或运算符

3> !逻辑非运算符

测试运算结果为真,显示‘1’,为假,显示‘0‘

4. 关系运算符:

1. <小于运算符

2. >大与运算符

3. <=小于等于运算符

4. >=大于等于运算符

5. ==等于运算符

6. !=不等于运算符

二、 流程控制

流程控制分为以下三种结构

顺序结构:默认的流程结构。按照书写顺序执行每一条语句。

选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。

循环结构:在给定条件成立的情况下,反复执行某一段代码。

1. 选择结构

if的几种结构

1. if的第1种结构

 if(条件)
  {
    语句1;
    语句2;
    ......
  }
  2. if的第2种结构
  if(条件1)
  {
     语句1;
     语句2;
     ......
  } 
  else
 {
 }
 
  3. if的第3种结构
  if(条件1)
  {
     语句1;
      语句2;
      ......
  }
  else if(条件2)
  {
  }
  else if(条件3)
  {
  }
  else if(条件4)
  {
  }
  else 
  {
  }
 4. if的第4种结构
  if (条件)
   语句1;

if语句举例:

 

#include 

int main()
{
    // 1.提示输入
    printf("请输入分数值:\n");
    
    // 2.接收输入
    int score;
    scanf("%d", &score);
    
    // 3.判断等级 
    if (score>=90 && score<=100) { // [90, 100]
        printf("A\n");
    } else if (score>=80) { // [80, 89]
        printf("B\n");
    } else if (score>=70) { // [70, 79]
        printf("C\n");
    } else if (score>=60) { // [60, 69]
        printf("D\n");
    } else { // (-∞, 59]
        printf("E\n");
    }
    
    return 0;
}


int main()
{
    // 1.提示输入
    printf("请输入分数值:\n");
    
    // 2.接收输入
    int score;
    scanf("%d", &score);
    
    // 3.判断等级 
    if (score>=90 && score<=100) { // [90, 100]
        printf("A\n");
    } else if (score>=80) { // [80, 89]
        printf("B\n");
    } else if (score>=70) { // [70, 79]
        printf("C\n");
    } else if (score>=60) { // [60, 69]
        printf("D\n");
    } else { // (-∞, 59]
        printf("E\n");
    }
    
    return 0;
}
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值