[理学]第十三讲指针.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第十三讲指针

通过指针访问字符串 char s[]=“abcde”; ‘a’ ‘b’ ‘c’ ‘d’ ‘e’ ‘\0’ s s[0] s[1] s[2] s[3] s[4] s[5] char *p=“china”,*q; q=s ; q 1.若函数f定义如如下: void f(char *d,char s) {while(*d++=*s++);} A.串比较 B.串复制 C.求串长 D.串反向 2.有定义int arr[10]={0,1,2,3,4,5,6,7,8,9}, *p,i=2;若执行语句: p=arr; cout*(p+i);输出结果为: A.0 B.2 C.3 D.1 练习 动态存储分配 指针=new 数据类型; 指针=new 数据类型(初值); 指针=new 数据类型[数组长度]; delete 指针变量; delete []指针变量; 多级指针的概念 类型标识符 **指针变量名; 注:*的个数代表级数,要求掌握到二级即可。 如:char **pp, *p, ch=‘A’; 又p=ch; pp=p; p ch ‘A’ pp p ch 例1:编一判断质数的函数,验证歌德巴赫猜想:任何大于2的偶数均可表示为两个质数的和。例如:4=2+2(特例),6=3+3,8=3+5,…。程序要求: 输入任一偶数,输出6到该数范围内的各个满足条件的组合。 要求编写一个判断质数的函数isprime() 例1:编一判断质数的函数,验证歌德巴赫猜想:任何大于2的偶数均可表示为两个质数的和。例如:4=2+2(特例,仅此一个),6=3+3,8=3+5,…。程序要求输入任一偶数,输出6到该数范围内的各个满足条件的组合。 分析: n=a+b 选择最小的质数a为3开始 判断b=n-a是否是质数 若b也是质数,则n符合要求;否则, 找下一个质数a,再判断b。 编写一个判断质数的函数isprime() #include iostream.h int isprime(int m) { for(int i=2;m%i!=0;i++); return (i==m); } void main() { int n,x,a,b;cinx; for(n=6;n=x;n+=2) for(a=3;a=n/2;a+=2) if(isprime(a)) { b=n-a; if(isprime(b)) { coutn“=”a“+”; coutbendl; } } } m为质数,函数值为1,否则为0 break; #include iostream using namespace std; int main() { char str[]=abcdefghi; char *p= str [6]; while(p= str) { cout*p; p--; } coutendl; return 0; } 写出程序运行结果 #includeiostream #includecstring using namespace std; void main() { char str[100],*p; int i; p=str; gets(str); for(i=0;istrlen(str);i++) if(str[i]=0str[i]=9) continue; else *p++=str[i]; *p=\0; puts(str); } 写出程序运行结果 abcd133ef13gh 例:编写一个函数,统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频率出现最高的字母及次数。 分析: 因函数需要返回多个值,故通过传址调用或引用调用实现。将要处理的数据及处理的结果设为形参。 字符数组 数值数组 指针变量或引用 void freq(char s[],int p[],char chmax,int max) 处理的字符数据这里用字符数组s表示。 每个字母出现的频率用整型数组p表示。 chmax,max分别表示频率出现最高的字母及次数。 未统计之前,每个字母出现的次数为p[i]=0; 字母不区分大小写 strlwr(s); strupr(s); 对每一个字符进行判断。若是字母,则相应字 母的统计次数加1. if(s[i]=as[i]=z) p[(s[i]-a)]++; p[0]~p[25]中找出其最大值p[k],max=p[k],

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档