手记

C语言入门课程第三天:运算符及其运算。

1.C语言中,运算符的作用是指定运算的处理方式,具体有以下五种:
算术运算符、赋值运算符、关系运算符、逻辑运算符、 三目运算符等5种。

2.算术运算符:包含+、-、*(乘法运算符)、/、%(求余运算符、也称模运算符)、++(自增运算符)、--(自减运算符)

1)除法运算中注意:如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如9/2 =4;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。
2)取余运算中注意:该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。
算法例子:

#include <stdio.h>
int main()
{
    int x,y;
    x = 10;
    y = -3;
    printf("x+y=%d\n",  7  );  
    printf("x-y=%d\n",  13 );
    printf("x*y=%d\n", -30 );
    printf("x/y=%d\n", -3  );
    printf("x%y=%d\n",  1  );  
    return 0;    
}

输出结果:x+y=7 x-y=13 x*y=-30 x/y=-3 x%y=1

自增与自减运算符:自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下两种形式:
1.++(或--)变量:先运算再取值,即变量先自增(或自减)1后再取值
2.变量++(或--):先取值再运算,即变量先取值后再自增(或自减)1

注意:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。
例子:

#include <stdio.h>
int main()
{
    int a=100;
    printf("%d\n",a++);
    printf("%d\n",++a);
    printf("%d\n",--a);
    printf("%d\n",a--);
    printf("%d\n",a+1);//取值改变,但变量的值并不改变
    printf("%d\n",a);
    return 0;
}

输出结果为:100、102、101、101、101、100

3.赋值运算符:分简单赋值运算符、复合赋值运算符两种
简单运算符就是“=”
复合运算符:复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。例子:a+=5,意思是a=a+5,即将a与5相加后再赋值给a。
注:复合运算符中运算符和等号间没有空格
例子:

#include <stdio.h>
int main()
{
    int x = 10;
    int y = 10;
    x = x*2;//使用简单赋值语句实现x乘以2。
    y *= 2;//使用复合赋值语句实现y乘以2。
    printf("x=%d\n", x);
    printf("y=%d\n", y);
    return 0;
}

输出结果为x=20,y=20
4.关系运算符:含>、>=、<、<=、==(等于)、!=(不等于)
关系表达式的值是“真”还是“假”,在C程序用整数1和0表示。如:

int a = 10;
int b = 4;
printf("%d\n",a>b);//输出1
printf("%d\n",a==b);//输出0

输出结果:1,0
注意:>=,<=,==,!=这种符号之间不能存在空格。
例子:

#include <stdio.h>
int main()
{
    int x = 5;
    int y = 5;
    int z = 10;
    printf("x是否大于y:%d\n", x>y); //x是否大于y
    printf("y是否大于等于x:%d\n", y >= x); //y是否大于等于x
    printf("y是否小于z:%d\n", y<z); //y是否小于z
    printf("z是否小于等于x:%d\n", z <= x); //z是否小于等于x
    printf("z是否等于x+y:%d\n", z == x + y); //z是否等于x+y
    return 0;
}

输出结果:x是否大于y:0 y是否大于等于x:1 y是否小于z:1 z是否小于等于x:0 z是否等于x+y:1

5.逻辑运算符:计算机看不懂7<x<100,要以逻辑运算符来表示,包含&&(与)、||(或)、!(非),相当于高中数学的且、或、非。
所以7<x<100就可以写成x>7&&x<100

1) 与运算(&&):参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;

2) 或运算(||):参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;

3) 非运算(!):参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。
例子:

#include <stdio.h>
int main()
{
    int height =175;   //身高为175cm
    int money = 1500000;  //银行存款为150万
    printf("是否符合条件:%d\n",height>=180&&money>=1000000);  //填写算式
    return 0;    
}

输出结果:是否符合条件:0

6.三目运算符(三元运算符):我们购物的时候经常会说如果这个物品大于多少钱就不买了,条件就是大于多少钱,结果就是不买了。这用C语言表示出来就需要用到三目运算符(?:)。
其格式为:表达式1?表达式2:表达式3;
执行过程:先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。
例子:

#include <stdio.h>
int main()
{
    int money =  12    ; //定义兜里的钱
    double cost =   11.5    ;  //定义打车回家的费用
    printf("能不能打车回家呢:");
    printf("%c\n",money>=cost?'y':'n');//字符要用''包起来
    return 0;
}

输出结果:y

7.运算符间的优先级:如图!

标号代表优先级1最高10最低。
总结:与小学运算法则基本相同。

5人推荐
随时随地看视频
慕课网APP

热门评论

#include <stdio.h>
int main()
{
    printf("你好棒哦!/n是你自己写的吗?");
    return 0;
}


查看全部评论