第三讲运算符与表达式课前回顾
数据类型
基本类型
构造类型
指针类型
空类型
常量与变量
常量及常量的类型
变量
标识符及有关规定
变量声明格式
算术运算符
一元运算符和二元运算符
算术运算符优先级别
赋值运算符本节学习目标
赋值运算符
关系运算符
逻辑运算符
顺序结构运算符和表达式
什么是运算符?
– 对数据进行特定操作的符号。
– 例如,c=a+b
什么是表达式?
– 运算符与操作数的有效结合。
– 例如,a+b,5*6,a/8等运算符类型算术关系逻辑位一元、二元运算符都是算术运算符用于对包含关系运算符的表达式进行合并或取非测试两个变量或一个变量和一个常量之间的关系将数字按位进行计算赋值运算符
一般格式,变量名 =表达式例如,a=5,a=b;a=2*6,a=a+b
多重赋值,例如,a=b=c=10
复合赋值
格式:
说明:
– a+=5,a=a+5
– a-=5 a=a-5
– a*=5 a=a*5
– a/=5 a=a/5
– A%=5 a=a%5
变量名 双目运算符 = 表达式赋值运算的顺序:从右到左课堂练习
a=8时;下列表达式的值
a+=a-=a*=a-5
关系运算符和逻辑运算符 2-1
用于测试两个变量或一个变量和一个常量之间的关系运算符 关系运算
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
! = 不等于高低关系运算举例
当 a=3,b=4,c=5时
a<b的值为 1
a>b的值为 0
a>=c的值为 0
(a>b)!=c的值为 1
( a<b) ==c的值为 0
课堂练习
当 a=3,b=4,c=5时
(a<b)+c的值是多少?
关系运算符和逻辑运算符 2-2
逻辑运算符用于对包含关系运算符的表达式进行合并或取非使用逻辑运算符的表达式,返回 0 表示假,
返回 1 表示真示例,if ((a>10) && (a<20))
运算符 逻辑运算
&& 与
|| 或
! 非逻辑与运算符-- &&
条件 1 条件 2 条件 1 && 条件 2
假 假 假假 真 假真 假 假真 真 真课堂练习
求下列表达式的答案
1.(2>2)&&(4>2)
2.(2>=2)&&(5>2)
逻辑或运算符-- ||
用于只要一个条件为?真 ’ 就返回?真 ’ 的情况,
条件 1 条件 2 条件 1 || 条件 2
假 假 假假 真 真真 假 真真 真 真课堂练习
求下列表达式的答案
1.(2>2)||(4>2)
2.( 3>1)||(1>2)
逻辑非运算符-- !
把判断的结果取反
只有一个操作数条件 ! 条件假 真真 假运算符之间的优先级别
! > 算术运算 > 关系运算 > && > || > 赋值运算运算符之间的优先级范例
2*3+4/2>3 AND 3<5 OR 10<9
计算如下,
[2*3+4/2]>3 AND 3<5 OR 10<9
[[2*3]+[4/2]]>3 AND 3<5 OR 10<9
[6+2]>3 AND 3<5 OR 10<9
[8>3] AND 3<5 OR 10<9 True AND True OR False
[True AND True] OR False
True OR False
True
首先计算算术运算符比较运算符,计算总左到右进行最后计算逻辑运算符课堂练习
i 10*3%6*6+5-2&&(2*2+6/3>1||2>8)
i 12%3/2+3*6>10&&!真 ||!真位运算符 2-1
将数字转换成等价的二进制形式后再处理数据(按位表示法)
运算符 描述按位与
( x & y)
如果两个操作数的相应位均为 1,则该位的结果值为 1
按位或
( x | y)
如果两个操作数的相应位有一个为 1,则该位的结果值为 1
按位取反
( ~x)
将操作数按位取反
( 0 到 1 和 1 到 0)
按位异或
( x^y)
如果参加运算的两个操作数的相应位同号,则结果为 0,异号则为 1
位运算符 2-2
操作数 位操作 位表达式 数字
10 & 15 1010 & 1111 1010 10
10 | 15 1010 | 1111 1111 15
10 ^ 15 1010 ^ 1111 0101 5
~ 10 ~1010 0101 -11
位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字混合运算与数据转换运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型
char ch;
int i;
float f;
double d;
result=(ch/i)+(f*d)-(f+i);
int double float
double
double
数据强制转换
转换格式
(数据类型)表达式范例
#include <stdio.h>
void main()
{
double a=3.784;
printf("%d\n",(int)a);
}
顺序结构
printf()输出函数
scanf()输入函数
putchar()函数
getchar()函数
printf ()函数
作用:在标准输出设备(显示器)控制台上显示数据
语法格式:
printf (“格式控制符,,参数列表 );
都需要一个格式命令 -与参数列表需要在数量、类型和顺序上匹配需要由,,括起来。由文本字符和空格、格式命令和非打印字符组成
Printf()函数的例题
#include <stdio.h>
void main()
{
printf("静以修身,
\n 俭以养德。 \n 非淡泊无以明志; \n
%s\n","非宁静无以致远 !!!");
}
printf ()函数格式控制符由三类项目中的一项或多项组成:
– 文本字符:由可打印字符组成
– 格式命令,以 % 符号开始,随后紧跟与数据项相应的格式代码
– 非打印字符:包括制表符、空格和新行文本与空格
范例:
#include <stdio.h>
void main()
{
printf(" 谋事在人,成事在天 ");
}
常用的格式控制符
%d
—十进制整数。
%f或 %e
—浮点型数字
%c
—单字符型
%s
—字符串型格式控制符
范例
#include <stdio.h>
void main()
{
int number_1=65;
char number_2='b';
printf("number_1=%d\n",number_1);
printf("number_1=%c\n",number_1);
printf("number_2=%c\n",number_2);
printf("number_2=%d\n",number_2);
}
常用的格式控制符(续)
―-‖ 修饰符数据项在范围内向左对齐,从范围最左侧的位置开始输出数据项
字符宽度修饰符可以用于浮点型、双精度型和字符数组型(字符串)
。 范围宽度修饰符是一个整数,定义了数据项的 最大范围宽度。
精度修饰符可以用在浮点型、双精度型或字符数组型(字符串)
中。如果用在浮点型或双精度型数据中,数字字符串表示小数右侧最多可输出的数字位数
printf()中的修饰符的使用的示例
#include <stdio.h>
void main()
{
printf("The number 555 in various forms:\n");
printf("Without any modifier,\n");
printf("[%d]\n",555);
printf("With – modifier,\n");
printf("[%-d]\n”,555);
printf("With digit string 10 as modifier,\n");
printf("[%10d]\n”,555);
printf("With 0 as modifier,\n");
printf("[%0d]\n”,555);
printf("With 0 and digit string 10 as modifiers,\n");
printf("[%010d]\n”,555);
printf("With -,0 and digit string 10 as modifiers,
\n");
printf("[%-010d]\n",555);
}
Printf()函数注意事项(一)
输出的数据可以是常量、变量和表达式,但必须与格式控制符一一对应。
#include <stdio.h>
void main()
{
int i=5;
float j=3.5;
printf("%c,%d,%f,%lf\n",
'a',i,j,i*j);
}
printf()函数注意事项(二)
%d,%f,%e,%c,%s,
一般为小写。而其它的 d,f,s,c等字符作为普通字符处理。
#include <stdio.h>
void main()
{
int f=5;
float d=3.5;
printf("%c,f=%d,d=
%f,%lf\n",'a',f,d,f*d);
}
非打印字符(转义字符)
\n——换行
\t——制表符键(右移四个字节的位置)
课堂练习
定义一个字符型变量 a=?b?;请在屏幕上输出 b:
– 方法 1:
Printf(“b”);
– 方法 2:
Printf(“%c”,a);
scanf()函数
作用:从外部输入设备(键盘)接受数据
语法格式
scanf("control string ",argument list);
控制字符串 地址列表
printf()语句中的使用的格式极其语法同样适用与 scanf()语句
scanf()函数
作用:从外部输入设备(键盘)接受数据
语法格式
scanf("control string ",argument list);
控制字符串 参数列表
printf()语句中的使用的格式极其语法同样适用与 scanf()语句
scanf()函数使用说明
使用 scanf()时,对于参数列表应遵循以下规则:
– 如果希望读取基本数据类型变量的值,应在变量名的前面加上符号 &
– 当读取指针变量指向的值时,在变量名前不能使用 &
单字符输出函数 putchar()
作用:向屏幕的光标处输出一个字符。
格式
putchar (参数 ); 单个字符转义序列字符变量
putchar() 函数的参数
putchar()示例
#include <stdio.h>
void main()
{
char ch_1='9';
putchar('B');
putchar('o');
putchar('y');
putchar('\t');
putchar(ch_1);
putchar('\n');
}
字符输入函数 getchar()
作用:从系统输入一个字符。
语法格式:
getchar ( );
()没有任何参数
getchar()示例
#include <stdio.h>
void main()
{
char ch;
ch=getchar();
putchar(ch);
putchar('\n');
}
课后作业
写出下列问题的程序:
– 输入一个小写字母,将其以大写的形式输出。
– 计算圆的面积并输出它的值.
要求,(1)用读入方式给半径r(实型变量)输入值.
(2)求值后,对小数点后第三位数进行四舍五入
4.编写程序,设计一个学生成绩管理的功能菜单,菜单功能包括,A学生信息录入; B学生成绩统计; C学生成绩查询; D退出;