C语言:运算符-符号常量-输入输出

运算符

运算符和表达式

运算符是表示某种运算规则的符号

常见的运算有:
赋值运算、算术运算
逻辑运算、关系运算、条件运算
位运算

表达式是由运算符及其所操作的数据(称操作数)组成的式子。表达式还可以运算符的操作数

运算符不仅表示某种运算规则,还有优先级结合性的特征。

算术运算符和算术表达式

在这里插入图片描述
基本算术运算符: + - * / %(求余)

结合方向:从左向右
优先级: * / %,+ -

说明:
如果“/”两边都是整数,结果取整数部分
“%” 要求两侧均为整型数

示例:
计算并输出一个三位数的个位、十位和百位数字之和

分析:
该问题的核心是如何分解出各个位置的数
百位:整除100即可 表达式为:n/100
个位:模取10即可 表达式为:n%10
十位:将三位数去头(百位)或掐尾(个位),再整除或模取10即可 表达式为:n%100/10或n/10%10

应用:

#include <stdio.h>
int main()
{
     int number = 153, b0 , b1 , b2 , sum ;
     b2 = number / 100; 
     b0 = number % 10 ; 
     b1 = number %100 /10;         
     sum = b2 + b1 + b0 ;
     printf("b2=%d,b1=%d,b0=%d, sum=%d\n",b2,b1,b0,sum);
     return 0;
}

复合赋值运算符和复合赋值表达式

在这里插入图片描述

自增自减运算符

在这里插入图片描述
作用:使变量值加1或减1

种类:

  • 前置 ++i, --i
    (先执行i=i+1或i=i-1,再使用i值)
  • 后置 i++,i--
    (先使用i值,再执行i=i+1或i=i-1)

说明:
++ -- 不能用于常量和表达式,如5++,(a+b)++
++ --结合方向: 自右向左
优先级: ++ --,* / % ,+ -

示例代码:

#include <stdio.h>
int main()
{
int m1,m2,m3,m4;
int n=3;
printf( ”m1=%d , n=%d\n”, m1=n++ , n );
n=3;
printf( ”m2=%d , n=%d\n”, m2=n-- , n );
n=3;
printf( ”m3=%d , n=%d\n”, m3=++n , n );
n=3;
printf( ”m4=%d , n=%d\n”, m4=--n , n );
return 0 ;
}

符号常量

这里我们使用示例进行引入概念:

  1. 编程计算并输出半径 r = 5.3的圆周长和面积

分析:半径需要使用变量 r 存储,因此要定义该变量

实际代码为:

#include <stdio.h>
int main()
{
double r = 5.3 ;
printf ( ” Circumference = %f \n”, 2 * 3.1415926 * r ) ;
printf ( ” Circular area = %f \n”,  3.1415926 * r * r ) ;
return 0 ;
}
  1. 编程从键盘输入圆的半径,并输出圆周长和面积

分析:半径需要使用变量存储,定义变量 r 存储

实际代码为:

#include <stdio.h>
int main()
{
double r ;
scanf (%lf ” , &r ) ;
printf ( ” Circumference = %f \n”, 2 * 3.1415926 * r ) ;
printf ( ” Circular area = %f \n”,  3.1415926 * r * r ) ;
return 0 ;
}

比较前两个例题,分析程序后我们发现,程序中出现的常量3.141592,会造成下列麻烦和问题:

  • 很难保证不发生书写错误
  • 常量需要改变时,如改为3.14,需要修改程序中所有的常量
  • 过多使用字面常量,程序可读性变差

于是我们引入符号常量的概念。

宏常量与宏替换

宏定义:

#define 标识符 字符串

说明:
标识符,也称宏名、宏常量、符号常量
标识符与字符串之间必须有一个空格
标识符习惯上全部使用大写的单词命名
宏定义是编译预处理命令,不是C语句

宏替换:在编译阶段,将字符串替换标识符的过程。宏替换仅是字符串的简单替换,不进行数据类型的检查。

那我们再将方才的例题进行修改:
用宏常量实现计算圆周长和圆面积
下面是修改后的代码:

#include <stdio.h>
#define PI 3.141592
int main()
{
double r;
printf(”Input Radius:);
scanf(%lf” , &r );
printf(”Circumference = %f \n”, 2 * PI * r);
printf(”Circular area = %f \n”,  PI * r * r);
return 0 ;
}

可以看到,我们用PI代替了3.141593,省略了输入数字的时间,并且即是后期需要修改数值,也不需要再一个个的进行修改。


逗号表达式

由逗号运算符“,”将多个表达式连接起来:

 表达式1,表达式2,……表达式n;

逗号表达式的语法规则:

  • 先计算表达式1,再计算表达式2,……再计算表达式n;
  • 最后整个逗号表达式的结果取表达式n的值。

了解逗号表达式的语法规则。

#include <stdio.h>
main()
{
      int a,b;
      a=3*5,a*4;
      b=(3*5,a*4);
      printf("a=%d\nb=%d\n",a,b);
}

算术运算符优先赋值运算符

赋值运算优先逗号运算符

标准输入输出函数

字符输入输出

字符常量

字符常量是用单引号“”括起来的单个字符,例如转义字符也是字符常量,是以反斜杠()开头的字符序列

在这里插入图片描述

单个字符输入输出函数

  • getchar(): 从系统隐含指定的输入设备输入一个字符,按回车键表示输入结束
    (注意:不含参数)
  • putchar(x): 将一个字符输出到屏幕的当前光标位置
    (注意:需要参数)

说明

字符数据在内存中是以其对应的ASCII码的二进制形式存储,与整型数据类似,只是所占内存空间不同。因此字符数据即可按字符型数据输出,也可按整型格式输出

示例:
编程从键盘输入一个大写字母,转换为小写字母输出
运行代码为:

#include <stdio.h>
int main()
{
char ch;
printf(”Press a key and then press Enter:);
ch = getchar();	
ch = ch + 32 ;
putchar( ch );
putchar( ’\n’ );
return 0 ;
}

数据的格式化屏幕输出

使用格式:

printf ( 格式控制字符串,输出值参数表 ) ;

细解:
在这里插入图片描述

printf()函数格式说明符(部分)用法表:

在这里插入图片描述

printf()函数格式修饰符用法表:

在这里插入图片描述

数据的格式化输入

使用格式:

scanf ( 格式控制字符串,参数地址表) ;

细解:
在这里插入图片描述
在这里插入图片描述

scanf()函数格式说明符(部分)用法表:

在这里插入图片描述

scanf()函数格式修饰符用法表:

在这里插入图片描述

数值型数据输入结束说明:

  1. 遇到空格符、回车符、制表符(Tab键)
  2. 达到输入域宽
  3. 遇到非法字符
    • 除空格、回车、制表符之外的其他字符
    • 如果是整型,小数点也是非法字符

由于C语言仅是过去的笔记,量很大,不做过度细节叙述。
转载烦请注明出处。如果您觉得对您有所帮助,麻烦点赞支持。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汝嫣兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值