C程序实验报告九指针.doc_第1页
C程序实验报告九指针.doc_第2页
C程序实验报告九指针.doc_第3页
C程序实验报告九指针.doc_第4页
全文预览已结束

下载本文档

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

文档简介

实验9 指针1实验目的、要求 (1)掌握指针的概念,会定义和使用指针变量。 (2)能正确使用字符串的指针和指向字符串的指针变量。(3)正确使用数组的指针和指向数组的指针变量。(4)正确使用字符串的指针和指向字符串的指针变量。(5)正确使用指向函数的指针变量;了解指向指针的指针的概念及其使用方法。2实验内容 (1)输入程序并运行,观察运行结果并分析。sub( int x,int y,int *z ) *z=y-x; #include “stdio.h” int main( ) int a,b,c; sub(10,5,&a); sub( 7,a,&b); sub( a,b,&c); printf(“%4d ,%4d ,%4dn”,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,小于则返回负值。补全程序如下:#include“stdio.h”sub(char *s, char *t ) for( ; *s = = *t ;s+,t+) if( *s = =0) return 0; return( *s - *t ); #include “stdio.h” int main( ) char a20, b10, *p, *q; int i; p=a; q=b; scanf(“%s%s” ,a,b); i=sub(p,q); printf(“%d”, i ); return(0); 运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序,按ctrl+F9运行,出现黑屏状态,输入:abc bcd按alt+F5看结果,结果显示:-1 (3)编写程序输入a、b、c、d四个数,按从大到小的顺序输出这四个数。应用指针变量做函数参数实现。#include“stdio.h” #define n 4 main() int i,j,k,an,*p,temp; p=a; printf(“nInput %d numbers:n”,n); for( i=0;in;i+,p+) scanf(“%d”,p); p=a; printf(“The original number is:n”); for( i=0;in;i+,p+) printf(“%dt”,*p); p=a; for( i=0;in-1;i+) k=i; for( j=i+1;jn;j+) if( *(p+i)*(p+j) temp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp; p=a; printf(“nThe sorted number is:n”); for( i=0;in;i+,p+) printf(“%dt”,*p); return 0; 运行结果:Input 4 numbers:23 45 67 1The original number is:23 45 67 1The sorted number is:67 45 23 1(4)编写程序将一个33矩阵转置。在主函数中用scanf输入矩阵元素,将数组名作函数参数,在子函数中实现矩阵转置,在主函数中输出转置后的矩阵。#include “stdio.h”void ZhuanZhi(int val33) int i, j, t; for (i = 0;i 3;+i) for (j = i+1;j 3;+j) t = valij;valij = valji;valji = t; void main() int num33; int i; printf(“Input 3*3 ju zhen:n”); for (i = 0;i 3;+i) scanf(“%d %d %d”, &numi0, &numi1, &numi2); ZhuanZhi(num); for (i = 0;i 3; +i) printf(“%d %d %dn”, numi0, numi1, numi2); 运行结果:Input 3*3 ju zhen: 1 2 3 4 5 67 8 9 1 4 7 2 5 8 3 6 93思考及总结 如何理解“指针变量作函数参数,实参变量和形参变量之间的数据传递是单向的值传递方式,调用函数不可能改变指针变量的值,但可以改变实参指针变量所指变量的值”这条结论。(1)若有定义 int a23=2,4,6,8,10,12; 则 *(&a00+2*2+1) 的值为 ; *(a1+2) 的值为 。 (2)若有以下定义语句 int a4=0,1,2,3, *p ; p=&a2 ; 则 *-p的值为 。 (3)若有以下定义语句 int s23=0, (*p)3;p=s;则p+1表示 。 (4)认真理解教材中P225表10.1的含义及P255表10.2的各种指针的含义。4易犯错误及纠正方法(1)在做实验内容(1)时,先分析运行结果,再上机运行,对照结果是否一致。(2)在做实验内容(2)时,先分析运行结果,注意静态局部变量的特性,再上机运行,对照结果是否一致。(3)实验内容(4)的编程思路为:四个数两两比较大小,子函数完成比较大小的功能,按照题目要求完成数值顺序的调整。

温馨提示

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

评论

0/150

提交评论