
计讲稿4——关系运算符、逻辑运算符....doc
8页高2015级信息学竞赛培训资料程序设计讲稿4本讲涉及的单词:1、if 如果 2、else 否则 3、switch 开关 4、case 案例、事例 5、default 缺省、默认 6、break 打断一、关系运算符及其优先级1、关系运算符:程序中经常需要比较两个量的大小关系,以决定程序的下一步工作,比较两个量的大小关系的运算符称为关系运算符,C/C++中有以下关系运算符:> 大于 < 小于 == 等于 >= 大于等于 <= 小于等于 != 不等于关系运算符都是双目运算符,其结合性为左结合型关系运算符的优先级低于算术运算符,高于赋值运算符六个关系运算符中,>、<、>=、<=的优先级相同,==和!=的优先级相同,但前者高于后者2、关系表达式关系表达式的一般形式:表达式 关系运算符 表达式例如:a+b>c+d、 x<=3/2、a<(b>c)、a!=(c==d)关系表达式运算的结果只有两种:真或假(正确或错误,成立或不成立),用数字1和0表示例如:5>3 的运算结果是1(正确),而3<5的结果是0(错误)int main(){ char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",'a'+5 (2)'a'+5 相当于 97+5,因为字符’a’的ASCII码是973) 1 2、逻辑表达式用逻辑运算符、关系运算符构成的式子,成为逻辑表达式: 举例: 数学表达式 -2 <= x < 10 的C语言条件表达式: x是奇数的条件表达式: x是偶数的条件表达式: x能被11整除的条件表达式: x能被4整除但不能被100整除,或者能被400整除的C语言表达式: 条件表达式: m % 2==1 && m<=20 || m>10 在m=5的时候,表达式的值为: 在m=8的时候,表达式的值为: 在m=13的时候,表达式的值为: 在m=16的时候,表达式的值为: 在m=23的时候,表达式的值为: 在m=30的时候,表达式的值为: 三、分支语句格式:if(条件) 语句1; else 语句2; 功能:如果 条件成立 则执行语句1,否则执行语句2; 其中,上面的格式中 ”else 语句2;” 可以省略,上面的格式写成了两行,其实可以写成一行的,这样做只是为了程序更加美观。 例7、编程输入两个整数,输出其中的大数解答程序1解答程序2int main(){ int a,b,MAX;scanf("%d%d",&a,&b); MAX=a; if(MAXb) MAX=a; else MAX=b; printf("MAX=%d\n",MAX); return 0;}解答程序1中,先把a的值赋给变量MAX,再用if语句判别MAX和b的大小,如果MAXb,则把a的值赋给MAX,否则把b赋给b这里的否则相当于a<=b 思考:能否写成下面的形式,如果不能,该怎样修改? if(a>b) MAX=a; if(a='0' && c<='9') printf("Digit\n"); else if(c>='A' && c<='Z') printf("Capital\n"); else if(c>='a' && c<='z') printf("Small\n"); else printf("Other\n"); return 0;}如果c是数字字符则输出”digit”否则如果c是大写字母则输出”Capital”否则如果c是小写字母则输出"Small"否则输出" Other "四、条件运算符 C/C++中有一个与if ~ else ~ 类似的运算符”? :”,它是三目运算符,其格式为: 表达式1?表达式2:表达式3 其含义是:如果表达式1成立,则以表达式2作为条件表达式的结果,否则以表达式3作为条件表达式的结果。 例如:if(a>b) MAX=a; else MAX=b; 可以改写为:MAX = a>b? a: b;条件运算符的优先级高于赋值运算符,低于算术运算符、关系运算符和逻辑运算符请用关系运算符改写例7的程序五、开关语句 C/C++语言还提供了另一种用于多分支选择的语句——switch语句,其一般形式如下:形式: switch(表达式){case 常量表达式1:语句1 case 常量表达式2:语句2 … case 常量表达式n:语句n default:语句n+1}其含义是:计算表达式的值,然后依次与case后面的常量表达式的值比较当与某个常量表达式的值相等时,即执行其后面的语句,然后不再判断,转而执行后面的所有case后的语句(包括default语句)当表达式的值与所有case后面常量表达式的值都不相等时,则执行default后的语句例9、编程输入一个数字,输出与这个数字对应星期几的英语单词,比如输入1,则应是星期一,输出“Monday”,7则应是星期日,输出“Sunday”解答程序1int main(){ int a; scanf("%d",&a); switch(a) { case 1 : printf("Monday\n"); case 2 : printf("Tuesday\n"); case 3 : printf("Wednesday\n"); case 4 : printf("Tursday\n"); case 5 : printf("Friday\n"); case 6 : printf("Saturday\n"); case 7 : printf("Sunday\n"); default : printf("error\n"); } return 0;}int main(){ int a; scanf("%d",&a); switch(a) { case 1 : printf("Monday\n"); break; case 2 : printf("Tuesday\n");break; case 3 : printf("Wednesday\n");break; case 4 : printf("Tursday\n");break; case 5 : printf("Friday\n");break; case 6 : printf("Saturday\n");break; case 7 : printf("Sunday\n");break; default : printf("error\n");break; } return 0;}解答程序1:当输入4后,则程序输出: Tursday Friday Saturday Sunday error 由此看来,整数上面对switch语。
