欢迎来到天天文库
浏览记录
ID:55336607
大小:212.59 KB
页数:12页
时间:2020-05-10
《西安交大C++程序设计第六章作业.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、西安交通大学实验报告课程__计算机程序设计__实验名称_指针__第1页共12页系别___________实验日期2014年4月12日专业班级____组别_____________实验报告日期2014年4月12日姓名_________学号__报告退发(订正、重做)同组人_________________________________教师审批签字一、实验目的掌握指针的使用方法,学会使用指针来处理数组、字符串问题,体会使用指针的优点。二、实验内容(一)第一题:编写程序,将某一个输入的位数不定的正整数按照标准的三位分节的格式输出,例如,当用户输入82668634时,程序输出82,668
2、,634.1.源程序代码:#includeusingnamespacestd;intmain(){intn;cout<<"请输入正整数:";cin>>n;intm,x;for(m=0,x=n;x>=1;m++)//求得所输入数n的位数m{x=x/10;}int*num=newint[m];inti;for(i=0;i=0;i--)//每隔三位加“,”输出{if((i+1)/3==(i+1)/3.0)cout<<",";cout<<
3、num[i];}cout<usingnamespacestd;intmain(){charu[51];cout<<"请输入字符串:";cin.get(u,50);inti;inta=0,b=0,c=0,d=0;intn=strlen(u);for(i=0;i=
4、'0')a++;else{if(*(u+i)<='z'&&*(u+i)>='a')b++;else{if(*(u+i)<='Z'&&*(u+i)>='A')c++;elsed++;}}}cout<<"字符串长度为:"<5、g);其中参数string为待转换的字符串(包括正负号和数字),返回值为转换结果。1.源程序代码:#includeusingnamespacestd;intatoi(char*string);intmain(){charstring[13];cout<<"请输入字符串(带正负号):";cin>>string;cout<<"结果为:"<6、or(i=n-1;i>0;i--){num[i-1]=string[i]-'0';//分离各位数字并存储sum=sum+x*(num[i-1]);//累加,最终求得和即为原数x=x*10;}if(string[0]=='-')//若输入含有负号则输出负数sum=-1*sum;returnsum;}2.实验结果:3.问题分析:不足之处:对于正数必须输入正号,这一点不好。理论上应该在开头加一个判断,若首字符不是负号,则将从一位字符开始处理;若是,则从第二位开始处理……但是这样的不足就是需要执行大量的步骤,明显加大了程序的运行时间。(四)第四题:编写一个函数,用于生成一个空白字符串,其7、原型为:char*mystrspc(char*string,intn);其中参数string为字符串,n为空白字符串的长度(空格符的个数)。返回值为指向string的指针。1.源程序代码:#includeusingnamespacestd;char*mystrspc(char*string,intn);intmain(){intn;cout<<"请输入您要得到的空字符串的长度:";cin>>n;char*string=newchar[n+1];cout<<"结
5、g);其中参数string为待转换的字符串(包括正负号和数字),返回值为转换结果。1.源程序代码:#includeusingnamespacestd;intatoi(char*string);intmain(){charstring[13];cout<<"请输入字符串(带正负号):";cin>>string;cout<<"结果为:"<6、or(i=n-1;i>0;i--){num[i-1]=string[i]-'0';//分离各位数字并存储sum=sum+x*(num[i-1]);//累加,最终求得和即为原数x=x*10;}if(string[0]=='-')//若输入含有负号则输出负数sum=-1*sum;returnsum;}2.实验结果:3.问题分析:不足之处:对于正数必须输入正号,这一点不好。理论上应该在开头加一个判断,若首字符不是负号,则将从一位字符开始处理;若是,则从第二位开始处理……但是这样的不足就是需要执行大量的步骤,明显加大了程序的运行时间。(四)第四题:编写一个函数,用于生成一个空白字符串,其7、原型为:char*mystrspc(char*string,intn);其中参数string为字符串,n为空白字符串的长度(空格符的个数)。返回值为指向string的指针。1.源程序代码:#includeusingnamespacestd;char*mystrspc(char*string,intn);intmain(){intn;cout<<"请输入您要得到的空字符串的长度:";cin>>n;char*string=newchar[n+1];cout<<"结
6、or(i=n-1;i>0;i--){num[i-1]=string[i]-'0';//分离各位数字并存储sum=sum+x*(num[i-1]);//累加,最终求得和即为原数x=x*10;}if(string[0]=='-')//若输入含有负号则输出负数sum=-1*sum;returnsum;}2.实验结果:3.问题分析:不足之处:对于正数必须输入正号,这一点不好。理论上应该在开头加一个判断,若首字符不是负号,则将从一位字符开始处理;若是,则从第二位开始处理……但是这样的不足就是需要执行大量的步骤,明显加大了程序的运行时间。(四)第四题:编写一个函数,用于生成一个空白字符串,其
7、原型为:char*mystrspc(char*string,intn);其中参数string为字符串,n为空白字符串的长度(空格符的个数)。返回值为指向string的指针。1.源程序代码:#includeusingnamespacestd;char*mystrspc(char*string,intn);intmain(){intn;cout<<"请输入您要得到的空字符串的长度:";cin>>n;char*string=newchar[n+1];cout<<"结
此文档下载收益归作者所有