《c语言01常用运算符及优先级.ppt》由会员分享,可在线阅读,更多相关《c语言01常用运算符及优先级.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Lesson 1常用运算符及优先级2.obj.obj.exe.exe.c.c编程流程运行运行编辑编辑编译编译链接链接编译 Ctrl+F7链接 F7运行 Ctrl+F53整型与格式符#include#include main()main()intint a,b,c;a,b,c;a=1;a=1;b=2;b=2;c=a+b;c=a+b;printf(c=printf(c=%d%d,c);,c);a a1 1b b2 2c c3 3c=3c=34赋值运算符int a,b,c;int a,b,c;a=1;a=1;b=2;b=2;a=a+b;a=a+b;b=a+b;b=a+b;c=a+b;c=a+b;黄建
2、语录一黄建语录一:变量某一时刻只能保存变量某一时刻只能保存一个值一个值。a a1 1b b2 2c c8 83 35 55 int a int a=3,b3,b=3,c3,c=3;3;int a,b,c;int a,b,c;a=3;b=3;c=3;a=3;b=3;c=3;int a,b,c;int a,b,c;a=b=c=3;a=b=c=3;int a=b=c=3;int a=b=c=3;变量赋值正确正确正确正确正确正确错误错误6算术运算符乘法、除法和求余的运算优先级高于加法和减法。减法减法加法加法乘法乘法除法除法求余求余7求余运算:求余运算:a=7%4;b=-7%4;a=7%4;b=-7%4
3、;c=7%-4;d=-7%-4;c=7%-4;d=-7%-4;e=4%7;f=40%70;e=4%7;f=40%70;算术运算符黄氏定理一黄氏定理一:两个整数进行算术运算,两个整数进行算术运算,结果还是整数结果还是整数。公式表示公式表示:7/4=17/4=1。2006.4.142006.4.14表达式表达式3.6-5/2+1.2+5%23.6-5/2+1.2+5%2的值是的值是 A)4.3 B)4.8 C)3.3 D)3.8 A)4.3 B)4.8 C)3.3 D)3.83 -33 -33 -33 -34 404 408赋值运算符 例例 以下程序运行后,以下程序运行后,a a的值是的值是 in
4、t a=2;a+=a*=a+=a/a;int a=2;a+=a*=a+=a/a;18182009.9.152009.9.15以下程序运行后,以下程序运行后,x x的值是的值是 int x=10;x-=x+x;int x=10;x-=x+x;-10-102009.9.162009.9.16以下程序的运行结果是以下程序的运行结果是 int a=1,b=0int a=1,b=0,c=5,c=5;printf(%d,printf(%d,%d%d,b=a+b,b=a+b,c+=c=7);c+=c=7);1,141,142010.9.162010.9.16以下程序的运行结果是以下程序的运行结果是 prin
5、tf(%d,printf(%d,a+=a-=a=9a+=a-=a=9););0 09自增自减运算符b=a+;相当于:相当于:b=a;b=a;a+;a+;先取值,后自增先取值,后自增b=+a;相当于:相当于:+a;+a;b=a;b=a;先自增,后取值先自增,后取值10自增运算符 例例 以下程序的运行结果是以下程序的运行结果是 int a=2,b=2,c,d;int a=2,b=2,c,d;c=a+;d=+b;c=a+;d=+b;printf(%d%d%d%d,a,b,c,d);printf(%d%d%d%d,a,b,c,d);332333232005.4.172005.4.17以下程序的运行结果
6、是以下程序的运行结果是 int m=12,n=34;int m=12,n=34;printf(%d%d,m+,+n);printf(%d%d,m+,+n);12351235 例例 以下程序运行以下程序运行后后,x x的值的值是是 int m=3,n=4,x;int m=3,n=4,x;x=-m+;x=-m+;x=x+8/+n;x=x+8/+n;-2-211关系运算符小于或等于小于或等于=小于小于 等于等于=关系关系运算运算12关系运算符2007.4.212007.4.21当当x x为大于为大于1 1的奇数时,值为的奇数时,值为0 0的是的是 A)x%2=1 B)x/2 A)x%2=1 B)x/
7、2 C)x%2!=0 D)x%2=0 C)x%2!=0 D)x%2=0 例例 以下程序运行后,以下程序运行后,c c和和d d的值分别是的值分别是 int a=3,b=3,c,d;int a=3,b=3,c,d;c=a=3;d=b=3;c=a=3;d=b=3;3,13,1 例例 以下程序的运行结果是以下程序的运行结果是 int a=3,b=a 3,c=a=3;int a=3,b=a 3,c=a=3;printf(%d,%d,b,c);printf(%d,%d,b,c);0,10,113逻辑运算符真真变变假,假,假假变变真真全全假假才才假假全真才真全真才真 非!与&或|14逻辑运算符2-1200
8、5.4.92005.4.9设设a=10;b=20;a=10;b=20;则则c c的值是的值是 c=(a%b 1);c=(a%b 1);2010.3.172010.3.17若若a a是数值类型,则逻辑表达式是数值类型,则逻辑表达式(a=1)|(a!=1)(a=1)|(a!=1)的值是的值是0 0 设设a=20a=20,则输出结果是,则输出结果是 printf(%d,%d,0a20,0a&a20);printf(%d,%d,0a20,0a&a20);1,01,01 1 设设c=25c=25,则,则a a和和b b的值是的值是 a=c/10%9;b=a&(-1);a=c/10%9;b=a&(-1);
9、2,12,115逻辑运算符2-22010.3.6x2010.3.6x为为intint型变量,请写出一个表达式,型变量,请写出一个表达式,用以判断用以判断x x同时为同时为3 3和和7 7的倍数时,表达式的值的倍数时,表达式的值为真。为真。x%3=0&x%7=0 x%3=0&x%7=02005.9.232005.9.23若有若有int a=2,b=3,c=4;int a=2,b=3,c=4;则则值为值为0 0的表达式是的表达式是 A)(a b)&!c|1 A)(a b)&(n=c d);(m=a b)&(n=c d);2 22005.4.212005.4.21以下程序的运行结果是以下程序的运行结
10、果是 int i=1,j=2,k=3,m;int i=1,j=2,k=3,m;m=i+=1&(+j=3|k+=3);m=i+=1&(+j=3|k+=3);printf(%d,%d,%d,%d,i,j,k,m);printf(%d,%d,%d,%d,i,j,k,m);2,3,3,12,3,3,118条件运算符 条件运算符具有右结合性。条件运算符具有右结合性。a b?a:c d?c:d;a b?a:c d?c:d;相当于:相当于:a b?a:(c d?c:d);a b?a:(c d?c:d);2005.9.242005.9.24以下程序运行后,以下程序运行后,k k的值是的值是 int k=0,a
11、=1,b=2,c=3;int k=0,a=1,b=2,c=3;k=a c?c:k;k=a c?c:k;2005.4.222005.4.22若若a=1,b=4,c=3,d=2a=1,b=4,c=3,d=2;则表达式则表达式a b?a:c d?c:da b?a:c b t=ab?(bc?b:(ac?c:(bc?b:(ac?c:_):(ac?(ac?_:(bc?c:(bc?c:_););a aa ab b 例例 以下程序的运行结果是以下程序的运行结果是 int a=0,b=3,c;int a=0,b=3,c;c=a+?+b:+a;c=a+?+b:+a;printf(%d%d%d,a,b,c);pri
12、ntf(%d%d%d,a,b,c);23223220逗号运算符 k=(2,3,4);k=(2,3,4);执行后,执行后,k=4;k=4;k=2,3,4;k=2,3,4;执行后,执行后,k=2;k=2;例例 以下程序的运行结果是以下程序的运行结果是 x=y=1;z=x+,y+,+y;x=y=1;z=x+,y+,+y;printf(%d,%d,%d,x,y,z);printf(%d,%d,%d,x,y,z);2007.4.62007.4.6以下程序运行后,以下程序运行后,a a的值是的值是 int a=10;a=(3*5,a+4);int a=10;a=(3*5,a+4);14142,3,12,3
13、,1 例例 以下程序的运行结果是以下程序的运行结果是 printf(%d,(1,2),3);printf(%d,(1,2),3);2 221C语言常见运算符优先级口诀22运算符优先级简称简称 含义含义运算符运算符数目数目结合结合单单目单目+,-,!+,-,!单目单目算算术算术*,/,%*,/,%双目双目+,-+,-双目双目关关系关系,=,=,=双目双目=,!=,!=双目双目逻逻辑逻辑&双目双目|双目双目条条件条件?:?:三目三目赋赋值赋值=,+=,-=,*=,/=,%=,+=,-=,*=,/=,%=双目双目逗逗号逗号,23运算符的右结合性 单目、条件和赋值单目、条件和赋值运算符具有运算符具有右
14、右结合性,如:结合性,如:单目单目运算符:运算符:!a+;!a+;相当于:相当于:!(!(a+a+););条件条件运算符:运算符:a?b:c?d:e;a?b:c?d:e;相当于:相当于:a?b:(a?b:(c?d:ec?d:e););赋值赋值运算符:运算符:a=b=c;a=b=c;相当于:相当于:a=(a=(b=cb=c););其它运算符其它运算符左左结合,如:结合,如:算术运算符:算术运算符:a+b-c;a+b-c;相当于:相当于:(a+ba+b)-c;)-c;24基本概念7-12007.4.152007.4.15对于一个正常运行的对于一个正常运行的C C程序,以下叙程序,以下叙述中述中正确
15、正确的是的是 A)A)程序的执行总是从程序的执行总是从mainmain函数开始,在函数开始,在mainmain函函数结束数结束 B)B)程序的执行总是从程序的第一个函数开始,程序的执行总是从程序的第一个函数开始,在在mainmain函数结束函数结束 C)C)程序的执行总是从程序的执行总是从mainmain函数开始,在程序最函数开始,在程序最后一个函数中结束后一个函数中结束 D)D)程序的执行总是从程序的第一个函数开始,程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束在程序的最后一个函数中结束25基本概念7-22008.4.112008.4.11下列叙述中下列叙述中正确正确的是的
16、是 A)C A)C程序中的注释只能出现在程序的开始位置程序中的注释只能出现在程序的开始位置和语句的后面和语句的后面 B)C B)C程序书写格式严格,要求一行内只能写一程序书写格式严格,要求一行内只能写一个语句个语句 C)C C)C程序书写格式自由,一个语句可以写在多程序书写格式自由,一个语句可以写在多行上行上 D)D)用用C C语言编写的程序只能放在一个程序文件语言编写的程序只能放在一个程序文件中中26基本概念7-32010.3.122010.3.12以下关于以下关于C C语言的叙述中语言的叙述中正确正确的是的是 A)C A)C语言中的注释不可以夹在变量名或关键字语言中的注释不可以夹在变量名或
17、关键字的中间的中间 B)C B)C语言中的变量可以在使用之前的任何位置语言中的变量可以在使用之前的任何位置进行定义进行定义 C)C)在在C C语言算术表达式的书写中,运算符两侧语言算术表达式的书写中,运算符两侧的运算数类型必须一致的运算数类型必须一致 D)C D)C语言的数值常量中夹带空格不影响常量值语言的数值常量中夹带空格不影响常量值的正确表示的正确表示27基本概念7-42009.9.112009.9.11下列叙述中下列叙述中正确正确的是的是 A)A)程序设计的任务就是编写程序代码并调试程序设计的任务就是编写程序代码并调试 B)B)程序设计的任务就是确定所用数据结构程序设计的任务就是确定所用
18、数据结构 C)C)程序设计的任务就是确定所用算法程序设计的任务就是确定所用算法 D)D)以上以上三种说法都不完整三种说法都不完整2008.9.112008.9.11下列叙述中下列叙述中正确正确的是的是A)CA)C程序的基本组成单位是语句程序的基本组成单位是语句B)CB)C程序的每一行只能写一条语句程序的每一行只能写一条语句C)C)简单简单C C语句必须以分号结束语句必须以分号结束D)CD)C语句必须在一行内写完语句必须在一行内写完28基本概念7-52006.4.452006.4.45以下叙述中以下叙述中错误错误的是的是A)A)算法正确的程序最终一定会结束算法正确的程序最终一定会结束B)B)算法
19、正确的程序可以有零个输出算法正确的程序可以有零个输出C)C)算法正确的程序可以有零个输入算法正确的程序可以有零个输入D)D)算法正确的程序对于相同的输入一定有相同算法正确的程序对于相同的输入一定有相同的结果的结果2008.9.122008.9.12计算机能直接执行的程序是计算机能直接执行的程序是A)A)源程序源程序 B)B)目标程序目标程序 C)C)汇编程序汇编程序 D)D)可执行程序可执行程序29基本概念7-62010.9.122010.9.12以下关于简单程序设计的步骤和顺以下关于简单程序设计的步骤和顺序的说法中正确的是序的说法中正确的是 A)A)确定算法后,整理并写出文档,最后进行编确定
20、算法后,整理并写出文档,最后进行编码和上机调试码和上机调试 B)B)首先确定数据结构,然后确定算法,再编码,首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档并上机调试,最后整理文档 C)C)先编码和上机调试,在编码过程中确定算法先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档和数据结构,最后整理文档 D)D)先写好文档,再根据文档进行编码和上机调先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结试,最后确定算法和数据结构构30基本概念7-72011.3.122011.3.12以下叙述中以下叙述中错误错误的是的是A)CA)C 语言的可执行程序是由一系列机
21、器指令构语言的可执行程序是由一系列机器指令构成的成的B)B)用用 C C 语言编写的源程序不能直接在计算机上语言编写的源程序不能直接在计算机上运行运行C)C)通过编译得到的二进制目标程序需要连接才通过编译得到的二进制目标程序需要连接才可以运行可以运行D)D)在没有安装在没有安装 C C 语言集成开发环境的机器上不语言集成开发环境的机器上不能运行能运行 C C 源程序生成的源程序生成的 .exe.exe 文件文件312009.9.122009.9.12以下以下合法合法的用户标识符是的用户标识符是 A)unsigned B)8_8 C)_0_ D)void A)unsigned B)8_8 C)_
22、0_ D)void标识符标识符标识符是由字母或下划线开头,后面跟是由字母或下划线开头,后面跟着字母、数字或下划线的字符序列着字母、数字或下划线的字符序列。2008.4.122008.4.12以下以下不合法不合法的用户标识符是的用户标识符是 A)print B)FOR C)&a D)_00 A)print B)FOR C)&a D)_00大写字母和小写字母是不同的字符;通常变量用大写字母和小写字母是不同的字符;通常变量用小写字母表示,常量用大写字母表示。小写字母表示,常量用大写字母表示。32 例例 以下选项中以下选项中非法非法的表达式是的表达式是 A)0=x i A)0=x i C)x+1=x+
23、1 D)1/3*x+C)x+1=x+1 D)1/3*x+合法的表达式2006.9.142006.9.14符合符合C C语法的表达式是语法的表达式是 A)+x,y=x-B)y=+(x+5)A)+x,y=x-B)y=+(x+5)C)x=x+10=x+y D)n%2.5 C)x=x+10=x+y D)n%2.52011.3.152011.3.15若有定义语句:若有定义语句:int a=3,b=2,int a=3,b=2,c=1;c=1;,以下选项中,以下选项中错误错误的赋值表达式是的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)
24、+c;D)a=1+(b=c);C)a=(b=4)+c;D)a=1+(b=c);33表达式的值2008.4.72008.4.7下列表达式的值为下列表达式的值为 n=i=2,+i,i+n=i=2,+i,i+3 3 例例 以下选项中与以下选项中与k=n+k=n+完全等价的表达式是完全等价的表达式是 A)k=n,n=n+1,k B)k=+nA)k=n,n=n+1,k B)k=+nC)n=n+1,k=n D)k+=n+1C)n=n+1,k=n D)k+=n+12009.3.142009.3.14若若x x的值为的值为2 2,则以下值不为,则以下值不为6 6的是的是 A)x*=x+1 B)x+,2*x A
25、)x*=x+1 B)x+,2*x C)x*=(1+x)D)2*x,x+=2 C)x*=(1+x)D)2*x,x+=234填空题 填空实现以下功能:填空实现以下功能:a a是一个两位的正整数,是一个两位的正整数,如果如果a a的十位、个位的十位、个位至少至少有有1 1位数字是位数字是7 7或者或者a a能能被被7 7整除,则输出整除,则输出YesYes,否则输出,否则输出NoNo。#include#include main()main()int a=75;int a=75;_?printf(Yes)printf(Yes):printf(No);printf(No);a/10=7|a%10=7|a
26、%7=0a/10=7|a%10=7|a%7=035编程题 请编写程序:输出请编写程序:输出w w后后n-1n-1位的数(位的数(w w是大于是大于1010并且小于并且小于1000010000的整数)。例如:若的整数)。例如:若w=45w=45,则输出则输出5 5;若;若w=4567,w=4567,则输出则输出567567。#include#include main()main()int w=45;int w=45;printf(%d,printf(%d,w=1000w=1000?w%1000w%1000 :(w=100(w=100?w%100w%100 :w%10)w%10););456;45
27、6;4567;4567;36本课小结VC+6.0 VC+6.0 开发环境开发环境C C语言的特点语言的特点C C程序的书写格式程序的书写格式运算符的优先级运算符的优先级运算符的结合性运算符的结合性37课后题:整数分离及合并将两个两位的正整数将两个两位的正整数a a、b b合并形成一个整数合并形成一个整数放在放在c c中:将中:将a a的十位和个位数依次放在的十位和个位数依次放在c c的的千位和十位上,千位和十位上,b b的十位和个位数依次放在的十位和个位数依次放在c c的百位和个位上。的百位和个位上。例如:若例如:若a=a=4545,b=,b=1212,使,使c=c=4 41 15 52 2。
28、38整数分离及合并 将两个两位的正整数将两个两位的正整数a a、b b合并形成一个整数放合并形成一个整数放在在c c中:将中:将a a的十位和个位数依次放在的十位和个位数依次放在c c的千位的千位和十位上,和十位上,b b的十位和个位数依次放在的十位和个位数依次放在c c的百位的百位和个位上。和个位上。例如:若例如:若a=a=4545,b=,b=1212,使,使c=c=4 41 15 52 2。#include#include main()main()int a=45,b=12,c;int a=45,b=12,c;c c=a/10*1000a/10*1000+b/10*100b/10*100+a%10*10a%10*10+b%10b%10;39 生活中难免有些不如意,就像旅行生活中难免有些不如意,就像旅行途中未必时时都有好风景。途中未必时时都有好风景。向前走!向前走!