资源描述
Lesson 1 常用运算符及优先级,mtysoft,.obj,.exe,.c,编程流程,运行,编辑,编译,链接,编译 Ctrl+F7 链接 F7 运行 Ctrl+F5,整型与格式符,#include main() int a, b, c; a = 1; b = 2; c = a + b; printf(“c = %d“, c); ,a,1,b,2,c,3,c = 3,赋值运算符,int a, b, c; a = 1; b = 2; a = a + b; b = a + b; c = a + b;,黄建语录一:变量某一时刻只能保存一个值。,a,1,b,2,c,8,3,5,int a = 3, b = 3, c = 3;,int a, b, c; a = 3; b = 3; c = 3;,int a, b, c; a = b = c = 3;,int a = b = c = 3;,变量赋值,算术运算符,乘法、除法和求余的运算优先级高于加法和减法。,减法,加法,乘法,除法,求余,求余运算: a = 7 % 4; b = -7 % 4; c = 7 % -4; d = -7 % -4; e = 4 % 7; f = 40 % 70;,算术运算符,黄氏定理一:两个整数进行算术运算, 结果还是整数。公式表示:7/4 = 1。,2006.4.14表达式3.6-5/2+1.2+5%2的值是 A)4.3 B)4.8 C)3.3 D)3.8,3 -3 3 -3 4 40,赋值运算符,例以下程序运行后,a的值是 int a = 2; a += a *= a += a / a;,18,2009.9.15以下程序运行后,x的值是 int x = 10; x -= x + x;,-10,2009.9.16以下程序的运行结果是 int a = 1, b = 0, c = 5; printf(“%d,%d“, b = a + b, c += c = 7);,1,14,2010.9.16以下程序的运行结果是 printf(“%d“, a += a -= a = 9);,0,自增自减运算符,自增运算符,例以下程序的运行结果是 int a = 2, b = 2, c, d; c = a+; d = +b; printf(“%d%d%d%d“, a, b, c, d);,3323,2005.4.17以下程序的运行结果是 int m = 12, n = 34; printf(“%d%d“, m+, +n);,1235,例以下程序运行后,x的值是 int m = 3, n = 4, x; x = -m+; x = x + 8 / +n;,-2,关系运算符,小于或等于 =,大于或等于 =,小于 ,不等于 !=,大于 ,等于 =,关系运算符,2007.4.21当x为大于1的奇数时,值为0的是 A)x % 2 = 1 B)x / 2 C)x % 2 != 0 D)x % 2 = 0,例以下程序运行后,c和d的值分别是 int a = 3, b = 3, c, d; c = a = 3; d = b = 3;,3,1,例以下程序的运行结果是 int a = 3, b = a 3, c = a = 3; printf(“%d,%d“, b, c);,0,1,逻辑运算符,真变假,假变真,全假才假,全真才真,逻辑运算符2-1,2005.4.9设a = 10; b = 20; 则c的值是 c = (a % b 1);,2010.3.17若a是数值类型,则逻辑表达式(a=1) | (a!=1)的值是,0,2009.9.8设a = 20,则输出结果是 printf(“%d,%d“, 0a20, 0a ,1,0,1,2005.4.20设c = 25,则a和b的值是 a = c / 10 % 9; b = a ,2,1,逻辑运算符2-2,2010.3.6x为int型变量,请写出一个表达式,用以判断x同时为3和7的倍数时,表达式的值为真。,x%3=0 & x%7=0,2005.9.23若有int a = 2, b = 3, c = 4; 则值为0的表达式是 A)(a b) & !c | 1 B)a & b C)(!a = 1) & (!b = 0) D)a | (b + b) & (c - a),短路逻辑运算符2-1,例以下程序运行后,各变量的值是 a = b = c = d = e = f = 1; x = (a = 2) ,2007.4.11int c 2, i = 1, j; 执行j = !c & i+以后, i的值为:,1,2008.4.6int c = 2, a = 1, b; 执行b = !c & a以后,b的值为:,0,短路逻辑运算符2-2,例以下程序运行后d的值是 int a = 4, b = 5, c = 0, d; d = !a ,1,例以下程序运行后n的值是 a = b = c = d = m = n = 2; (m = a b) ,2,2005.4.21以下程序的运行结果是 int i = 1, j = 2, k = 3, m; m = i+ = 1 ,2,3,3,1,条件运算符,条件运算符具有右结合性。 a b ? a : c d ? c : d; 相当于: a b ? a : (c d ? c : d);,2005.9.24以下程序运行后,k的值是 int k = 0, a = 1, b = 2, c = 3; k = a c ? c : k;,2005.4.22若a = 1, b = 4, c = 3, d = 2;则表达式a b ? a : c d ? c : d的值是 A)1 B)2 C)3 D)4,2,条件运算符,填空实现以下功能:在a、b、c中找出中间的那个数,放到变量t中。例如,当a = 3, b = 5, c = 4时,t为4。 t = ab ? (bc ? b : (ac ? c: _) : (ac ? _: (bc ? c: _);,a,a,b,例以下程序的运行结果是 int a = 0, b = 3, c; c = a+ ? +b : +a; printf(“%d%d%d“, a, b, c);,232,逗号运算符,k = (2, 3, 4); 执行后,k = 4; k = 2, 3, 4; 执行后,k = 2;,例以下程序的运行结果是 x = y = 1; z = x+, y+, +y; printf(“%d,%d,%d“, x, y, z);,2007.4.6以下程序运行后,a的值是 int a = 10; a = (3 * 5, a + 4);,14,2,3,1,例以下程序的运行结果是 printf(“%d“, (1,2),3);,2,C语言常见运算符优先级口诀,运算符优先级,运算符的右结合性,单目、条件和赋值运算符具有右结合性,如: 单目运算符:!a+; 相当于:!(a+); 条件运算符:a ? b : c ? d : e; 相当于:a ? b : (c ? d : e); 赋值运算符:a = b = c; 相当于:a = (b = c); 其它运算符左结合,如: 算术运算符:a + b - c; 相当于:(a + b) - c;,基本概念7-1,2007.4.15对于一个正常运行的C程序,以下叙述中正确的是 A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束,基本概念7-2,2008.4.11下列叙述中正确的是 A)C程序中的注释只能出现在程序的开始位置和语句的后面 B)C程序书写格式严格,要求一行内只能写一个语句 C)C程序书写格式自由,一个语句可以写在多行上 D)用C语言编写的程序只能放在一个程序文件中,基本概念7-3,2010.3.12以下关于C语言的叙述中正确的是 A)C语言中的注释不可以夹在变量名或关键字的中间 B)C语言中的变量可以在使用之前的任何位置进行定义 C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 D)C语言的数值常量中夹带空格不影响常量值的正确表示,基本概念7-4,2009.9.11下列叙述中正确的是 A)程序设计的任务就是编写程序代码并调试 B)程序设计的任务就是确定所用数据结构 C)程序设计的任务就是确定所用算法 D)以上三种说法都不完整,2008.9.11下列叙述中正确的是 A)C程序的基本组成单位是语句 B)C程序的每一行只能写一条语句 C)简单C语句必须以分号结束 D)C语句必须在一行内写完,基本概念7-5,2006.4.45以下叙述中错误的是 A)算法正确的程序最终一定会结束 B)算法正确的程序可以有零个输出 C)算法正确的程序可以有零个输入 D)算法正确的程序对于相同的输入一定有相同的结果,2008.9.12计算机能直接执行的程序是 A)源程序 B)目标程序 C)汇编程序 D)可执行程序,基本概念7-6,2010.9.12以下关于简单程序设计的步骤和顺序的说法中正确的是 A)确定算法后,整理并写出文档,最后进行编码和上机调试 B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档 C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档 D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构,基本概念7-7,2011.3.12以下叙述中错误的是 A)C 语言的可执行程序是由一系列机器指令构成的 B)用 C 语言编写的源程序不能直接在计算机上运行 C)通过编译得到的二进制目标程序需要连接才可以运行 D)在没有安装 C 语言集成开发环境的机器上不能运行 C 源程序生成的 .exe 文件,2009.9.12以下合法的用户标识符是 A)unsigned B)8_8 C)_0_ D)void,标识符,标识符是由字母或下划线开头,后面跟着字母、数字或下划线的字符序列。,2008.4.12以下不合法的用户标识符是 A)print B)FOR C)&a D)_00,大写字母和小写字母是不同的字符;通常变量用小写字母表示,常量用大写字母表示。,例以下选项中非法的表达式是 A)0 i C)x + 1 = x + 1 D)1 / 3 * x+,合法的表达式,2006.9.14符合C语法的表达式是 A)+x, y = x- B)y = +(x+5) C)x = x+10 = x+y D)n % 2.5,2011.3.15若有定义语句:int a = 3, b = 2, c = 1;,以下选项中错误的赋值表达式是 A)a = (b = 4) = 3; B)a = b = c + 1; C)a = (b = 4) + c; D)a = 1 + (b = c);,表达式的值,2008.4.7下列表达式的值为 n = i = 2, +i, i+,3,例以下选项中与k = n+完全等价的表达式是 A)k = n, n = n + 1, k B)k = +n C)n = n + 1, k = n D)k += n + 1,2009.3.14若x的值为2,则以下值不为6的是 A)x *= x+1 B)x+, 2*x C)x *= (1+x) D)2*x, x += 2,填空题,填空实现以下功能:a是一个两位的正整数,如果a的十位、个位至少有1位数字是7或者a能被7整除,则输出Yes,否则输出No。 #include main() int a = 75; _ ? printf(“Yes“) : printf(“No“); ,a/10=7 | a%10=7 | a%7=0,编程题,请编写程序:输出w后n-1位的数(w是大于10并且小于10000的整数)。例如:若w = 45,则输出5;若w = 4567, 则输出567。 #include main() int w = 45; ,printf(“%d“, w = 1000 ? w % 1000 : (w = 100 ? w % 100 : w % 10);,456;,4567;,1,本课小结,VC+ 6.0 开发环境,C语言的特点,C程序的书写格式,运算符的优先级,运算符的结合性,课后题:整数分离及合并,将两个两位的正整数a、b合并形成一个整数放在c中:将a的十位和个位数依次放在c的千位和十位上,b的十位和个位数依次放在c的百位和个位上。 例如:若a = 45, b = 12,使c = 4152。,整数分离及合并,将两个两位的正整数a、b合并形成一个整数放在c中:将a的十位和个位数依次放在c的千位和十位上,b的十位和个位数依次放在c的百位和个位上。 例如:若a = 45, b = 12,使c = 4152。,#include main() int a = 45, b = 12, c; c = a/10*1000 + b/10*100 + a%10*10 + b%10; ,生活中难免有些不如意,就像旅行,途中未必时时都有好风景。,向前走!,
展开阅读全文