C语言程序设计实验六指针上机报告
更新时间:2023-11-17 08:08:01 阅读量: 教育文库 文档下载
语言程序设计》上机报告
实验六 指针程序设计
专业: 电子信息工程 班级: 电信1301 学号: U201313480 姓名: 秦行 完成日期: 2014/5/24
1 《标准C
一、 实验目的
1. 进一步理解指针的概念,掌握指针变量间接地址访问的本质;
2. 掌握利用指向数组的指针变量表示一维数组元素及元素地址的方法; 3. 掌握利用指向二维数组的行指针变量表示二维数组元素及其地址的方法; 4. 掌握字符串的指针和指向字符串的指针变量; 5. 掌握指针数组和二级指针;
6. 熟悉通过动态内存分配实现动态数组,并体会指针在其中的作用。
二、 实验内容及要求(鼓励一题多解)
1. 深入理解《上机实践训练教程》2.6实验六案例示范和有关概念 文字描述中的知识点,给出你的理解。
数组名str实质可以作为首地址,是一个指针,而且还是一个常量指针。 char *str是指针变量,该变量取值为存放字符串的内存单元的第一个字节空间的地址值;
而char str[]定义一个数组,将字符串存放进str数组。str是数组名,代表数组空间的入口地址,作为指针常量
2. 用指向数组的指针编程实现:输入一个字符串,内有数字和非数字符号,如:a123x456 17960?302tab5876。将其中连续的数字作为一个整数,依次存放到一个数组a中。例如:123放在a[0]中,456放在a[1]中……试统计共有多少个整数,并输出这些数。要求添加合适的注释。 #include
void main() {
char c[100],*p=c;
int a[50],*q=a,num=0,i;//定义字符数组c和数组a,用p,q分别定义并赋初值 printf(\输入一个字符串,内有数字和非数字符号\ gets(c);//录入字符串 for(;*p!='\\0';p++) { if(*p>='0' && *p<='9') { *q=(*p)-'0';//指针实现c[]到a[]的赋值 p++; if(*p>='0' && *p<='9') *q=(*q)*10+(*(p++)-'0');//将数字字符串变为数字存入 num+=1;//if下的加1 q++; } }
for(i=0,q=a;i putchar('\\n'); printf(\一共输入了%d个数字。\\n\ } 3. 利用指向指针的二级指针变量对N个字符串按字典顺序排序并输出。(用二维数组保存6个字符串,排序只能使用设标签的选择法和交换法两种) 利用指向指针的二级指针变量对N个整数排序并输出。(二选一) 注:指向指针的指针变量就是二级指针变量,其定义格式为int **pp;或char #include void main() { char str[N][SIZE],temp[SIZE]; char *pstr[N]; char **ppstr=pstr; int i,j,k; for(i=0;i printf(\输入6个长度不超过%d的字符串\\n\ for(i=0;i puts(\按字典顺序输出为:\ for(i=0;i 4. 深入理解内存管理专题中的堆区内存使用和释放规则,在此基础上,找出下 面代码错误的原因,并给出1-2个解决方案(至少有一个方案使用malloc/free或new/delete[])。 #include char p[ ] = \ return p; // p指针指向哪一类内存空间? } void main(void) { char *str = NULL; str = GetString(); cout<< str << endl; } 错误原因及你的理解: char *GetString(void){}返回的是临时指针变量p。临时变量调用完成后被释放。应将其声明为静态变量或外部变量,或在内存区中给它分配常量空间。 修正方案1: #include char *GetString(void) { char p[ ] = \ return p; // p指针指向哪一类内存空间? } void main(void) { char *str = NULL; str = GetString(); cout<< str << endl; } 修正方案2: #include char *p; char *p=(char*)malloc(sizeof(char)*50); char p[ ] = \ return p; // p指针指向哪一类内存空间? } void main(void) { char *str = NULL; str = GetString(); cout<< str << endl; } 5. 利用指向指针的指针方法对6个字符串按字典顺序排序并输出。(选做) 要求:1、将6个字符串保存在堆区内存;2、用指针数组+二级指针对6个字符串按字典顺序排序。 #include void main() { char str[N][SIZE],temp[SIZE]; char *pstr[N]; char **ppstr=pstr; char *p=(char *)malloc(sizeof(char)*50); int i,j,k; for(i=0;i for(i=0;i 6. 编程求一个3×3整数矩阵对角线元素之和。(整数矩阵用二维数组保存,要求用行指针变量访问二维数组)/ 注:行指针变量的定义格式为:int (*p)[3];//p可以指向3×3二维数组的每一行整体。 #include void main() { int str[3][50],*pstr[3]; int i,j,s1,s2; s1=0;s2=0; printf(\输入矩阵数值:(3*3矩阵)\ for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf(\ pstr[i]=str[i]; } printf(\矩阵为:\\n\ for(i=0;i<3;i++) { printf(\ } for(i=0;i<3;i++) { s1+=*(pstr[i]+i); s2+=*(pstr[i]+2-i); } printf(\矩阵左对角线和为%d,右对角线和为%d\} 7. 调试指针的课后作业 三、 上机中的感受、困惑及教学建议 1、 2、 对报告中的某些概念的理解 课堂某个知识点的困惑 3、 4、 上机调试中问题 …
正在阅读:
C语言程序设计实验六指针上机报告11-17
七年级数学上册专题复习第三章整式及其加减新版北师大版09-23
XX大学人力资源管理教程-激励-HR猫猫10-01
“财务软件应用”模拟赛题(二)11-02
2018上海高考英语听力原文06-06
广告公司业务员聘用合同书05-17
浅谈医药领域知识产权保护10-13
hyyzixin-教科版小学科学六年级上册实验教学计划01-15
2015体质健康测试情况分析报告05-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 上机
- 指针
- 程序设计
- 语言
- 实验
- 报告
- 澳大利亚教育联盟:澳大利亚大学留学星级排名
- 小学三年级综合实践活动成长手册 - 第一单元 自理小能手活动主题二 简单衣物自己洗
- 企业如何提升员工的忠诚度
- 北师大版初一数学上册教案全册(2013新版)
- 水杨酸与茉莉酸调控植物抗性综述
- 2014青岛中考数学真题
- 中等职业学校电子技术基础与技能教学大纲
- 花荷峪施工组织设计
- 施工现场消防安全管理检查记录表
- 人员素质测评理论与方法11-10
- 2019最新幼儿园大班科学说课稿:有趣的影子 - 图文
- 华中科技大学《算法设计与分析》复习参考题
- 通信原理习题二
- 《美丽中国及生态文明建设》简答题满分答案
- 土力学阶段性课后总结
- 仁爱英语九年级上册 图文并茂 词汇
- 用Excel进行统计推断
- Eplan从入门到精通
- 陆集镇2012年村级健康教育人员培训试卷
- 大学英语课文翻译