目录
运算符和操作数
乘除运算符
除法运算的商和余数
使用printf函数输出%
获取整数的最后一位数
多个转换说明
练习
单目运算符
赋值运算符
表达式和赋值表达式
表达式语句
进行加法运算的“+”,减法运算的“-”,以及“* /”等符号,称为运算符。接下来我们来学习基本的运算符。
读取两个整数的值显示它们的和差积商以及余数。
int main()
{
int vx, vy;
puts("请输入两个整数:");
printf("整数1:"); scanf("%d",&vx);
printf("整数2:"); scanf("%d",&vy);
printf("vx + vy = %d\n", vx + vy);
printf("vx - vy = %d\n", vx - vy);
printf("vx * vy = %d\n", vx * vy);
printf("vx / vy = %d \n", vx / vy);
printf("vx %% vy = %d\n", vx % vy); //格式化字符串中若有两个连续的%%,则只显示一个%
return 0;
}
vx - vy只是从vx中减去vy的值,并不是实际上的求差运算,如果vy的值比vx大的话结果就为负值。
像“+、-、*、/”这样能够进行运算的符号称为运算符。
作为运算对象的常量或变量称为操作数。
运算符左边的操作数称为第一操作数或做左操作数,运算符右边的操作数称为第二操作数或右操作数。
双目*运算符 a*b a和b的乘积 |
/运算符 a/b a除以b所得到的商(整数之间的运算舍弃小数部分) |
%运算符 a%b a除以b所得到的余数(a和b必须都是整数) |
1.“/”是求商运算符,只取整数部分。
2,.“%”是求余运算符,5%3的结果是2,3%5的结果是3。
在上面的一段代码中格式化字符串写的是%%,而单独一个%具有转换说明的作用,不需要转换说明时而只像输出%d时就必须使用两个%d。
注意:当使用不具有转换说明的puts函数时,会直接输出%d%d。
让我们来用求余运算来解决这个问题
#include
int main()
{
int no;
puts("请输入一个整数:");
printf("整数:");
scanf("%d", &no);
printf("该整数的余数是%d", no % 10);
return 0;
}
读取两个整数并显示它们的商和余数
#include
int main() { int vx, vy; puts("请输入两个整数:"); printf("整数1:"); scanf("%d", &vx); printf("整数2: "); scanf("%d", &vy); printf("vx / vy 的商是%d余数是%d", vy / vy, vx % vy); return 0; }
printf("vx / vy 的商是%d余数是%d", vy / vy, vx % vy);
这里的格式化字符串包含了两个转换说明%d,分别对应了vx和vy两个实参。
另外,在使用scanf函数输入数值时,也可使用两个转换说明,比如:
scanf(“%d%d”, &vx, &vy);
编写一段程序,读取两个整数x和y,显示出前者是后者的百分之几。
我们来编写一个对整数取相反数的程序。
#include
int main()
{
int num;
puts("请输入一个整数:");
scanf("%d", &num);
printf("该整数的相反数是%d。\n", - num);
return 0;
}
目前为止,我们用到的运算符都需要两个操作数,称为双目运算符。
在C语言中,还有用到一个操作数的运算符称为单目运算符,以及用到三个操作数的三目运算符。
在上面代码中用于对数值取相反数的运算符就是单目运算符。
在前面中学习的“=”就称为基本赋值运算符。
基本赋值运算符 a = b 把b的值赋值给a(并不是a与b相等) |
基本赋值运算符也称为赋值运算符,为了和后面将要学习到的复合赋值运算符进行区分,我们需要以示区分。
表达式通常由变量、常量和连接它们的运算符连接表示。
例如:vx + 32 进行加法运算的表达式
vy = vx+ 32 赋值表达式
一般情况下,使用@@的运算符的表达式,称为@@的表达式。使用赋值运算符的表达式就称为赋值表达式。
由表达式和分号组成的语句称为表达式语句。
例如: vy = vx+ 32 ;
在下一章中我们将会学习if,while等语句之外的表达式语句。