- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七参考答案.doc
实验七 指针(参考答案)算法分析:参考答案:# include stdio.h
void main()
{
int i,j,k,*p1,*p2,*p3,t;
printf(请输入 i,j,k: );
scanf(%d%d%d,i,j,k);
printf(交换前: i=%d j=%d,k=%d\n,i,j,k);
p1=i; p2=j; p3=k; //p1指向i,p2指向j, p3指向k
t=*p3; *p3=*p2;*p2=*p1,*p1=t; //通过指针间接访问i,j,k并实现交换
printf(交换后: i=%d j=%d k=%d\n,i,j,k);
}
运行结果:算法分析:参考答案:# include stdio.h
void main()
{
int a[5]={1,3,5,7,9},i,*p;
printf(下标法a[i]: );
for(i=0;i5;i++)
printf(%3d,a[i]);
printf(\n 地址法*(a+i):*(a+i): );
for(i=0;i5;i++)
printf(%3d,*(a+i));
printf(\n指针法*p: );
for(p=a;pa+5;p++)
printf(%3d,*p);
printf(\n);
}
运行结果算法分析:’\0’结束,遍历过程中,p的目标单元只要不是要被删除的字符就把它赋给q的目标单元,赋一次值q++一次。循环完,给被删除‘0’字符的新串添上结束标志’\0’,最后输出新串。
参考答案:# include stdio.h
void main()
{
char str[]=I have 50 Yuan.;
char *p,*q; //定义两个字符指针
p=q=str; //两个字符指针都指向字符串str
while(*p!=\0) //p的目标单元等于\0循环结束
{ if(*p!=0) //如果p的目标单元不为要被删除的字符0
{*q=*p;q++;} //就把它赋值给q的目标单位
p++; //赋值一次,p后移一个存储单元
}
*q=\0; //给新的字符串添加结束标志\0
printf(删除0字符后的字符串 : %s\n,str);
}
运行结果算法分析:’\0’;另外需要用到指向一行的字符指针变量去遍历和访问每个元素。
参考答案:# include stdio.h
void main()
{
char ch,s[3][80],(*p)[80]; //p为指向一维数组的行指针变量
int i,j,lower=0,uppr=0,space=0,other=0;
printf(请输入3个字符串:\n);
for(i=0;i3;i++) //等待从键盘接收3个可以带空格的字符串
gets(s[i]); //分别赋给s[i],s[i]-第i行的首地址
p=s;
for(i=0;i3;i++) //分别从0行到第2行
for( j=0 ; ( ch=*(*(p+i)+j)) != \0 ; j++ )//*(*(p+i)+j))等同于p[i][j]和a[i][j]
//每行访问到当前行的结束标志即\0结束
if(ch=A ch=Z) uppr++; //当前字符为大写字母,uppr++;
else if(ch=a ch=z) lower++;//当前字符为小写字母,lower++;
else if(ch== ) space++; //当前字符为空格,space++;
else other++; //否则,other++;
printf(小写字母个数: %d\n,lower);
printf(大写字母个数 : %d\n,uppr);
printf(空格的个数: %d\n,space);
printf(其它字符个数 : %d\n,other);
}
运行结果算法分析:参考答案:#includestdio.h
void main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int i,j, (*p)[4],(*q)[3]; //p为行指针,即可以指向一行包含4个整形数的一行
int b[4][3]; //数组b用来存放转置后的结果
p=a; q=b; //p为行指针,将行指针常量a赋给它,q指向转置后的数组b
printf(
文档评论(0)