资源描述:
《来自匿名的C语言程序设计实验指导书--实验12》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、8玉林师范学院数学与信息科学学院C语言上机实验实验12指针应用班级学号姓名学时4一、实验目的1.重点掌握指针变量的定义和赋值;2.掌握指针变量的引用;3.初步掌握指向数组的指针的定义和使用;4.掌握数组与指针的关系并能够利用指针解决数组的相关问题。二、实验内容阅读程序1.#includeintmain(){int*p,a=15,b=5;p=&a;a=*p+b;printf("a=%d,%d",a,*p);return0;}分析结果 将指针指向a,将指针和b相加,赋值给a,得a=a+b=20.运行结果 2.#includeintsub
2、(int*p);intmain(){inti,k;for(i=0;i<5;i++){k=sub(&i);printf("k=%d",k);}return0;}intsub(int*p){staticintt=0;t=*p+t;returnt;}2016年春季8玉林师范学院数学与信息科学学院C语言上机实验分析结果编写一个指针静态局部变量,输出第一次的k=0第二输出时指针的值为2,k=1+0;同理k=3,6,10.运行结果 3.#includeintmain(){inta[]={1,2,3,4,5,6};int*p,i;p=a;*(p+4)+=3;pri
3、ntf("n1=%d,n2=%d",*p,*(p+3));return0;}分析结果 将指针指向a[0],又将指针*(p+4)=*(p+4)+4,那么输出指针p的值为1,*(p+3)=4.运行结果 4.#includeintmain(){inta[]={2,4,6,8,10};int*p=a;printf("%d",(*p++));printf("%d",(*++p));printf("%d",(*++p)++);printf("%d",*p);return0;}分析结果 第一个输出的只是指针p的值;第二个先执行p=a[1],再执行+
4、+p,得*(p+3);第三P=a[2]++p得p=a[3];第四个输出*(p+3)。2016年春季8玉林师范学院数学与信息科学学院C语言上机实验运行结果 5.以下程序的输出结果是:#include#includeintmain(){charb1[8]="abcdef",b2[8],*pb=b1+4;while(--pb>=b1){strcpy(b2,pb);puts(b2);}printf("%d",strlen(b2));return0;}分析结果 第一次循环由于d>a,输出def,第二循环c>a输出b2=cedf;第三循环输出
5、,b>a输出b2=bcdef第四次循环;输出b2=abcdef,输出“abccdef”字符串的长度。运行结果 完成程序要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1.以下程序通过指针实现求a数组中各元素的和,请在___填写正确内容并运行程序。#includemain(){inta[6]={2,4,6,8,10,12};ints,i,*p;s=0;p=a;for(i=0;i<6;i++)s=+*(p+i)//求各元素的和。printf(“s=%d”,s);return0;}2016年春季8玉林师范学院数学与信息科
6、学学院C语言上机实验运行结果:2.下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。#includeintmain(){charstr[61],*p;inti;for(i=0;i<60;i++){str[i]=getchar();if(str[i]=='')break;}str[i]=' ';p=str;while(*p)putchar(*p++);//输出p指向单元的内容,并使得p指针指向下一下单元。return0;}运行结果:调试程序要求:分析下列程序是否正确,如有错,错在哪儿?应如何改正?如正确,运行结果如何?上机
7、调试之。行号#include1.intmain()2.{inta,b;3.int*p,*q;4.printf("请输入两个整数:");5.scanf("%d,%d",p,q);6.printf("%d,%d",a,b);7.printf("%d,%d",*p,*q);8.return0;9.}错误行数:6应改正为:第三行下面加入p=&a,q=&b;运行结果:2.以下程序实现求数组中的元素的和。行号#include2016年春季8玉林师范学院数学与信息科学学院C语言上机实验intmai