热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

运算符、判断与循环

运算符、判断与循环1C运算符的种类、运算优先级和结合性1.1常用运算符分类运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋给变量比较运算符用于表达式的比较
运算符、判断与循环

1 C 运算符的种类、运算优先级和结合性


1.1 常用运算符分类


运算符类型作用
算术运算符用于处理四则运算
赋值运算符用于将表达式的值赋给变量
比较运算符用于表达式的比较,并返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值
sizeof运算符用于求字节长度

1.1.1 算术运算符


运算符术语示例结果
+10+515
-10-55
*10*550
/10/52
%取模(取余)10%31
++前自增a=2;b=++a;a=3;b=3;
++后自增a=2;b=a++;a=3;b=2;
前自减a=2;b=–a;a=1;b=1;
后自减a=2;b=a–;a=1;b=2;

重点说明
/ 运算符:两个整数做除法得到的是整数,即小数部分舍去,只留下整数部分,比如5/3=1;
但除号两侧只要有一侧是浮点类型数据,那得到的结果就有小数部分;

#includeint main(){int a=5,b=3; //两个整型变量double c=5,d=3; //两个浮点型变量printf("%d\n",a/b); //结果:1printf("%lf\n",1.0*a/b); //结果:1.66667printf("%lf\n",c/d); //结果:1.66667return 0;}

% 运算符:运算符两侧要求必须是整型的;

#includeint main(){int a=5,b=3;printf("%d\n",a%b); //结果:2return 0;}

1.1.2 赋值运算符


运算符术语示例结果
=赋值a=2;b=3a=2;b=3
+=加等于a=0;a+=2a=2
-=减等于a=0;a-=2a=-2
*=乘等于a=2;a*=2a=4
/=除等于a=4;a/=2a=2
%=模等于a=3;a%=2a=1

1.1.3 比较运算符

c语言的比较运算符中,“真”用“1”表示,“假”用“0”表示
而凡是非“0”的都为“真”。

运算符术语示例结果
==相等于4==30
!=不等于4!=31
<小于4<30
>大于4>31
<&#61;小于等于4<&#61;30
>&#61;大于等于4>&#61;31

1.1.4 逻辑运算符


运算符术语示例结果
!!a如果a为假&#xff0c;则!a为真;如果a为真&#xff0c;则!a为假
&&a&&b如果a和b为都为真&#xff0c;则结果为真;否则为假
||a||b如果a和b有一个为真&#xff0c;则结果为真;二者都为假&#xff0c;则结果为假
?:条件运算符a>b?a:b如果a>b为真&#xff0c;则执行a;否则执行b

1.1.5 sizeof运算符

该运算符用于求字节长度&#xff0c;比如一个int形数据 4个字节&#xff0c;那sizeof(int)&#61;4,再比如一个double形数据 8个字节&#xff0c;那sizeof(double)&#61;8。

1.2 运算符的优先级


类别运算符结合性
(类型)强制转换
乘除*,/,%从左往右
加减&#43;,-从左往右
比较&#61;&#61;,!&#61;,<,>,<&#61;,>&#61;从左往右
逻辑&&&#xff0c;||从左往右
赋值运算符&#61;,&#43;&#61;,-&#61;,*&#61;,&#61;,%&#61;从右往左
条件运算符?:从右往左
逗号,从左往右

1.3 不同类型数据间的转换与运算

转换的方法有两种:
*自动转换(隐式转换):遵循一定的规则&#xff0c;由编译系统自动完成。
*强制类型转换:把表达式的运算结果强制转成所需的数据类型。
类型转换的原则:占用内存字节数少(值域小)的类型&#xff0c;向占用内存字节数多(值域大)的类型转换&#xff0c;以保证精度不降低。
在这里插入图片描述
隐式转换&#xff1a;

#include int main(){int num &#61; 5;printf("s1&#61;%d\n", num / 2); //结果仍是整型printf("s2&#61;%lf\n", num / 2.0); //结果为浮点型return 0;}

强制转换&#xff1a;

#include int main(){float x &#61; 0;int i &#61; 0;x &#61; 3.6;i &#61; x; //x为浮点型, i为整型&#xff0c;直接赋值会有警告i &#61; (int)x; //使用强制类型转换printf("x&#61;%f, i&#61;%d\n", x, i); //x&#61;3.60&#xff0c;i&#61;3return 0;}

2 判断


2.1 if语句


2.1.1 if语句

描述:一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。

在这里插入图片描述

int a &#61; 1;int b &#61; 2;if (a < b){printf("%d\n", a);}

OJ题1007

2.1.2 if…else语句

在这里插入图片描述

int a &#61; 1; int b &#61; 2;if (a > b){printf("%d\n", a);}else{printf("%d\n", b);}

2.1.3 if…else if…else语句

#includeint main(){int x,y;scanf("%d",&x);if(x<1) y&#61;x;else if(x<10) y&#61;2*x-1;else y&#61;3*x-11;printf("%d\n",y);return 0;}

2.1.4 if嵌套语句

int a &#61; 100;int b &#61; 200;if( a &#61;&#61; 100 ){if( b &#61;&#61; 200 ){/* 如果条件为真&#xff0c;则输出下面的语句 */printf("a 的值是 100&#xff0c;且 b 的值是 200\n" );}}printf("a 的准确值是 %d\n", a );printf("b 的准确值是 %d\n", b );

3 循环


3.1 while和do-while循环结构


3.1.1 while循环

在这里插入图片描述

#include int main(){int a &#61; 1;while (a <&#61; 10){a&#43;&#43;; //a&#43;&#61;1;printf("%d ",a); //输出1&#xff5e;10}return 0;}

3.1.2 do-while循环结构

在这里插入图片描述

#include int main(){int a &#61; 1;do{a&#43;&#43;;printf("a &#61; %d\n", a);} while (a < 10);return 0;}

3.1.3 for循环结构

for循环语法&#xff1a;

for ( init; condition; increment )
{statement(s); //主循环体
}

循环步骤:
*1.init 会首先被执行&#xff0c;且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句&#xff0c;只要有一个分号出现即可。
*2.接下来&#xff0c;会判断 condition。如果为真&#xff0c;则执行循环主体。如果为假&#xff0c;则不执行循环主体&#xff0c;且控制流会跳转到紧接着 for 循环的下一条语句。
*3.在执行完 for 循环主体后&#xff0c;控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空&#xff0c;只要在条件后有一个分号出现即可。
*4.条件再次被判断。如果为真&#xff0c;则执行循环&#xff0c;这个过程会不断重复&#xff08;循环主体&#xff0c;然后增加步值&#xff0c;再然后重新判断条件&#xff09;。在条件变为假时&#xff0c;for 循环终止。

#include int main (){/* for 循环执行 */for( int a &#61; 10; a < 20; a &#43; &#43; ){printf("a 的值&#xff1a; %d\n", a);}return 0;}

3.2 循环控制语句break和continue


3.2.1 break

终止循环或 switch 语句&#xff0c;程序流将继续执行紧接着循环或 switch 的下一条语句。

#include int main (){int a &#61; 10;/* while 循环执行 */while( a < 20 ){printf("a 的值&#xff1a; %d\n", a);a&#43;&#43;;if( a > 15){/* 使用 break 语句终止循环 */break;}}return 0;}

3.2.1 continue

告诉一个循环体立刻停止本次循环迭代&#xff0c;重新开始下次循环迭代。
求100以内所有奇数的和&#xff1a;

#includeint main(){int sum &#61; 0; //定义变量sumfor (int i &#61; 1; i <&#61; 100; i&#43;&#43;){if (i % 2 &#61;&#61; 0) //如果i是一个偶数&#xff0c;执行if语句中的代码{continue; //结束本次循环}sum &#43;&#61; i; //实现sum和i的累加}printf("sum &#61; %d\n", sum);return 0;} &#96;&#96;&#96;


推荐阅读
  • 【妙】bug称它为数组越界的妙用
    1、聊一聊首先跟大家推荐一首非常温柔的歌曲,跑步的常听。本文主要把自己对C语言中柔性数组、零数组等等的理解分享给大家,并聊聊如何构建一种统一化的学习思想 ... [详细]
  • C语言中全部可用的数学函数有哪些?2.longlabs(longn);求长整型数的绝对值。3.doublefabs(doublex);求实数的绝对值。4.doublefloor(d ... [详细]
  • WinMain 函数详解及示例
    本文详细介绍了 WinMain 函数的参数及其用途,并提供了一个具体的示例代码来解析 WinMain 函数的实现。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文介绍了一个使用C语言实现的程序,用于将给定的时间差转换为标准的时分秒格式。通过输入样例和输出样例,详细解释了核心算法和四舍五入的处理方法。 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4277。作者:Bob Lee,日期:2012年9月15日。题目描述:给定n个木棍,求可以组成的不同三角形的数量,最多15根木棍。 ... [详细]
  • 本报告对2018年湘潭大学程序设计竞赛在牛客网上的时间数据进行了详细分析。通过统计参赛者在各个时间段的活跃情况,揭示了比赛期间的编程频率和时间分布特点。此外,报告还探讨了选手在准备过程中面临的挑战,如保持编程手感、学习逆向工程和PWN技术,以及熟悉Linux环境等。这些发现为未来的竞赛组织和培训提供了 valuable 的参考。 ... [详细]
  • Codeforces竞赛解析:Educational Round 84(Div. 2评级),题目A:奇数和问题
    Codeforces竞赛解析:Educational Round 84(Div. 2评级),题目A:奇数和问题 ... [详细]
  • 本文提出了一种基于栈结构的高效四则运算表达式求值方法。该方法能够处理包含加、减、乘、除运算符以及十进制整数和小括号的算术表达式。通过定义和实现栈的基本操作,如入栈、出栈和判空等,算法能够准确地解析并计算输入的表达式,最终输出其计算结果。此方法不仅提高了计算效率,还增强了对复杂表达式的处理能力。 ... [详细]
  • 深入解析C语言中结构体的内存对齐机制及其优化方法
    为了提高CPU访问效率,C语言中的结构体成员在内存中遵循特定的对齐规则。本文详细解析了这些对齐机制,并探讨了如何通过合理的布局和编译器选项来优化结构体的内存使用,从而提升程序性能。 ... [详细]
  • 在C语言中,指针的高级应用及其实例分析具有重要意义。通过使用 `&` 符号可以获取变量的内存地址,而 `*` 符号则用于定义指针变量。例如,`int *p;` 定义了一个指向整型的指针变量 `p`。其中,`p` 代表指针变量本身,而 `*p` 则表示指针所指向的内存地址中的内容。此外,指针在不同函数中可以具有相同的变量名,但其作用域和生命周期会有所不同。指针的灵活运用能够有效提升程序的效率和可维护性。 ... [详细]
  • 在工业过程控制系统中,由于被控对象的环境比较恶劣,干扰源比较多,仪器、仪表采集的信息常会受到干扰,所以在模拟系统中,为了消除干扰,常采用RC滤波电路,而在由工业控制计算机组成的自动 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
author-avatar
鞋-丢-了_151
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有