




已阅读5页,还剩803页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机等级考试二级C语言自学之高频考点 余敦辉 CompanyLogo 教材 参考书与课时安排 参考书1 全国计算机等级考试二级教程 C语言程序设计教育部考试中心高等教育出版社2 二级C语言高频考题导航南开大学出版社3 C语言真题分析与实战训练清华大学出版社课时安排授课 28学时往年考题讲解 4学时 CompanyLogo 考试大纲 基本要求1 熟悉VisualC 6 0集成开发环境 2 掌握结构化程序设计的方法 具有良好的程序设计风格 3 掌握程序设计中简单的数据结构和算法并能阅读简单的程序 4 在VisualC 6 0集成环境下 能够编写简单的C程序 并具有基本的纠错和调试程序的能力 CompanyLogo 目录 1 程序设计基本概念 2 C程序设计的初步知识 3 顺序结构 4 选择结构 5 循环结构 6 字符型数据 7 函数 8 地址和指针 9 数组 10 字符串 11 对函数的进一步讨论 12 用户标识符的作用域和存储类 13 编译预处理和动态存储分配 14 结构体 共用体和用户定义类型 15 位运算 16 文件 CompanyLogo 第1章程序设计基本概念 Top1 各种 程序 的概念 Top3 结构化程序设计 Top2 算法的特性 C程序的上机步骤 CompanyLogo 什么是程序 Top1 各种 程序 的概念 人们把需要用计算机完成的工作写成一条条指令 并把这些指令存储在内存中 当人们给出执行命令后 计算机就按指令顺序自动进行操作 这些可以连续执行的一条条指令的集合称为 程序 CompanyLogo 机器语言 汇编语言 高级语言 面向过程 面向对象 CPU指令系统 由0 1序列构成的指令码组成如 10000000加10010000减 用助记符号描述的指令系统如ADDA B 面向机器的语言 程序设计是数据被加工的过程 客观世界可以分类 对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系 程序设计关键是定义类 并由类派生对象 程序设计语言的发展 Top1 各种 程序 的概念 CompanyLogo 程序的 转换 机器语言 汇编语言 高级语言 C语言 编译 汇编 源程序 目标程序 OBJ Top1 各种 程序 的概念 可执行程序 exe 链接 二进制语言 CompanyLogo Top1 各种 程序 的概念 真题分析 2007年4月 下列叙述中错误的是 A 计算机不能直接执行用C语言编写的源程序B C程序经编译后 生成后缀为 Obj的文件是一个二进制文件C 后缀为 Obj的文件 经连接程序生成后缀为 Exe的文件是一个二进制文件D 后缀为 Obj和 Exe的二进制文件都可以直接运行 D CompanyLogo Top1 各种 程序 的概念 真题分析 2006年4月 以下叙述中错误的是 A C语言源程序经编译后生成后缀为 OBJ的目标程序B C程序经过编译 连接步骤之后才能形成一个真正可以执行的二进制机器指令文件C 用C语言编写的程序称为源程序 它以ASCII代码形式存放在一个文本文件中D C语言中的每条可执行语句和非执行语句最终都将转换成二进制的机器指令 D 只有二进制语句才最终被转换成二进制机器指令 CompanyLogo Top1 各种 程序 的概念 真题分析 2008年9月 计算机能直接执行的程序是 A 源程序B 目标程序C 汇编程序D 可执行程序 D CompanyLogo Top1 各种 程序 的概念 真题分析 2007年9月 C语言源程序的后缀是 A exeB cC objD cp B CompanyLogo Top1 各种 程序 的概念 真题分析 2006年9月 以下说明中正确的是 C语言比其它语言高级 C语言可以不用编译就能被计算机执行 C语言以接近英语和数学言语作为语言的表达式 C语言出现最晚 具有其它语言的一切优点 C CompanyLogo Top1 各种 程序 的概念 真题分析 2011年3月 计算机高级语言程序的运行方法有编译执行和解释执行两种 以下叙述中正确的是 选择题第11题 A C语言程序仅可以编译执行B C语言程序仅可以解释执行C C语言程序既可以编译执行又可以解释执行D 以上说法都不对 C CompanyLogo Top1 各种 程序 的概念 真题分析 2011年3月 以下叙述中错误的是 选择题第12题 A C语言的可执行程序是由一系列机器指令构成的B 用C语言编写的源程序不能直接在计算机上运行C 通过编译得到的二进制目标程序需要连接才可以运行D 在没有安装C语言集成开发环境的机器上不能运行C源程序生成的 exe文件 D CompanyLogo Top1 各种 程序 的概念 练习题1 以下叙述中正确的是 A C语言的源程序不必通过编译就可以直接运行B C语言中的每条可执行语句最终都将被转换成二进制的机器指令C C程序经编译形成的二进制代码可直接执行D C语言中的函数不可以单独进行编译 B CompanyLogo Top2 算法的特性 什么是算法 算法是指为解决某个特定问题而采取的确定且有限的步骤 CompanyLogo 算法应具有以下五个特点 Top2 算法的特性 CompanyLogo 如何评价算法 对算法的要求有 必须是正确的 必须能高效率执行 即占用内存空间少 所需运行时间短 于是 对算法的评价可以从两个方面进行 Top2 算法的特性 CompanyLogo Top2 算法的特性 真题分析 2007年4月 算法中 对需要执行的每一步骤操作 必须给出清楚 严格的规定 这属于算法的是 A 正当性B 可行性C 确定性D 有穷性 C CompanyLogo Top2 算法的特性 真题分析 2006年4月 以下叙述中错误的是 A 算法正确的程序最终一定会结束B 算法正确的程序可以有零个输出C 算法正确的程序可以有零个输入D 算法正确的程序对于相同的输入一定有相同的结果 B 算法必须有一个或多个输出 CompanyLogo Top2 算法的特性 练习题1 一个算法应该具有 确定性 等5个特性 下面对另外4个特性的描述中错误的是 A 有零个或多个输入B 有零个或多个输出C 有穷性D 可行性 B CompanyLogo Top3 结构化程序设计和模块化结构 执行时按顺序逐条执行 没有分支 没有转移 可由赋值语句 输入 输出语句等构成 顺序结构 根据不同的条件执行不同分支中的语句 可由if语句 switch语句等构成 选择结构 根据各自的条件使一组语句重复执行多次或一次也不执行 可由for语句 while语句等构成 循环结构 CompanyLogo 什么是模块化结构 将复杂任务分解成若干个子任务 每个子任务又可分解成多个小子任务 每个小子任务只需完成一个简单的功能 在程序设计时用一个小模块实现这些功能 称这样的程序设计方法为 模块化 方法 由一个个功能模块构成的程序结构为模块化结构 Top3 结构化程序设计和模块化结构 CompanyLogo Top3 结构化程序设计和模块化结构 真题分析 2007年4月 以下叙述中错误的是 A C语言是一种结构化的程序设计语言B 结构化程序由顺序 分支 循环三种基本结构组成C 使用三种基本结构构成的程序只能解决简单问题D 结构化程序设计提倡模块化的设计方法 C CompanyLogo Top3 结构化程序设计和模块化结构 真题分析 2011年9月 以下选项中关于程序模块化的叙述错误的是 选择题12题 A 把程序分成若干相对独立的模块 便于编码和调试B 把程序分成若干相对独立 功能单一的模块 可便于重复使用这些模块C 可采用自底向上 逐步细化的设计方法把若干独立模块组装成所要求的程序D 可采用自顶向下 逐步细化的设计方法把若干独立模块组装成所要求的程序 C CompanyLogo 运行结果 可执行文件 exe 源程序文件 c 目标文件 obj 图C程序上机调试过程 此两种代码不能执行 C程序的上机步骤 CompanyLogo 第2章C程序设计的初步知识 Top4 C程序的结构和格式 Top5 标识符的命名规则 Top6 C语言基本数据类型及其定义规则 Top7 基本类型数据的相互转换 Top8 常见算术运算符的使用 Top9 算术运算符的优先级顺序 Top12 自加自减运算符 Top10 赋值表达式的求值规则 Top11 逗号表达式的求值规则 CompanyLogo 例2 1第一个程序Hello World example1 1ThefirstCProgram includemain printf Hello World 输出 Hello World Top4 C语言程序的构成和格式 CompanyLogo 例2 2 example1 1calculatethesumofaandb include Thisisthemainprogram main inta b sum a 10 b 24 sum add a b printf sum d n sum Thisfunctioncalculatesthesumofxandy intadd intx inty intz z x y return z 运行结果 sum 34 CompanyLogo 格式特点习惯用小写字母 大小写敏感不使用行号 无程序行概念可使用空行和空格常用锯齿形书写格式 main main inti j sum sum 0 for i 1 i 10 i for j 1 j 10 j sum i j printf d n sum 优秀程序员的素质之一 使用TAB缩进 对齐有足够的注释有合适的空行 Top4 C语言程序的构成和格式 CompanyLogo 结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main 程序执行从main开始 在main中结束 其它函数通过嵌套调用得以执行 程序语句C程序由语句组成用 作为语句终止符注释 为注释 不能嵌套不产生编译代码 例 Thisisthemain ofexample1 1 编译预处理命令 Top4 C语言程序的构成和格式 例 include stdio h 命令行 不是C语句 CompanyLogo 真题分析 2011年9月 以上叙述中错误的是 选择题11题 A C语言编写的函数源程序 其文件名后缀可以是CB C语言编写的函数都可以作为一个独立的源程序文件C C语言编写的每个函数都可以进行独立的编译并执行D 一个C语言程序只能有一个主函数 Top4 C语言程序的构成和格式 C CompanyLogo 真题分析 2007年4月 对于一个正常运行的C程序 以下叙述中正确的是 A 程序的执行总是从main函数开始 在main函数结束B 程序的执行总是从程序的第一个函数开始 在main函数中结束C 程序的执行总是从main函数开始 在程序的最后一个函数中结束 D 程序的执行总是从程序的第一个函数开始 在程序的最后一个函数中结束 Top4 C语言程序的构成和格式 A CompanyLogo Top4 C语言程序的构成和格式 真题分析 2005年9月 以下关于函数的叙述中正确的是 A 每个函数都可以被其他函数调用 包括main函数 B 每个函数都可以被单独编译C 每个函数都可以单独运行D 在一个函数内部可以定义另一个函数 B CompanyLogo Top4 C语言程序的构成和格式 真题分析 2007年9月 以下叙述中正确的是 A C语言程序将从源程序中第一个函数开始执行B 可以在程序中由用户指定任意一个函数作为主函数 程序将从此开始执行C C语言规定必须用main作为主函数名 程序将从此开始执行 在此结束D main可作为用户标识符 用以命名任意一个函数作为主函数 C CompanyLogo Top4 C语言程序的构成和格式 真题分析 2008年9月 以下叙述中正确的是 A C程序的基本组成单位是语句B C程序中每一行只能写一条语句C 简单C语句必须以分号结束D C语句必须在一行内写完 C CompanyLogo Top4 C语言程序的构成和格式 练习题1 在一个程序中 A main函数必须出现在所有函数之前B main函数可以在任何地方出现C main函数必须出现在所有函数之后D main函数必须出现在固定位置 B CompanyLogo Top5 标识符的命名规则 什么是标识符 标识符是用来标识变量 符号常量 函数 数组 类型 标号以及一些具有专门含义的有效字符序列 通俗地讲 标识符就是一个名字 CompanyLogo 标识分为三类 预定义标识符 用户标识符 关键字 1 数据类型关键字12个 2 控制语句关键字12个 3 存储类型关键字4个 4 其它关键字4个 一般指C语言提供的库函数名和编译预处理命令 在编程时 需要用户给一些变量 函数 数组等命名 这类由用户根据需要自定义的标识符称为用户标识符 Top5 标识符的命名规则 CompanyLogo 组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度 最长32个字符命名原则 见名知意不宜混淆如l与I o与0 例 判断下列标识符号合法性sumSumM D JohndayDate3daysstudent name 33lotus 1 2 3chara b above 123 M D John 3days 33 char 123 a b 如何命名标识符 CompanyLogo 真题分析 2006年9月 下列定义变量的语句中错误的是 A int int B doubleint C charFor D floatUS Top5 标识符的命名规则 D CompanyLogo Top5 标识符的命名规则 真题分析 2005年9月 以下叙述中错误的是 A 用户所定义的标识符允许使用关键字B 用户所定义的标识符应尽量做到 见名知意 C 用户所定义的标识符必须以字母或下划线开头D 用户定义的标识符中大 小写字母代表不同标识 A CompanyLogo Top5 标识符的命名规则 真题分析 2006年4月 下列不合法的用户标识符是 A j2 KEYB DoubleC 4dD 8 C CompanyLogo Top5 标识符的命名规则 真题分析 2007年4月 按照C语言规定的用户标识符命名规则 不能出现在标识符中的是 A 大写字母B 连接符C 数字字符D 下划线 B CompanyLogo Top5 标识符的命名规则 真题分析 2007年9月 可在C程序中用做用户标识符的一组标识符是 A CompanyLogo Top5 标识符的命名规则 真题分析 2008年4月 以下选项中不合法的标识符是 A printB FORC aD 00 C Top5 标识符的命名规则 真题分析 2009年4月 以下选项中合法的标识符是 A 1 1B 1 1C 11D 1 CompanyLogo C CompanyLogo 一般用大写字母是宏定义预处理命令 不是C语句直接常量 整型常量实型常量字符常量字符串常量 如 definePRICE30 常量定义 程序运行时其值不能改变的量 即常数 分类 符号常量 用标识符代表常量定义格式 define符号常量常量 例符号常量举例 definePRICE30main intnum total num 10 total num PRICE printf total d total 运行结果 total 300 Top6 C语言基本数据类型及其定义规则 CompanyLogo 整型常量 整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 问题 0123 100 x123 100Xff 10 Top6 C语言基本数据类型及其定义规则 CompanyLogo 十进制 4956 4 10 9 10 5 10 6 10 二进制 1011 1 2 0 2 1 2 1 2 十六进制 81AE 8 16 1 16 10 16 14 16 八进制 4275 4 8 2 8 7 8 5 8 Top6 C语言基本数据类型及其定义规则 CompanyLogo 整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L 认为它是longint型常量 整型常量 整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 例30000为int型65536为longint型 例12与12L Top6 C语言基本数据类型及其定义规则 32767 3276800120160 x100X23FD 0568o45ox12t 0X12 只能是正数 CompanyLogo 整数在内存中的存储形式 FF01 FF02 FF03 FF04 5 1 FF05 FF06 65535 Top6 C语言基本数据类型及其定义规则 CompanyLogo 实型常量 实数或浮点数 表示形式 十进制数形式 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 e或E之前必须有数字 指数必须为整数 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5 实型常量的类型默认double型在实型常量后加字母f或F 认为它是float型 Top6 C语言基本数据类型及其定义规则 X 注意 CompanyLogo 55 字符常量定义 用单引号括起来的单个普通字符或转义字符 字符常量的值 该字符的ASCII码值 如 101 A 012 n 376 x61 a 60 0 483 例 A 101 x41 65 如 A 65 a 97 0 48 n 10 如 a A n 101 转义字符 反斜线后面跟一个字符或一个代码值表示 例转义字符举例main printf 101 x42C n printf Isay Howareyou n printf CProgram n printf Turbo C 运行结果 屏幕显示 ABCIsay Howareyou CProgram Turbo C Top6 C语言基本数据类型及其定义规则 CompanyLogo 字符常量与字符串常量不同 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A Top6 C语言基本数据类型及其定义规则 CompanyLogo 变量概念 其值可以改变的量变量的定义 变量初始化 定义时赋初值 例 inta b c floatdata 例 inta 2 b c 4 floatdata 3 67 charch A intx 1 y 1 z 1 intx y z 1 变量的使用 先定义 后使用 例1intstudent stadent 19 Undefinedsymbol statent infunctionmain 例2floata b c c a b Illegaluseoffloatingpointinfunctionmain 变量定义位置 一般放在函数开头 Top6 C语言基本数据类型及其定义规则 CompanyLogo 整型变量占字节数随机器不同而不同 一般占一个机器字short int long可用sizeof 类型标识符 测量 实型变量float 占4字节 提供7位有效数字double 占8字节 提供15 16位有效数字 字符型变量字符变量存放字符ASCII码char与int数据间可进行算术运算 例floata a 111111 111 a 111111 1 doubleb b 111111 111 b 111111 111 例a D a 68 x A 5 x 65 5 s G s 33 71 没有字符串变量 用字符数组存放 Top6 C语言基本数据类型及其定义规则 CompanyLogo Top6 C语言基本数据类型及其定义规则 真题分析 2007年4月 有以下程序 其中 u表示按无符号整数输出 程序运行后的输出结果是 include stdio h main unsignedintx oxFFFF x的初值为16进制数 printf u n x 1 A 65535 B 32767 C D 0 xFFFF B CompanyLogo Top6 C语言基本数据类型及其定义规则 真题分析 2006年4月 下列不合法的数值常量是 A 011B 1e1C 8 0E0 5D 0 xabcd C CompanyLogo Top6 C语言基本数据类型及其定义规则 真题分析 2005年9月 以下程序运行后的输出结果是 main intx 0210 printf X n x 0210 0 1 0 八进制数 0 0 1 0 0 0 0 0 0 8 8 0 二进制数 88 mpanyLogo Top6 C语言基本数据类型及其定义规则 真题分析 2011年3月 以下选项中不能用作C程序合法常量的是 选择题13题 A 1 234B 123 C 123D x7G B mpanyLogo Top6 C语言基本数据类型及其定义规则 真题分析 2011年3月 以下选项中可用作C程序合法实数的是 选择题14题 A 1e0B 3 0e0 2C E9D 9 12E A mpanyLogo Top6 C语言基本数据类型及其定义规则 真题分析 2011年9月 以下选项中关于C语言常量的叙述错误的是 选择题13题 A 所谓常量 是指在程序运行过程中 其值不能被改变的量B 常量分为整型常量 实型常量 字符常量和字符串常量C 常量可分为数值型常量和非数值型常量D 经常被使用的变量可以定义成常量 D 常量是指在程序中不变的量 既然程序中已定义为变量 则不可能再定义为常量 CompanyLogo Top6 C语言基本数据类型及其定义规则 练习题1 以下选项中 不能作为合法常量的是 A 1 234e04B 1 234e0 4C 1 234e 4D 1 234e0 B CompanyLogo Top6 C语言基本数据类型及其定义规则 练习题2 以下选项中 可作为C语言合法整数的是 A 1011BB 0386C 0 xffaD x2a2 C CompanyLogo 隐式转换什么情况下发生运算转换 不同类型数据混合运算时赋值转换 把一个值赋给与其类型不同的变量时输出转换 输出时转换成指定的输出格式函数调用转换 实参与形参类型不一致时转换运算转换规则 不同类型数据运算时先自动转换成同一类型 Top7 基本数据类型间的转换 CompanyLogo CompanyLogo 显式转换 强制转换 一般形式 类型名 表达式 例 int x y int x y double 3 2 int 3 6说明 强制转换得到所需类型的中间变量 原变量类型不变 例main floatx inti x 3 6 i int x printf x f i d x i 结果 x 3 600000 i 3 精度损失问题 Top7 基本数据类型间的转换 CompanyLogo 真题分析 2006年9月 以下选项中值为1的表达式是 A 1 0 B 1 0 C 1 0D 0 0 Top7 基本数据类型间的转换 1是整型 0 0 1 都是字符型 0 换成整型的ASCII码值为48 1 为49 0 是转义字符 表示0或空 B CompanyLogo 真题分析 2006年9月 设有定义 floatx 123 4567 则执行下列语句printf f n int x 100 0 5 100 0 后的输出结果是 Top7 基本数据类型间的转换 int x 100 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 CompanyLogo 真题分析 2005年9月 设有定义 intk 1 m 2 floatf 7 则下列选项中错误的表达式是 A k k kB k C k int f D k f m Top7 基本数据类型间的转换 C 求余运算符 的两边都必须是整型 f为float型 需要强制转换为int型 正确的写法为 int f而不是int f CompanyLogo 真题分析 2005年9月 已经字母A的ASCII码为65 以下程序运行后的输出结果为 main chara b a A 5 3 b a 6 2 printf d c n a b Top7 基本数据类型间的转换 d c a A 5 3 a C 67 b a 6 2 a 67 4 G 67G Top7 基本数据类型间的转换 真题分析 2011年9月 若有定义语句 inta 10 doubleb 3 14 则表达式 A a b值的类型是 选择题14题 A charB intC doubleD float CompanyLogo C CompanyLogo 练习题1 以下程序运行后的输出结果是 main inta b c a 25 b 025 c 0 x25 printf d d d n a b c Top7 基本数据类型间的转换 025 2 81 5 80 21 0 x25 2 161 5 160 37 252137 CompanyLogo Top8 常见算术运算符的使用 CompanyLogo 学习运算符应注意 运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型 Top8 常见算术运算符的使用 CompanyLogo Top8 常见算术运算符的使用 知识点 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 11 10 15 1 05 5 2 CompanyLogo 4 关于两边运算数类型不一致系统将自动进行转换 使两边一致后再进行运算 5 所有实型数的运算均以双精度方式进行 若是单精度 则在尾数部分添0 转换为双精度 Top8 常见算术运算符的使用 6 算术表达式的概念 1 表达式的概念用运算符和括号将运算对象 常量 变量和函数等 连接起来的 符合 语言语法规则的式子 称为表达式 2 算术表达式的概念表达式中的运算符都是算术运算符 例如 3 6 9 x y 2 1等 都是算术表达式 CompanyLogo Top8 常见算术运算符的使用 7 强制类型转换表达式 转换格式为 要转换成的数据类型 被转换的表达式 double a等价于 double a int x y float 5 2等价于 float 5 2 float 5 2 注意 强制转换类型得到的是一个所需类型的中间量 原表达式类型并不发生变化 例如 double a只是将变量a的值转换成一个double型的中间量 其数据类型并未转换成double型 Top8 常见算术运算符的使用 真题分析 2011年9月 若有定义语句 intx 12 y 8 z 在其后执行语句z 0 9 x y 则z的值为 选择题15题 A 1 9B 1C 2D 2 4 CompanyLogo B 为整除运算符 两边的运算对象都为整数时 运算结果为整型 Z为整型 所以最终结果为整数 CompanyLogo Top8 常见算术运算符的使用 真题分析 2007年4月 以下选项中 当x为大于1的奇数时 数为0的表达式为 A x 2 1B x 2C x 2 0D x 2 0 D 求余运算符 的两边都必须是整型 大于1的奇数除以2 余数必为1 表达式成立时 整个表达式逻辑值为1表达式不成立时 整个表达式逻辑值为0 Top8 常见算术运算符的使用 真题分析 2011年3月 以下程序运行后的输出结果是 填空题第6题 includemain inta a int double 3 2 0 5 int 1 99 2 printf d n a CompanyLogo 3 CompanyLogo Top8 常见算术运算符的使用 练习题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 0 C CompanyLogo Top8 常见算术运算符的使用 练习题2 若有语句inti 19 j i 4 printf d n j 则输出结果是 3 CompanyLogo 1 算术运算符的优先级 单目 双目 高 低 Top9 算术运算符的优先级顺序 2 算术运算符和圆括号的结合性所谓结合性是指 当一个操作数两侧的运算符具有相同的优先级时 该操作数是先与左边的运算符结合 还是先与右边的运算符结合 自左至右的结合方向 称为左结合性 反之 称为右结合性 结合性是 语言的独有概念 除单目运算符 赋值运算符和条件运算符是右结合性外 其它运算符都是左结合性 例如 算术运算符的结合方向是 自左至右 即 在执行 a b c 时 变量b先与减号结合 执行 a b 然后再执行加c的运算 CompanyLogo Top9 算术运算符的优先级顺序 真题分析 2006年4月 表达式3 6 5 2 1 2 5 2的值是 A 4 3B 4 8C 3 3D 3 8 3 6 5 2 1 2 5 2 2 1 6 2 8 1 3 8 D CompanyLogo 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 CompanyLogo Top9 算术运算符的优先级顺序 练习题1 设有定义 floata 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 CompanyLogo 赋值运算 赋值符号 就是赋值运算符 它的作用是将一个表达式的值赋给一个变量 赋值运算符的一般形式为 如果表达式值的类型 与被赋值变量的类型不一致 但都是数值型或字符型时 系统自动地将表达式的值转换成被赋值变量的数据类型 然后再赋值给变量 例a 3 d func c d 2 b a Top10 赋值表达式的求值规则 变量 赋值表达式 CompanyLogo 几点说明 1 赋值运算符的优先级只高于逗号运算符 比其它的运算符优先级都低 且具有自右向左的结合性 如 a 2 7 3 2 赋值运算符不是数学中的 等于号 而是进行 赋予 操作 3 表达式x y读作 将y的值赋给变量x 而不读作 x等于y 4 赋值运算符左边只能是变量 不能是常量或是表达式 如a b c就是错误的 5 赋值运算符右边也可以是赋值表达式 如a b 7 1 而a 7 1 b则是错误的 6 视作运算符 a 19是一个表达式 C语言规定最左边变量中所得到的新值就是赋值表达式的值 Top10 赋值表达式的求值规则 CompanyLogo 复合赋值表达式 复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的 复合赋值运算的一般格式为 变量双目运算符 表达式 复合赋值运算符等价于 变量 变量双目运算符 表达式 当表达式为简单表达式时 表达式外的一对圆括号才可缺省 否则可能出错 例 x 3x x 3y x 6y y x 6 Top10 赋值表达式的求值规则 CompanyLogo 说明 结合方向 自右向左左侧必须是变量 不能是常量或表达式 赋值表达式的值与变量值相等 且可嵌套 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 例3 x 2 y a b 3 例floatf inti i 10 f i 则f 10 0 例inti i 2 56 结果i 2 例 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 表达式值为5 a b c值为5 b 5 a 5 表达式值11 c 6 a 11 表达式值10 a 10 b 4 c 6 表达式值5 a 5 b 10 c 2 Top10 赋值表达式的求值规则 X CompanyLogo 思考2 a 12 a a a a 思考3 inta 2 a 4 1 a a a a 3 a 264等价于a a a a a a a 0等价于a a a a a a a a 3 思考1 已有变量a 其值为9 计算表达式a a a a 1 a a 9 9 表达式的值为18 但是a的值不变 仍为9 2 a a 18 表达式的值为 9 a的值变为 9 3 a a a 表达式的值为 18 a的值为 18 Top10 赋值表达式的求值规则 CompanyLogo 赋值运算中的类型转换 在C语言的赋值表达式中 赋值号右边的值先转换成与左边的变量相同的类型 然后进行赋值 注意 1 当赋值号左边的变量为短整型 右边的值为长整型时 短整型变量只能接受长整型数据低位上的两个字节的数据 高位上的数据将丢失 也就是说 右边的值不能超过短整型的数值范围 Top10 赋值表达式的求值规则 CompanyLogo 例 shorta unsignedlongb b 98304 a b printf d n a 98304D 11000000000000000B 高16位 低16位 结果a 1000000000000000B 32768 Top10 赋值表达式的求值规则 CompanyLogo 2 当赋值号左边的变量为无符号整型 右边的值为有符号整型时 则把内存中的内容原样复制 右边数据的范围不应超出左边变量可以接受的数据范围 同时要注意 这时负数将转换为正数 例 unsigneda a 1 printf d n a 1的补码 结果a 1111111111111111 65535 Top10 赋值表达式的求值规则 CompanyLogo 3 当赋值号左边的变量为有符号整型 右边的值为无符号整型时 复制的机制同上 这时 若符号位为1 将按负数处理 例 inta unsignedb b 1000000000000000 a b printf d n a 结果a 111111111111111 1 32786 Top10 赋值表达式的求值规则 CompanyLogo Top10 赋值表达式的求值规则 真题分析 2006年4月 以下叙述中错误的是 A C程序中的 include和 define均不是C语句B 除逗号运算符外 赋值运算符的优先级最低C C程序中 j 是赋值语句D C程序中 是算术运算符 可用于整型和实型数的运算 D CompanyLogo Top10 赋值表达式的求值规则 真题分析 2005年9月 下列能正确定义且赋初值的语句是 A intnl n2 10 B charc 32 C floatf f 1 1 D doublex 12 3E2 5 C语言规定 变量必须先定义 后使用 A C错误 A如果写成 intn1 n2 对待n1 n2 10 则正确C如果写成 floatf f f 1 1 则正确选项D中 E后面必须为整数 不能是实数 B CompanyLogo Top10 赋值表达式的求值规则 真题分析 2006年9月 若变量x y已正确定义并赋值 下列符合C语言语法的表达式是 A x y x B x 1 yC x x 10 x yD double x 10 A 赋值表达式的左边必须是变量 不能是常量或表达式 所以B C错误 D选项中 强制类型转换应该写成 double x 10 CompanyLogo Top10 赋值表达式的求值规则 真题分析 2011年3月 若有定义语句 inta 3 b 2 c 1 以下选项中错误的赋值表达式是 选择题15题 A a b 4 3 B a b c 1 C a b 4 c D a 1 b c 4 A 赋值运算符左边只能是变量 不能是常量或是表达式 CompanyLogo Top10 赋值表达式的求值规则 练习题1 以下选项中 非法的表达式是 A 0 x 100B i j 0C char 65 3 D x 1 x 1 D CompanyLogo Top11逗号表达式的运算规则 形式 表达式1 表达式2 表达式n结合性 从左向右优先级 所有运算符中 逗号运算符优先级最低逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 例a 3 5 a 4a 3 5 a 4 a 5例x a 3 6 3 x a 3 6 a例a 1 b 2 c 3 printf d d d a b c printf d d d a b c b c a 15 表达式值60 a 15 表达式值20 赋值表达式 表达式值18 x 18 逗号表达式 表达式值18 x 3 1 2 3 3 2 3 CompanyLogo 例 includemain intx y 7 floatz 4 x y y 6 y z printf x d n x 运行结果 x 3 形式 表达式1 表达式2 表达式n结合性 从左向右优先级 所有运算符中 逗号运算符优先级最低逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 Top11逗号表达式的运算规则 CompanyLogo Top11逗号表达式的运算规则 考点逗号运算符的结合性为从左到右 先计算表达式1 最后计算表达式n 最后一个表达式的值即为该逗号表达式的值 逗号运算符在所有运算符中 优先级最低 CompanyLogo Top11逗号表达式的运算规则 真题分析 2007年4月 执行以下程序后的输出结果是 main inta 10 a 3 5 a 4 printf a d n a a 3 5 a 4 15 10 4 14 14 CompanyLogo Top11逗号表达式的运算规则 真题分析 2005年9月 有以下程序 main chara1 M a2 m printf c n a1 a2 则下列说法正确的是 A 程序输出大写字母MB 程序输出小写字母mC 格式说明符不足 编译出错D 程序运行时产生出错信息 B CompanyLogo Top11逗号表达式的运算规则 练习题1 有如下程序 运行该程序的输出结果是 main inty 3 x 3 z 1 printf d d n x y z 2 A 34B 42C 43D 33 D CompanyLogo Top12自加 自减运算符 自加运算符 自减运算符 i 或i 表示在使用该表达式值之后将i值加1 或减1 i 或 i 表示在使用该表达式值之前将i值加1 或减1 说明 1 和 仅适用于变量 整型和实型 不能用于常量或表达式 2 和 运算符的结合方向是 至右向左 例 i i i 3 printf d d i i 3 4 例 i i 3 printf d d i i CompanyLogo 例自增 自减运算符的用法与运算规则示例 main inta 100 printf a d n a printf a d n a printf a d n a printf a d n a 输出a 100 a的值变为101 输出 a 102 a的值变为102 输出a 102 a的值变为101 输出 a 100 a的值变为100 Top12自加 自减运算符 CompanyLogo 例自增 自减运算符的用法与运算规则示例 main intx 6 y printf x d n x y x 前置运算 printf y x x d y d n x y y x 后置运算 printf y x x d y d n x y 程序运行结果 x 6y x x 7 y 7y x x 6 y 7 Top12自加 自减运算符 CompanyLogo 考点 Top12自加 自减运算符 1 自增 自减运算符只能用于变量 不能用于常量和表达式 5 a b 等都是非法的 2 自增 自减运算符和其它运算符混合使用时 其结合性为 至右向左 3 自增 自减运算符 无论作为前缀 a a 还是后缀 a a 运算符 对于变量本身来说自增1或自减1都具有相同的效果 但对表达式来说却有着不同的值 CompanyLogo Top12自加 自减运算符 真题分析 2007年4月 设有定义 intk 0 以下选项的四个表达式中与其他三个表达式的值不相同的是 A k B k 1C kD k 1 A 表达式的值为0 k的值为1 表达式的值为1 k的值为1 表达式的值为1 k的值为1 表达式的值为1 k的值为0 CompanyLogo Top12自加 自减运算符 真题分析 2006年9月 有以下程序 程序运行后的输出结果为 main intx y z x y 1 z x y y printf d d d n x y z A 2 3 3B 2 3 2C 2 3 1D 2 2 1 z 1x 2 y 2 y 3 A CompanyLogo Top12自加 自减运算符 真题分析 2005年4月 下列程序的输出结果是 main intm 12 n 34 printf d d m n printf d d n n m A 12353514B 12353513C 12343514D 12343513 表达式的值为35 n的值为35 表达式的值为12 m的值为13 表达式的值为14m的值为14 表达式的值为35n的值为36 A Top12自加 自减运算符 真题分析 2011年3月有以下程序 includemain intx 011 printf d n x 程序运行后的输出结果是 选择题18题 A 12B 11C 10D 9 CompanyLogo C CompanyLogo Top12自加 自减运算符 练习题1 下列关于单目运算符 叙述中正确的是 A 它们的运算对象可以是任何常量和变量B 它们的运算对象可以是char型变量和int型变量 但不能是float型变量C 它们的运算对象可以是int型变量 但不能是double型和float型变量D 它们的运算对象可以是char型变量 int型变量和float型变量 D CompanyLogo Top12自加 自减运算符 练习题2 有以下程序 程序运行后的输出结果是 main chara a b printf c a printf c n b a A b bB a bC b cD a c 表达式的值为 b a的值为 b 表达式的值为 b A CompanyLogo 课后习题 2 2以下选项中正确的实型常量是 0 A B C D 3 14E1 5 871 0 329 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程总承包意向协议书4篇
- 涂料购销合同模板常用版2篇
- 脚手架设计及计算
- 健康促进区县课件
- 2025西昌民族幼儿师范高等专科学校辅导员考试试题及答案
- 2025西安城市建设职业学院辅导员考试试题及答案
- 2025贵州装备制造职业学院辅导员考试试题及答案
- 2025皖南医学院辅导员考试试题及答案
- 2025绍兴文理学院辅导员考试试题及答案
- 设计企业核心竞争力构建路径
- 2024淮安市专业技术人员继续教育试题参考答案
- 2025年北京市朝阳区高三二模考试语文试卷(含答案)
- 2025年安徽省合肥市(合肥一中)三模(五月)生物试卷及答案
- 2025年中考第一次模拟考试卷:生物(广西卷)(解析版)
- 2025年公路水运工程重大事故隐患判定标准深度解析
- 2025届江西省上饶市高三下学期二模英语试题(原卷版+解析版)
- 《ISO 37001-2025反贿赂管理体系要求及使用指南》专业解读和应用培训指导材料之7:9绩效评价(雷泽佳编制-2025A0)
- 湖北省武汉市2025年高三3月份模拟考试英语试题含答案
- 机动车检测维修专业技术人员职业资格2024年笔试考试模拟题
- 钢结构吊装监理实施细则
- “住改商”登记利害关系业主同意证明(参考样本)
评论
0/150
提交评论