




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C语言复习 2 练习 定义一个长度为10的整型数组 用scanf语句为每个数据元素赋值 并求数组元素中的最大值和最小值 include stdio h main intt 10 inti max min printf 请输入10个整数 for i 0 imax max t i printf 最大数为 d max printf 最小数为 d min 3 例 求两个浮点数的平均值 要求 用函数求平均值 在主函数中完成数据的输入和输出 10 include stdio h 20floataverage floatx floaty 30 40floatav 50av x y 2 0 60printf function x f y f av f n x y av 70returnav 80 90main 100 110floata 1 8 b 2 6 c 3 120c average a b 130printf main a f b f c f n a b c 140 函数头 说明函数计算结果的类型 函数的名字 函数的参数 函数体 实现函数所定义的功能 数据类型说明 函数名 形式参数表 说明语句 可执行语句 return 表达式 类型说明符 规定这个函数的返回值类型 如整型 实型等变量可以取的类型 函数名 通过这个名称才能对函数进行调用 函数名看作一个变量 但这个变量表示的是函数的地址 而不是函数的返回值 它的命名规则同标识符的命名规则 参数表 描述这个函数要求几个参数 分别指定一个变量名 参数的数据类型 先后顺序 这些参数作为函数中定义的变量 可以在函数体中直接使用 1 说明语句 即变量的定义 可执行语句 与之前的main 函数一样 2 return 函数返回值语句 用于将函数计算的结果返回给主调函数 4 练习 写一个函数完成其中求n 的功能 5 指针与指针变量指针 一个变量的地址指针变量 专门存放变量地址的变量叫 2000 指针 指针变量 变量的内容 变量的地址 6 与 运算符含义 含义 取变量的地址单目运算符结合性 自右向左 含义 取指针所指向变量的内容单目运算符结合性 自右向左 两者关系 互为逆运算理解 i pointer 指针变量 它的内容是地址量 i pointer 指针的目标变量 它的内容是数据 i pointer 指针变量占用内存的地址 i pointer ii i pointer i pointer ii i pointer 7 直接访问与间接访问直接访问 通过变量名来访问一个变量的值间接访问 通过存放变量地址的变量去访问变量 例i 3 直接访问 3 例 i pointer 20 间接访问 20 8 指针与变量指针变量与其所指向的变量之间的关系 指针变量的定义一般形式 存储类型 数据类型 指针名 合法标识符 指针变量本身的存储类型 指针的目标变量的数据类型 表示定义指针变量不是 运算符 例int p1 p2 float q staticchar name 注意 1 int p1 p2 与int p1 p2 2 指针变量名是p1 p2 不是 p1 p23 指针变量只能指向定义时所规定类型的变量4 指针变量定义后 变量值不确定 应用前必须先赋值 9 练习 若有语句int point a 4 point 下面均代表地址的一组选项是 A a point aB a a pointC point point aD a point point D 10 指针变量的初始化一般形式 存储类型 数据类型 指针名 初始地址值 例inti int p 例inti int p 用已初始化指针变量作初值 11 零指针与空类型指针零指针 空指针 定义 指针变量值为零表示 int p 0 p指向地址为0的单元 系统保证该单元不作它用表示指针变量值没有意义 defineNULL0int p NULL p NULL与未对p赋值不同用途 避免指针变量的非法引用在程序中常作为状态比较 例int p while p NULL void 类型指针表示 void p 使用时要进行强制类型转换 例char p1 void p2 p1 char p2 p2 void p1 表示不指定p是指向哪一种类型数据的指针变量 12 练习 若有说明int p m 5 n 以下正确的程序段的是 A p D 13 概述 结构体是不同数据类型的数据的集合 结构体是一种数据结构 它需要用户根据自己的需要 按某种规则定义 结构体是构造类型的数据 14 结构体的说明和定义 结构体是一种构造数据类型用途 把不同类型的数据组合成一个整体 自定义数据类型结构体类型定义 struct 结构体名 类型标识符成员名 类型标识符成员名 成员类型可以是基本型或构造型 struct是关键字 不能省略 合法标识符可省 无名结构体 15 例structstudent intnum charname 20 charsex intage floatscore charaddr 30 structstudentstu1 stu2 结构体变量的定义先定义结构体类型 再定义结构体变量一般形式 struct结构体名 类型标识符成员名 类型标识符成员名 struct结构体名变量名表列 16 定义结构体类型的同时定义结构体变量一般形式 struct结构体名 类型标识符成员名 类型标识符成员名 变量名表列 例structstudent intnum charname 20 charsex intage floatscore charaddr 30 stu1 stu2 17 例structstudent intnum charname 20 charsex intage floatscore charaddr 30 s1 18 说明结构体类型与结构体变量概念不同类型 不分配内存 变量 分配内存类型 不能赋值 存取 运算 变量 可以结构体可嵌套结构体成员名与程序中变量名可相同 不会混淆 19 练习 定义一结构体类型表示平面直角坐标系中的一个点 x y为两个成员 并说明两个结构体变量 20 结构体成员的引用与结构体变量的初始化引用规则结构体变量不能整体引用 只能引用变量成员 可以将一个结构体变量赋值给另一个结构体变量结构体嵌套时逐级引用 成员 分量 运算符优先级 1结合性 从左向右 引用方式 结构体变量名 成员名 21 结构体变量的初始化 struct结构体名 类型标识符成员名 类型标识符成员名 struct结构体名结构体变量 初始数据 例structstudent intnum charname 20 charsex intage charaddr 30 structstudentstu1 112 WangLin M 19 200BeijingRoad 22 练习 定义一个日期结构体 其中包括年 月 日来表示 并定义一个该结构体类型的变量 并使用赋值语句初始化该变量的初值为今天 23 结构体数组的初始化 结构体数组的初始化格式为 struct结构体名结构体数组名 元素个数 初始化数据 struct结构体名 结构体成员表 结构体数组名 元素个数 初始化数据 或 结构体即 struct结构体名 是已被说明的结构体类型 初始化的数据的个数与结构体数组元素的个数相同及数据类型相匹配 为了提高可读性 最好每一个数组元素 结构体变量 的初始数据都用花括号括起来 24 结构体数组的初始化 structstudent intnum charname 20 charsex intage floatscore charaddr 30 structstudentstu 30 2010001 Lifeng M 18 87 Beijing 2010002 Wangbing M 18 79 Beijing 2010030 Chenming M 17 80 Beijing 例中给结构体变量stu 0 stu 1 Stu 29 的各个成员赋初值 25 例下述程序的输出结果是 main structcopml intx inty coum 2 1 3 2 7 printf d coum 0 y coum 0 x coum 1 x A 0B 1C 3D 6 答案 D 3 1 2 26 规则 结构体变量不能整体引用 只能引用变量成员 如不能将一个结构体变量作为一个整体进行输入和输出 可以将一个结构体变量赋值给另一个结构体变量结构体嵌套时逐级引用 27 复习 以下程序的运行结果是 structexample intx charc main structexamplea 10 x func a printf d c a x a c func structexampleb b x 20 b c y 10 x 28 复习 设有如下说明structSTD intn charc doublex 则以下选项中 能正确定义结构体数组并赋初值的语句是 A structSTDtt 2 1 A 62 2 B 75 B structSTDtt 2 1 A 62 2 75 C structtt 2 1 A 2 B D structtt 2 1 A 62 5 2 B 75 0 A 29 结构体指针指向结构体变量的指针定义形式 struct结构体名 结构体指针名 例structstudent p 使用结构体指针变量引用成员形式 存放结构体变量在内存的起始地址 指向运算符优先级 1结合方向 从左向右 结构体变量成员的三种访问方法 1 结构体变量 成员名stu ID 2 结构体指针 成员名 p ID 3 结构体指针 成员名p ID结构体指针运算符 结构体指针 结构体成员 30 练习 输入学生姓名和成绩 然后输出 structstudent charname 20 intscore stu p main p A stu nameB stu nameC stu nameD name A stu scoreB stu scoreC stu scoreD score A p nameB p nameC p nameD name A p scoreB p scoreC p scoreD score B C A C 31 用typedef定义类型 C语言中可以用typedef声明新的类型名来代替已有的类型名 如 typedefintInteger typedeffloatReal typedefstructdate intmonth intday intyear DA Integera Realx 相当于 inta floatx structDated1 d2 相当于DAd1 d2 32 作业1 写一程序 定义一个结构体 结构体中有两个成员 一个为一整型数组 一个为记录这个整型数组长度的整型变量 为这个结构体赋值 输入 1表示结束输入打印输出这个结构体中的值 33 作业 用长 宽 高表示长方体 要求 1 定义此结构体类型 并说明一个结构体变量b 2 定义一个指向该结构体类型的指针变量p 并指向变量b 3 分别给结构体变量和指向结构体的指针变量赋初值 4 分别用结构体变量b和指向结构体的指针变量p来输出长方体的长 宽 高的值 34 链表 链表是动态进行存储分配的一种结构 若干数据 每个数据组称为一个结点 按一定的原则连接起来 以上链表结构中只有一个方向的指针 因此又称为单链表 简称为链表 35 1249 A 1356 B 1475 C 1021 D NULL head 1249 1356 1475 1021 简单的链表 设置一指针变量 存放第一个结点的地址 称为头指针 一般以head命名 最后一个结点的地址项不指向任何结点 赋以值NULL 链表中每一个元素称为一个结点 结点是一组数据 包括用户需要的实际数据和下一个结点的地址 前一个结点指向下一个结点 只有通过前一个结点才能找到下一个结点 36 malloc函数函数原型 作用 void malloc unsignedintsize 在内存的动态存储区中分配一个长度为size的连续存储空间 其中 形参size为无符号整数 是函数malloc要求分配存储空间的字节个数 函数返回值为一个指针 它指向所分配存储空间的起始地址 若函数返回值为0 则表示未能成功申请到内存空间 函数类型为void 表示返回的指针不指向任何具体的类型 37 malloc函数malloc函数的使用 malloc 8 开辟长度为8个字节的存储空间 若其起始地址为1268 则malloc 8 的返回值为1268 且返回的指针值指向void型 将此地址赋给一个指向long型的指针变量 p long malloc 8 long lp lp long malloc 12 head structstudent malloc sizeof structstudent 38 函数free 函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省2025年成人高考化学复习题库及答案
- 公司消防安全培训标语课件
- 公司法纠纷课件
- 2025餐饮企业行政总厨聘用合同样本
- 2025压路机租赁合同范本
- 2025塑料制品生产加工合同
- 2025如何避免购销合同的法律风险
- 2025探讨合同责任保险合同之原则
- 2025房屋租赁合同备案授权书
- 隐患大排查大整治工作总结
- 动量守恒定律模型归纳(11大题型)(解析版)-2025学年新高二物理暑假专项提升(人教版)
- 2025股权转让合同签订股权认购协议书
- 某小区改造配电室(电力)工程监理大纲
- 慢性阻塞性肺疾病(COPD)护理业务学习
- Z20+名校联盟(浙江省名校新高考研究联盟)2026届高三第一次联考化学及答案
- 2025-2026学年北师大版(2024)初中生物七年级上册教学计划及进度表
- 产科危急重症早期识别中国专家共识解读 3
- 医疗器械配送应急预案模板(3篇)
- DB65-T 4803-2024 冰川厚度测量技术规范
- 护理专业新进展介绍
- 2025年保监会保险机构高级管理人员任职资格考试题库附答案
评论
0/150
提交评论