《全国计算机等级考试二级C语言笔试高频考点.ppt》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言笔试高频考点.ppt(808页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机等级考试二级计算机等级考试二级C C语语言自学之高频考点言自学之高频考点余敦辉余敦辉教材、参考书与课时安排教材、参考书与课时安排参考书参考书1、全国计算机等级考试二级教程、全国计算机等级考试二级教程C语言程序设计语言程序设计教育部考试中心教育部考试中心高等教育出版社高等教育出版社2、二级、二级C语言高频考题导航语言高频考题导航南开大学出版社南开大学出版社3、C语言真题分析与实战训练语言真题分析与实战训练清华大学出版社清华大学出版社课时安排课时安排授课授课:28学时学时往年考题讲解往年考题讲解:4学时学时考试大纲考试大纲基本要求基本要求1.熟悉熟悉VisualC+6.0集成开发环境。集成开
2、发环境。2.掌握结构化程序设计的方法,具有良好的掌握结构化程序设计的方法,具有良好的程序设计风格。程序设计风格。3.掌握程序设计中简单的数据结构和算法并掌握程序设计中简单的数据结构和算法并能阅读简单的程序。能阅读简单的程序。4.在在VisualC+6.0集成环境下,能够编集成环境下,能够编写简单的写简单的C程序,并具有基本的纠错和调试程程序,并具有基本的纠错和调试程序的能力序的能力目录目录1.程序设计基本概念程序设计基本概念2.C程序设计程序设计的初步知识的初步知识3.顺序顺序结构结构4.选择选择结构结构5.循环循环结构结构6.字符型字符型数据数据7.函数函数8.地址和地址和指针指针9.数组1
3、0.字符串字符串11.对函数的进一步对函数的进一步讨论讨论12.用户用户标识符标识符的作用域和存储类的作用域和存储类13.编译预处理和动态存储分配编译预处理和动态存储分配14.结构体、共用体和用户定义类型结构体、共用体和用户定义类型15.位运算位运算16.文件文件第第1章程序设计基本概念章程序设计基本概念Top1:各种:各种“程序程序”的概念的概念Top3:结构化程序设计:结构化程序设计Top2:算法的特性:算法的特性C程序的上机步骤程序的上机步骤什么是程序?什么是程序?Top1:各种:各种“程序程序”的概念的概念人们把需要用计算机完成的工作写成一条条指令,并把这些指令存储在内存中,当人们给出
4、执行命令后,计算机就按指令顺序自动进行操作。这些可以连续执行的一条条指令的集合称为“程序”。CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象程序设计语言的发展程序设计语言的发展Top1:各种:各种“程序程序”的概念的概念程序的程序的“转换转换”机器语言机器语言汇编语言汇编语言高级语言高级语言C语言语言编译编译汇编汇编Top1:各种:各种“程序程序”的概念的概念链接链
5、接二进制语言二进制语言Top1:各种:各种“程序程序”的概念的概念真题分析真题分析(2007年4月)下列叙述中错误的是_A、计算机不能直接执行用C语言编写的源程序B、C程序经编译后,生成后缀为.Obj的文件是一个二进制文件C、后缀为.Obj的文件,经连接程序生成后缀为.Exe的文件是一个二进制文件D、后缀为.Obj和.Exe的二进制文件都可以直接运行DTop1:各种:各种“程序程序”的概念的概念真题分析真题分析(2006年4月)以下叙述中错误的是_A、C语言源程序经编译后生成后缀为.OBJ的目标程序B、C程序经过编译、连接步骤之后才能形成一个真正可以执行的二进制机器指令文件C、用C语言编写的程
6、序称为源程序,它以ASCII代码形式存放在一个文本文件中D、C语言中的每条可执行语句和非执行语句最终都将转换成二进制的机器指令D只有二进制语句才最终被转换只有二进制语句才最终被转换成二进制机器指令成二进制机器指令Top1:各种:各种“程序程序”的概念的概念真题分析真题分析(2008年9月)计算机能直接执行的程序是_A、源程序B、目标程序C、汇编程序D、可执行程序DTop1:各种:各种“程序程序”的概念的概念真题分析真题分析(2007年9月)C语言源程序的后缀是_A、.exeB、.cC、.objD、.cpBTop1:各种:各种“程序程序”的概念的概念真题分析真题分析(2006年9月)以下说明中正
7、确的是_、C语言比其它语言高级、C语言可以不用编译就能被计算机执行、C语言以接近英语和数学言语作为语言的表达式、C语言出现最晚,具有其它语言的一切优点CTop1:各种:各种“程序程序”的概念的概念真题分析真题分析(2011年3月)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是_(选择题第11题)A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对CTop1:各种:各种“程序程序”的概念的概念真题分析真题分析(2011年3月)以下叙述中错误的是_(选择题第12题)A)C语言的可执行程序是由一系列机器指令构成
8、的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件DTop1:各种:各种“程序程序”的概念的概念练习题练习题1、以下叙述中正确的是_A、C语言的源程序不必通过编译就可以直接运行B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令C、C程序经编译形成的二进制代码可直接执行D、C语言中的函数不可以单独进行编译BTop2:算法的特性:算法的特性什么是算法?什么是算法?算法是指为解决某个特定问题而采取的确定且有限的步骤。?算法应具有以下五个特点:算法应具有以下五个特点:1有
9、穷性:一有穷性:一个算法包含个算法包含的步骤是有的步骤是有限的。即在限的。即在若干个步骤若干个步骤后结束,并后结束,并且每一步都且每一步都在合理时间在合理时间内完成内完成2确定性:算法确定性:算法中每一条指令中每一条指令必须有确切的必须有确切的含义,不能有含义,不能有二义性,对于二义性,对于相同的输入必相同的输入必能得出相同的能得出相同的执行结果。执行结果。3可行性:算法可行性:算法中指定的操作,中指定的操作,都可以通过已都可以通过已经验证可以实经验证可以实现的基本运算现的基本运算执行有限次后执行有限次后实现。实现。5有一个有一个或多个或多个输出:算法的输出:算法的目的是为了求目的是为了求解。
10、这些解。这些“解解”只有通过输只有通过输出得到。出得到。4有零个有零个或多个或多个输入:算法都输入:算法都是用来处理数是用来处理数据对象的,通据对象的,通常情况下这些常情况下这些数据对象需要数据对象需要通过输入来得通过输入来得到。到。Top2:算法的特性:算法的特性如何评价算法?如何评价算法?时间复杂度时间复杂度1空间复杂度空间复杂度2对算法的要求有:必须是正确的,必须能高效率执行,即占用内存空间少,所需运行时间短。于是,对算法的评价可以从两个方面进行:Top2:算法的特性:算法的特性Top2:算法的特性:算法的特性真题分析真题分析(2007年4月)算法中,对需要执行的每一步骤操作,必须给出清
11、楚、严格的规定,这属于算法的是_A、正当性B、可行性C、确定性D、有穷性CTop2:算法的特性:算法的特性真题分析真题分析(2006年4月)以下叙述中错误的是_A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输出C、算法正确的程序可以有零个输入D、算法正确的程序对于相同的输入一定有相同的结果B算法必须有一个或多个输出算法必须有一个或多个输出Top2:算法的特性:算法的特性练习题练习题1、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是_A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性BTop3:结构化程序设计和模块化结构:结构化程序设计和模块化结
12、构执行时按顺序逐条执行,没有分支,没有转移。可由赋值语句、输入/输出语句等构成。顺序结构顺序结构根据不同的条件执行不同分支中的语句。可由if语句、switch语句等构成。选择结构选择结构根据各自的条件使一组语句重复执行多次或一次也不执行。可由for语句、while语句等构成。循环结构循环结构什么是模块化结构?什么是模块化结构?将复杂任务分解成若干个子任务,每个子任务又可分解成多个小子任务,每个小子任务只需完成一个简单的功能。在程序设计时用一个小模块实现这些功能。称这样的程序设计方法为“模块化”方法,由一个个功能模块构成的程序结构为模块化结构。Top3:结构化程序设计和模块化结构:结构化程序设计
13、和模块化结构Top3:结构化程序设计和模块化结构:结构化程序设计和模块化结构真题分析真题分析(2007年4月)以下叙述中错误的是_A、C语言是一种结构化的程序设计语言B、结构化程序由顺序、分支、循环三种基本结构组成C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法CTop3:结构化程序设计和模块化结构:结构化程序设计和模块化结构真题分析真题分析(2011年9月)以下选项中关于程序模块化的叙述错误的是_。(选择题12题)A)把程序分成若干相对独立的模块,便于编码和调试B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C)可采用自底向上、逐步细化的
14、设计方法把若干独立模块组装成所要求的程序D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序C开始开始结束结束编辑编辑编译编译连接连接运行运行运行结果运行结果可执行文件可执行文件 (.exe)源程序文件源程序文件 (.c)目标文件目标文件 (.obj)图图 C程序上机调试过程程序上机调试过程此两种代码此两种代码不能执行不能执行C程序的上机步骤程序的上机步骤第第2章章C程序设计的初步知识程序设计的初步知识Top4:C程序的结构和格式程序的结构和格式Top5:标识符的命名规则:标识符的命名规则Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则Top7:基本类型数
15、据的相互转换:基本类型数据的相互转换Top8:常见算术运算符的使用:常见算术运算符的使用Top9:算术运算符的优先级顺序:算术运算符的优先级顺序Top12:自加:自加自自减运算符减运算符Top10:赋值表达式的求值规则:赋值表达式的求值规则Top11:逗号表达式的求:逗号表达式的求值值规则规则例例2.1 2.1 第一个程序第一个程序 Hello,World!Hello,World!/*example1.1 The first C Program*/#include main()printf(“Hello,World!”);注释编译预处理函数语句输出:Hello,World!Top4:C语言程序
16、的构成和格式语言程序的构成和格式例例2.22.2/*example1.1 calculate the sum of a and b*/#include/*This is the main 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函数函数语句语句预处理命令注释格式特点格式特点习惯用习惯用小写小写
17、字母,大小写敏感字母,大小写敏感不使用行号,不使用行号,无程序行无程序行概念概念可使用空行和空格可使用空行和空格常用常用锯齿形锯齿形书写格式书写格式main().main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;jb _above$123M.D.John3days#33char$123ab如何命名标识符?如何命名标识符?真题分析真题分析(2006年9月)下列定义变量的语句中错误的是_A、int _int;B、double int_;C、char For;D、float US$;Top5:标识符的命名规则:标识符的命名规则DTop5:标识符的命名规则:
18、标识符的命名规则真题分析真题分析(2005年9月)以下叙述中错误的是_A、用户所定义的标识符允许使用关键字B、用户所定义的标识符应尽量做到“见名知意”C、用户所定义的标识符必须以字母或下划线开头D、用户定义的标识符中大、小写字母代表不同标识ATop5:标识符的命名规则:标识符的命名规则真题分析真题分析(2006年4月)下列不合法的用户标识符是_A、j2_KEYB、DoubleC、4dD、_8_CTop5:标识符的命名规则:标识符的命名规则真题分析真题分析(2007年4月)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是:_A、大写字母B、连接符C、数字字符D、下划线BTop5:标识符
19、的命名规则:标识符的命名规则真题分析真题分析(2007年9月)可在可在C程序中用做用户标识符的一组程序中用做用户标识符的一组标识符是标识符是_ATop5:标识符的命名规则:标识符的命名规则真题分析真题分析(2008年4月)以下选项中不合法的标识符是 _A、printB、FORC、&aD、_00 CTop5:标识符的命名规则:标识符的命名规则真题分析真题分析(2009年4月)以下选项中合法的标识符是_A)1_1B)1-1C)_11D)1_ _C一般用大写字母是宏定义预处理命令,不是C语句直接常量:整型常量 实型常量 字符常量 字符串常量如#define PRICE 30常量常量定义:程序运行时其
20、值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define 符号常量 常量例 符号常量举例#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:total=300Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则整型常量(整常数)整型常量(整常数)三种形式:十进制整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0
21、x123,0Xff问题:0123 =()100 x123=()100Xff =()1083291255问题:0123 =()100 x123=()100Xff =()10Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则数制基权表示数码特点10,10,10,十进制数0910逢十进一二进制数0122,2,2,逢二进一八进制数0788,8,8,逢八进一十六进制数09,AF,af1616,16,16,逢十六进一十进制:4956=410+910+510+610二进制:1011=12+02+12+12十六进制:81AE=816+116+1016+1416八进制:4275=48+28+7
22、8+58Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L,认为它是long int 型常量整型常量(整常数)整型常量(整常数)三种形式:十进制整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff例 30000 为int型 65536 为long int 型例 12 与 12LTop6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则32767327680012
23、 016 0 x10 0X23FD0568 o45 ox12t -0X12只能是正数只能是正数整数在内存中的存储形式整数在内存中的存储形式7654321000000000000001011111111111111111FF01FF02FF03FF04511111111111111111FF05FF0665535Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则CompanyLogo实型常量(实数或浮点数)实型常量(实数或浮点数)表示形式:十进制数形式:(必须有小数点必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:(e或E之前必须有数字;指数必须为整
24、数)如12.3e3,123E2,1.23e4,e-5 ,1.2E-3.5 实型常量的类型默认double型在实型常量后加字母f或F,认为它是float 型Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则X在内存中,实数一律是以指数形式存储的在内存中,实数一律是以指数形式存储的1计算机中存储整数不会出现误差,存储实型数往往存入误差。计算机中存储整数不会出现误差,存储实型数往往存入误差。2!注意:注意:字符常量字符常量定义:用单引号单引号括起来的单个普通字符单个普通字符或转义字符转义字符.字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“x
25、hh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 -x61 -a 60 -0 483 -()例:A-101-x41-65如 A65,a97,048,n10如 a A?n 101转义字符:反斜线后面跟一个字符或一个代码值表示例 转义字符举例 main()printf(101 x42 Cn);printf(I say:How are you?n);printf(C Programn);printf(Turbo C);运行结果:(屏幕显示)A B CIsay:”How are you?”C Pr
26、ogramTurbo CTop6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则55字符常量与字符串常量不同字符串常量字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例:char ch;ch=“A”;例:char ch;ch=A;Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1,b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数变量变量概念:
27、其值可以改变的量概念:其值可以改变的量变量的定义变量的定义变量初始化:定义时赋初值 例: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 function main 变量定义位置:一般放在函数开
28、头main()int a,b=2;float data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句main()int a,b=2;a=1;float data;data=(a+b)*1.2;printf(“data=%fn”,data);Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则&整型变量整型变量占字节数随机器不同而不同占字节数随机器不同而不同,一般占一个机器字一般占一个机器字shortintlongshortintlong可用可用sizeofsizeof(类型标识符)测量类型标识符)测量实型变量float
29、:占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=68;*/x=A+5;/*x=65+5;*/s=!+G /*s=33+71;*/没有字符串变量,用字符数组存放Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则真题分析真题分析(2007年4月)有
30、以下程序,其中有以下程序,其中%u表示按无符号整数表示按无符号整数输出,程序运行后的输出结果是:输出,程序运行后的输出结果是:_#include “stdio.h”main()unsigned int x=oxFFFF;/*x的初值为16进制数*/printf(“%un”,x);1A.65535B.32767C.D.0 xFFFFBTop6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则真题分析真题分析(2006年4月)下列不合法的数值常量是_A、011B、1e1C、8.0E0.5D、0 xabcdCTop6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则真题分析真题分
31、析(2005年9月)以下程序运行后的输出结果是_ main()int x=0210;printf(%Xn,x);0210010八进制数八进制数001000000880二进制数二进制数88Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则真题分析真题分析(2011年3月)以下选项中不能用作C程序合法常量的是_(选择题13题)A)1.234 B)123C)123 D)x7GBTop6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则真题分析真题分析(2011年3月)以下选项中可用作C程序合法实数的是_(选择题14题)A).1e0 B)3.0e0.2C)E9 D)9.12
32、EATop6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则真题分析真题分析(2011年9月)以下选项中关于C语言常量的叙述错误的是_(选择题13题)A)所谓常量,是指在程序运行过程中,其值不能被改变的量B)常量分为整型常量、实型常量、字符常量和字符串常量C)常量可分为数值型常量和非数值型常量D)经常被使用的变量可以定义成常量D常量是指在程序中不变的量,既然程序中已定义为变量,则不可能再定义为常量Top6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则练习题练习题1、以下选项中,不能作为合法常量的是_A、1.234e04B、1.234e0.4C、1.234e+4D、1.
33、234e0BTop6:C语言基本数据类型及其定义规则语言基本数据类型及其定义规则练习题练习题2、以下选项中,可作为C语言合法整数的是_A、1011BB、0386C、0 xffaD、x2a2C隐式转换隐式转换什么情况下发生什么情况下发生运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式函数调用转换函数调用转换-实参与形参类型不一致时转换实参与形参类型不一致时转换运算转换规则运算转换规则:不同类型数据运算时先不同类型数据运算时先自动自动
34、转换成同一转换成同一类型类型Top7:基本数据类型间的转换:基本数据类型间的转换doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例 char ch;int i;float f;double d;ch/i +f*d -(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f -d/l例 int i;float f;double d;long l;显式转换(强制转换)显式转换(强制转换)一般形式
35、:一般形式:(类型名类型名)(表达式)表达式)例例 (int)(x+y)(int)(x+y)(int)x+y (int)x+y (double)(3/2)(double)(3/2)(int)3.6 (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不说明:强制转换得到所需类型的中间变量,原变量类型不变变 例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生Top7:基本数据类型间的转换:基本数据类型间的转换真题分析真题分析(2006
36、年9月)以下选项中值为1的表达式是_A、1-0B、1-0C、1-0D、0-0Top7:基本数据类型间的转换:基本数据类型间的转换1是整型,是整型,0、0、1都是字符型。都是字符型。0换成整型的换成整型的ASCII码值为码值为48,1为为490是转义字符,表示是转义字符,表示0或空。或空。B真题分析真题分析(2006年9月)设有定义:float x=123.4567;,则执行下列语句 printf(%fn,(int)(x*100+0.5)/100.0);后的输出结果是_Top7:基本数据类型间的转换:基本数据类型间的转换(int)(x*100+0.5)/100.0(x*100+0.5)(123.
37、4567*100+0.5)12345.67+0.512346.17int12346100.0123.46123.460000真题分析真题分析(2005年9月)设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是_A、k=k=kB、-k+C、k%int(f)D、k=f=mTop7:基本数据类型间的转换:基本数据类型间的转换C%(求余运算符)的两边都必须是整型。(求余运算符)的两边都必须是整型。f为为float型,需要强制转换为型,需要强制转换为int型。正确型。正确的写法为的写法为(int)f而不是而不是int(f)真题分析真题分析(2005年9月)已经字母A的ASC
38、II码为65。以下程序运行后的输出结果为_main()char a,b;a=A+5-3;b=a+6-2;printf(%d%cn,a,b);Top7:基本数据类型间的转换:基本数据类型间的转换dca=A+5-3;a=C67b=a+6-2;a=67+4G67GTop7:基本数据类型间的转换:基本数据类型间的转换真题分析真题分析(2011年9月)若有定义语句:int a=10;double b=3.14;,则表达式A+a+b值的类型是_。(选择题14题)A).char B)int C)double D)floatC练习题练习题1、以下程序运行后的输出结果是_main()int a,b,c;a=25
39、;b=025;c=0 x25;printf(“%d%d%dn”,a,b,c);Top7:基本数据类型间的转换:基本数据类型间的转换0252*81+5*80210 x252*161+5*1603725 21 37C运运算算符符算术运算符:(算术运算符:(+-*/%+-+-*/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:(!逻辑运算符:(!&|&|)位运算符位运算符 :(:(|&|&)赋值运算符:(赋值运算符:(=及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(,)指针运算符:(指针运算符:(*&)求字节数求字节数 :(:(sizeofsize
40、of)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(.-.-)下标运算符:(下标运算符:()其它其它 :(:(()-()-)Top8:常见算术运算符的使用:常见算术运算符的使用学习运算符应注意:学习运算符应注意:运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算符优先级别结合方向结合方向结果的类型结果的类型Top8:常见算术运算符的使用:常见算术运算符的使用Top8:常见算术运算符的使用:常见算术运算符的使用知识点知识点1、基本的算术运算符有:、(减法(减法/取负)取负)、/、%(取余数)(取余数)2
41、、关于除法运算/C语言规定:两个整数相除,其商为整数,小数部分被舍弃。例 5/2 =-5/2.0 =例 5/2 =2 -5/2.0=-2.53、关于求余数运算要求两侧的操作数均为整型整型数据,否则出错。例 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 ()4、关于两边运算数类型不一致、关于两边运算数类型不一致系统将自动进行转换,使两边一致后再进行运算。系统将自动进行转换,使两边一致后再进行运算。5、所有实型数的运算均以双精度方式进行,若是单精度,、所有实型数的运算均以双精度方式进行,若是单精度,则在尾数部分添
42、则在尾数部分添0,转换为双精度。,转换为双精度。Top8:常见算术运算符的使用:常见算术运算符的使用6、算术表达式的概念、算术表达式的概念(1)表达式的概念)表达式的概念用运算符和括号将运算对象(常量、变量和函数等)连接用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语言语法规则的式子,称为表达式。起来的、符合语言语法规则的式子,称为表达式。(2)算术表达式的概念)算术表达式的概念表达式中的运算符都是算术运算符。例如:表达式中的运算符都是算术运算符。例如:3+6*9、(x+y)/2-1等,都是算术表达式。等,都是算术表达式。Top8:常见算术运算符的使用:常见算术运算符的使用7、
43、强制类型转换表达式转换格式为:转换格式为:转换格式为:转换格式为:(要转换成的数据类型要转换成的数据类型要转换成的数据类型要转换成的数据类型)()(被转换的表达式被转换的表达式被转换的表达式被转换的表达式)(double)a 等价于(double)(a)(int)(x+y)(float)5/2 等价于(float)(5)/2(float)(5/2)注意:强制转换类型得到的是一个所需类型的中间量,原表达式类型注意:强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。例如,并不发生变化。例如,(double)a只是将变量只是将变量a的值转换成一个的值转换成一个double型的中间量
44、,其数据类型并未转换成型的中间量,其数据类型并未转换成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.4B“/”为整除运算符,两边的运算对象都为为整除运算符,两边的运算对象都为整数时,运算结果为整型。整数时,运算结果为整型。Z为整型,所以最终结果为整数。为整型,所以最终结果为整数。Top8:常见算术运算符的使用:常见算术运算符的使用真题分析真题分析(2007年4月)以下选项中,当x为大于1的奇数
45、时,数为0的表达式为_A、x%2=1B、x/2C、x%2!=0D、x%2=0D%(求余运算符)的两边都必须是整型。(求余运算符)的两边都必须是整型。大于大于1的奇数除以的奇数除以2,余数必为,余数必为1。表达式成立时,整个表达式逻辑值为表达式成立时,整个表达式逻辑值为1表达式不成立时,整个表达式逻辑值为表达式不成立时,整个表达式逻辑值为0。Top8:常见算术运算符的使用:常见算术运算符的使用真题分析真题分析(2011年3月)以下程序运行后的输出结果是 _(填空题第6题)。#includemain()int a;a=(int)(double)(3/2)+0.5+(int)1.99*2);prin
46、tf(%dn,a);3Top8:常见算术运算符的使用:常见算术运算符的使用练习题练习题1、设变量x为float型且已经赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0D、x=(x/100+0.5)*100.0CTop8:常见算术运算符的使用:常见算术运算符的使用练习题练习题2、若有语句int i=-19,j=i%4;printf(“%dn”,j);则输出结果是 _-31、算术运算符的优先级、算术运算符的优先级()()/%单目双目高低To
47、p9:算术运算符的优先级顺序:算术运算符的优先级顺序2、算术运算符和圆括号的结合性、算术运算符和圆括号的结合性所谓结合性是指,当一个操作数两侧的运算符具有相同所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。先与右边的运算符结合。自左至右的结合方向,称为左结合性。反之,称为右结合性。自左至右的结合方向,称为左结合性。反之,称为右结合性。结合性是语言的独有概念。结合性是语言的独有概念。除除单目单目运算符运算符、赋值赋值运算符运算符和和条件条件运算符运算符是右结合性外,其它运算符是右
48、结合性外,其它运算符都是左结合性。都是左结合性。例如,算术运算符的结合方向是例如,算术运算符的结合方向是“自左至右自左至右”,即:,即:在执行在执行“ab+c”时,变量时,变量b先与减号结合,执行先与减号结合,执行“a-b”;然后再执行加然后再执行加c的运算。的运算。Top9:算术运算符的优先级顺序:算术运算符的优先级顺序真题分析真题分析(2006年4月)表达式3.6-52+1.2+5%2 的值是_A、4.3B、4.8C、3.3D、3.83.6-52+1.2+5%221.62.813.8DTop9:算术运算符的优先级顺序:算术运算符的优先级顺序真题分析真题分析(2005年9月)下列不能正确计算
49、代数式sin2(1/2)/3值的C 语言表达式是_1/3*sin(1/2)*sin(1/2)A.sin(0.5)*sin(0.5)/3B.pow(sin(0.5),2)/3C.1/3.0*pow(sin(1.0/2),2)D.1/3*sin(0)*sin(0)0.0766160.000000ATop9:算术运算符的优先级顺序:算术运算符的优先级顺序练习题练习题1、设有定义:float a=2,b=4,h=3;以下C语言表达式与代数式计算结果不相符的是 _A、(a+b)*h/2B、(1/2)*(a+b)*hC、(a+b)*h*1/2D、h/2*(a+b)B赋值运算赋值运算1赋值符号赋值符号“=”
50、就是赋值运算符,它的作用是将一个表达式就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。赋值运算符的一般形式为:的值赋给一个变量。赋值运算符的一般形式为:如果表达式值的类型,与被赋值变量的类型不一致,但都是如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量变量的数据类型,然后再赋值给变量.例 a=3;d=func();c=d+2;b=a;Top10:赋值表达式的求值规则:赋值表达式的求值规则变量变量=赋值表达式赋值表达式几点说明:几点说明:(1)赋值运