C语言程序设计 高级篇(1).ppt_第1页
C语言程序设计 高级篇(1).ppt_第2页
C语言程序设计 高级篇(1).ppt_第3页
C语言程序设计 高级篇(1).ppt_第4页
C语言程序设计 高级篇(1).ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计高级篇 第一讲跑马灯程序设计 函数参数传递 指针引入双C工作室 主要内容 一 针对上机出现的一些问题进行分析讲解二 电表计时计费系统 引入函数的参数传递 一般的值传递 数组的传递等 三 修改跑马灯程序 引入指针 练习简单的指针操作 四 选个题 五 习题选做 一 实验六上机问题总结 1 大括号 配对使用 2 for if 等之后除非是要进行 空操作 否则不能直接跟上 号 3 循环的嵌套 不只有while for 这种方式 4 函数的概念还没有 5 单步调试 注意查看view debugwindows watch窗口 在这个窗口输入你想要看的变量名 自己动脑解决问题 自己调整 一段子程序来实现某个功能 在C语言中将常用的功能模块编写成函数 二 电表计时计费系统 1 管理员子系统 图1电表计时计费系统 管理员子系统 实现了特定的功能 实现了特定的功能 1 管理员身份验证模块 booladministerVerify charadmname intadmpassword 一维数组作为参数传递 2 管理员身份操作模块 voidadministerOperate intrestElectric MONTH intelectricBill MONTH 二维数组作为参数传递 三 有趣的问题 1 有一对兔子 从出生后第3个月起每个月都生一堆兔子 小兔子长到第3个月后每个月又生一堆兔子 假设所有兔子都不死 请问第十个月兔子的总数是多少 第一百个月呢 1 问题分析 兔子繁殖的规律 2 绘制流程图 3 源代码 includevoidmain longintf1 f2 inti intnumberMouths f1 1 f2 1 printf 请输入您想要知道的月份 scanf d 实验七 1 填空 将电表计时计费系统 管理员操作模块的一些功能补充完整 2 写一个判素数的函数 在主函数输入一个整数 输出是否素数的信息 书202页8 3题 3 用指针方法处理 输入3个整数 按由小到大的顺序输出 书278页10 2题 思考 书202页8 14题 学生成绩管理系统部分功能实现 函数的作用 1 常用的功能模块编写成函数 放在公共函数库中供大家选用 如 库函数 2 将一些特定功能的模块写成函数 便于程序阅读 程序扩展 及团队之间的有效合作 一个大的工程 每个特定的部分需要不同的人来完成 你所写的函数 此时只要提供函数的使用方法 函数名 形式参数 返回参数及具体实现的功能 团队中其他人员即可使用你所编写的程序 而不用关心函数内部具体是如何实现的 函数定义 1 无参函数类型标识符函数名 声明部分语句部分 voiddelay for inti 0 i 100000000 i 2 有参函数类型标识符函数名 形式参数列表 声明部分语句部分 intmax intx inty intz z x y x y return z 空函数 类型说明符函数名 思考 其作用 函数的使用 一般形式 函数名 实参列表 调用方式 1 函数语句 delay 2 函数表达式 c 2 max a b 3 函数参数 m max a max b c voidmain inta b c m intmax intx inty scanf d d d 注意 使用某函数之前 要在调用该函数的主函数 或其他函数 进行该函数的声明 函数参数 1 形式参数 定义函数时函数名后面括号中的变量 2 实际参数 调用某个函数时 该函数名后面括号中的变量 voidmain inta b c m intmax intx inty scanf d d d intmax intx inty intz z x y x y return z 形式参数 形参 实际参数 实参 函数参数传递 1 值传递 单向传递 只由实参传给形参 传递的是值 intmax intx inty intz z x y x y return z includevoidmain inta 5 b 3 c 9 m intmax intx inty m max a max b c printf a d b d c d max d n a b c m 图参数传递 图调用函数 在内存中 实参 形参放在不同的单元 2 地址传递 1 数组作为函数参数 传递的是数组首元素地址 includevoidmain floataverage floatarray floatscore 10 aver inti printf intput10scores n for i 0 i 10 i scanf f floataverage floatarray inti floataver sum array 0 for i 1 i 10 i sum sum array i aver sum 10 returnaver 查看 数组传递与值传递的区别 两个数组共占一段内存单元 指针的引入 函数的参数如果不是数组 但又想传递过来的不只是变量的值 而是该变量的地址 即直接在函数中就改变了参数的值 要怎么处理 includevoidmain voidswap intx inty inta b printf pleaseinput2numberas a b scanf d d voidswap intx inty intz z x x y y z includevoidmain voidswap int x int y int p a p b inta b printf pleaseinput2numberas a b scanf d d voidswap int x int y intz z x x y y z return 让我们先看看这两个程序执行出来的差别吧 指针定义 根据变量名与地址的对应关系 找到变量a的地址2000 然后从由2000开始的两个字节中取出数据 进行输出 思考 数据在内存中如何存储 如何读取 区分 内存单元的地址与内存单元的内容这两个概念 如 inta 3 Printf d a 2000 a 指针 一个变量的地址成为该变量的 指

温馨提示

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

最新文档

评论

0/150

提交评论