




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安交通大学实验报告课程_计算机程序设计_实验名称_ 指针_第 1 页 共 12 页系 别_ _ 实 验 日 期 2014 年 4月 12日专业班级_ _组别_ 实 验 报 告 日 期 2014 年4 月 12日姓 名_ _学号_ _ 报 告 退 发 ( 订正 、 重做 )同 组 人_ 教 师 审 批 签 字 一、实验目的 掌握指针的使用方法,学会使用指针来处理数组、字符串问题,体会使用指针的优点。二、实验内容 (一)第一题:编写程序,将某一个输入的位数不定的正整数按照标准的三位分节的格式输出,例如,当用户输入82668634时,程序输出82,668,634.1.源程序代码: #include
2、using namespace std;int main()int n;coutn;int m,x;for(m=0,x=n;x=1;m+)/求得所输入数n的位数mx=x/10;int *num=new intm;int i;for(i=0;im;i+)/分离出每一位数numi=n%10;n=n/10;cout=0;i-)/每隔三位加“,”输出if(i+1)/3=(i+1)/3.0)cout,;coutnumi;coutendl;return 0;2.实验结果:(二)第二题:用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能分别指出其中的大、小写字母、数字及其他字符的个
3、数。1.源程序代码:#includeusing namespace std;int main()char u51;cout请输入字符串:n;cin.get(u,50);int i;int a=0,b=0,c=0,d=0;int n=strlen(u);for(i=0;in;i+)/统计各种类型字符数目if(*(u+i)=0)a+;elseif(*(u+i)=a)b+;elseif(*(u+i)=A)c+;elsed+;cout字符串长度为:nendl;cout数字的个数为:aendl;cout小写字母的个数为:bendl;cout大写字母的个数为:cendl;cout其他字符的个数为:dend
4、l;return 0;2.实验结果: (三)第三题:编写一个函数,用于将一个字符串转换成整型数值。其原型为:int atoi(char *string);其中参数string为待转换的字符串(包括正负号和数字),返回值为转换结果。1.源程序代码: #includeusing namespace std;int atoi(char *string);int main()char string13;coutstring;cout结果为:atoi(string)0;i-)numi-1=stringi-0;/分离各位数字并存储sum=sum+x*(numi-1);/累加,最终求得和即为原数x=x*10
5、;if(string0=-)/若输入含有负号则输出负数sum=-1*sum;return sum;2.实验结果:3.问题分析: 不足之处:对于正数必须输入正号,这一点不好。理论上应该在开头加一个判断,若首字符不是负号,则将从一位字符开始处理;若是,则从第二位开始处理但是这样的不足就是需要执行大量的步骤,明显加大了程序的运行时间。(四)第四题:编写一个函数,用于生成一个空白字符串,其原型为:char *mystrspc(char *string,int n);其中参数string为字符串,n为空白字符串的长度(空格符的个数)。返回值为指向string的指针。1.源程序代码:#includeusi
6、ng namespace std;char *mystrspc(char *string,int n);int main()int n;coutn;char *string=new charn+1;cout结果为:“;coutmystrspc(string,n)”endl;char *mystrspc(char *string,int n)int i;for(i=0;in;i+)stringi= ;stringi=0;return string;2.实验结果:五、第五题:修改选择排序函数,使每轮挑选最大元素,函数原型如下:void selectsort( int *array, int n);
7、编写主函数对其进行测试。1.源程序代码:#include using namespace std;void selectsort( int *array, int n)for(int i=n-1;i=0;i-)int k=i; for(int j=i-1;j=0;j-)if(*(array+j)*(array+k)k=j; if(k!=i) int tmp=*(array+i);*(array+i)=*(array+k);*(array+k)=tmp;int main()int array6=2,7,2,2,3,1;selectsort(array,6);coutThe result is:e
8、ndl;for(int i=0;i6;i+) coutarrayi ;coutendl;return 0;2.实验结果:3、问题分析:为了验证每次是将最大的元素放在最左边,改了改函数使其输出每轮结果: 六、第六题:编写一个实现文章单词统计功能的函数,要求:输入一系列英文单词(即带空格的字符串),单词间用空格隔开或逗号或句号隔开。请统计该字符串中单词的个数,该函数的原型为:int statistic(char *string);其中参数string是文章字符串,该函数无返回值。编写主函数,对上述函数进行测试。1源程序代码:#includeusing namespace std;int stati
9、stic(char *string);int main()char string201;cout请输入英文语句:;cin.get(string,200);cout其中的单词数目为:;coutstatistic(string)endl;return 0;int statistic(char *string)int n=strlen(string);int i,s=0;for(i=0;in-1;i+)char a=*(string+i),b=*(string+i+1);if(a=a)|(a=A)&(bz)&(bZ)s+;char a=*(string+i);if(a=a)|(a=A)s+;retu
10、rn s; 2实验结果:3.问题分析: 设计思路:对每个字符与其后的一个字符进行比较(最后一个除外),如果某个位置满足:该字符是字母而后边的一个字符不是,则记录一个单词数;对于最后一个单词,若结尾没有非字母的字符则无法计数,所以再判断最后一个是不是字母,如果是,那么给单词数再加一,从而将最后一个单词也算了进去。(七)第七题:编写加密函数,将任意字符串的明文中奇数位置的字符放在一起,置逆;接着将偶数位置的字符放在一起,也置逆。最后将置逆的偶数字符串放在前部,将置逆的奇数字符串放在后部,连接形成密文。例如:明文为“I am possible”,密文是“lispm ebso aI”。要求编写主函数加
11、以测试。加密函数原型如下:char *jiami(char *mingwen);1.源程序代码:#includeusing namespace std;char *jiami(char *mingwen);int main()char string51;cout请输入字符串:;cin.get(string,51);cout加密结果是:;jiami(string);coutendl;return 0;char *jiami(char *mingwen)int n=strlen(mingwen);int a=(n+1)/2,b=n/2;char *odd=new chara+1;char *eve
12、n=new charb+1;int i;for(i=0;ia;i+)*(odd+a-i-1)=*(mingwen+2*i);*(odd+a)=0;for(i=0;ib;i+)*(even+b-i-1)=*(mingwen+2*i+1);*(even+b)=0;coutevenodd;return 0;改编版:#includeusing namespace std;char *jiami(char *mingwen);int main()char string51;cout请输入字符串:;cin.get(string,51);cout加密结果是:;coutjiami(string);coutendl;return 0;char *jiami(char *mingwen)in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源汽车工程师考试试题及答案
- 2025年网络工程师资格考试题及答案
- 2025年风险管理与控制考试试卷及答案解读
- 2025年西方经济学基础知识考试试题及答案
- 医药行业MBO股权收购与人才发展战略整合协议
- 微信小程序电商代运营跨境电商合作框架协议
- 美妆品牌购物中心美妆专区品牌委托经营与产品研发合同
- 短视频社交型移动应用(APP)开发与运营管理协议
- 高端影视特效化妆假发胶水租赁与化妆效果优化协议
- 丹麦电商平台入驻与北欧生活方式营销服务协议
- 公安派出所优质建筑外观形象设计基础规范
- 第8章审计抽样练习题结合9销售循环
- 世界民族音乐鉴赏之欧洲篇课件
- 入团志愿书(2016版本)(可编辑打印标准A4) (1)
- 语文老师家长会PPT
- T梁台座计算书
- 01-《数值分析》实验指导书
- 第四章 潜孔钻机
- 佳能700D单反相机拍摄技巧[技巧]
- 农产品批发市场管理技术规范编制说明
- 重庆市婚姻介绍合同协议书范本模板
评论
0/150
提交评论