程序设计基础--C语言【三】

news2024/9/22 7:36:41

课堂笔记两次合集

3.运算符

目录

3.运算符

3.1.算术运算符

3.2.赋值运算符

3.3.增1、减1运算符

3.4.关系运算符

3.5.逻辑运算符

3.6.条件运算符

3.7.类型转换

3.8.基本输入、输出函数

3.8.1.字符输出函数putchar()

3.8.2.字符输入函数getchar()

3.8.3.格式化输入函数printf()

3.8.4.格式化输出函数scanf()


3.1.算术运算符

算术运算符及其含义

运算符类型运算

含义

-单目-x取负值
*双目x*y乘法运算
/双目x/y

除法运算

%双目x%y求余(模)运算
-双目x-y减法运算
+双目x+y加法运算

算术运算符使用时需要注意的点:

①两个整数做除法运算,结果会舍去小数部分。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("%d",6/4);
    return 0;
}

运行结果为:

结果果然只保留了整数部分的1。

BUT,当运算中有一个数为实型数据,则结果为double型。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("%d",6.0/4);
    return 0;
}

运行效果则变为:

②%求余运算限定参与运算的两个操作数为整数。左边叫被除数,右边叫除数。

运算时结果为余数,且余数的符号与被除数的符号相同。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("%d",-6%4);
    return 0;
}

运行效果为:

算术运算符的优先级与结合性

运算符类型优先级结合性(运算方向)
-单目从右向左
*/%双目较高从左向右
+-双目最低从左向右

例子:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int a=1,b=-4,c=3;
    int x1,x2;
    x1=(-b+sqrt(b*b-4*a*c))/(2*a);
    x2=(-b-sqrt(b*b-4*a*c))/(2*a);
    printf("X1=%d\nX2=%d",x1,x2);
    return 0;
}

运行可得:

该程序中sqrt为计算平方根的数学库函数。

sqrt需要在程序的开头加上编译预处理命令

3.2.赋值运算符
  1. 简单的赋值运算符“=”                                                                                                                 变量名=表达式;                                                                                                                        “=”右边为任何合法的表达式,也可以是另一个赋值表达式,即“=”可以连用。                           赋值只能左边是变量
  2. 复合赋值运算符                                                                                                                           在简单赋值运算符=前加一个双目运算符,就构了复合赋值运算符。
变量名    复合赋值运算符    表达式

例如:a+=3等价于a=a+3;

3.3.增1、减1运算符

i++与++i是有区别的。

i++是在使用变量i之后,再自身加1;

++i是在使用变量i之前自身加上1

※它们只能运用于简单的变量,常量和表达式是不能做这两种运算的,如8++和(m+n)++都是错的。运算方向是“自左向右”。例如:

int i = 3;
printf(“%d\n”,-i++);

程序运行结果:-i++的值为-3,i的值为4。

3.4.关系运算符

关系运算符

运算符运算含义
<x<y小于
>x>y大于
<=x<=y小于等于
>=x>=y大于等于
==x==y等于
!=x!=y不等于

用于判别真假,用0表示假,用非0表示真。

计算关系表达式的值:成立是则运算结果为1,表示逻辑为真;反之,结果为0,表示逻辑为假。

判断关系表达式的值:用0表示假,用非0表示真。

3.5.逻辑运算符
逻辑运算符
运算符类型运算含义优先级优先级
单目!x逻辑非从右到左
&&双目x&&y逻辑与较高从左到右
||双目x||y逻辑或从左到右

用逻辑运算符连接操作数组成的表达式称为逻辑表达式,逻辑表达式的值只有真假两值之分,用1表示真,用0表示假。

3.6.条件运算符

是C语言中唯一的一个三目运算符。格式如下:

表达式1?表达式2:表达式3

在条件表达式中,第一个和第二个表达式用一个?分隔开,

第二个和第三个用:分隔开,

条件表达式执行过程如下:

  1. 求第一个表达式的值。
  2. 当第一个表达式的值不为0时,求第二个表达式的值;当第一个表达式的值为0时,求第三个表达式的值。
  3. 条件表达式的值是上步所求的第二个或第三个表达式的值。

例如:x>y?100:500

解析:如果x>y成立,则条件表达式的值为100;否则条件表达式的值为500.

3.7.类型转换

表达式中的类型自动转换规则

3.8.基本输入、输出函数
3.8.1.字符输出函数putchar()
putchar(ch);

示例:

#include <stdio.h>
#include <stdlib.h>

int main()
{ 
    char a = 's';
    int i = 115;
    putchar(a);
    putchar('\n');
    putchar('s');
    putchar('\n');
    putchar(i);
    putchar('\n');
    putchar(115);
    putchar(10);
    return 0;
}

运行效果:

 

由上可知,putchar是专门输出字符的输出函数。

3.8.2.字符输入函数getchar()
getchar(ch);

示例:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char a,b,c;
    a=getchar();
    b=getchar();
    c=getchar();
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
    return 0;
}

运行效果:

当用户输入sun时,

当用户输入s u n时,

这说明,一个getchar只能接收一个字符,而且空格也算一个字符。

3.8.3.格式化输入函数printf()
printf("格式控制",输出值参数表);
3.8.4.格式化输出函数scanf()
scanf("格式控制",参数地址表);

&为取址符。

❤注意:

  • 在输入多个整型数据或实型数据时,如果相邻的两个格式转换说明符之间不指定分隔符(如逗号、冒号等),则相应的两个输入数据之间可以用一个或若干个空格、Enter键、或制表符(Tab)作为间隔,但输入多个字符型数据时,数据之间的分隔符作为有效的输入字符

例如:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a;
    char c;
    scanf("%d",&a);
    scanf("%c",&c);
    printf("a=%d\n",a);
    printf("c=%c\n",c);
    return 0;
}

当输入10a时,

当输入10 a时,

由此可以看出注意中所描述的要点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1536269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法-图的强连通分量,图的最小生成树

1.图的强连通分量 (1). 定义 图的强连通分量是图论中的一个重要概念&#xff0c;主要在有向图中进行讨论。具体来说&#xff0c;如果在一个有向图G中&#xff0c;任意两个顶点vi和vj&#xff08;其中vi大于vj&#xff09;之间都存在一条从vi到vj的有向路径&#xff0c;同时也存…

Android App开发的自动化测试框架UI Automator使用教程

Android的自动化测试有很多框架&#xff0c;其中ui automator是google官方提供的黑盒UI相关的自动化测试工具&#xff0c;&#xff08;GitHub主页&#xff1a;case使用java写&#xff0c;今天实践了一下官方文档中样例程序&#xff0c;其中还是有一些小问题需要总结一下的。 环…

为什么签名apk,需要公钥证书和私钥证书,不是私钥就能签名吗?对应的公钥通常包含在APK文件中,这样用户和系统可以验证签名的有效性

在Android开发中&#xff0c;对APK进行签名确实需要使用到公钥证书和私钥证书&#xff0c;而不仅仅是私钥。以下是详细解释&#xff1a; 身份验证&#xff1a;公钥证书作为应用程序的身份证明&#xff0c;可以帮助用户或系统验证安装的APK的真实性。当用户下载并安装APK时&…

第十四届蓝桥杯(C/C++ 大学B组)

试题 A&#xff1a;日期统计 #include <bits/stdc.h> using namespace std;const int numbers[100] {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7, 5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5,8, 6, 1, 8, 3, 0, 3, 7, 9, 2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, …

2016年认证杯SPSSPRO杯数学建模A题(第二阶段)洗衣机全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 A题 洗衣机 原题再现&#xff1a; 洗衣机是普及率极高的家用电器&#xff0c;它给人们的生活带来了很大的方便。家用洗衣机从工作方式来看&#xff0c;有波轮式、滚筒式、搅拌式等若干种类。在此基础上&#xff0c;各厂商也推出了多种具体方案…

思科无线控制器配置学习

文章目录 简单拓扑WLC配置 简单拓扑 WLC配置 WLC#show running-config Building configuration...Current configuration : 11943 bytes ! ! Last configuration change at 16:22:44 UTC Thu Mar 14 2024 by admin ! version 17.9 service timestamps debug datetime msec se…

OrangeDAO联合创始人Don Ho确认出席Hack.Summit() 2024区块链开发者大会

随着Web3技术的快速发展&#xff0c;区块链领域备受关注的盛会——Hack.Summit() 2024 区块链开发者大会即将于 2024 年 4 月 9 日至 10 日在香港数码港隆重启幕。本次大会不仅是 Hack.Summit() 系列在亚洲的首次亮相&#xff0c;更象征着全球区块链行业对亚洲&#xff0c;尤其…

SAP-MM-设置字段默认值

当我们创建订单时&#xff0c;有些字段总是重复输入&#xff0c;每次值也是固定的&#xff0c;例如生产订单 如上图“生产工厂都是1000”如何设置成默认每次进入都是1000呢&#xff1f; 点击字段&#xff0c;F1 查看参数ID“WRK” 输入tcode&#xff1a;SU3 按上图维护数据100…

gimp教程

一、gimp下载安装 二、基本概念和术语 &#xff08;一&#xff09;图像 图像是GIMP要处理的对象。 一个图像对应一个文件&#xff0c;例如一个TIFF或JPEG文件。 一个图像对应一个显示窗口。 可以同时打开多个图像。 &#xff08;二&#xff09;图层 一个图像就像一堆纸叠在…

TypeScript在学习(0)

1.什么是TypeScript? 答:TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集&#xff0c;而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 个人浅见&#xff0c;我一直把ts简单理解成&#xff0c;其实就是javascript上多了…

美易官方:美股维持涨势,三大股指再创新高

在今日的早盘交易中&#xff0c;美股市场继续维持其涨势&#xff0c;三大股指再次刷新历史纪录。市场信心受到一系列积极经济数据的支撑&#xff0c;投资者对未来的经济增长和企业盈利保持乐观态度。 首先&#xff0c;让我们来看一下道琼斯工业平均指数的表现。该指数在早盘交易…

一键批量查询快递单号,一键批量查询,共享备份物流,快递物流尽在掌控

随着网购的普及&#xff0c;快递物流信息的管理变得尤为重要。每天都有大量的快递单号需要查询&#xff0c;如果一个个手动查询&#xff0c;不仅费时费力&#xff0c;还容易出错。为了解决这个问题&#xff0c;我们教您如何批量查询快递单号&#xff0c;并将快递物流信息进行备…

Linux docker4--本地jar包生成镜像和docker部署运行

一、通过springboot创建一个java项目&#xff0c;打成出jar包。 二、将jar包生成docker镜像 &#xff08;1&#xff09;、创建Dockerfile文件 创建Dockerfile文件&#xff0c;将如下的代码内容粘贴进去即可。 注意&#xff1a;本例中我打出的jar包是boot.jar。如果你打出的jar…

开源项目ChatGPT-Next-Web的容器化部署(二)-- jenkins CI构建并推送镜像

一、背景 接着上文已制作好了Dockerfile&#xff0c;接下来就是docker build/tag/push等一系列操作了。 不过在这之前&#xff0c;你还必须在jenkins等CI工具中&#xff0c;拉取源码&#xff0c;然后build构建应用。 因为本文的重点不是讲述jenkins ci工具&#xff0c;所以只…

罗德与施瓦茨CMA180电信无线电测试仪

181/2461/8938产品概述&#xff1a; R&S CMA180 是适用于在 100 kHz 至 3 GHz 范围内操作的无线电系统的无线电通信测试仪。其技术完全基于数字信号处理及先进计算。 简介&#xff1a;R&S CMA180 无线电通信测试仪 R&SCMA180 是适用于在 100 kHz 至 3 GHz 范围内…

MQTT 简介

MQTT 简介 MQTT 是非常简单的协议&#xff0c;最初由 IBM 的两位工程师 Andy Stanford-Clark 以及 Arlen Nipper 在 1999 年为监控输油管道设计的。它被设计的场景就是有限的带宽、轻量级以及很小的耗电量&#xff0c;在那个时候&#xff0c;卫星宽带就是那么小&#xff0c;且…

蓝桥杯算法心得——游戏(优先队列)

大家好&#xff0c;我是晴天学长&#xff0c;优先队列的题&#xff0c;式子化简非常重要&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .游戏 2) .算法思路 附近最小 1.接收数据 2.找出最小的&#…

C#探索之路基础篇(2):接口Interface的概念、实现、应用范围

文章目录 1 概念2 示例代码&#xff1a;2.1 简单接口的实现2.2 简单的使用接口2.3 使用接口呈现多态性2.4 通过接口实现一个数组迭代器2.5 通过接口来实现松耦合的关系2.6 使用接口实现可扩展、便利性 3 使用范围与时机4 注意事项 不知道大家在学习的过程中&#xff0c;有没有反…

鸿蒙Harmony应用开发—ArkTS-全局UI方法(警告弹窗)

通过CustomDialogController类显示自定义弹窗。使用弹窗组件时&#xff0c;可优先考虑自定义弹窗&#xff0c;便于自定义弹窗的样式与内容。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 接口 Custom…

【实例】React 状态管理库 MobX Redux 入门及对比

上一篇&#xff1a;【实例】React 组件传值方法: Props、回调函数、Context、路由传参 MobX MobX 是一个状态管理库&#xff0c;它提供了一种响应式的数据流方案&#xff0c;使得状态的变化能够自动地反映到相关的组件中。 MobX 的核心理念是可观察的状态&#xff08;Observa…