全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之复合运算符

ops/2024/12/17 15:20:02/

(一)、复合运算符

在C++中,可以通过“赋值语句”来修改变量的值。赋值语句的格式:

变量名 = 值或者表达式;其中"="称为"赋值运算符"。

除此之外,在赋值运算符当中,C++有复合赋值运算符,它们实际上是一种缩写形式,使得对变量的改变更为简洁。复合赋值运算符用于将某个变量的当前值与另一个变量进行运算再赋值给该变量,这些运算符结合了基本的赋值运算符"="和运算符(例如:+、-、*、/、%),即在赋值运算符前面加上运算符构成复合赋值运算符,常见的复合运算符有:加法赋值运算符(+=) 、减法赋值运算符(-=)、乘法赋值运算符(*=)、除法赋值运算符( /=)、取模赋值运算符(%=)。例如:

n+=i

        

相当于

n=n+i

n-=i

n=n-i

n*=i

n=n*i

n/=i

n=n/i

n%=i

n=n%i

假设n=7,i=2,上述表格内容可以修改为:

n+=i

相当于

n=7+2(n的值修改为9)

n-=i

n=7-2(n的值修改为5)

n*=i

n=7*2(n的值修改为14)

n/=i

n=7/2(n的值修改为3)

n%=i

n=7%2(n的值修改为1)

实战训练—阅读程序,写出运行结果。

#include<bits/stdc++.h>
using namespace std;
int main() {int n,i;//定义两个变量n和icin>>n>>i;//输入n和i的值分别为9和4n+=i;//n的值为13:n+i=9+4=13cout<<n<<" "<<i<<endl;//输出13 4n-=i;//n的值为9:n-i=13-4=9cout<<n<<" "<<i<<endl;//输出9 4n*=i;//n的值为36:n*i=9*4=36cout<<n<<" "<<i<<endl;//输出36 4n/=i;//n的值为9:n/i=36/4=9cout<<n<<" "<<i<<endl;//输出9 4n%=i;//n的值为1:n%i=9%4=1cout<<n<<" "<<i<<endl;//输出1 4return 0;
}

(二)、赋值复合:C++支持在一个表达式里出现连续的赋值号,即一次给几个变量赋同一个值。此时计算顺序是从右到左,有括号存在的,先计算括号内的表达式。

实战训练—阅读程序,写出运行结果。


#include<bits/stdc++.h>
using namespace std;
int main() {int a=4,b=4;//定义变量a和变量b,并初始化为4 cout<<a<<" "<<b<<endl;//输出4 4 (a=b)=20;//先将b的值赋值a,再将20赋值给a cout<<a<<" "<<b<<endl;//输出20 4 (a+=b)=30;//先将a的值加b的值24赋值给a,再将30赋值给a cout<<a<<" "<<b<<endl;//输出30 4 return 0;
}

(三)、逗号表达式:

在C++中,允许用逗号连接几个表达式,构成一个更大的表达式,称为“逗号表达式”。 其格式如下:表达式1,表达式2,…表达式n;各个表达式的计算顺序是从左往右,最终整个表达式的值是“表达式n”的值。

实战训练—阅读程序,写出运行结果。


#include<bits/stdc++.h>
using namespace std;
int main() {int a=4,b=4;//定义变量a和变量b,并初始化为4 int c =(a*20,b+30); //先计算表达式a*20的值为80,再计算表达式b+30的值为34,将表达式2的值34赋值给c int d =(a+30,b*20); //先计算表达式a+30的值为34,再计算表达式b*20的值为80,将表达式2的值80赋值给d cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;//输出 4 4 34 80return 0;
}

http://www.ppmy.cn/ops/142671.html

相关文章

网络安全协议之比较(SSH、PKI、SET、SSL)

一、SSH介绍 什么是SSH&#xff1f;   传统的网络服务程序&#xff0c;如&#xff1a;ftp、pop和telnet在本质上都是不安全的&#xff0c;因为它们在网络上用明文传送口令和数据&#xff0c; 别有用心的人非常容易就可以截获这些口令和数据。而且&#xff0c;这些服务程序的…

MySQL笛卡尔积

MySQL的笛卡尔积是通过将两个表的所有行组合生成的结果集。它是一种比较耗时的操作&#xff0c;因此通常建议在实际应用中尽量避免使用笛卡尔积。 在MySQL中&#xff0c;可以通过使用CROSS JOIN来实现笛卡尔积。例如&#xff0c;假设有两个表A和B&#xff0c;可以使用以下语法…

Linux 网络流量控制 - 实现概述

摘要 Linux 提供了一整套丰富的流量控制(traffic control)功能。本文档概述了相应的内核代码设计&#xff0c;描述了其结构&#xff0c;并通过描述一种新的排队策略来说明新元素的添加。 1 引言 最近的Linux内核提供了多种流量控制功能。Alexey Kuznetsov&#xff08;kuznet…

ffmpeg C语音 读取视频帧源码

文章目录 前言主体1. AVPacket作用&#xff1a;相关字段&#xff1a;作用场景&#xff1a; 2. av_read_frame函数原型&#xff1a;作用&#xff1a;参数&#xff1a;返回值&#xff1a;相关结构体&#xff1a; 3. av_packet_unref函数原型&#xff1a;作用&#xff1a;参数&…

游戏引擎学习第48天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 我们正在进行碰撞检测的工作&#xff0c;昨天我们几乎完成了一部分代码。由于一些原因&#xff0c;昨天的直播结束时未能完成所有内容。今天我们将继续进行&#xff0c;首先回顾一下之前的进展。我们需要让角色能够正确地与…

list comprehension

python列表推导式&#xff08;list comprehension&#xff09; 列表推导式是一种简洁且高效的创建列表的方式。它的基本语法如下&#xff1a; [expression for item in iterable if condition]案例如下&#xff0c;实现对第一列加1的操作。 a[(i,i**0.5) for i in range(0,1…

opencv-python的简单应用

opencv-python的简单应用 图片矫正原理代码输出结果 添加水印原理代码输出结果 识别图片颜色并绘制轮廓原理输出结果 图片矫正 原理 通过选取道图片的角点&#xff0c;再通过得到的点来进行变换得到变换矩阵&#xff0c;最后将图片按照变换矩阵进行变换&#xff0c;得到矫正后…

大模型运用-Prompt Engineering(提示工程)

什么是提示工程 提示工程 提示工程也叫指令工程&#xff0c;涉及到如何设计、优化和管理这些Prompt&#xff0c;以确保AI模型能够准确、高效地执行用户的指令&#xff0c;如&#xff1a;讲个笑话、java写个排序算法等 使用目的 1.获得具体问题的具体结果。&#xff08;如&…