C语言程序实验报告-指针.doc_第1页
C语言程序实验报告-指针.doc_第2页
C语言程序实验报告-指针.doc_第3页
C语言程序实验报告-指针.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

数学与软件科学学院 实验报告 学期:2011至2012_ 第_1 学期 2011年10 月 31 日 课程名称:程序设计基础教程-C语言 专业:2010级5_班实验编号:08实验项目: C语言程序实验报告 指针 指导教师_姓名: 学号: 实验成绩: 一、实验目的及要求(1) 掌握C语言环境下指针的声明、定义和使用方法;(2) 掌握指针和变量以及指针和数组的关系;(3) 掌握指针、数组之间的关系;(4) 掌握指针、函数之间的关系。二、实验内容1.熟悉指针的基本使用方法。(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。1) 程序段一:int main()int i=3,j=6,k=9;printf(“i=%d j=%d k=%dn”,*(&i),j,k); return 0;2) 程序段二:int main(void)int nA,*p;float fB,*q;p=&nA;q=&fB;scanf(“%d,%f”, p, q);*p=nA*(*q);printf(“nA is %d, p is %d and *p is %dn”, nA, p,*p);printf(“fB is %f, q is %d and *q is %dn”, nA, q,*q);printf(“p+1=%d q+1=%dn”,p+1,q+1);return 0;3) 程序段三:int main(void)int nA,*p,*q,*r;p=&nA;q=&p;r=&q;printf(“Please input nA:n”);scanf(“%d”,*r);printf(The results are :”);printf(“nA value is %d,%d,%d,%dn”,nA,*p,*q,*r);printf(“nA,p,q,rs value is %d,%d,%d,%dn”,nA,p,q,r);return 0;(2) 设计一个C语言程序,以测试以下表达式的运算顺序。2. 想使指针变量pt1指向变量nA和nB中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。void swap(int *p1,int *p2)int *p;p=p1;p1=p2;p2=p;int main(void)int nA,nB;int *pt1,*pt2;scanf(“%d,%d”,&nA,&nB);pt1=&nA;pt2=&nB;if (nAnB) swap(pt1,pt2);printf(“%d,%dn”,*pt1,*pt2);return 0;3.请仔细分析教材例9-2、9-3、9-69-11,上机调试之。记录并分析程序运行结果。实验准备:(1) 编写所选实验题目的程序代码和流程图;(2) 检查源程序并给出其可能的运行结果说明。三、实验步骤(该部分不够填写.请填写附页)1.熟悉指针的基本使用方法。(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。1) 程序段一:int main()int i=3,j=6,k=9;printf(“i=%d j=%d k=%dn”,*(&i),j,k); return 0;实验结果见图一。2) 程序段二:int main(void)int nA,*p;float fB,*q;p=&nA;q=&fB;scanf(“%d,%f”, p, q);*p=nA*(*q);printf(“nA is %d, p is %d and *p is %dn”, nA, p,*p);printf(“fB is %f, q is %d and *q is %dn”, nA, q,*q);printf(“p+1=%d q+1=%dn”,p+1,q+1);return 0;实验结果见图二。3) 程序段三:int main(void)int nA,*p,*q,*r;p=&nA;q=&p;r=&q;printf(“Please input nA:n”);scanf(“%d”,*r);printf(The results are :”);printf(“nA value is %d,%d,%d,%dn”,nA,*p,*q,*r);printf(“nA,p,q,rs value is %d,%d,%d,%dn”,nA,p,q,r);return 0;实验结果见图三。2. 想使指针变量pt1指向变量nA和nB中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。void swap(int *p1,int *p2)int *p;p=p1;p1=p2;p2=p;int main(void)int nA,nB;int *pt1,*pt2;scanf(“%d,%d”,&nA,&nB);pt1=&nA;pt2=&nB;if (nAnB) swap(pt1,pt2);printf(“%d,%dn”,*pt1,*pt2);return 0;实验结果见图四。由实验结果可以看出该程序可以实现使指针变量pt1指向变量nA和nB中的大者,pt2指向其小者。3.请仔细分析教材例9-2,上机调试之。记录并分析程序运行结果。#includeint main(void)int m,*pt_m;float b,*pt_b;pt_m=&m;pt_b=&b;scanf(%d,%f,pt_m,pt_b);*pt_m=m*(*pt_b);printf(m is %d,pt_m is %d and *pt_m is %dn,m,pt_m,*pt_m);printf(b is %f,pt_b is %d and *pt_b is %dn,b,pt_b,*pt_b);printf(pt_m+1=%d pt_b+1=%dn,pt_m+1,pt_b+1)

温馨提示

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

评论

0/150

提交评论