资源描述:
《C程序实验报告九指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验9指针1.实验目的、要求(1)掌握指针的概念,会定义和使用指针变量。(2)能正确使用字符串的指针和指向字符串的指针变量。(3)正确使用数组的指针和指向数组的指针变量。(4)正确使用字符串的指针和指向字符串的指针变量。(5)正确使用指向函数的指针变量;了解指向指针的指针的概念及其使用方法。2.实验内容(1)输入程序并运行,观察运行结果并分析。sub(intx,inty,int*z){*z=y-x;}#include“stdio.h”intmain(){inta,b,c;sub(10,5,&a);
2、sub(7,a,&b);sub(a,b,&c);printf(“%4d,%4d,%4d”,a,b,c);return(0);}①输入上述程序。②运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:-5,-12,-7分析:a=5-10=-5;b=-5-7=-12;c=-12=(-5)=-7;(2)补全程序并运行。按字符顺序比较两个字符串s、t的大小,如果s大于t,则返回正值,等于返回0,小于则返回负值。补全
3、程序如下:#include“stdio.h”sub(char*s,char*t){for(;*s==*t;s++,t++)if(*s==‘ ’)return0;return(*s-*t);}#include“stdio.h”intmain(){chara[20],b[10],*p,*q;inti;p=a;q=b;scanf(“%s%s”,a,b);i=sub(p,q);printf(“%d”,i);return(0);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返
4、回源程序,按ctrl+F9运行,出现黑屏状态,输入:abcbcd按alt+F5看结果,结果显示:-1(3)编写程序输入a、b、c、d四个数,按从大到小的顺序输出这四个数。应用指针变量做函数参数实现。#include“stdio.h”#definen4main(){inti,j,k,a[n],*p,temp;p=a;printf(“Input%dnumbers:”,n);for(i=0;i5、eris:”);for(i=0;i6、rs:2345671Theoriginalnumberis:2345671Thesortednumberis:6745231(4)编写程序将一个3×3矩阵转置。在主函数中用scanf输入矩阵元素,将数组名作函数参数,在子函数中实现矩阵转置,在主函数中输出转置后的矩阵。#include“stdio.h”voidZhuanZhi(intval[3][3]){ inti,j,t; for(i=0;i<3;++i) for(j=i+1;j<3;++j) { t=val[i][j];
7、 val[i][j]=val[j][i]; val[j][i]=t; }}voidmain(){ intnum[3][3]; inti; printf(“Input3*3juzhen:”); for(i=0;i<3;++i) scanf(“%d%d%d”,&num[i][0],&num[i][1],&num[i][2]); ZhuanZhi(num); for(i=0;i<3;++i) printf(“%d%d%d”,num[i][0],num[i][1],num[i]
8、[2]);}运行结果:Input3*3juzhen:1234567891472583693.思考及总结如何理解“指针变量作函数参数,实参变量和形参变量之间的数据传递是单向的‘值传递’方式,调用函数不可能改变指针变量的值,但可以改变实参指针变量所指变量的值”这条结论。(1)若有定义inta[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值为;*(a[1]+2)的值为。(2)若有以下定义语句inta[4]={0,1,2,3},*p;p=&a[2];则