电子科学与技术计算机知识点99c程序设计_第1页
电子科学与技术计算机知识点99c程序设计_第2页
电子科学与技术计算机知识点99c程序设计_第3页
电子科学与技术计算机知识点99c程序设计_第4页
电子科学与技术计算机知识点99c程序设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章C语言概述第二章数据类型、运算符与表达式第三章最简单的C程序设计第四章逻辑运算和判断选取控制第五章循环控制第六章数组第八章编译预处理第九章指针第十章结构体与共用体第十二章文件的基本操作第十三章位运算第四章逻辑运算和判断选取控制在C程序的三种结构中,分支结构是一重要结构,其中的P为条件问题:条件如何表达?

逻辑运算、关系运算有哪些??§4.1关系运算符关系运算就是比较运算

如:a>3为一比较运算,

若a=5,a>3成立,结果为“真”,

否则,若a=1,a>3不成立,结果为假。上述表达式:a>3称为关系表达式。4.1.1关系运算符及其优先次序1.<,<=,>,>=为同一优先级,==,!=等为同一优先级,但前者高于后者。2.关系运算符优先级低于算术运算符。C语言提供了六种关系运算符

<;<=;>;>=;==;!=;优先级为:3.关系运算符优先级高于赋值运算符。如下图:算术运算符赋值运算符关系运算符高低例如:c>a+bc>(a+b)a>b!=c(a>b)!=ca==b<ca==(b<c)a=b>ca=(b>c)4.1.2

关系表达式关系表达式的结果值规定为1或0.如:a>b,a+b>b+c,(a=3)>(b=5),'a'>'b',(a>b)>(b<c)完整的定义:用关系运算符将两个表达式(算术、关系、逻辑、赋值、字符等表达式)连接起来的式子。1––结果为真(成立)0––结果为假(不成立)如:当a=3,b=2,c=1时(a>b)==cb+c<ad=a>bf=a>b>c成立1不成立0则a>b值为1,所以d=1.a>b为1,a>b>c为0,所以f=0.§4.2逻辑运算符和逻辑表达式用逻辑运算符将关系表达式、逻辑表达式连接起来的式子–––逻辑表达式。4.2.1逻辑运算符及优先级ab!a!ba&&ba¦¦b真真假假真真真假假真假真假真真假假真假假真真假假三种:&&(与),¦¦(或)!(非)其意义见真值表a&&b当a,b均为1时,才为1a¦¦b当a,b中有一个为1时,才为1!a当a为1,!a为0,反之为1.此处:¦¦和&&为双目运算符.!为单目运算符。优先级定义:2.&&和¦¦低于关系运算符。!高于算术运算符1.!(非)优先于&&(与).&&优先于¦¦即:!&&¦¦例:!a&&b¦¦x>y&&c

((!a)&&b)¦¦((x>y)&&c)!高&&#低4.2.2逻辑表达式1.逻辑表达式的值与关系表达式值一样,真为1,假为0。例:a=4则!a值为0.此处只要a0,为真.则!a值为0.a=4,b=5a&&b为1前面已定义了逻辑表达式,以下看一看逻辑表达式的值及具体的运算。4&&0¦¦2为1.总之,在逻辑运算中,非0值参加逻辑运算时被看成1处理.a=4,b=5a¦¦b为1a=4,b=5!a¦¦b为12.一个逻辑表达式中的逻辑运算符并不是一定全部执行.例如:判断年号是否为润年。如:a&&b&&c.则当a=0(假)时,b,c不需判断。当a=1,b=0,则不需判c.又如:a¦¦b¦¦c.当a=1时,b,c均不必判别。润年必须满足下列条件中的任意一个:年号能被400整除。年号能被4整除但不能被100整除。当(year%4!=0)¦¦(year%100==0&&year%400!=0)为1时,year为非润年。设用变量year表示年号当((year%4==0&&year%100!=0)¦¦year%400==0)为1时,year为润年,否则为非润年。如果要判别非润年可在上述表达式前加非(!)运算符.当!((year%4==0&&year%100!=0)¦¦year%400==0)为1时,year为非润年。或者:即:则:§4.3if语句–––条件判断4.3.1if的三种形式功能:当表达式值非0时,执行语句A,否则不执行语句A.表达式语句A=00例如:if(x>y);printf("%d",x)形式1if(表达式)语句A其流程图:形式2if(表达式)语句Aelse语句B功能:表达式为非0,执行语句A表达式为0,执行语句B表达式语句A语句B0=0例:if(x>y) printf("%d",x); elseprintf("%d",y);形式3if(表达式1)语句1

elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式n)语句nelse语句n流程:表达1表达2表达3表达n语句1语句2语句3语句n语句n语句1……0=0=0000如:if(3)prinf("o.k");if('a')…1.表达式可以是逻辑、关系,甚至是算术表达式。2.语句必须以分号结束3.若语句不止一条,则必须用{}括起来。在{}外可以不用分号.注意的问题:#include<stdio.h>

main()

{floata,b,t;

scanf("%f,%f",&a,&b);

if(a>b)

{t=a;a=b;b=t;}

printf("%5.2f,%5.2f",a,b);

}例4.1输入两个实数,按代数值由小到大次序输出这两个数。3.6,–3.2–3.20,3.60运行情况如下:例4.2输入三个数,按大小顺序输出。#include<stdio.h>

main()

{floata,b,c,t;

scanf(“%f,%f,%f”,&a,&b,&c);

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf("%5.2f,%5.2f,%5.2f",a,b,c);

}运行情况如下:3,7,1

1.00,3.00,7.004.3.2.if语句的嵌套if(表达式1)内嵌ifelse内嵌注意:else与最近的if配对.一般形式在上述形式的if语句中,又可以是if语句–––称为嵌套。if(表达式2)语句1if(表达式3)语句3else语句2else语句4例:if()if()语句2else语句3if(){if()语句1}else…所以:必要时加{}.if()语句1else例4.3有一函数:y=–1(x<0)0(x=0)1(x>0)编一程序,输入一个x值,输出y值。有以下几种写法,请判断哪些是正确的?程序2:将程序1的if语句改为:

/*exp52.c*/

#include<stdio.h>

main()

{intx,y;

scanf("%d",&x);

if(x>=0)

if(x>0)

y=1;

else

y=0;

else

y=-1;

printf("x=%d,y=%d\n",x,y);

}

程序1:

/*exp51.c*/

#include<stdio.h>

main()

{intx,y;

scanf("%d",&x);

if(x<0)

y=–1;

elseif(x==0)

y=0;

else

y=1;

printf("x=%d,y=%d\n",x,y);

}程序4:将程序1的if语句改为:/*exp54.c*/#include<stdio.h>main(){intx,y;scanf("%d",&x);

y=0;if(x>=0)if(x>0)y=1;elsey=-1;printf("x=%d,y=%d\n",x,y);}

程序3:将程序1的if语句改为:/*exp53.c*/#include<stdio.h>main(){intx,y;scanf("%d",&x);

y=-1;if(x!=0)if(x>0)y=1;elsey=0;printf("x=%d,y=%d\n",x,y);}1.程序1和程序2是正确的。

它们代表的函数为:2.程序3和程序4是错误的。

它们代表的函数为:y=0(x<0)–1(x=0)1(x>0)y=–1(x<0)0(x=0)1(x>0)结论:思考练习:分别画出一个程序的流程图4.3.3条件运算符C语言提供了一个简单的条件赋值语句或条件表达式。问题:当判断条件不论是“真”是“假”,均给同一变量赋值时。简化条件语句运算符书写方式:?:属三目运算符。功能:先判表达式1,若非0,则值为表达式2的值,否则为表达式3的值。一般形式:表达式1?表达式2:表达式3max=a>b?a:b;当a>b.maxa.否则maxb1.条件运算符优先于赋值运算符.

例:max=(a>b?a:b)可去掉()注意:

2.条件运算符低于关系运算符和算术运算符。例:max=a>b?a:b+1

max=a>b?a:(b+1)并不是max=(a>b?a:b)+1

3.条件运算符结合性为从右至左。

如:a>b?a:c>d?c:d

相当于a>b?a:(c>d?c:d)4.条件表达式不能取代一般的if语句,只有当if的两个分支为给同一变量赋值时才可替代if.if(a>b)printf("%d",a);elseprintf("%d",b)由于printf.不是表达式,故不可用条件表达式,但可为:printf("%d",a>b?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论