工科语言-68023试卷指针_第1页
工科语言-68023试卷指针_第2页
工科语言-68023试卷指针_第3页
工科语言-68023试卷指针_第4页
工科语言-68023试卷指针_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、实验 9指针1(2). 调试,将 5 个字符串从小到大排序后输出。源程序(有错误的程序)#include #includevoid fsort(char cname6,n)k,j;char tmp6;for(k=1;kn;k+)/*调试时设置断点*/ for(j=0;jcnamej+1)amej;cnamej=cnamej+1; cnamej+1=t;void main()i;char cname56=“wang”,”li”,”zhang”,”jin”,”xian”;fsort(cname,5); for(i=0;i5;i+)pr f(“%s n”,cnamei);/*调试时设置断点*/运行结

2、果(改正后程序的运行结果)Jin LiWang XianZhang#include #includevoid fsort(char cname6,n)k,j;char tmp6=,(*p)6; ame;for(k=1;kn;k+)/*调试时设置断点*/for(j=0;j0)strcpy(tmp,*(p+j+1); strcpy(*(p+j+1),*(p+j);strcpy(*(p+j),tmp);void main()i;char cname56=wang,li,zhang,jin,xian; fsort(cname,5);for(i=0;i5;i+)prf(%sn,cnamei);/*调试时

3、设置断点*/2.2. 编程序(1). 输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。(习题 l0.1、10.2)第一个: #include void main()a3,i,t,j;for (i=0;i3;i+)scanf(%d,&ai); for (i=0;i2;i+)for(j=0;jaj+1)t=aj+1; aj+1=aj; aj=t;for (i=0;i3;i+)prf(%dt,ai); f(n);pr第二个:#include#includevoid main()i,j;char a3100;char t100=; for (i=0;i3;i+)

4、scanf(%s,&ai); for (i=0;i2;i+)for(j=0;j0)strcpy(t,aj+1);strcpy(aj+1,aj);strcpy(aj,t);for (i=0;i3;i+)prf(%st,ai); prf(n);其他解法见书本上机指导 103 面。(2). 将一个 3X3 的矩阵转置,用一函数实现之。(习题 109)在主函数中用 scanf 函数输入以下矩阵元素:19将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。解:解法一:#includevoid main()i,j,a33,k=0;void trans(a3);f

5、or (i=0;i3;i+) for (j=0;j3;j+)scanf(%d,&aij);trans(a);for (i=0;i3;i+)for (j=0;j3;j+)prf(%dt,aij); k+;if (k%3=0) prf(n);prf(n);voidtrans(a3)i,j,t,b33=0;for (i=0;i3;i+) for(j=0;j3;j+)if(bij!=1)&(bji!=1)t=aij; aij=aji; aji=t;bij=1;bji=1;解法二:#includevoid main()i,j,a33,k=0;void trans(a3);for (i=0;i3;i+)

6、for (j=0;j3;j+)scanf(%d,&aij);trans(a);for (i=0;i3;i+)for (j=0;j3;j+)prf(%dt,aij); k+;if (k%3=0) prf(n);prf(n);voidtrans(a3)i,j,t,b33=0;for (i=0;i3;i+) for(j=0;ji;j+)t=aij; aij=aji; aji=t;解法三见书本 109 面(3). 用指向指针的指针的方法对n 个整数排序并输出。要求将排序单独写成一个函数。n 和各整数在主函数中输入,最后在主函数中输出。(习题 10.21)#includevoid main()a100,

7、n,*ptr100;*p,i;voidsort(*p,n);prf(input n,n is a number betscanf(%d,&n);n 3 and 100:n);while(n100)prf(n must be a number bet scanf(%d,&n);n 3 and 100);for (i=0;in;i+)ptri=&ai;prf(input numbers:n);for (i=0;in;i+)scanf(%d,&ai);for (i=0;in;i+)prf(%dt,ai); if(i+1)%5=0)prf(n);prf(n); p=ptr;sort(p,n);for

8、(i=0;in;i+)prf(%dt,*ptri); if(i+1)%5=0)prf(n);voidsort(*p,n)t,i,j; for(i=0;in-1;i+)for(j=0;j*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;书本的解法没有实际的交换数值#includevoid main()a100,n,*ptr100;*p,i;voidsort(*p,n);prf(input n,n is a number betscanf(%d,&n);n 3 and 100:n);while(n100)prf(n must be a number bet s

9、canf(%d,&n);n 3 and 100);for (i=0;in;i+)ptri=&ai;prf(input numbers:n);for (i=0;in;i+)scanf(%d,&ai);for (i=0;in;i+)prf(%dt,ai); if(i+1)%5=0)prf(n);prf(n); p=ptr;sort(p,n);for (i=0;in;i+)prf(%dt,*ptri); if(i+1)%5=0)prf(n);for (i=0;in;i+)prf(%dt,ai); if(i+1)%5=0)prf(n);voidsort(*p,*t,i,j;n)for(i=0;in-1

10、;i+) #实际上只是把指针数组的值给更改了,而没有实际改变数组值 for(j=0;j*(p+j+1)t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;(4).编程,输入 6 个字符串,先按从小到大的顺序输出这些字符串,再输出其中最大和最小的字符串,要求定义和调用函数。输入输出示例:输入 6 行字符串:Hangzhou Shanghai Beijing Nanjing Guangzhou Tianjing字符串从小到大排列后:Beijing Guangzhou Hangzhou Nanjing Shanghai Tianjing最短的字符串是 Beijing最长的字符串是

11、 Tianjing提示:定义函数形参时,如果把二维数组定义为指针,调用时要用一级指针的地址。解法:有问题#include #includevoid main()i;char a6100;char (*q)100;void sort(char (*q)100,n);/char t100=; for (i=0;i6;i+)scanf(%s,ai); for (i=0;i6;i+)prf(%st,ai); prf(n);q=a; sort(q,6);for (i=0;i6;i+)prf(%st,q+i); prf(n);for (i=0;i6;i+)prf(%st,ai);void sort(char (*p)100,n)i,j;char temp100,*t=temp; for (i=0;in-1;i+)for(j=0;j0)strcpy(t,pj+1);strcpy(pj+1,pj);strcpy(pj,t);正确的解法二:#include #includevoid main()i;char a6100; char *q6;void sort(char *p, for (i=0;i6;i+)scanf(%s,&ai); for (i=0;i6;i+)prf(%st,ai); for (i=0;i6;i+)qi=ai;p

温馨提示

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

最新文档

评论

0/150

提交评论