实验九、指针(2)_第1页
实验九、指针(2)_第2页
实验九、指针(2)_第3页
实验九、指针(2)_第4页
实验九、指针(2)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

实验八 指针 二 实验八 指针 二 1 教学教学进程 教学教学进程 序号章节名称 1 9 4指针与字符串 2 9 5指针与函数 3 9 6指针数组和多级指针 2 考查知识点 考查知识点 指针与字符串 指针作为函数的参数 函数指针 指针函数 指针数组 3 实验目的 实验目的 1 掌握指针与字符串的关系 2 能正确使用指向函数的指针变量和返回指针的函数 3 了解指向指针的指针的概念及使用方法 4 实验内容 实验内容 课外实验题目 90 分 如下图所示 本程序由若干个文件组成 其中主函数在文件 main c 中 其它文件中 包含了相应的子程序 变量定义和宏定义 请阅读程序完成题目要求 1 由于采用了指向函数的指针作为 fenzhi 函数的参数 所以在主函数中每个分 支只有一条函数调用语句 请在 fenzhi 函数中填写 case E 段的相对应程序 10 分 2 文件 fun4 c 中由条件编译指令分为两个不同的代码段 请分别填写两段代码中 的子程序 copy string 的内容 使程序分别完成字符串的复制 每段 10 分 共 20 分 3 在文件 fun5 c 中 采用返回指针值的函数返回查询数据的地址 请填写子程序 search 的内容 10 分 4 填写程序中的空白 实现内存的管理 具体操作见提示 每空 5 分 共 50 分 序号序号内容内容 1 2 3 4 5 6 7 8 9 10 提示 所谓的自由分配和释放内存 指的是在指定的范围内进行 本题的管理范围是以 allocbuf 为起始地址 以 ALLOCSIZE 为长度的空间内进行内存管理 如下图所示 pointers 为 指针数组 其中每一个元素指向开辟的空间首地址 p size 存放每一个指针对应的空间的 长度 指针 allocp 永远指向待分配的空间 初始情况下 allocp 指向整个空间的首址 添加时在 p size 中按照下标顺序查询值为 0 的元素 说明在 pointers 中对应的元素还没 有指向任何空间 就将该指针指向新开辟的空间 对应的空间长度存在 p size 中 删除空间时 对应指针后面的指针都要向前移动 保证再次开辟空间的连续性 被释放 的指针对应的长度也要被清除 程序代码 题目部分 程序代码 题目部分 main c include include publicFun h include globalVaria h main int enter flag 0 while 1 if enter flag 0 enter flag display 0 title 0 mulu else if enter flag 2 break switch getchar case D enter flag fenzhi subject 0 title 1 mulu mulu1 fun4 break case E enter flag fenzhi subject 1 title 2 mulu mulu1 fun5 break case F enter flag fenzhi subject 2 title 3 mulu mulu1 fun6 break case G getchar enter flag display 4 break default break fenzhi int fenzhi char subject char title char mulu char mulu1 void fun int enter flag 0 getchar while 1 if enter flag 0 enter flag display 1 title mulu1 switch getchar case R getchar enter flag display 2 subject title break case E case C getchar return 0 default break fun4 c include define SELECTION 1 if SELECTION void copy string char from char to void fun4 char a I am a teacher char b You are a student printf string a s nstring b s n a b copy string a b printf nstring a s nstring b s n a b else void copy string char from char to void fun4 char a I am a teacher char b You are a student printf 字符串字符串 a s n 字符串字符串 b s n a b copy string a b printf n 字符串字符串 a s n 字符串字符串 b s n a b endif fun5 c include void fun5 float score 4 60 70 80 90 56 89 67 88 34 78 90 66 float search float pointer 4 int n p int i m printf Enter the number of student scanf d getchar printf The scores of No d are n m p search score m for i 0 i 4 i printf 5 2f t p i float search float pointer 4 int n fun6 c include define NULL 0 define ALLOCSIZE 1000 define POINTERSIZE 10 char allocbuf ALLOCSIZE char allocp allocbuf char pointers POINTERSIZE NULL int p size POINTERSIZE 0 int cp pointer 0 void fun6 int n i char alloc int n void free oc char p void view printf A 分配内存 分配内存 nF 释放内存 释放内存 nV 查看内存 查看内存 nC 返回 返回 n while 1 switch getchar case A getchar printf 请输入分配空间的字节数 请输入分配空间的字节数 scanf d getchar for i 0 i POINTERSIZE i if p size i 0 if i POINTERSIZE printf 指针数组已经分配完毕指针数组已经分配完毕 else if printf 内存不够内存不够 else printf 成功为成功为 d 号指针分配了长度为号指针分配了长度为 d 的内存空间的内存空间 n cp pointer n break case F getchar printf 请输入释放空间的指针编号 请输入释放空间的指针编号 scanf d getchar if n POINTERSIZE else printf 输入的指针编号不存在输入的指针编号不存在 break case V view break case C return default break char alloc int n if allocp n0 allocp n else return NULL void free oc char p int i i pointers i 1 pointers i pointers i NULL p size i 0 for i i cp pointer 1 i allocp void view int i for i 0 i POINTERSIZE i if printf d 号指针指向的内存地址为 号指针指向的内存地址为 d 内存容量为 内存容量为 d n i pointers i p size i 程序代码 其它部分 程序代码 其它部分 main c include include publicFun h include globalVaria h main int enter flag 0 while 1 if enter flag 0 enter flag display 0 title 0 mulu else if enter flag 2 break switch getchar case A while enter flag fenzhi subject 0 title 1 mulu mulu1 fun1 printf n s hint break case B while enter flag fenzhi subject 1 title 2 mulu mulu1 fun2 num printf n s hint break case C while enter flag fenzhi subject 2 title 3 mulu mulu1 fun3 printf n s hint break case D while enter flag fenzhi subject 3 title 4 mulu mulu1 fun3 printf n s hint break case E while enter flag fenzhi subject 4 title 5 mulu mulu1 fun3 printf n s hint break case F while enter flag fenzhi subject 5 title 6 mulu mulu1 fun3 printf n s hint break case G getchar enter flag display 4 break default break globalVaria c int num 50 char title 50 欢迎学习指针欢迎学习指针 指针与指针变量指针与指针变量 指针与一维数组指针与一维数组 指针与二维数组指针与二维数组 指针与字符串指针与字符串 指针与函数指针与函数 指针数组指针数组 char subject 100 题目题目 1 采用指针变量实现地址传递 从而使用函数将两个整数进采用指针变量实现地址传递 从而使用函数将两个整数进 行交换 行交换 题目题目 2 n n 50 个人玩报数游戏 逢 个人玩报数游戏 逢 3 出局 求最后留下人的编号 出局 求最后留下人的编号 题目题目 3 3 个学生各学个学生各学 4 门课 程序完成以下功能 计算总平均分 输出门课 程序完成以下功能 计算总平均分 输出 第第 n 个学生成绩 查找不及格学生 个学生成绩 查找不及格学生 题目题目 4 待续待续 题目题目 5 待续待续 题目题目 6 待续待续 char mulu 50 A 指针与指针变量指针与指针变量 n B 指针与一维数组指针与一维数组 n C 指针与二维数组指针与二维数组 n D 指针与字符串指针与字符串 n E 指针与函数指针与函数 n F 指针数组指针数组 G 退出程序退出程序 n char mulu1 30 R 阅读题目要求阅读题目要求 n E 执行程序执行程序 n C 返回主界面返回主界面 n char hint 100 n 直接点击直接点击 ENTER 键返回上一级键返回上一级 n char hint1 11 26 26 26 26 26 26 26 26 26 26 publicFun c include include include globalVaria h int display int type char subject char title char mulu 50 char mulu1 30 int i char c1 system cls switch type case 0 printf s s s s n hint1 hint1 hint1 hint1 printf I I n printf I sI n title printf I I n printf s s s s n hint1 hint1 hint1 hint1 for i 0 i TITLE LENGTH i printf s mulu i return 1 break case 1 printf s s s n hint1 hint1 hint1 printf 20 s 21 n title printf s s s n hint1 hint1 hint1 for i 0 i 3 i printf s mulu1 i return 1 break case 2 printf s s s n hint1 hint1 hint1 printf 20 s 21 n title printf s s s n hint1 hint1 hint1 printf s n subject printf s hint getchar return 0 break case 3 printf s s s n hint1 hint1 hint1 printf 20 s 21 n title printf s s s n hint1 hint1 hint1 break case 4 printf 点击点击 E 退出程序退出程序 n 点击点击 C 返回程序返回程序 n c1 getchar if c1 n getchar while c1 E if c1 n getchar if c1 E return 2 else return 0 break default break i

温馨提示

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

评论

0/150

提交评论