资源描述:
《上海电力学院c语言报告:实验 指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上海电力学院实验报告课程名称C语言程序设计实验名称实验8指针姓名蔡福瑞学号20101419班级2010027专业电气工程及其自动化(供用电技术方向)同组人姓名蔡福瑞、黄任凭、龚奕磊、傅庆燕、程旭指导老师姓名魏为民实验日期2010-12-27一、实验目的1、通过实验进一步掌握指标的概念,会定义和使用指针变量。2、能正确使用数组的指针和指向数组的指针变量。3、能正确使用字符串的指针和指向字符串的指针变量。二、实验内容和步骤1、改错(1)指出下面程序错误的原因.main(){intx=10,y=5,*px,*p
2、y;px=py;px=&x’;printf(“*px=%d,*py=%d,*px,*py);}图(8-1)该程序运行的整个过程如图(8-2)所示。错误的原因:printf(”*px=%d,*py=%d,*px,*py);该行此处少了个引号。修改后,运行结果如图(8-3)所示:图(8-2)图(8-3)(2)下面的程序试图有如下运行结果:Whichstyleyouwantto:Capital(c)oruncapital(a):c↙COMPUTERWhichstyleyouwantto:Capital(c)or
3、uncapital(a):u↙图(8-4)请调试下面的程序,使其有如上执行结果.#includemain(){chars*;charc;printf(“whichstyleyouwantto:ln”);printf(“capital(c)oruncapital(a):”);c=getchar();if(c=’c’)strcpy(s,”COMPUTER”);elsestrcpy(s,”computer”);put(s)}图(8-5)该程序运行的整个过程如图(8-6)所示。错误的原因:缺少库函数;指针格式错误
4、;回车的控制符为;‘=’为赋值运算符,‘=='才是关系运算符;put只能输出一个字符,puts才能输出字符串。修改后,运行结果如图(8-7)所示:图(8-6)图(8-7)(3)下面的程序能获得上述运行结果吗?main(){char*S=”COMPUTER”;charc;printf(“whichstyleyouwantto”);printf(“capital(c)oruncapital(U):”);c=getchar();if(c=’c’)put(s);else{s=”computer”;puts
5、(s);}}图(8-8)该程序运行的整个过程如图(8-9)所示。错误的原因:①if(’c=c’)中‘=’为赋值运算符,‘=='才是关系运算符;②put语句只能输出一个字符,puts语句才能输出字符串。修改后,运行结果如图(8-10)所示:图(8-9)图(8-10)(4)设计一个C程序,用以测试下列各表达式的运算。1)y=*px++;2)y=*++py3)y=(*py)++4)y=--*ppx++图(8-11)图(8-12)(5)想使指针变量pt1指向a和b中的大者,pt2指向小者,一下程序能否实现此目的。
6、swap(int*p1,int*p2){int*p;p=p1;p1=p2;p2=p;}main(){inta,b;scanf(“%d,%d”,&a,&b);pt1=&a;pt2=&b;if(a
7、-15)二、程序填空:(1)一位数组和指针。分别采用下标法,数组名法和指针发访问数组元素,求出10个数中的最大值。下标法:如图(8-16)#includevoidmain(){inta[10],i,max;for(___________)scanf(“%d”,______________);for(___________)if()max=a[i];printf(“MAX=%d”,max);}图(8-17)图(8-18)数组名法:如图(8-19)与运行结果:如图#include8、io.h>voidmain(){inta[10],i,max;for(_________)scanf(“%d”,a+i);for(_________)if(_________)max=*(a+i);printf(“MAX=%d”,max);}图(8-20)图(8-21)指针法:图(8-22)#includevoidmain(){inta[10];int*p,max;for(________)scanf(“