实验七_指针与数组答案.doc_第1页
实验七_指针与数组答案.doc_第2页
实验七_指针与数组答案.doc_第3页
实验七_指针与数组答案.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验七 指针与数组(答案)1、设计程序sy6-1.c,有三个整形变量i,j,k。设置三个指针变量p1,p2,p3,分别指向i,j,k。然后通过指针变量使i,j,k三个变量的值顺序交换,即原来i的值赋给j,把j的原值赋给k,把k的原值赋给i。i,j,k的原值由键盘输入,要求输出i,j,k的原值和新值。参考答案:# include 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=%dn,i,j,k);p1=&i; p2=&j; p3=&k; /p1指向i,p2指向j, p3指向kt=*p3; *p3=*p2;*p2=*p1,*p1=t; /通过指针间接访问i,j,k并实现交换printf(交换后: i=%d j=%d k=%dn,i,j,k);运行结果: 2、设计程序sy6-2.c,已知数组1,3,5,7,9,在其中分别用下标法、地址法和指针法访问数组元素,将它们输出。参考答案:# include void main()int a5=1,3,5,7,9,i,*p;printf(下标法ai: );for(i=0;i5;i+)printf(%3d,ai);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);运行结果3、设计程序sy6-3.c,利用字符指针编程,要求在一行文字:“I have 50 Yuan.”中,删去字符0,使其变成:“I have 5 Yuan.”,并输出结果。参考答案:# include 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字符后的字符串 : %sn,str);运行结果4、 设计程序sy6-4.c,要求输入三行字符(每行不超过80个字符)存于二维字符数组中,统计出其中大写字母、小写字母、空格及其它字符的个数。(要求使用指向一维数组的指针变量)参考答案:# include void main() char ch,s380,(*p)80; /p为指向一维数组的行指针变量 int i,j,lower=0,uppr=0,space=0,other=0; printf(请输入3个字符串:n); for(i=0;i3;i+) /等待从键盘接收3个可以带空格的字符串 gets(si); /分别赋给si,si-第i行的首地址 p=s; for(i=0;i=A & ch=a & ch=z) lower+;/当前字符为小写字母,lower+; else if(ch= ) space+; /当前字符为空格,space+; else other+; /否则,other+; printf(小写字母个数: %dn,lower); printf(大写字母个数 : %dn,uppr); printf(空格的个数: %dn,space); printf(其它字符个数 : %dn,other);运行结果5、 设计程序sy6-5.c,请用指向一维数组的指针变量实现二维矩阵的转置,二维矩阵为int a34=1,2,3,4,5,6,7,8,9,10,11,12;转置后的结果存在int b43里面。参考答案:#includevoid main() int a34=1,2,3,4,5,6,7,8,9,10,11,12;int i,j, (*p)4,(*q)3; /p为行指针,即可以指向一行包含4个整形数的一行int b43; /数组b用来存放转置后的结果p=a; q=b; /p为行指针,将行指针常量a赋给它,q指向转置后的数组bprintf(转置以前a:n);for(i=0;i3;i+)for(j=0;j4;j+)printf(%6d, *(*(p+i)+j); /*(*(p+i)+j)等同于pij,aij qji=pij; /转置 printf(n); /输出一行4个数换行printf(转置后b:n);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论