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

本文详细介绍了C语言中的各种运算符(算术、赋值、增减、关系、逻辑、条件),类型转换规则,以及基本的字符输出函数putchar()、字符输入函数getchar()、格式化输入输出函数printf()和scanf()的使用。通过实例展示了这些概念在编程中的应用。
摘要由CSDN通过智能技术生成

课堂笔记两次合集

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时,

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值