




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 程序设计基础 2008年春季学期 第2讲基本数据类型与表达式 上 2 本章内容 作业讲解常见错误基本数据类型数组及其应用本讲作业 3 2 2常见错误与警告 1 变量未定义或定义了却从未使用2 逻辑表达式错误 与之类的错误6 函数实现的函数头处写分号的错误 见上讲程序 7 函数未能按声明 使用 定义的原则 第四讲 重复上机过程 4 常见错误及改正 1 单词拼写错误void viodmain mianiostream iosteamcout countendl end1 2 输出 用错cin x y cout x y 3 main后少了 函数体少了 或 不匹配 5 4 用错 该有的没有 不该有的却有 5 中文标点用错 特别是引号 includevoidmain doublex y cout x y doublez x y cout x y z endl 不是 应该是 此处无 errorC2018 unknowncharacter 0 xa3 肯定是中文符号错 常见错误及改正 6 6 大小写错误 void Void前面是x 后面完成X 7 函数后面接 不是 也不是 unknowncharacter 0 xa3 不可知字符 中文符号 syntaxerror missing beforetype double x undeclaredidentifier x 是没有声明的标识符4 unexpectedtokensfollowingpreprocessordirective expectedanewline 若在 include行尾有 则有本条错误 在预处理命令后有一个意外的符号 8 常见错误 常见错误及改正 7 5 missingfunctionheader old styleformallist 缺少函数头 在函数实现代码如main后面加了 就会出现 6 subscriptrequiresarrayorpointertype下标需要数组或指针类型 max 2 4 误写成max 2 4 7 max functiondoesnottake3parameters函数不支持3个参数8 main functionshouldreturnavalue void returntypeassumedmain前少了void 常见错误及改正 8 9 localvariable x usedwithouthavingbeeninitialized本地变量没有初始化就使用了10 function void cdeclmain void alreadyhasabody在程序中有两个main函数体 不能在同一文件中放两个程序的代码 一个程序中只有一个main函数 解决办法 常见错误及改正 9 11 编译与构建时文件名称不同大 obj errorLNK2005 mainalreadydefinedinaa obj大 obj errorLNK2005 double cdeclmax double double max YANNN Z alreadydefinedinaa objDebug aa exe fatalerrorLNK1169 oneormoremultiplydefinedsymbolsfound解决办法 关闭工作区 选择否 重新编译 构建 常见错误及改正 2 3基本数据类型 基本数据类型类型修饰符常用数据类型 C 语言的基本数据类型有如下4种 char 字符型 int 整型 float 单精度浮点型 double 双精度浮点型 void 空值型 1 基本数据类型 如 A b z12 9899912 90 0 9e12 2 类型修饰符 C 语言中还有四种类型修饰符 signed 有符号 unsigned 无符号 long 长型 short 短型 无符号 00000000 11111111可表示0到255共256个数有符号 11111111 01111111可表示 128到 127共256个数 0代表正 1代表负 1111111 3 常用数据类型 允许用修饰符组合构成的常用数据类型有 char signedchar unsignedchar 1个字节short signedshort unsignedshort 2个字节int signedint unsignedint 4个字节long signedlong unsignedlong 4个字节float 4个字节 大约6位有效数字 double 8个字节 大约12位有效数字 longdouble 10个字节 大约15位有效数字 4 常量和变量 常量是指在程序中不被改变的量变量指在程序中其值可以被改变的量 5 常量 常量是指在程序中不被改变的量 常量有各种不同的数据类型 这由它的表示方法决定 1 整型常量 2 浮点型常量 3 字符型常量 4 字符串常量 5 符号常量 1 整型常量 有3种表示方式 十进制整数八进制整数 以0开头的整数 十六进制整数 以0X或0 x开头的整数 如 123 34 00123 1 82 2 81 3 80 等于数830X123 等于数291 024 0X32 不正确123L 长整型数123LU 无符号长整型数 5 常量 有两种表示 定点数形式和指数形式如 0 123 23 0 0 定点数形式123E5 23 4e 2 指数形式要注意E或e的前面要有数字 且E的后面的指数必须为整数 E2 2 1E3 5 e 不合法实型常数分为单精度 双精度和长双精度3类 如 34 5 3 8f 34 6l在C 中 一个实型常数未说明则表示是double型 2 浮点型常量 5 常量 是用单引号括起来的一个字符 如 a 等 转义序列表示方法 以反斜线 开头 后跟字符的ASCII码值 如 n 它表示一个换行符 转义字符中可将反斜杠同八进制或十六进制数值结合使用 以表示相应于该数值的ASCII码 用八进制数表示时 所能表示的范围为 000 377 即从0 255 用十六进制数表示时 表示的范围是 x00 xff 3 字符型常量 5 常量 C 中常用转义序列符 5 常量 4 布尔常量 有两个值 true和false 是由一对双引号括起来的字符序列 如 Howdoyoudo hello 字符常量和字符串常量在存储方式上是不同的 字符常量只占一个字节的空间 而字符串常量除字符序列中每个字符占一个字节外 还要在最后多占一个字节空间用来保存一个 0 字符 空字符 称为字符串结束标志符号 它是系统自动增加的 如 hello 的长度为6 占6个内存单元 注意 0 与 0 的不同 5 字符串常量 5 常量 5 常量 5 符号常量 用一个与常量相关的标识符来替代常量出现在程序中 这种相关的标识符称为符号常量 定义方法须用类型说明符const 如 constfloatpi 3 14159 定义成符号常量后 程序中对其值只能读而不能改变 否则出现编译错误 由于其常量值不可改变 所以该常量定义时必须初始化 注 符号常量名不能放在赋值语句的左边 5 常量 地址值 名字 类型 值 三要素 数据值 地址值 intc c 5 变量类型 变量名 数据值 可以在程序中随时定义变量 只要在该变量被使用前定义即可 定义格式 例如 inta b c doublex y z 变量是指在程序中其值可以被改变的量 6 变量 变量名 C 将大写和小写的字母认为是不同的字母 如变量名something和Something为不同的名字 命名变量名的规则为 不能为关键字遵循标识符的命名规则不能与程序中的其他名字如函数名等同名一般讲究见名知意一般变量名全用小写字母 如myBook theFox 6 变量 必须先定义其类型才能使用该变量 如 unsignedmyAge myWeight floatmyScore 可用赋值运算符给变量赋值 如 intx 0 unsignedshortwidth width 5 也可在定义时直接给变量赋值 这时所赋的一般是初始值 称为变量初始化 如 unsignedshortwidth 5 变量类型 6 变量 如 inta a 300 注意有两个值的概念 一个是数据值 存放在内存空间中的数据 另一个是地址值 所占内存空间的起始地址 变量值 6 变量 2 4数组 数组的定义数组的赋值字符数组 数组的定义 数组是一种用一个名字来标识一组有序且类型相同的数据组成的派生数据类型 它占有一片连续的内存空间 一维数组的说明形式为 类型说明符数组名 常量表达式 如 intB 5 表示定义了一个名为B的一维数组 其中有5个元素 类型都为整型 定义时方括号内必须为常量形式 不能为变量 如 intsize 50 voidmain intarray size error 应为 constintsize 50 数组的定义 数组的赋值 1 数组元素的表示数组的赋值是给数组的各个元素赋值 数组的元素可以被赋值也可被赋初值 一维数组元素的下标表示如下 如 inta 5 则元素为a 0 a 4 注意 a 5 不属于该数组的空间范围 又如 intb 3 4 则元素为b 0 0 b 2 3 2 数组元素的赋初值在定义数组时 同时给各元素赋初值 这称为数组元素的初始化 规定 数组元素的个数不能少于初始值的个数 如 inta 4 1 2 3 4 inta 4 2 3 默认值为0inta 4 1 2 3 4 5 errorintb 2 3 1 2 3 4 5 6 intb 2 3 1 2 3 4 5 intb 2 3 1 3 2 4 数组的赋值 3 数组元素的赋值即用赋值表达式给每个数组元素赋值 如 intm 3 m 0 1 m 1 2 m 2 3 注意 m 3 4 error也可用循环语句实现 如 inta 5 for inti 0 i 5 i a i i 2 1 1 3 5 7 9 数组的赋值 例如 计算由键盘输入的五个人的平均年龄 includevoidmain intage 5 数组声明intsum 0 for inti 0 i age i 给数组赋值sum age i 累加数组元素之和cout Enteranotherage cout theaverageis sum 5 0 endl 数组的应用举例 字符数组 字符数组是指数组类型为char的一种数组 如 chars1 4 a b c d chars2 5 a b c d 0 chars2 5 abcd chars3 5 abcde errorchars3 abcde 元素个数由初始值的个数决定charss 2 3 a b 0 c d 0 charss 2 3 ab cd 注意 chars1 5 s1 5 abcd errors1 abcd error too 初始化时允许直接用字符串常量赋值 而在一般赋值时严禁直接对数组名操作 而只能对其中的元素逐个操作 因为数组名是一个指针常量 如 staticinta 1 2 4 8 16 for inti 0 i 5 i cout a i cout endl 结果为 124816 注意 字符数组 include iostream h voidmain inta 12 for inti 0 i 12 i a i i 1 元素赋值if i 4 0 cout endl cout a i t a 12 p a 0 a 1 a 2 a 9 a 10 a 11 给一维数组赋值 并按每行4个元素输出 数组的应用举例 2 5枚举类型 枚举模式和枚举变量枚举变量的值 枚举模式和枚举变量 枚举类型是若干个有名字的整型常量的集合 枚举类型的定义格式为 enum 如 enumday sun mon tue wed thu fri sat 这时 枚举常量所对应的常量值默认为0 6 枚举变量的定义格式为 enum 如 enumdayd1 d2 d3 也可连在一起写 enumday sun mon tue wed d1 d2 d3 如 enumday sun mon tue wed thu fri sat d1 d2 d3 enumcolor red blue yellow black white c1 c2 c3 则有 d1 sun d2 sat c1 red c2 blue 但无 d3 yellow 集合中无该枚举常量值c3 3 枚举常量值并不能直接对应整型值若输出某个枚举变量的值则总是整型数值 而不是枚举符 如 cout d1 c2 则输出 01若要输出sun和blue 则要通过编程实现 枚举变量的值 随机生成数组的10个元素 求它们的最大值及平均值 include include srand 及rand 函数 include 包含time 函数voidmain inti a 10 sum 0 max srand unsigned time NULL 使种子数随时间变化 否则每次运行结果相同 数组元素用随机函数赋值for i 0 i 10 i 数组的应用举例 a i rand 300 rand 值的范围是0 32768 数组元素累加求和for i 0 imax max a i 数组按每行5列输出for i 0 i 10 i if i 5 0 cout endl cout a i t cout nmaxofarraya is max endl 数组的应用举例 给二维数组a 3 4 赋值 并按每行4个元素输出 a 0 0 a 1 0 a 2 0 a 0 0 a 0 1 a 0 2 a 0 3 a 2 0 a 2 1 a 2 2 a 2 3 a 2 3 a 0 0 a i j 是一维数组中的第几个元素 如a 2 1 以首元素为基准 前面有2行 2 4个 有1列故有2 4 1 9 其地址为 a 0 0 2 4 1 数组的应用举例 给二维数组a 3 4 的第0行赋值 a 0 0 a 0 1 a 0 2 a 0 3 a 2 3 a 0 0 for inti 0 i 4 i a 0 i i 1 for inti 0 i 4 i a 1 i 5 i for inti 0 i 4 i a 2 i 9 i 给1行赋值 给2行赋值 数组的应用举例 给二维数组a 3 4 的各行赋值 a 0 0 a 0 1 a 0 2 a 0 3 for inti 0 i 3 i 外循环 控制行 for intj 0 j 4 j 内循环 控制列 a i j 4 i j 1 cout a i j t cout endl 23456789101112 可把a i j 改为 a i j 数组的应用举例 2 6本讲作业 从键盘上输入三个整数 求出其中的最大与最小值 用条件运算符 分别设计一个求最大值与最小值的函数 求出最大 最小值及中间值 并输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025人民医院脊髓血管畸形手术技能考核
- 2025甘肃定西郑州麦克莱恩心理医院后勤人员招聘27人考前自测高频考点模拟试题含答案详解
- 大学课件管理
- 2025贵州民族大学参加第十三届贵州人才博览会引才60人考前自测高频考点模拟试题及答案详解参考
- 大学课件教学资源
- 2025年春季中国石油高校毕业生招聘(河南有岗)模拟试卷及答案详解(有一套)
- 2025春期河南鸿唐教育集团招聘教师63人模拟试卷有答案详解
- 衡水市中医院感染性心内膜炎诊断标准考核
- 2025湖南益阳市交通投资运营集团有限公司招聘3人(第一批)考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025北京林业大学雄安校区规划建设指挥部招聘1人模拟试卷及参考答案详解
- 《这就是中国-走向世界的中国力量》读书笔记PPT模板思维导图下载
- 口腔疾病治疗质量控制课件
- 《直播营销与运营》PPT商品选择与规划
- 贵州福贵康护理院装修改造工程环评报告
- 贵阳区域分析
- 常见秋冬季传染病预防
- CRM-客户关系管理系统毕业论文
- 质量源于设计-QbD课件
- 仓储物流安全隐患排查表-附带法规依据
- 三年级道德与法治下册不一样的你我他
- 幼儿绘本故事:绘本PPT
评论
0/150
提交评论