C基础知识.ppt_第1页
C基础知识.ppt_第2页
C基础知识.ppt_第3页
C基础知识.ppt_第4页
C基础知识.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Adobephotoshop AdobeAcrobat Maya Java虚拟机内核 Google 网络搜索引擎 JPL JetPropulsionLab NASA 火星探测器自动驱动系统 包括场景分析和路线预测 以及很多地面支持软件 C 运行速度快 功能强大 类库需要手动选择 编译型跨平台JAVA运行速度缓慢 需要虚拟机环境 完全跨平台 类库丰富 功能中庸 无法进行底层的高级操作C 运行速度中等 需要虚拟机环境 即将跨平台 类库丰富 功能与略比JAVA多 主要是能与操作系统底层交互 Java和C 正在不断蚕食着C 的地盘 也许Java和C 的狂潮终将迫使C 回归本位 回到它有着根本性优势的开发领域 低级系统程序设计 高级大规模高性能应用设计 嵌入式程序设计 通用程序设计以及数值科学计算等 教材Visualc 面向对象与可视化程序设计课程内容第一篇基础知识第一章Visualc 2008简介第二章c 基础知识第三篇MFC开发第八章MFC基础知识第九章Windows标准控件在可视化编程中的应用第十章在MFC中创建应用程序的资源第四篇综合应用举例第十三章数据库应用程序的开发 学时安排理论40上机16学习方法学习过程中注重实践环节每个例题都需要自己动手编写程序每章的实验任务必须完成尽可能多做习题考核方式考试70 平时 实验30 学习编程的秘诀是 编程 编程 再编程 C 语言和C 的集成开发环境要同时学习和掌握 从开始养成良好的编程习惯 代码排版清晰 容易阅读变量命名规范编写C 风格的程序 编写C 风格的程序1 严格采用阶梯层次组织代码2 对变量定义尽量位于开始位置3 命名规则指针变量基本原则为 p 变量类型前缀 命名如float 型应该表示为pfStat静态变量用s 开头成员变量用m 开头对枚举类型 enum 中变量要求用枚举变量或其缩写做前缀并且要求用大写 参考文献1 钱能主编 C 程序设计教程 清华大学出版社2 面向对象的程序设计语言C 陈志泊等编人民邮电出版社3 答疑 联系方式 53617456 E栋322办公室 第一章c 基础知识 美国AT T贝尔实验室的BjarneStroustrup博士在20世纪80年代初期发明并实现了C 1 1C 语言的发展历程 C 3 0 C 1 0 带类的C 89年 增加类的多继承 91年增加模板 增加异常处理 名字空间 运行时类型识别 97年 成为标准 C 语言发展大概可以分为三个阶段 第一阶段80年代到1995年这一阶段C 语言基本上是传统类型上的面向对象语言 并且凭借着接近C语言的效率 在工业界使用的开发语言中占据了相当大份额 第二阶段1995年到2000年这一阶段由于标准模板库 STL 和后来的Boost等程序库的出现 泛型程序设计在C 中占据了越来越多的比重性 当然 同时由于Java C 等语言的出现和硬件价格的大规模下降 C 受到了一定的冲击 第三阶段2000年至今由于以Loki MPL等程序库为代表模板元编程的出现 C 出现了发展历史上又一个新的高峰 这些新技术的出现以及和原有技术的融合 使C 已经成为当今主流程序设计语言中最复杂的一员 1 2一个简单C 程序1 控制台应用程序 例求从键盘上输入的两个浮点数的和 include includeusingnamespacestd voidmain doublex y cout Entertwodoublenumber cin x y doublez x y cout x y z endl 执行该程序 屏幕上出现如下提示信息 Entertwodoublenumber 3 45671 3 运行结果为 x y 74 7 1 预处理命令 include预处理命令是包含命令 其功能是把一个文本文件的内容包含到该命令处 上述程序以 打头 表明该行是一个预处理命令 是命令的参数 它指出了要包含的那个文件的文件名是iostream 2 头文件以 h作为扩展名 包含有对象和函数说明的文件称为头文件 在上述程序中 用C 流完成输入 输出的操作 其中 cout是输出流对象 cin是输入流对象 和endl都是特殊函数 这些对象和函数是系统提供的 但必须先说明后使用 它们的说明就在系统提供的头文件iostream h中 3 stdafxStdafx standardApplicationFrameworkExtensions标准应用程序框架的扩展没有函数库 只是定义了一些环境参数 使得编译出来的程序能在32位的操作系统环境下运行 4 usingnamespacestdstd是一个命名空间 不同的命名空间可以有相同的类名被定义 比如AB两个班都有叫张三的人 你要使用A班的张三 必然要先指名是A班这个名字空间 namespace 然后你对张三的所有命令才能达到你的预想 不会叫错人所谓命名空间 是一种将程序库名称封装起来的方法 它就像在各个程序库中立起一道道围墙 5 输入和输出程序要求用户提供信息的过程称为程序的输入 程序向用户发出一些信息的过程称为程序的输出 C 程序的输入操作是由系统提供的标准输入流对象cin来完成的 C 的输出操作是由系统提供的标准输出流对象cout来完成的 cin与cout说明用来取代scanf和printf 更安全 更方便 1格式控制符与输出数据的类型不一致2scanf 的第二个参数应是一个指针参数 以上错误C编译器不能检查出来 includevoidmain inti floatf scanf f i printf d f includeusingnamespacestd voidmain inti floatf cin i cout f cin中运算符 在C 中仍保持C中 右移 功能 但用于输入时扩充了其功能 表示将从标准输入流 键盘 读取的数值传送给右方指定的变量 如 cin x 键盘输入的数据自动转换为变量X的类型 并存入变量X内 可以连续输 如cin a b c 不用顾忌类型 它按书写顺序从键盘上提取所要求的数据 并存入对应的变量中 用cin 输入时 要注意使用间隔符 空格 回车 Tab键 cout中运算符 在C 中保持C中 左移 功能 表示将右方变量的值写到标准输出流cout 即屏幕 中 允许用户连续输出一串数据或表达式 可以使用格式控制 与C兼容 默认的转换基数是十进制 如 dec 十进制 hex 十六进制 oct 八进制 endl t n 等 includeusingnamespacestd voidmain intx 25 cout hex x dec x oct x n 输出结果 192531 2 Windows应用程序 voidCa7Dlg OnBnClickedButton1 MessageBox L dfdf TODO 在此添加控件通知处理程序代码 基本整型 int 短整型 short 整型长整型 long 无符号型 unsigned 基本类型单精度型 float 实型 浮点型 双精度型 double 字符型 char 扩展双精度型 longdouble 数据类型布尔型 bool 空类型 void 数组类型 指针类型 构造类型结构体类型 struct 共用体类型 union 枚举型 enum 类 class 1 3C 数据类型 C 中用typedef声明一个新的类型名来代替已有的类型名 如typedefintINTEGER 指定用标识符INTEGER代表int类型typedeffloatREAL 指定用REAL代表float类型这样 以下两行等价 inti j floata b INTEGERi j REALa b 如果在一个程序中 整型变量是专门用来计数的 可以用COUNT来作为整型类型名 typedefintCOUNT 指定用COUNT代表int型COUNTi j 说明 1 用typedef声明类型 也可以声明结构体类型 typedefstruct intmonth intday intyear DATE 注意DATE是新类型名 而不是结构体变量名用DATE定义变量 DATEbirthday DATE p p为指向此结构体类型数据的指针 2 sizeof函数 用于计算某种数据类型的长度 返回值为字节数 如cout int的长度 sizeof int endl cout double的长度 sizeof double endl 常量 在程序运行期间其值不能被修改 在定义时必须初始化 严格来说 常量又分成符号常量和常数 符号常量 代表一个固定不变值的名字常数 整型和浮点型 程序中使用的具体的数据 1 4常量及其定义 符号常量C 中提供了一个关键字const 用来区分常量和变量 并且由于常量代表一个固定的值 并且该值在程序运行过程中不能够被改变 所以要求常量在定义的时候必须进行初始化 定义形式有 const数据类型符号常量名 初始值 例如 constdoublePI 3 1415926 注意 constdoublePI PI 3 1415926 error constdoublePI error constintM max 15 23 error define符号常量名初始值例如 definePI3 1415926 1 5变量 在C 中 变量是存储信息的地方 变量的实质是内存中的一个地址空间 在这个地址空间中可以进行数据的存储和读取 注意 1 大小写区分2 命名习惯3 与C语言不同 C 语言中的变量定义不必位于程序的开始 可以穿插在其它语句中间 f inti i 10 intj j 25 1 6引用 引用是别名建立引用时 程序用另一个变量或对象 目标 的名字初始化它引用作为目标的别名而使用 对引用的改动实际是对目标的改动引用的声明形式为 引用名 目标名或 引用名 目标名 引用型变量的名字 必须遵循变量的命名规则 例如 引用一个整型变量 intsomeInt int声明rInt是对整数的引用 初始化为引用someInt 注意 在这里 要求someInt已经声明或定义 引用不是值 不占存储空间 声明引用时 目标的存储状态不会改变 引用在声明时必须初始化 someInt 6rInt 6someInt 7rInt 7 例如何建立和使用引用 输出结果 includeusingnamespacestd voidmain intsomeInt 定义变量int include stdafx h includeusingnamespacestd intmain inta 2568 int pt int 1 选择结构 C 语言支持下列基本的条件语句 if语句 if else语句 if elseif语句 条件语句可简化条件表达式的表达形式 语法为 expression1 Expression2 expression3 if expression1 statement1 else statement2 1 7c 控制结构 switch语句 多次判断选择判断的是同一个表达式的值 switch 表达式 case常量表达式1 语句1case常量表达式2 语句2case常量表达式n 语句ndefault 语句n 1 只能是整型 字符型和枚举型 值不能相同 且次序不影响执行结果 每个case分支可以有多条语句 但不用 include includeusingnamespacestd intmain intx 1 y 0 a 0 b 0 switch x case1 switch y case0 a break case1 b break case2 a b break case3 a b printf a d b d n a b cout a a tb b while循环 特别适合处理字符串和其他指针类型 do while循环for循环 通常用于具有固定长度的数据结构 do statement while expression for expression1 expression2 expression3 statement 注意 对于while语句或for语句 循环体中的语句只有在while或for语句中的条件为真时 才会被执行 而do while语句则总能保证循环体被执行一次 while expression statement 2 循环结构 intsum 0 for inti 1 i 100 i sum sum i cout sum endl 3 其他控制语句 1 break语句只用于switch语句或循环体中 作用是使程序从switch语句内跳出或结束循环 继续执行逻辑上的下一条语句 2 continue语句仅用于循环体中 作用是结束本次循环 接着开始判断循环条件 决定是否继续执行下一次循环 intmax intx inty intz x y x y return z 形式参数 必须分别列出每个参数的类型 结束函数的执行 返回到调用处 函数的返回值 必须与函数类型一致 形式参数是调用该函数时需要函数处理的数据 返回值是函数调用完后回应给调用者的结果 函数名 函数返回值类型 若为int可省略 1 8函数 1 函数定义 2 函数调用 函数的功能是通过在程序中对其调用来实现的 调用一个函数 就是把控制权转去执行该函数的函数体 函数体执行完之后 再将控制权转到调用函数处 无参函数的调用格式一般为 函数名 有参函数的调用格式一般为 函数名 中的参数称为实际参数或实参 include 函数定义voidmain void inta b c cin a b c max a b prn cout c endl 执行过程 main函数 调用函数max 调用函数prn max函数 函数体 prn函数 函数体 函数调用的使用方式如下 1 对于有返回值的函数 调用出现在表达式中 2 对于没有返回值的函数 函数调用只能通过函数调用语句实现 函数调用方式 赋值如 c max a b 表达式中c 1 max x y cout max x y 执行函数prn 例编写程序求 的值 其中arctan用如下形式的级数计算 直到级数某项绝对值不大于10 15为止 和x均为double型 includeusingnamespacestd intmain doublea b doublearctan doublex 函数原型声明a 16 0 arctan 1 5 0 b 4 0 arctan 1 239 0 注意 因为整数相除结果取整 如果参数写1 5 1 239 结果就都是0cout PI a b endl doublearctan doublex inti doubler e f sqr sqr x x r 0 e x i 1 while e i 1e 15 f e i r i 4 1 r f r f e e sqr i 2 returnr 3 函数声明 如果函数调用的位置在函数定义之前 C 强制要求在函数调用之前必须对所调用的函数作函数原型声明 函数声明的一般形式 函数类型函数名 参数表 如 intmax intx inty intmax int int 4 函数重载 C语言编程时 有时几个不同名的函数实现的是同一类的操作 例如 求三个数中最大值 数据类型未知 需要设计三个函数 intmax1 inta intb intc floatmax2 floata floatb floatc longmax3 longa longb longc C语言规定在同一作用域中不能有同名的函数 C 语言允许同一作用域中有同名的函数来实现不同功能 参数个数和类型不同 此即函数的重载 intmain inta 3 b 1 c 4 floatd 3 1 e 6 2 f 4 9 longg 69242 longh 13 i 78241 cout max a b c endl cout max d e f endl cout max g h i endl return0 例求3个数的最大值 includeusingnamespacestd intmax inta intb intc if b a a b if c a a c return a floatmax floata floatb floatc if b a a b if c a a c return a longmax longa longb longc if b a a b if c a a c return a 5 函数的参数传递 用引用做形参 includeusingnamespacestd voidSwap int Swap x y 57 6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论