全国计算机等级考试二级C语言笔试高频考点.ppt

上传人:本田雅阁 文档编号:2985250 上传时间:2019-06-20 格式:PPT 页数:808 大小:12.93MB
返回 下载 相关 举报
全国计算机等级考试二级C语言笔试高频考点.ppt_第1页
第1页 / 共808页
全国计算机等级考试二级C语言笔试高频考点.ppt_第2页
第2页 / 共808页
全国计算机等级考试二级C语言笔试高频考点.ppt_第3页
第3页 / 共808页
全国计算机等级考试二级C语言笔试高频考点.ppt_第4页
第4页 / 共808页
全国计算机等级考试二级C语言笔试高频考点.ppt_第5页
第5页 / 共808页
点击查看更多>>
资源描述

《全国计算机等级考试二级C语言笔试高频考点.ppt》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言笔试高频考点.ppt(808页珍藏版)》请在三一文库上搜索。

1、计算机等级考试二级C语言自学之高频考点,余敦辉,Company Logo,教材、参考书与课时安排,参考书 1、全国计算机等级考试二级教程C语言程序设计 教育部考试中心 高等教育出版社 2、二级C语言高频考题导航 南开大学出版社 3、C语言真题分析与实战训练 清华大学出版社 课时安排 授课 :28学时 往年考题讲解:4学时,Company Logo,考试大纲, 基本要求 1.熟悉 Visual C+ 6.0 集成开发环境。 2.掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4.在 Visual C+ 6.0 集成环境下,能够编写简

2、单的C程序,并具有基本的纠错和调试程序的能力,Company Logo,目录,1.程序设计基本概念,2.C程序设计的初步知识,3.顺序结构,4.选择结构,5.循环结构,6.字符型数据,7.函数,8.地址和指针,9.数组,10.字符串,11.对函数的进一步讨论,12.用户标识符的作用域和存储类,13.编译预处理和动态存储分配,14.结构体、共用体和用户定义类型,15.位运算,16.文件,Company Logo,第1章 程序设计基本概念,Top1: 各种“程序”的概念,Top3: 结构化程序设计,Top2: 算法的特性,C程序的上机步骤,Company Logo,什么是程序?,?,Top1:各种

3、“程序”的概念,人们把需要用计算机完成的工作写成一条条指令,并把这些指令存储在内存中,当人们给出执行命令后,计算机就按指令顺序自动进行操作。这些可以连续执行的一条条指令的集合称为“程序”。,Company Logo,机器语言,汇编语言,高级语言,面向过程,面向对象,CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统 如 ADD A, B,面向机器的语言,程序设计是数据被加工的过程,客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系,程序设计关键是定义类,并由类派生对象,程序设计语言的发展

4、,Top1:各种“程序”的概念,Company Logo,程序的“转换”,机器语言,汇编语言,高级语言,C语言,编译,汇编,源程序,目标程序 .OBJ,Top1:各种“程序”的概念,可执行程序 .exe,链接,二进制语言,Company Logo,Top1:各种“程序”的概念,真题分析 (2007年4月)下列叙述中错误的是_ A、计算机不能直接执行用C语言编写的源程序 B、C程序经编译后,生成后缀为.Obj的文件是一个二进制文件 C、后缀为.Obj的文件,经连接程序生成后缀为.Exe的文件是一个二进制文件 D、后缀为.Obj和.Exe的二进制文件都可以直接运行,D,Company Logo,T

5、op1:各种“程序”的概念,真题分析 (2006年4月)以下叙述中错误的是_ A、C语言源程序经编译后生成后缀为.OBJ的目标程序 B、C程序经过编译、连接步骤之后才能形成一个真正可以执行的二进制机器指令文件 C、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D、C语言中的每条可执行语句和非执行语句最终都将转换成二进制的机器指令,D,只有二进制语句才最终被转换 成二进制机器指令,Company Logo,Top1:各种“程序”的概念,真题分析 (2008年9月)计算机能直接执行的程序是_ A、源程序 B、目标程序 C、汇编程序 D、可执行程序,D,Company L

6、ogo,Top1:各种“程序”的概念,真题分析 (2007年9月)C语言源程序的后缀是_ A、.exe B、.c C、.obj D、.cp,B,Company Logo,Top1:各种“程序”的概念,真题分析 (2006年9月)以下说明中正确的是_ 、C语言比其它语言高级 、C语言可以不用编译就能被计算机执行 、C语言以接近英语和数学言语作为语言的表达式 、C语言出现最晚,具有其它语言的一切优点,C,Company Logo,Top1:各种“程序”的概念,真题分析 (2011年3月)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是_(选择题第11题) A)C语言程序仅可

7、以编译执行 B)C语言程序仅可以解释执行 C)C语言程序既可以编译执行又可以解释执行 D)以上说法都不对,C,Company Logo,Top1:各种“程序”的概念,真题分析 (2011年3月)以下叙述中错误的是_(选择题第12题) A)C语言的可执行程序是由一系列机器指令构成的 B)用C语言编写的源程序不能直接在计算机上运行 C)通过编译得到的二进制目标程序需要连接才可以运行 D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件,D,Company Logo,Top1:各种“程序”的概念,练习题 1、以下叙述中正确的是_ A、C语言的源程序不必通过编译就可以直接运行 B

8、、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C程序经编译形成的二进制代码可直接执行 D、C语言中的函数不可以单独进行编译,B,Company Logo,Top2:算法的特性,什么是算法?,算法是指为解决某个特定问题而采取的确定且有限的步骤。,?,Company Logo,算法应具有以下五个特点:,Top2:算法的特性,Company Logo,如何评价算法?,?,对算法的要求有:必须是正确的,必须能高效率执行,即占用内存空间少,所需运行时间短。于是,对算法的评价可以从两个方面进行:,Top2:算法的特性,Company Logo,Top2:算法的特性,真题分析 (2007年

9、4月)算法中,对需要执行的每一步骤操作,必须给出清楚、严格的规定,这属于算法的是_ A、正当性 B、可行性 C、确定性 D、有穷性,C,Company Logo,Top2:算法的特性,真题分析 (2006年4月)以下叙述中错误的是_ A、算法正确的程序最终一定会结束 B、算法正确的程序可以有零个输出 C、算法正确的程序可以有零个输入 D、算法正确的程序对于相同的输入一定有相同的结果,B,算法必须有一个或多个输出,Company Logo,Top2:算法的特性,练习题 1、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是_ A、有零个或多个输入 B、有零个或多个输出 C、

10、有穷性 D、可行性,B,Company Logo,Top3: 结构化程序设计和模块化结构,执行时按顺序逐条执行,没有分支,没有转移。可由赋值语句、输入/输出语句等构成。,顺序结构,根据不同的条件执行不同分支中的语句。可由if语句、switch语句等构成。,选择结构,根据各自的条件使一组语句重复执行多次或一次也不执行。可由for语句、while语句等构成。,循环结构,Company Logo,什么是模块化结构?,?,将复杂任务分解成若干个子任务,每个子任务又可分解成多个小子任务,每个小子任务只需完成一个简单的功能。在程序设计时用一个小模块实现这些功能。称这样的程序设计方法为“模块化”方法,由一个

11、个功能模块构成的程序结构为模块化结构。,Top3: 结构化程序设计和模块化结构,Company Logo,Top3: 结构化程序设计和模块化结构,真题分析 (2007年4月)以下叙述中错误的是_ A、C语言是一种结构化的程序设计语言 B、结构化程序由顺序、分支、循环三种基本结构组成 C、使用三种基本结构构成的程序只能解决简单问题 D、结构化程序设计提倡模块化的设计方法,C,Company Logo,Top3: 结构化程序设计和模块化结构,真题分析 (2011年9月)以下选项中关于程序模块化的叙述错误的是_。(选择题12题) A)把程序分成若干相对独立的模块,便于编码和调试 B) 把程序分成若干

12、相对独立、功能单一的模块,可便于重复使用这些模块 C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序,C,Company Logo,运行结果,可执行文件 (.exe),源程序文件 (.c),目标文件 (.obj),图 C程序上机调试过程,此两种代码 不能执行,C程序的上机步骤,Company Logo,第2章 C程序设计的初步知识,Top4:C程序的结构和格式,Top5:标识符的命名规则,Top6:C语言基本数据类型及其定义规则,Top7:基本类型数据的相互转换,Top8:常见算术运算符的使用,Top9

13、:算术运算符的优先级顺序,Top12:自加自减运算符,Top10:赋值表达式的求值规则,Top11:逗号表达式的求值规则,Company Logo,例2.1 第一个程序 Hello,World!,/* example1.1 The first C Program*/ #include main() printf(“Hello,World!”); ,输出: Hello,World!,Top4:C语言程序的构成和格式,Company Logo,例2.2,/* example1.1 calculate the sum of a and b*/ #include /* This is the main

14、 program */ main() int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn“,sum); /* This function calculates the sum of x and y */ int add(int x,int y) int z; z=x+y; return(z); ,运行结果: sum=34,Company Logo,格式特点 习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式,main( ) . . . . ,main( ) int i , j , sum; su

15、m=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); ,优秀程序员的素质之一: 使用TAB缩进 对齐 有足够的注释 有合适的空行,Top4:C语言程序的构成和格式,Company Logo,结构特点 函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 程序语句 C程序由语句组成 用“;”作为语句终止符 注释 /* */为注释,不能嵌套 不产生编译代码,例: /*This is the main /* of exam

16、ple1.1*/ */,编译预处理命令,Top4:C语言程序的构成和格式,例: #include “stdio.h”,命令行,不是C语句,Company Logo,真题分析 (2011年9月)以上叙述中错误的是_(选择题11题)。 A)C语言编写的函数源程序,其文件名后缀可以是C B) C语言编写的函数都可以作为一个独立的源程序文件 C) C语言编写的每个函数都可以进行独立的编译并执行 D)一个C语言程序只能有一个主函数,Top4:C语言程序的构成和格式,C,Company Logo,真题分析 (2007年4月)对于一个正常运行的C程序,以下叙述中正确的是_ A、程序的执行总是从main函数开

17、始,在main函数结束 B、程序的执行总是从程序的第一个函数开始,在main函数中结束 C、程序的执行总是从main函数开始,在程序的最后一个函数中结束。 D、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束。,Top4:C语言程序的构成和格式,A,Company Logo,Top4:C语言程序的构成和格式,真题分析 (2005年9月)以下关于函数的叙述中正确的是_ A、 每个函数都可以被其他函数调用(包括main 函数) B、每个函数都可以被单独编译 C、每个函数都可以单独运行 D、在一个函数内部可以定义另一个函数,B,Company Logo,Top4:C语言程序的构成和格

18、式,真题分析 (2007年9月)以下叙述中正确的是_ A、 C语言程序将从源程序中第一个函数开始执行 B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D、main可作为用户标识符,用以命名任意一个函数作为主函数,C,Company Logo,Top4:C语言程序的构成和格式,真题分析 (2008年9月)以下叙述中正确的是_ A、 C程序的基本组成单位是语句 B、 C程序中每一行只能写一条语句 C、简单C语句必须以分号结束 D、 C语句必须在一行内写完,C,Company Logo,Top4:C语言程序

19、的构成和格式,练习题 1、在一个程序中,_ A、main函数必须出现在所有函数之前 B、main函数可以在任何地方出现 C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置,B,Company Logo,Top5:标识符的命名规则,什么是标识符?,?,标识符是用来标识变量、符号常量、函数、数组、类型、标号以及一些具有专门含义的有效字符序列。 通俗地讲,标识符就是一个名字。,Company Logo,标识分为三类:,预定义标识符,用户标识符,关键字,(1)数据类型关键字12个 (2)控制语句关键字12个 (3)存储类型关键字4个 (4)其它关键字4个,一般指C语言提供的库函

20、数名和编译预处理命令。,在编程时,需要用户给一些变量、函数、数组等命名,这类由用户根据需要自定义的标识符称为用户标识符,Top5:标识符的命名规则,Company Logo,组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 长度:最长32个字符 命名原则: 见名知意 不宜混淆 如l与I, o与0,例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123,M.D.John,3days,#33,char,$123,ab,

21、如何命名标识符?,?,Company Logo,真题分析 (2006年9月)下列定义变量的语句中错误的是_ A、int _int; B、double int_; C、char For; D、float US$;,Top5:标识符的命名规则,D,Company Logo,Top5:标识符的命名规则,真题分析 (2005年9月)以下叙述中错误的是_ A、用户所定义的标识符允许使用关键字 B、用户所定义的标识符应尽量做到“见名知意” C、用户所定义的标识符必须以字母或下划线开头 D、用户定义的标识符中大、小写字母代表不同标识,A,Company Logo,Top5:标识符的命名规则,真题分析 (20

22、06年4月)下列不合法的用户标识符是_ A、 j2_KEY B、Double C、 4d D、_8_,C,Company Logo,Top5:标识符的命名规则,真题分析 (2007年4月)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是:_ A、大写字母 B、连接符 C、数字字符 D、下划线,B,Company Logo,Top5:标识符的命名规则,真题分析 (2007年9月)可在C程序中用做用户标识符的一组标识符是_,A,Company Logo,Top5:标识符的命名规则,真题分析 (2008年4月)以下选项中不合法的标识符是 _ A、print B、FOR C、 &a D、 _

23、00,C,Top5:标识符的命名规则,真题分析 (2009年4月)以下选项中合法的标识符是_ A)1_1 B)1-1 C)_11 D)1_ _,Company Logo,C,Company Logo,一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量,如 #define PRICE 30,常量 定义:程序运行时其值不能改变的量(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量,例 符号常量举例 #define PRICE 30 main() int num,total; num=10; total=num

24、*PRICE; printf(“total=%d“,total); ,运行结果:total=300,Top6:C语言基本数据类型及其定义规则,Company Logo,整型常量(整常数) 三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff,问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10,Top6:C语言基本数据类型及其定义规则,Company Logo,十进制:4956= 410+910 +5

25、10+610,二进制:1011=12+02 +12+12,十六进制:81AE=816+116 +1016+1416,八进制:4275=48+28 +78+58,Top6:C语言基本数据类型及其定义规则,Company Logo,整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量,整型常量(整常数) 三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff,例 30000 为int型 6

26、5536 为long int 型,例 12 与 12L,Top6:C语言基本数据类型及其定义规则,32767 32768 0 012 016 0x10 0X23FD,0568 o45 ox12t -0X12,只能是正数,Company Logo,整数在内存中的存储形式,FF01,FF02,FF03,FF04,5,1,FF05,FF06,65535,Top6:C语言基本数据类型及其定义规则,Company Logo,实型常量(实数或浮点数) 表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数)

27、如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5,实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型,Top6:C语言基本数据类型及其定义规则,X,!注意:,Company Logo,55,字符常量 定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的ASCII码值,如 101 -A 012 -n 376 - x61 -a 60 -0 483 -(),例: A-101-x41-65,如 A65, a97, 048 , n10,如 a A ? n 101,转义字符:反斜线后面跟一个字符或一个代码值表示,例 转义字符

28、举例 main() printf(“101 x42 Cn“); printf(“I say:“How are you?“n“); printf(“C Programn“); printf(“Turbo C“); ,运行结果:(屏幕显示) A B C Isay:”How are you?” C Program Turbo C,Top6:C语言基本数据类型及其定义规则,Company Logo,字符常量与字符串常量不同,字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志,例: char ch; ch=“A”;,Top6:C语言基本数据类型及其定

29、义规则,Company Logo,变量 概念:其值可以改变的量 变量的定义,变量初始化:定义时赋初值,例: int a,b,c; float data;,例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;,变量的使用:先定义,后使用,例1 int student; stadent=19; /Undefined symbol statent in function main,例2 float a,b,c; c=a%b; /Illegal use of floating point in funct

30、ion main,变量定义位置:一般放在函数开头,Top6:C语言基本数据类型及其定义规则,Company Logo,整型变量 占字节数随机器不同而不同,一般占一个机器字 shortintlong 可用sizeof(类型标识符)测量,实型变量 float:占4字节,提供7位有效数字 double:占8字节,提供1516位有效数字,字符型变量 字符变量存放字符ASCII码 char与int数据间可进行算术运算,例 float a; a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/,例 a=D; /* a

31、=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,没有字符串变量,用字符数组存放,Top6:C语言基本数据类型及其定义规则,Company Logo,Top6:C语言基本数据类型及其定义规则,真题分析 (2007年4月)有以下程序,其中%u表示按无符号整数输出,程序运行后的输出结果是:_ #include “stdio.h” main() unsigned int x=oxFFFF; /* x的初值为16进制数 */ printf(“%un”,x); ,1,A.,65535,B.,32767,C.,D.,0xFFFF,B,Company Log

32、o,Top6:C语言基本数据类型及其定义规则,真题分析 (2006年4月)下列不合法的数值常量是_ A、 011 B、 1e1 C、 8.0E0.5 D、0xabcd,C,Company Logo,Top6:C语言基本数据类型及其定义规则,真题分析 (2005年9月)以下程序运行后的输出结果是_,main( ) int x=0210; printf(“%Xn“,x); ,0210,0,1,0,八进制数,0,0,1,0,0,0,0,0,0,8,8,0,二进制数,88,mpany Logo,Top6:C语言基本数据类型及其定义规则,真题分析 (2011年3月)以下选项中不能用作C程序合法常量的是_

33、(选择题13题) A)1.234 B)123 C)123 D)“x7G“,B,mpany Logo,Top6:C语言基本数据类型及其定义规则,真题分析 (2011年3月)以下选项中可用作C程序合法实数的是_(选择题14题) A).1e0 B)3.0e0.2 C)E9 D)9.12E,A,mpany Logo,Top6:C语言基本数据类型及其定义规则,真题分析 (2011年9月)以下选项中关于C语言常量的叙述错误的是_(选择题13题) A)所谓常量,是指在程序运行过程中,其值不能被改变的量 B)常量分为整型常量、实型常量、字符常量和字符串常量 C)常量可分为数值型常量和非数值型常量 D)经常被使

34、用的变量可以定义成常量,D,常量是指在程序中不变的量,既然程序中已定义为变量,则不可能再定义为常量,Company Logo,Top6:C语言基本数据类型及其定义规则,练习题 1、以下选项中,不能作为合法常量的是_ A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0,B,Company Logo,Top6:C语言基本数据类型及其定义规则,练习题 2、以下选项中,可作为C语言合法整数的是_ A、1011B B、0386 C、0xffa D、x2a2,C,Company Logo,隐式转换 什么情况下发生 运算转换-不同类型数据混合运算时 赋值转换-把一个值赋给

35、与其类型不同的变量时 输出转换-输出时转换成指定的输出格式 函数调用转换-实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型,Top7:基本数据类型间的转换,Company Logo,Company Logo,显式转换(强制转换) 一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,

36、i=3,精度损失问题,Top7:基本数据类型间的转换,Company Logo,真题分析 (2006年9月)以下选项中值为1的表达式是_ A、 1-0 B、 1-0 C、 1-0 D、 0-0,Top7:基本数据类型间的转换,1是整型,0、0、1都是字符型。 0换成整型的ASCII码值为48,1为49 0是转义字符,表示0或空。,B,Company Logo,真题分析 (2006年9月)设有定义:float x=123.4567;,则执行下列语句 printf(“%fn“,(int)(x*100+0.5)/100.0); 后的输出结果是_,Top7:基本数据类型间的转换,(int) (x*10

37、0+0.5) / 100.0,(x*100+0.5),(123.4567*100+0.5),12345.67+0.5,12346.17,int,12346,100.0,123.46,123.460000,Company Logo,真题分析 (2005年9月)设有定义:int k=1,m=2; float f=7;则下列选项中错误的表达式是_ A、k=k =k B、-k+ + C、k%int(f) D、k =f =m,Top7:基本数据类型间的转换,C,%(求余运算符)的两边都必须是整型。 f为float型,需要强制转换为int型。正确 的写法为 (int) f 而不是 int (f),Comp

38、any Logo,真题分析 (2005年9月)已经字母A的ASCII码为65。以下程序运行后的输出结果为_ main( ) char a,b; a=A+5-3; b=a+6-2; printf(“%d %cn“,a,b); ,Top7:基本数据类型间的转换,d,c,a=A+5-3;,a=C,67,b=a+6-2;,a=67+4,G,67 G,Top7:基本数据类型间的转换,真题分析 (2011年9月)若有定义语句:int a=10; double b=3.14;,则表达式A+a+b值的类型是_。(选择题14题) A).char B)int C) double D)float,Company L

39、ogo,C,Company Logo,练习题 1、以下程序运行后的输出结果是_ main() int a,b,c; a=25;b=025;c=0x25; printf(“%d %d %dn”,a,b,c); ,Top7:基本数据类型间的转换,025,2*81+5*80,21,0x25,2*161+5*160,37,25 21 37,Company Logo,Top8:常见算术运算符的使用,Company Logo,学习运算符应注意: 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型,Top8:常见算术运算符的使用,Company Logo,Top8

40、:常见算术运算符的使用,知识点,1、基本的算术运算符有:、 (减法/取负) 、/、% (取余数),2、关于除法运算/ C语言规定:两个整数相除,其商为整数,小数部分被 舍弃。,例 5/2 = -5/2.0 =,例 5/2 = 2 -5/2.0 = -2.5,3、关于求余数运算 要求两侧的操作数均为整型数据,否则出错。,例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),Company Logo,4、关于两边运算数类型不一致 系统将自动进行转换,使两边一致后再进行运算。,5、所有实型数的运

41、算均以双精度方式进行,若是单精度, 则在尾数部分添0,转换为双精度。,Top8:常见算术运算符的使用,6、算术表达式的概念,(1)表达式的概念 用运算符和括号将运算对象(常量、变量和函数等)连接 起来的、符合语言语法规则的式子,称为表达式。,(2)算术表达式的概念 表达式中的运算符都是算术运算符。例如: 3 + 6 * 9、(x + y) / 2 - 1等,都是算术表达式。,Company Logo,Top8:常见算术运算符的使用,7、强制类型转换表达式,转换格式为: (要转换成的数据类型)(被转换的表达式),(double)a 等价于(double)(a) (int)(x + y) (flo

42、at)5 / 2 等价于(float)(5)/2 (float)(5 / 2),注意:强制转换类型得到的是一个所需类型的中间量,原表达式类型 并不发生变化。例如,(double)a 只是将变量a的值转换成一个double 型的中间量,其数据类型并未转换成double型。,Top8:常见算术运算符的使用,真题分析 (2011年9月)若有定义语句: int x=12,y=8,z; 在其后执行语句z=0.9+x/y; 则z的值为_。(选择题15题) A)1.9 B)1 C)2 D)2.4,Company Logo,B,“/”为整除运算符,两边的运算对象都为 整数时,运算结果为整型。 Z为整型,所以最

43、终结果为整数。,Company Logo,Top8:常见算术运算符的使用,真题分析 (2007年4月)以下选项中,当x为大于1的奇数时,数为0的表达式为_ A、x%2=1 B、x/2 C、x%2!=0 D、x%2=0,D,%(求余运算符)的两边都必须是整型。 大于1的奇数除以2,余数必为1。 表达式成立时,整个表达式逻辑值为1 表达式不成立时,整个表达式逻辑值为0。,Top8:常见算术运算符的使用,真题分析 (2011年3月)以下程序运行后的输出结果是 _(填空题第6题) 。 #include main() int a; a=(int)(double)(3/2)+0.5+(int)1.99*2

44、); printf(“%dn“,a); ,Company Logo,3,Company Logo,Top8:常见算术运算符的使用,练习题 1、设变量x为float型且已经赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_ A、x=x*100+0.5/100.0 B、x=(x*100+0.5)/100.0 C、x=(int)(x*100+0.5)/100.0 D、x=(x/100+0.5)*100.0,C,Company Logo,Top8:常见算术运算符的使用,练习题 2、若有语句 int i=-19,j=i%4; printf(“%dn”,j); 则输出结果是 _,

45、-3,Company Logo,1、算术运算符的优先级 () / % ,单目,双目,高,低,Top9:算术运算符的优先级顺序,2、算术运算符和圆括号的结合性 所谓结合性是指,当一个操作数两侧的运算符具有相同 的优先级时,该操作数是先与左边的运算符结合,还是 先与右边的运算符结合。,自左至右的结合方向,称为左结合性。反之,称为右结合性。 结合性是语言的独有概念。 除单目运算符、赋值运算符和条件运算符是右结合性外,其它运算符 都是左结合性。,例如,算术运算符的结合方向是“自左至右”,即: 在执行“a b + c”时,变量b先与减号结合,执行“a - b”; 然后再执行加c的运算。,Company

46、Logo,Top9:算术运算符的优先级顺序,真题分析 (2006年4月)表达式3.6-52+1.2+5%2 的值是_ A、4.3 B、4.8 C、3.3 D、3.8,3.6-52+1.2+5%2,2,1.6,2.8,1,3.8,D,Company Logo,Top9:算术运算符的优先级顺序,真题分析 (2005年9月)下列不能正确计算代数式sin2(1/2)/3值的C 语言表达式是_,1/3 *sin(1/2)*sin(1/2),A.,sin(0.5)*sin(0.5)/3,B.,pow(sin(0.5),2)/3,C.,1/3.0*pow(sin(1.0/2),2),D.,1/3*sin(0)*sin(0),0.076616,0.000000,A,Company Logo,Top9:算术运算符的优先级顺序,练习题 1、设有定义:float a=2,b=4,h=3;以下C语言表达式与代数式计算结果不相符的是 _ A、(a+b)*h/2 B、(1/2)*(a+b)*h C、(a+b)*h*1/2 D、h/2*(a+b),B,Company Logo,赋值运算,赋值符号“=”就是赋值运算符,它的作用是将一个表达式 的值赋给一个变量。赋值运算符的一般形式为:,如果表达式值的类型,与被赋值变量的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1