




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试二级C语言 第一章程序设计的基本概念 1 1程序和程序设计概念 程序 人们把这种可以连续执行的一条指令的集合 程序设计语言 人与机器对话的语言 机器语言 用0或1来表示的语言 源程序 由高级语言编写的程序 如高级语言VB VC Java等 目标程序 由二进制代码表示的程序 编译程序 由源程序转换成机器能接收的目标程序 C程序 由C语言构成的指令序列 C语言的编译过程C源程序经过C编译程序编译之后生成一个后缀为 OBJ文件 然后通过连接软件 link 把 OBJ文件生成 EXE文件 C语言源程序 C语言编译程序 二进制机器指令 程序设计 1 确定数据结构 2 确定算法 3 编码 4 在计算机上调试程序 5 整理并写出文档程序 1 2算法 有穷性确定性可行性有零个或多个输入有一个或多个输出记忆方法 有确可入出 流程图基本组成部分 开始或终止框 处理框 输入输出框 判断框 流程线 连接点 1 3结构化程序设计和模块化结构 结构化程序三种基本结构组成顺序结构选择结构循环结构 顺序结构流程图 语句1 语句2 选择结构流程图 判断表达式 语句2 不满足 语句1 满足 循环结构 循环体 判断表达式 不满足 满足 模块化结构 基本原理 就是将一个大的功能模块变换成一个或多个小模块 这就是程序设计中的模块化方法 基本方法 自顶向下 逐步细化 模块化 第2章C程序设计的初步知识 2 1简单C语言程序的构成和格式 includemain doublea b area a 1 2 将矩形的两条边长赋给a和b b 3 6 area a b 计算矩形的面积并存储到变量area中 printf a f b f area f n a b area 输出矩形的两条边长和面积 补充以下几点 1 任何一个C程序都必须包含以下格式 main 2 C语言的函数体可以分为两大部分 定义部分和执行部分 定义部分必须在执行部分之前 3 C程序中用到的变量都必须先定义后使用 定义变量必须放在程序的定义部分 4 C程序无论是定义语句还是执行语句 每一个语句最后都必须有一个分号 即使是程序的最后一个语句也不例外 分号是结束的标志 5 C程序书写格式自由 语句可以从任一列开始书写 一行内可以写多个语句 2 2标识符 在C语言中用于标识名字的有效字符序列称为标识符 标识符可以用作常量名 变量名 函数名和后面要学到的指针名 数组名等 C语言中的标识符的命名规则如下 1 标识符只能由字母 数字和下划线组成 2 标识符的第一个字符必须是字母或下划线 标识符中的大小写字母是有区别的 如abc与Abc是两个完全不同的标识符 合法的标识符 axsumspelsprogramab1 tofile 5a1b2c3 2B3非法的标识符 yes 含有不合法的字符 234a 第一个字符不能为数字 yesno 空格不是合法的标识符字符 yes no 含有不合法的字符 r 不是字母 为不合法标识符字符 C语言的标识符分为如下三类 关键字 关键字具有特定含义的 专门用来说明C语言特定成分的一类标识符 如int就是关键字 用来定义整型变量的标识符 预定义标识符 预定义表示符在C语言中也由特定的含义 如库函数名字printf scanf和编译预处理命令define include等 预定义标识符可以作为用户标识符使用 这是一些专门的命令 建议编程者不要把这类标识符另作它用 用户标识符 由用户根据需要定义的标识符被称为用户标识符 用户标识符一般用来给变量 函数 数组或者指针等命名 命名时 标识符的选择由用户自定 但是不能与关键字相同 常量 定义 所谓常量就是在程序的运行过程中 其值不能改变的量 C语言中 常量分为整型常量 实型常量 字符常量和字符串常量 整型常量和实型常量被称为数值型常量 C语言中 还有另外一种常量是用标识符命名的 称为符号常量 例 计算圆面积的C语言程序 definePI3 14159main floatr area r 12 5 area PI r r printf area f n area 变量 定义 变量就是在程序的运行过程中其值可以改变的量 它们是由用户定义得标识符 变量的命名必须遵循标识符的命名规则 例子 变量的应用 include stdio h main inta 10 b 20 c a 30 b 40 c a b printf c d n c 2 3整形数据 一 数值转换四种表现形式 十进制 二进制 八进制和十六进制 在十进制中 采用0 9这10个代码组成一系列的数字 进位的规则为逢十进一 在二进制中 采用0和1这2个代码组成二进制的每位数字 二进制的进位规则为逢二进一 在八进制中 采用0 7这8个代码组成八进制的每个数字 八进制的进位规则就是逢八进一 在十六进制中 数字由16个代码组成 分别是0 9和A F 或者是a f 这16个代码 十六进制的进位规则就是逢十六进一 1 将十进制数转换成二进制 八进制 和十六进制 十进制数转换成二进制的规则为 将十进制的数字除以2 得到的商数继续除以2 直到商为0 然后将各次相除所得的余数从后往前排列 就得到该十进制数转换成的对应得二进制数 例如 将十进制数13转换成二进制的过程如下 21326 123 021 10 1所得的余数从后往前排列 得到二进制数为1101 2 将二进制 八进制和十六进制数转换成十进制 举例说明二进制转换为十进制数的规则 例如 将二进制数1101转换为十进制数的计算步骤如下 1101 2 1 23 1 22 0 21 1 20 13 10从上面的例子中 可以总结出将二进制数转换为十进制数的方法 将二进制的每一位数从高位到低位 与十进制相同 左边为高位 右边为低位 乘以2的n 1次幂 n为该位的位数 将一个数字从右往左编号 得到每一位的位数 然后将这些数求和 将八进制转换为十进制数的规则 将八进制数的每一位从高位到低位乘以8的n 1次幂 n为该位的位数 然后将这些积求和 将十六进制转换为十进制规则与二进制和八进制转换为十进制类似 每一位从高位到低位乘以16的n 1次幂 3 二进制与八进制 十六进制之间的转换 二进制转换成八进制数规则 每三位二进制数转换成一位八进制数 二进制数从右向左数 简称三转一 同理一转三 二进制转换为十六进制数规则 每四位二进制数转换成一位十六进制数 二进制从右向左数 简称四转一 同理一转四 二 整型常量 在C语言中 整型常量分为十进制整型常量 八进制整型常量和十六进制整型常量三种表示形式 注意 在C语言中没有直接二进制的整型常量 1 十进制整型常量由一串连续的0 9数字组成 如0 120 365 1250等 2 八进制整型常量以数字0开头 其中的数字为0 7 如0112 0113 077等 3 十六进制整型常量以0 x 数字0和字母x 或0X开头 其中的数字可以是0 9 a f或A F中的数字或英文字母 如0 x11 0 xa5等 整型变量又分为短整型 shortint 基本整型 int 长整型 longint 和无符号整型 unsigned 等几类 例2 1以下选项可作为C语言合法整数的是 A 10110BB 0368C 0XffaD x2a2例2 2以下程序运行后的输出结果是 main intx 0210printf X n X 答案分析 例2 1本题答案为C 答案A不是C语言中三种整形常量之一 答案B不是合法的八进制整形常量中不能出现8 答案D中x2a2前加上 0 就是一个合法的十六进制整形常量 例2 2变量x的初始化为210 是八进制的 转化为十进制为136 然后将十进制转化为十六进制数为88 最后程序的运行结果就是88 三 整型变量 整型变量是用于存放整型值的变量 例如 人口 次数 序号等应定义为整型变量 对应于整型常量 整型变量也可分为短整型 基本整型 长整形和无符号整型四种 定义基本整型变量用关键字int 形式如下 inti 当对变量赋值时 这个值就存储在这个存储单元中 例如 执行了赋值语句 i 6 变量的字节个数反映变量存储值的范围 不同的计算机系统对以上所列的4种整型数所占用的字节数和数值范围有不同的规定 如表2 1 p12 说明 如果要表示一个长整型常量 则应该在对应的整型常量后面加上一个字母后缀l L的小写 或者是L 如0L 110L 123L等 在数字后面加上L 则表明为长整型常量 在内存中占四个字节存储单元 无论是短整型还是长整型常量 C语言系统都默认为是有符号整数 无符号整数在数字的后面加上一个字母后缀u或者U 若是长整型无符号整型常量 则应该加后缀lu或者是LU 例2 3以下选项中不属于C语言类型的是 A SignedshortintB unsignedlongintC UnsignedintD longshort答案 D 四 整数在内存中的存储形式 在计算机内存中最小存储单位称为 位 bit 每一位中或者存放0 或者存放1 因此称为二进制 一个字节 Byte 一般8个二进制位 把最右边一位称为最低位 把最左边一位称为最高位 一个字节 1 有符号正整数 有符号正整数得存储形式称为 原码 例如 当用两个字节存放一个正整数10时 在内存中的二进制为 0000000000001010有符号正整数的取值范围为 1 32767 2 负整数 反码 将原码中的 0 变成 1 1 变成 0 补码 将反码加1就得到补码 例如 求 6在内存中的存储形式 1 正整数6在内存中存放的 原码 为 0000000000000110 2 反码表示 1111111111111001 3 反码加1得 1111111111111010 补码转换成对应的负整数步骤如下 1 将补码各位取反 2 将得到的结果加上1 3 把所取的二进制数转换成十进制数 4 因为原来得补码最高位为1 所以在所得到的十进制数前加一个负号 例如 1111111111111101 3 无符号正整数 无符号整数存放在内存中时 最高位不再代表 符号位 其取值范围为 0 65535 例2 4有以下程序main unsignedinta intb 1 a b printf u a 程序运行后的结果是 A 1B 65535C 32767D 32767答案 B 2 4实型数据 一 实型常量在C语言中 实型常量有两种表示形式 小数形式和指数形式 1 小数形式 其中表现形式是包含一个小数点的十进制数字串 小数点的前面或后面可以没有数字 但不能同时没有数字 如 3 141590 15812 360 0 18 0 2 指数形式 其格式由两部分组成 一部分是十进制小数形式或十进制常量部分 另一部分为指数部分 指数部分是在e或者E后跟整数价码 即可带符号的整数 比如 1e51 25E 42 0E 3口诀 e前e后必有数 e后必定是整数 例2 5以下选项中合法的实型常数是 A 5E2 0B E 3C 2E0D 1 3E答案 C例2 6以下选项中 不能作为合法常量的是 A 1 234e04B 1 234e0 4C 1 234e 4D 1 234e0答案 B 二 实型变量 C语言中 实型变量分为单精度实型 float 与双精度实型 double 两种 它们定义的形式分别如下 floatx y z 定义单精度实型变量x y z doublea b c 定义双精度实型变量a b c 单精度占4个字节的存储单元 双精度占8个字节的存储单元 注意 实型变量只能存放实型值 不能用整型变量存放实型值 也不能用实型变量存放整型值 2 5算术表达式 一 算术运算符与算术表达式在C语言中 有下列五个基本的算术运算符 和 依次表示为加 减 乘 除 求余运算 将运算符分为单目运算 双目运算和三目运算符等类型 上述五个基本的运算符都为双目运算符 注意 求余运算符 的运算对象只能是整型 即 左侧的被除数与右侧的除数都只能为整型值 说明 1 算术运算符两边的运算对象类型必须一致才能运算 运算结果的类型与运算对象的类型一致 2 如果算术运算符两边的运算对象类型不一致 系统会按照低类型 数据占用较少的存储字节数 向高类型 数据占用较多的存储节数 的转换规则将两个运算对象的类型变为一致 然后在运算 3 在C语言中 所有实型数的运算都是以双精度方式进行的 若是单精度数 则在尾部补充0 使之转换为双精度 二 运算符的优先级 结合性和算术表达式 1 优先级优先级由高到低 单目 双目 同级 同级 同级 高 低 2 算术运算符和圆括号的结合性单目运算符 和 的结合性是从右到左的 其余运算符的结合性是从左到右 例 5 1 2 35 1 2 55 2 10等价于5 2 10原因 单目运算符 的优先级高于乘号 3 算术表达式运算规则 1 在算术表达式中 可使用多层圆括号 但左右括号必须匹配 2 在算术表达式中 若包含不同优先级的运算符 则按运算符的优先级由高到低进行 若表达式运算符的优先级相同 则按运算符的结合方向进行 三 强制类型转换 在进行算术运算时 如果希望将某一运算量转换成指定的类型 则可以利用强制转换符 强制转换表达示如下 类型名 表达式其中 类型名 是强制类型转换符 它将右边表达示的类型转换为括号中的类型 注意 将类型名括起来的一对圆括号是不能省略的 2 6赋值表达式 一 赋值运算符和赋值表达式在C语言中 是赋值运算符 由赋值运算符组成的表达示称为赋值表达式 它的一般格式如下 变量名 表达式它的含义是将赋值运算右边的表达式的运算结果赋值给左边的变量 因此 赋值号左边必须是一个代表某一存储单元的变量名 赋值号右边是C语言任意合法的表达式 说明 赋值运算符左边必须是变量 而不能是表达式 如x 1 3就是错误的 赋值运算的作用是将赋值运算符右边的值赋值给左边的变量 运算后左边变量的值被右边表达式的值代替 而右边的值不会改变 如y 10 x y 则x 10 y 10 赋值表达式的值是赋值号左边变量被赋值后的值 如x y 10 赋值运算法不同于数学上的 等号 如果赋值号两边的运算对象不一致 则系统会自动进行类型转换 如inta 4 9结果为4 二 复合赋值表达式 在C语言中 可以将算术运算符与赋值运算符组合在一起组成复合赋值运算符 它们是 表达式n 1等价于n n 1 表达式n m 3等价于n n m 3 例2 7已有变量a 其值为9 计算表达
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏南京技师学院招聘20人考前自测高频考点模拟试题及一套参考答案详解
- 基坑内搭设架体施工方案
- 2025汽车租赁合同规定范围
- 发展理论考试试题及答案
- 无锡网格员考试题及答案
- 黄浦区老厨房施工方案
- 热镀锌方管大棚施工方案
- 深泽自建轻钢房施工方案
- 进航银行从业考试及答案解析
- 基础护理题库华医网及答案解析
- 国家能源集团陆上风电项目通 用造价指标(2025年)
- 融媒体中心保密方案
- 输油管线牺牲阳极法阴极保护施工方案
- 篮球教学室内课件
- 2025年四川省高考历史试卷(含答案)
- 2025党考试题及答案
- 乳牙龋齿护理配合过程
- 2025至2030中国轨道交通行业发展分析及投资前景与战略规划报告
- 健康教育和健康促进课件
- 新东方合同协议书
- 2025年北京海淀区九年级中考二模数学试卷试题(含答案详解)
评论
0/150
提交评论