c语言从0->1入门——表达式与操作符

简介: c语言从0->1入门——表达式与操作符

关于作者:

2019NOIP退役成员,学习c语言已有多年经验, 更懂得考试的题目,和初学者学习时所遇到的问题

华为云享专家,以及CSDN的新星创作者,有写博客的一定能力

关于本栏目

本栏目的宗旨是带你入门c语言,作者打算用题海+c语言的概念来完成本栏目,

适用人群: 面向广大的编程爱好者和大学生来进行创作

学完本栏后你能达到的水平:计算机二级水平左右,入门c语言学习

题目:主要来源于网络和c语言的入门算法题目

# 写在前面的话(第五天)
今天是各位彦祖学习c语言的第五天,记住我们的宗旨:努力去做,让一切交给时间来评判!

今天我们要学习的是表达式与操作符希望各位彦祖能完成配套的简单练习题目。
内容有点多,坚持下去!

表达式

算术表达式

何为算术表达式:

"+" "-" "*" "/" 和 "%"
我主要讲一下 / 和 %(模)

对于整数来讲相除是取倍数,取模是取余数
`int a=23/10;
int b=23%10;`
对应的 a=2,b=3

对于浮点数来说:
除,依然是浮点数,浮点数不能进行取模操作
double c=2.4/1.2;
对应的 c=2.000000

赋值表达式

用等号可以进行赋值运算,等号在这里被叫做赋值运算符

int age = 17;

在这里的age我们称之为左值,一般来说左值对应这一块内存,我们修改左值的值对应的就是修改那块内存所对应的值

简单来说:
左边为要修改的内存,右边为修改值
#include<stdio.h>
int main()
{
    int a = 1;
    int b = 2;
    int c = a + b;
    printf("%d", c);
    return 0;
}

赋值与运算符的合并:
在这里插入图片描述

关系表达式

在这里插入图片描述

#include<stdio.h>
int main()
{
    printf("%d", 17 > 18);
    return 0;
}

在这里插入图片描述

条件表达式

这个初学者可以不掌握,用逻辑表达式也可以解决

a ?b : c;
如果a为真,则表达式值为b
如果a为假,则表达式值为c

#include<stdio.h>
int main()
{
    int a = 1, b = 2, c = 3;
    int w = b > a ? c : 1;
    printf("%d", w);
    return 0;
}

在这里插入图片描述

逻辑运算符

在这里插入图片描述

#include<stdio.h>
int main()
{
    printf("%d\n", !1);
    printf("%d\n", 1 && 0);
    printf("%d\n", 1 || 0);
    return 0;
}

在这里插入图片描述

操作符

自增,自减

a = a + 1;
a++;或者++a;

a=a-1;
a--;或者--a;

#include <stdio.h>
int main()
{
    int a = 10, b = 20;
    printf("a=%d, b=%d\n", a, b);
    ++a;
    --b;
    printf("a=%d, b=%d\n", a, b);
    a++;
    b--;
    printf("a=%d, b=%d\n", a, b);
    return 0;
}

++ 在变量前面和后面是有区别的:

++ 在前面叫做前自增(例如 ++a)。前自增先进行自增运算,再进行其他操作。
++ 在后面叫做后自增(例如 a++)。后自增先进行其他操作,再进行自增运算。

#include<stdio.h>
int main()
{
    int a=10;
    printf("%d",++a);
    printf("%d",a--);
    return 0;
}

位运算

有点难,初学者可以浅尝辄止:
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>
 
int main()
{
 
   unsigned int a = 60;    /* 60 = 0011 1100 */  
   unsigned int b = 13;    /* 13 = 0000 1101 */
   int c = 0;           
 
   c = a & b;       /* 12 = 0000 1100 */ 
   printf("Line 1 - c 的值是 %d\n", c );
 
   c = a | b;       /* 61 = 0011 1101 */
   printf("Line 2 - c 的值是 %d\n", c );
 
   c = a ^ b;       /* 49 = 0011 0001 */
   printf("Line 3 - c 的值是 %d\n", c );
 
   c = ~a;          /*-61 = 1100 0011 */
   printf("Line 4 - c 的值是 %d\n", c );
 
   c = a << 2;     /* 240 = 1111 0000 */
   printf("Line 5 - c 的值是 %d\n", c );
 
   c = a >> 2;     /* 15 = 0000 1111 */
   printf("Line 6 - c 的值是 %d\n", c );
}

在这里插入图片描述

运算符的优先级

最后,今天学了这么多运算符,肯定是要有先后操作的,我们来看一下他们的优先级顺序:
在这里插入图片描述

从上到下进行运算,如果记不住的话,可以用( )

例题:

计算(a+b)*c
计算分数的浮点数值
成绩计算

相关文章
|
1月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
52 2
|
3月前
|
存储 C语言 索引
【C语言篇】操作符详解(下篇)
如果某个操作数的类型在上⾯这个列表中排名靠后,那么⾸先要转换为另外⼀个操作数的类型后执⾏运算。
74 0
|
3月前
|
程序员 编译器 C语言
【C语言篇】操作符详解(上篇)
这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
258 0
|
29天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
35 10
|
1月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
30 1
|
1月前
|
存储 编译器 C语言
【C语言】简单介绍进制和操作符
【C语言】简单介绍进制和操作符
161 1
|
1月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
2月前
|
程序员 C语言
【C语言基础考研向】06运算符与表达式
本文介绍了C语言中的运算符分类、算术运算符及表达式、关系运算符与表达式以及运算符优先级等内容。首先概述了13种运算符类型,接着详细说明了算术运算符的优先级与使用规则,以及关系运算符和表达式的真假值表示,并给出了C语言运算符优先级表。最后附有课后习题帮助巩固理解。
105 10
|
1月前
|
存储 编译器 C语言
初识C语言5——操作符详解
初识C语言5——操作符详解
174 0
|
2月前
|
C语言
C语言程序设计核心详解 第二章:数据与数据类型 4种常量详解 常见表达式详解
本文详细介绍了C语言中的数据与数据类型,包括常量、变量、表达式和函数等内容。常量分为整型、实型、字符型和字符串常量,其中整型常量有十进制、八进制和十六进制三种形式;实型常量包括小数和指数形式;字符型常量涵盖常规字符、转义字符及八进制、十六进制形式;字符串常量由双引号括起。变量遵循先定义后使用的规则,并需遵守命名规范。函数分为标准函数和自定义函数,如`sqrt()`和`abs()`。表达式涉及算术、赋值、自增自减和逗号运算符等,需注意运算符的优先级和结合性。文章还介绍了强制类型转换及隐式转换的概念。