第五章表达式Word文件下载.docx
- 文档编号:5835466
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:14
- 大小:153.48KB
第五章表达式Word文件下载.docx
《第五章表达式Word文件下载.docx》由会员分享,可在线阅读,更多相关《第五章表达式Word文件下载.docx(14页珍藏版)》请在冰点文库上搜索。
•5X2应写成5*X*X
•(x+y)(x-y)改为(x+y)*(x-y)
算术表达式举例
设a=5,b=3,c=1,d=2,e=6,
求:
a+b-c/d+e%d
=5+3-0+0
=8
%左右必须是整型,否则编译出错
5.3、关系运算符和关系表达式
关系运算是对两个运算数进行大小关系等的比较。
用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称关系表达式。
关系表达式
逻辑值(true和false)。
c语言没有逻辑型数据以“非0”代表“真”,以“0”代表“假”。
例如,关系表达式“5==3”的值为“假”;
“5>=0”的值为“真”
关系优先级:
{>
,>
=,<
,<
=}高于{==,!
=}
与其他运算符的优先级:
赋值运算<
关系运算<
算术运算
5.3逻辑运算符和逻辑表达式
逻辑值(“真”和“假”)
!
>
&
&
>
||
赋值运算<
、||<
算术运算<
!
(非)
算术、关系、赋值、字符及逻辑表达式
举例
x*y>
z&
x*y<
100||-x*y>
0&
!
isgreat(z)
判别闰年表达式:
(year%4==0&
year%100!
=0)||year%400==0
xc或xb至少之一成立
x<
=c||x>
=b
i和j均小于或等于100,或者i和j均大于k
(i<
=100&
j<
=100)||(i>
k&
j>
k)
选未婚、30岁以上女讲师和35岁以上男副教授
婚否&
((性别=‘男’&
职称=‘副教授’&
年龄〉=35)
||(性别=‘女’&
职称=‘讲师’&
年龄)=30))
5.4、赋值运算符和赋值表达式
赋值运算符“=”:
格式:
V=e表达式的值为e;
其副作用是将表达式的值存入变量V。
复合赋值运算符:
Vop=e
等价于:
V=Vope
例如:
a+=5,等价于a=a+5
复合赋值运算符有:
+=、-=、*=、/=、%=等10个
5.5、赋值运算符和赋值表达式
其中:
“=”不同于数学中的符号,没有相等的含义
表达式的值等于“表达式”;
+=、-=、*=、/=、%=等10
i=j=m*n;
计算表达式m*n的值,将其结果存入变量j中,然后再将结果存入变量i中。
temp=a;
a=b;
b=temp;
交换a和b的值,temp是工作单元。
sum=sum+i;
(等价于sum+=i;
)
计算sum与i的和,结果送sum。
str[i]=ch+‘A’-‘a’;
将字符变量ch转换为大写字母,结果存入数组str[i]中。
5.6、自增、自减运算符
表5-1自增运算符和自减运算符的用法
举例一
i++;
//i增加1
i;
//i减少1
x=array[++i];
//将array[i+1]的值赋给x,并使i增加1
s1[i++]=s2[j++];
//将s2[j]赋给s1[i],然后分别使i和j增加1
•s1[i]=s2[j]
•i=i+1
•j=j+1
表达式语句i=j=m*n;
的作用和
•j=m*n;
•i=j;
例5.1字符串连接
算法分析:
•字符串连接就是将两个字符串首尾相接。
•将“串2”连接于“串1”,结果是“串1串2”
•要确定串1的长度,串2的元素,依序存于串1的后面。
•串1的总长度大于等于串1和串2长度之和。
•字符串处理用字符数组和一重循环来实现。
•子函数中设两个形参,分别传递两个字符串。
voidstrcat(chars1[],chars2[])
//Example5-1:
连接两个字符串
#include<
iostream.h>
string.h>
intmain()
{chardestination[81]="
abcdefghijklmnopqrstuvwxyz"
;
charsource[]="
ABCDEFGHIJKLMNOPQRSTUVWXYZ"
inti=strlen(destination);
intj=0;
while(source[j]!
=0)
destination[i++]=source[j++];
destination[i]=0;
cout<
<
"
Theresultis:
"
destination<
endl;
return0;
}
5.8类型不同的数据之间的混合算术运算
1.级别低的类型转换为级别高的类型。
各类型按级别由低到高的顺序为char,int,unsigned,long,unsignedlong,float,double。
2.可以使用强制类型转换。
d1=(double)i1/i2;
简单的名字空间定义如下:
namespaceMyName
{
inti=5;
intj=10;
例5-2名字空间的使用。
//Example5-2:
名字空间的使用
iostream>
namespaceuniversity
{intgrade=4;
namespacehighschool
{intgrade=3;
std:
:
cout<
Theuniversity'
sgradeis:
university:
grade<
std:
Thehighschool'
highschool:
5.10其他具有副作用的运算符
5.11问号表达式和逗号表达式
格式为:
规则是:
当表达式e1的值为‘真’时,结果取e2的值;
否则,结果取e3的值。
例如,z=x>
y?
x:
y;
例5-3编写一个求绝对值的函数
•设一个形参x,传递要求绝对值的数据;
•处理公式选用:
问号表达式。
returnx>
0?
-x;
//5-3:
求双精度类型量的绝对值
doublemydabs(doublex)
0?
x:
-x;
//用于调试函数的主函数
{doublef1=-12.0,f2=234.0;
cout<
”dabs(“<
f1<
“)=”<
dabs(f1)<
“dabs(“<
f2<
“)=“<
dabs(f2)<
逗号表达式
在C语言中把若干个独立的表达式结合成一个表达式,简称逗号表达式。
它按从左到右的顺序执行组成逗号表达式的各表达式,而将最后一个表达式(即表达式n)的值作为逗号表达式的值。
程序设计举例
例5-5求一元二次方程ax2+bx+c=0的根,其中系数a,b,c为实数,由键盘输入
例5-6对于任意给定的一个正整数n,统计其阶乘n!
的末尾中0的个数
例5-7计算50!
例5-8编写一个用于对整型数组进行排序的函数,排序方法使用希尔排序法。
例5-9找出2~10000之内的所有完全数。
所谓完全数,即其各因子之和正好等于本身的数。
如6=1+2+3,28=1+2+4+7+14,所以6,28都是完全
//Example5-5:
解一元二次方程
math.h>
{doublea,b,c,delta,p,q;
pleaseintputa,b,c=?
cin>
a>
b>
c;
delta=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(fabs(delta))/(2*a);
if(delta>
=0)
endl<
x1="
<
p+q<
x2="
p-q<
endl;
else
{cout<
p<
+j"
q;
-j"
q<
}
5-6:
统计阶乘n!
的末尾中0的个数
intmain()
{intn;
intm;
intsum=0;
Pleastinputapositivenumber:
cin>
n;
for(inti=5;
i<
=n;
i=i+5)//只有5的倍数才含5的因子
{m=i;
for(intk=0;
m%5==0;
k=k+1)
m=m/5;
sum=sum+k;
Thenumberofzeroin"
n<
is:
sum<
//5-7:
利用数组计算阶乘50!
{constintMAXSIZE=100;
intarray[MAXSIZE];
intn=50;
intsum,sc;
for(inti=0;
MAXSIZE;
i++)array[i]=0;
array[0]=1;
for(i=2;
i++)
{sc=0;
for(intj=0;
j<
j++)
{sum=array[j]*i+sc;
//上一次进位值和当前计算结果求和
sc=sum/10;
//存放进位数值
array[j]=sum%10;
//将余数存入数组}
for(i=MAXSIZE-1;
i>
=0;
i--)cout<
array[i];
例5-8
编写一个用于对整型数组进行排序的函数,排序方法使用希尔排序法。
//Example5-9:
寻找完全数
{intk;
intn=2;
while(n<
=10000)
{
k=0;
for(intm=1;
m<
=n/2;
m++)
if(n%m==0)k=k+m;
if(k==n)
cout<
findone:
k<
n++;
本章要点
规范算术表达式
掌握比较、逻辑表达式
了解自增、减运算符
小记:
•区分赋值、比较运算符(=与==)
•了解类型转换,如
floata,intb;
a=b=3.1415;
floata,intb;
a=(float)b/2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 表达式