N01常用运算符及优先级_第1页
N01常用运算符及优先级_第2页
N01常用运算符及优先级_第3页
N01常用运算符及优先级_第4页
N01常用运算符及优先级_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、Lesson 1常用运算符及优先级2本课内容VC+ 6.0 VC+ 6.0 开发环境开发环境C C语言的特点语言的特点C C程序的书写格式程序的书写格式运算符的优先级运算符的优先级运算符的结合性运算符的结合性3.obj.obj.exe.exe.c.c编程流程运行运行编辑编辑编译编译链接链接编译 Ctrl+F7链接 F7运行 Ctrl+F54整型与格式符#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(cprintf(c

2、= = %d%d, c);, c); a a1 1b b2 2c c3 3c = 3c = 35赋值运算符intint a, b, c; 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;语录一语录一:变量某一时刻只能保存一个值变量某一时刻只能保存一个值。a a1 1b b2 2c c8 83 35 56输出格式符2006.9.192006.9.19以下程序的运行结果是以下程序的运行结果是 int a = 0, b = 0;int a = 0, b = 0; a

3、 = 10; b = 20; a = 10; b = 20; printf(a+b=%d, a+b); printf(a+b=%d, a+b);a+ba+b=30=302009.3.72009.3.7若有:若有:int x=99, y=9; int x=99, y=9; 请将以下语句请将以下语句补充完整,使其输出的结果为:补充完整,使其输出的结果为:x/y=11x/y=11。 printf( printf( , x/y);, x/y);x/y=%dx/y=%d 2011.92011.9. .6 6 若有:若有:int int a a= =1010, , b b= =2020; ; 请请写写语句

4、按以语句按以下格式输出下格式输出a a和和b b的值:的值:* * * *a=10,b=20a=10,b=20* * * * . .printf(printf(* * * *a=%d,b=%da=%d,b=%d* * * *, a, b);, a, b);7 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;

5、 int a = b = c = 3; int a = b = c = 3;变量赋值正确正确正确正确正确正确错误错误8算术运算符乘法、除法和求余的运算优先级高于加法和减法。减法减法加法加法乘法乘法除法除法求余求余- -* */ /% %+ +9求余:求余:a = 7 % 4; b = -7 % 4;a = 7 % 4; b = -7 % 4; c = 7 % -4; d = -7 % -4; c = 7 % -4; d = -7 % -4; e = 4 % 7; f = 40 % 70; e = 4 % 7; f = 40 % 70;算术运算符定理一定理一:两个整数进行算术运算,两个整数进行算

6、术运算,结果还是整数结果还是整数。公式表示公式表示: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.8A)4.3 B)4.8 C)3.3 D)3.83 -33 -33 -33 -34 404 402011.9.152011.9.15若有:若有:intint x x = = 12,12, y y = = 8,8, z;z; 然然后执行后执行语句语句 z z = = 0.90.9 + + x x / / y;y; 则则z z的的值为值为1 110赋

7、值运算符 例例 以下程序运行后,以下程序运行后,a a的值是的值是 int a = 2; a += a int a = 2; a += a * *= a += 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, p

8、rintf(%d,%d%d, b = a + b, b = a + b, , c += c c += c = = 7);7);1,141,142010.9.162010.9.16以下程序的运行结果是以下程序的运行结果是 printf(%d, printf(%d, a += a -= a = 9a += a -= a = 9););0 011自增自减运算符b = a+;相当于:相当于:b = a;b = a;a+;a+;先取值,后自增先取值,后自增b = +a;相当于:相当于:+a;+a;b = a;b = a;先自增,后取值先自增,后取值12自增运算符 例例 以下程序的运行结果是以下程序的运行

9、结果是 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以下程序的运行结果是以下程序的运行结果是 intint m = 12, n = 34; m = 12, n = 34; printf(%d%dprintf(%d%d, m+, +n);, m+, +n);12351235 例例 以下程序运行以下程序运行后后,x

10、 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-213关系运算符小于或等于小于或等于 =小于小于 等于等于 =关系关系运算运算14关系运算符2007.4.212007.4.21当当x x为大于为大于1 1的奇数时,值为的奇数时,值为0 0的是的是 A)x % 2 = 1 B)x / 2A)x % 2 = 1 B)x / 2 C)x % 2 != 0 D)x % 2 = 0 C)x % 2 != 0 D)x % 2 = 0 例例 以下程序运行后

11、,以下程序运行后,c c和和d d的值分别是的值分别是 intint a = 3, b = 3, c, d; a = 3, b = 3, c, d; c = a = 3; d = b = 3; c = a = 3; d = b = 3; 3,13,1 例例 以下程序的运行结果是以下程序的运行结果是 intint a = 3, b = a 3, c = a = 3; a = 3, b = a 3, c = a = 3; printf(%d,%dprintf(%d,%d, b, c);, b, c);0,10,115逻辑运算符真变假真变假假变真假变真全真才真全真才真全假才假全假才假 与与&

12、1 1或或|2 2非非! !3 316逻辑运算符2-12005.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 02009.9.82009.9.8 设设a = 20a = 20,则输出,则输出结果是结果是 printf(%d,%d, 0a20, 0a & a20); printf(%d,%d, 0a20

13、, 0a & a20);1,01,01 12005.4.202005.4.20 设设c = 25c = 25,则,则a a和和b b的值的值是是 a = c / 10 % 9; b = a & (-1); a = c / 10 % 9; b = a & (-1); 2,12,117逻辑运算符2-22010.3.6x2010.3.6x为为intint型变量,请写出一个表达式,用型变量,请写出一个表达式,用以判断以判断x x同时为同时为3 3和和7 7的倍数时,表达式的值为真。的倍数时,表达式的值为真。x%3=0 & x%7=0 x%3=0 & x%7=02

14、005.9.232005.9.23若有若有intint a = 2, b = 3, c = 4; a = 2, b = 3, c = 4; 则值则值为为0 0的表达式是的表达式是 A)(aA)(a b) & !c | 1 b) & (bb) & (b = = b b a)a) 后,后,a a和和b b的值分的值分别为别为0 0和和20202005.4.212005.4.21以下程序的运行结果是以下程序的运行结果是 intint i = 1, j = 2, k = 3, m; i = 1, j = 2, k = 3, m; m = i+ = 1 & (+j = 3

15、 | k+ = 3); m = i+ = 1 & (+j = 3 | k+ = 3); printf(%d,%d,%d,%dprintf(%d,%d,%d,%d, i, j, k, m); , i, j, k, m); 2,3,3,12,3,3,120条件运算符 条件运算符具有右结合性。条件运算符具有右结合性。 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

16、k的值是的值是 intint k = 0, a = 1, b = 2, c = 3; k = 0, a = 1, b = 2, c = 3; k = a b ? b : a; k = a c ? c : k;k = k 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 ?

17、 (ac ? _: (bc ? c: : (bc ? c: _); ); a aa ab b 例例 以下程序的运行结果是以下程序的运行结果是 intint a = 0, b = 3, c; a = 0, b = 3, c; c = a+ ? +b : +a;c = a+ ? +b : +a; printf(%d%d%dprintf(%d%d%d, a, a, b,b, c);c);23223222逗号运算符 k = (2, 3, 4); k = (2, 3, 4); 执行后,执行后,k = 4;k = 4; k = 2, 3, 4; k = 2, 3, 4; 执行后,执行后,k = 2;k =

18、 2; 例例 以下程序的运行结果是以下程序的运行结果是 x = y = 1;x = y = 1; z = x+, y+, +y;z = x+, y+, +y; printf(%d,%d,%dprintf(%d,%d,%d, x, y, z);, x, y, z); 2007.4.62007.4.6以下程序运行后,以下程序运行后,a a的值是的值是 intint a = 10; a = (3 a = 10; a = (3 * * 5, a + 4); 5, a + 4);14142,3,12,3,1 例例 以下程序的运行结果是以下程序的运行结果是 printf(%dprintf(%d, (1,2

19、),3);, (1,2),3);2 223C语言常见运算符优先级口诀24运算符优先级简称简称含义含义运算符运算符数目数目结合结合单单目单目+, -, !+, -, !单目单目算算术算术* *, /, %, /, %双目双目+, -+, -双目双目关关系关系, =, , , =, , =双目双目=, !=, !=双目双目逻逻辑逻辑&双目双目|双目双目条条件条件? :? :三目三目赋赋值赋值=,+=,-=,=,+=,-=,* *=,/=,%=,/=,%=双目双目逗逗号逗号, ,25运算符的右结合性 单目、条件和赋值单目、条件和赋值运算符具有运算符具有右右结合性,如:结合性,如: 单目单目运

20、算符:运算符:!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;26基本概念9-12

21、007.4.152007.4.15对于一个正常运行的对于一个正常运行的C C程序,以下叙述程序,以下叙述中中正确正确的是的是 A)A)程序的执行总是从程序的执行总是从mainmain函数开始,在函数开始,在mainmain函数函数结束结束 B)B)程序的执行总是从程序的第一个函数开始,在程序的执行总是从程序的第一个函数开始,在mainmain函数结束函数结束 C)C)程序的执行总是从程序的执行总是从mainmain函数开始,在程序最后函数开始,在程序最后一个函数中结束一个函数中结束 D)D)程序的执行总是从程序的第一个函数开始,在程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

22、程序的最后一个函数中结束27基本概念9-22008.4.112008.4.11下列叙述中下列叙述中正确正确的是的是 A)CA)C程序中的注释只能出现在程序的开始位置和程序中的注释只能出现在程序的开始位置和语句的后面语句的后面 B)CB)C程序书写格式严格,要求一行内只能写一个程序书写格式严格,要求一行内只能写一个语句语句 C)CC)C程序书写格式自由,一个语句可以写在多行程序书写格式自由,一个语句可以写在多行上上 D)D)用用C C语言编写的程序只能放在一个程序文件中语言编写的程序只能放在一个程序文件中28基本概念9-32010.3.122010.3.12以下关于以下关于C C语言的叙述中语言

23、的叙述中正确正确的是的是 A)CA)C语言中的注释不可以夹在变量名或关键字的语言中的注释不可以夹在变量名或关键字的中间中间 B)CB)C语言中的变量可以在使用之前的任何位置进语言中的变量可以在使用之前的任何位置进行定义行定义 C)C)在在C C语言算术表达式的书写中,运算符两侧的语言算术表达式的书写中,运算符两侧的运算数类型必须一致运算数类型必须一致 D)CD)C语言的数值常量中夹带空格不影响常量值的语言的数值常量中夹带空格不影响常量值的正确表示正确表示29基本概念9-42009.9.112009.9.11下列叙述中下列叙述中正确正确的是的是 A)A)程序设计的任务就是编写程序代码并调试程序设

24、计的任务就是编写程序代码并调试 B)B)程序设计的任务就是确定所用数据结构程序设计的任务就是确定所用数据结构 C)C)程序设计的任务就是确定所用算法程序设计的任务就是确定所用算法 D)D)以上以上三种说法都不完整三种说法都不完整2008.9.112008.9.11下列叙述中下列叙述中正确正确的是的是A)CA)C程序的基本组成单位是语句程序的基本组成单位是语句B)CB)C程序的每一行只能写一条语句程序的每一行只能写一条语句C)C)简单简单C C语句必须以分号结束语句必须以分号结束D)CD)C语句必须在一行内写完语句必须在一行内写完30基本概念9-52006.4.452006.4.45以下叙述中以

25、下叙述中错误错误的是的是A)A)算法正确的程序最终一定会结束算法正确的程序最终一定会结束B)B)算法正确的程序可以有零个输出算法正确的程序可以有零个输出C)C)算法正确的程序可以有零个输入算法正确的程序可以有零个输入D)D)算法正确的程序对于相同的输入一定有相同的算法正确的程序对于相同的输入一定有相同的结果结果2008.9.122008.9.12计算机能直接执行的程序是计算机能直接执行的程序是A)A)源程序源程序 B)B)目标程序目标程序 C)C)汇编程序汇编程序 D)D)可执行程序可执行程序31基本概念9-62010.9.122010.9.12以下关于简单程序设计的步骤和顺序以下关于简单程序

26、设计的步骤和顺序的说法中正确的是的说法中正确的是 A)A)确定算法后,整理并写出文档,最后进行编码确定算法后,整理并写出文档,最后进行编码和上机调试和上机调试 B)B)首先确定数据结构,然后确定算法,再编码,首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档并上机调试,最后整理文档 C)C)先编码和上机调试,在编码过程中确定算法和先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档数据结构,最后整理文档 D)D)先写好文档,再根据文档进行编码和上机调试,先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结最后确定算法和数据结构构32基本概念9-72011.3.

27、122011.3.12以下叙述中以下叙述中错误错误的是的是A)CA)C 语言的可执行程序是由一系列机器指令构成语言的可执行程序是由一系列机器指令构成的的B)B)用用 C C 语言编写的源程序不能直接在计算机上运语言编写的源程序不能直接在计算机上运行行C)C)通过编译得到的二进制目标程序需要连接才可通过编译得到的二进制目标程序需要连接才可以运行以运行D)D)在没有安装在没有安装 C C 语言集成开发环境的机器上不能语言集成开发环境的机器上不能运行运行 C C 源程序生成的源程序生成的 .exe.exe 文件文件33基本概念9-82011.9.112011.9.11以下叙述中以下叙述中错误错误的是

28、的是A)CA)C语言编写的函数源程序,其文件名后缀可以语言编写的函数源程序,其文件名后缀可以是是.C.CB)CB)C语言编写的函数都可以作为一个独立的源程语言编写的函数都可以作为一个独立的源程序文件序文件C)CC)C语言编写的每个函数都可以进行独立的编译语言编写的每个函数都可以进行独立的编译并执行并执行D)D)一个一个C C语言程序只能有一个主函数语言程序只能有一个主函数34基本概念9-92011.9.122011.9.12以下选项中关于程序模块化的叙述以下选项中关于程序模块化的叙述错错误误的是的是A)A)把程序分成若干相对独立的模块,可便于编码把程序分成若干相对独立的模块,可便于编码和调试和

29、调试B)B)把程序分成若干相对独立、功能单一的模块,把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块可便于重复使用这些模块C)C)可采用自底向上、逐步细化的设计方法把若干可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序独立模块组装成所要求的程序D)D)可采用自顶向下、逐步细化的设计方法把若干可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序独立模块组装成所要求的程序352009.9.122009.9.12以下以下合法合法的用户标识符是的用户标识符是 A)unsignedA)unsigned B)8_8 C)_0_ B)8_8 C)_0_ D)vo

30、idD)void标识符标识符标识符是由字母或下划线开头,后面跟着是由字母或下划线开头,后面跟着字母、数字或下划线的字符序列字母、数字或下划线的字符序列。2008.4.122008.4.12以下以下不合法不合法的用户标识符是的用户标识符是 A)printA)print B)FOR B)FOR C)&aC)&a D)_00 D)_00大写字母和小写字母是不同的字符;通常变量用小大写字母和小写字母是不同的字符;通常变量用小写字母表示,常量用大写字母表示。写字母表示,常量用大写字母表示。36 例例 以下选项中以下选项中非法非法的表达式是的表达式是 A)0 = x 100 A)0 = x

31、 i = i i C)xC)x + 1 = x + 1 D)1 / 3 + 1 = x + 1 D)1 / 3 * * x+ 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, c int a = 3, b = 2, c = 1;= 1;,以下选项

32、中,以下选项中错误错误的赋值表达式是的赋值表达式是A)a = (b = 4) = 3; B)a = b = c + 1;A)a = (b = 4) = 3; B)a = b = c + 1;C)a = (b = 4) + c; D)a = 1 + (b = c);C)a = (b = 4) + c; D)a = 1 + (b = c);37表达式的值2008.4.72008.4.7下列表达式的值为下列表达式的值为 n = i = 2, +i, i+n = i = 2, +i, i+3 3 例例 以下选项中与以下选项中与k k = = n+n+完全等价的表达式是完全等价的表达式是 A)kA)k

33、= n, n = n + 1, k = n, n = n + 1, k B B)k)k = +n = +nC C)n)n = n + 1, k = n = n + 1, k = n D)kD)k += n + 1 += n + 12009.3.142009.3.14若若x x的值为的值为2 2,则以下值不为,则以下值不为6 6的是的是 A)xA)x * *= x+1 = x+1 B)xB)x+, 2+, 2* *x x C)xC)x * *= (1+x) D)2= (1+x) D)2* *x, x += 2x, x += 238填空题 填空实现以下功能:填空实现以下功能:a a是一个两位的正整数,如果是一个两位的正整数,如果a a的十位、个位的十位、个位至少至少有有1 1位数字是位数字是7 7或者或者a a能被能被7 7整除,整除,则输出则输出YesYes,否则输出,否则输出NoNo。 #include #include main()main() int int a a = =

温馨提示

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

评论

0/150

提交评论