




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级语言程序设计实验报告班级: 学号: 姓名: 成绩: 实验日期: 年 月 日 实验题目: 实验七 指针程序设计实验目的:1掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系。2掌握指针变量的定义和初始化,指针变量的引用方式。3掌握指针运算符。4掌握指向变量的指针变量的使用。5掌握指向数组的指针变量的使用。6掌握指向字符数组指针变量的使用实验内容:(包括算法说明:用文字或流程图说明;程序清单;运行结果:原始数据、相应的运行结果和必要的说明。)1改错题(1)下列程序的功能为:统计将已知字符串中数字符的个数;请纠正程序中存在错误,使程序实现其功能,程序以文件名sy7_1.c存盘。#includeint digits(char *s)int c=0;while(s)if(*s =0&*s =9)c+; s+;return c;void main()char s80;printf(请输入一行字符n);gets(s);printf(数字字符长度是:%dn,digits(s);原始数据、相应的运行结果和必要的说明。原始数据、相应的运行结果和必要的说明。(2)下列程序的功能为:通过调用函数实现对所输入的任意两个整数,交换它们的值;请纠正程序中存在错误,使程序实现其功能,程序以文件名sy7_2.c存盘。#includeswap(int *p1,int *p2)int *p;*p=*p1;*p1=*p2;*p2=*p;void main()int a,b;scanf(%d%d,&a,&b);printf(a=%dtb=%dn,a,b);swap(&a,&b);printf(a=%dtb=%dn,a,b);(3)下列程序的功能为:通过调用函数对一个33的矩阵进行转置;请纠正程序中存在错误,使程序实现其功能,程序以文件名sy7_3.c存盘。#include main(void) int a33,*p,i; printf(输入数组元素:n); for(i=0;i3;i+) /* 输入数组元素 */ scanf(%d%d%d,ai0, ai1, ai2); p=a00; move(p); printf(转置后的数组为:n); /* 输出数组元素 */ for(i=0;i3;i+) printf(%d %d %d,ai0, ai1, ai2);move(int *pointer) /* 通过交换第i行第j列元素和第j行第i列元素实现数组转置 */ int i,j,t; for(i=0;i3;i+) for(j=i;j3;j+) t= (pointer+3*i+j); *(pointer+3*i+j)= (pointer+3*j+i); *(pointer+3*j+i)=*t; 2程序填空(1)下列程序的功能为:计算数组中的最大元素及其下标值和地址值;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy7_4.c存盘。#includeint findmax(int *s,int t ) int i,k=0; for(i=0; ;i+) if( ) k=i; return ;void main() int a10=12,23,34,45,56,67,78,89,11,22,k=0,*add; int j; for(j=0;j10;j+) printf(%4d%10xhn,aj,&aj); k=findmax(a,10); add=&ak; printf(n%d %d %xhn,ak,k+1,add ); (2)下列程序的功能为:通过返回地址值,来输出a2a4的值;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy7_5.c存盘。#include main() int a5=1,3,5,7,9; /* a是int数值的数组 */ int *num5,i,*p; /* num是指向int类型的指针型数组,p是指向int型的变量 */ int *f(int *x,int); /* 返回指针值的f函数的声明 */ for (i=0;i5;i+) numi= ; /* num的每个分量指向a的每个相应元素 */ p=f(num,2); /* 返回num2分量所指的数组a中的元素的地址 */ for ( ; p=num4; p+) /* 在num2num4地址范围内扫描 */ printf( %dt, ); /* 输出该地址范围内的数据 */int *f(int *x,int i) int k=0; for (; ki; k+) ; /* 如果这个语句省略,需要修改什么? */ return ; /* 返回numi的所指的地址 */(3)下列程序的功能为:通过指针变量的自增运算,扫描一维数组中全部元素的地址,并引用它们各自的值,同时对数组中的正整数求和。请填写适当的符号或语句,使程序实现其功能,程序以文件名sy7_6.c存盘。#include stdio.h#define N 10main() int i,k,aN,sum,count,*p; /* 所有变量和数组a的基类型都是int */ count=sum=0; do printf( input k: n); scanf(%d,&k); /* 总共要求输入k个数 */ while (kN); /* 直到型循环确保0kN */ printf( input a0a%d:n,k-1); for (p=a;p0者相加 */ count+; /* 正整数个数统计 */ ; /* 指针复位,重新指向数组a 的首地址 */ while (p0 is : %dn,count); printf( Sum of 0 is : %dn,sum);3编程题(1)编写一个程序实现如下功能:利用指针作函数参数,设计一函数实现将n个元素进行排序(程序以文件名sy7_7.c存盘)。(2)编写一个程序实现如下功能:利用指针作函数参数,设计一函数对字母进行简单加密,把当前的字母变成后面第3个字母,如最后三个字母x、y、z变成字母a、b、c。再设计一函数把加密字符还原(程序以文件名sy7_8.c存盘)。(3)编写一个程序实现如下功能:输入一个字符串,内有数字和非数字字符,如:a123x45
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年1月份自动售货机蓄电池防盗报警合同
- 2024年10月人工智能生成内容权属划分特别约定
- 教学研究与反思计划
- 班级礼仪教育的实施计划
- 2025-2030中国防反射和防指纹涂层行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国长柄园艺工具行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国锅炉行业市场深度调研及竞争格局与投资前景研究报告
- 2025-2030中国铁路过道行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国钯催化剂行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国金饰行业发展分析及市场竞争格局与发展前景预测研究报告
- 《社区共治共建共享研究的国内外文献综述》4300字
- 软件代码审计与测试作业指导书
- 上消化道出血护理疑难病例讨论记
- 城市轨道交通自动售票机
- 环境设计专业考察课程教学大纲
- 2024版互联网企业股东合作协议书范本3篇
- 企业环保知识培训课件
- 110kV立塔架线安全施工方案
- 完形填空-2025年安徽中考英语总复习专项训练(含解析)
- 《岁末年初重点行业领域安全生产提示》专题培训
- 商混站(商品混凝土公司)安全风险分级管控和隐患排查治理双体系方案全套资料汇编完整版
评论
0/150
提交评论