来自匿名的C语言程序设计实验指导书实验12_第1页
来自匿名的C语言程序设计实验指导书实验12_第2页
来自匿名的C语言程序设计实验指导书实验12_第3页
来自匿名的C语言程序设计实验指导书实验12_第4页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、玉林师范学院数学与信息科学学院C 语言上机实验实验 12 指针应用班级学号姓名学时4一、 实验目的1. 重点掌握指针变量的定义和赋值;2. 掌握指针变量的引用;13. 初步掌握指向数组的指针的定义和使用;4掌握数组与指针的关系并能够利用指针解决数组的相关问题。二、 实验内容阅读程序1. #include <stdio.h> int main() int *p,a=15,b=5; p=&a;a=*p+b; printf("a=%d,%dn",a ,*p);return 0;将指针指向a,将指针和b 相加, 赋值给 a,得分析结果a=a+b=20.运行结果2

2、. #include<stdio.h>intsub(int *p);int main() inti ,k;for( i=0;i<5;i+) k= sub(&i);printf("k= %dn",k);return 0;intsub(int *p) static int t=0;t=*p +t ;return t;2016 年春季;.编写一个指针静态局部变量,输出第一次的k=0分析结果第二输出时指针的值为2,k=1+0 ;同理 k=3,6,10.运行结果3. #include<stdio.h>intmain()inta =1,2,3,4,

3、5,6;int*p ,i ;p=a;*(p+4)+=3;printf("n1=%d,n2=%dn",*p , *(p+3);return 0;将指针指向a0 ,又将指针 * ( p+4) =* ( p+4)分析结果+4,那么输出指针p 的值为 1, * ( p+3) =4.运行结果4. #include<stdio.h> int main()inta =2,4,6,8,10;int*p=a;printf("%dn",(*p+);printf("%dn",(* +p);printf("%dn",(* +p

4、)+);printf("%dn",*p);return 0;第一个输出的只是指针p 的值;第二个先执行分析结果p=a1 ,再执行 +p,得 * ( p+3) ;第三 P=a2+p 得 p=a3 ; 第四个输出 * (p+3 )。运行结果;.'.5.以下程序的输出结果是:#include<stdio.h>#include<string.h>int main() char b18="abcdef",b28,*pb=b1+4; while (-pb>=b1)strcpy(b2,pb);puts(b2);printf(&qu

5、ot;%dn",strlen(b2); return 0;第一次循环由于d>a,输出 def,第二循环c>a输出 b2=cedf ;第三循环输出, b>a 输出 b2=bcdef分析结果第四次循环;输出b2=abcdef,输出“ abccdef”字符串的长度。运行结果完成程序要求 :依据题目要求 ,分析已给出的语句,填写空白 ?但是不要增行或删行,改动程序的结构?1.以下程序通过指针实现求a 数组中各元素的和,请在_填写正确内容并运行程序。#include <stdio.h>main() inta6=2,4,6,8,10,12;ints, i,*p ;s

6、=0;p=a;for (i=0;i<6;i+)s=+*(p+i)/ 求各元素的和。printf(“ s=%dn” ,s);return 0;运行结果:2.下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。#include <stdio.h>int main() char str61,*p; int i;for (i=0;i<60;i+);.'.stri=getchar();if(stri='n')break;stri='0'p=str;while(*p)putchar(* p+);/ 输出 p 指向单元

7、的内容,并使得p 指针指向下一下单元。return 0;运行结果:调试程序要求:分析下列程序是否正确,如有错,错在哪儿?应如何改正?如正确,运行结果如何?上机调试之。行号#include <stdio.h>1. int main()2. int a , b ;3.int*p ,*q ;4. printf(" 请输入两个整数 :");5. scanf("%d,%d", p ,q);6. printf("%d,%dn",a ,b);7. printf("%d,%dn",*p,*q);8. return 0;

8、9. 错误行数: 6应改正为:第三行下面加入p=&a , q=&b;运行结果:2.以下程序实现求数组中的元素的和。行号 #include <stdio.h>int main()1 inta10=1,2,3,4,5,6,7,8,9,0;2intsum ,*p ;3 sum=0;4 p=&a;5 while( p<p+10)6 s + = *p;7 printf( “ sum=%dn” ,sum);8 return 0;9 ;.'.错误行数: 4,5,6.应改正为: 4:p=a;5while(p<(a+10).6sum+=*(p+);运行结果

9、:3.以下程序的功能是:输入三个字符串,按由小到大的顺序输出;行号 #include <stdio.h>1 int main()2 3char str120,str220,str320;4void swap();5printf("Please enterthree string:n");6gets(str1); gets(str2);gets(str3);7if (strcmp(str1,str2)>0)swap(str1,str2);8if (strcmp(str1,str3)>0)swap(str1,str3);9if (strcmp(str2,

10、str3)>0)swap(str2,str3);10 printf("n");11 printf("%sn%sn%sn",str1,str2,str3);12 return 0;13 14 void swap(char *p1,char *p2)15 char *p;16 p=p1;p1=p2;p2=p;17 错误行数: 4,15,16.应改正为: 4: void swap(char *p1,char *p2);15: char p; 16:p=*p1;*p1=*p2;*p2=p;运行结果:编写程序1 一个数组中的 15 个值已经按升序排列存放,输

11、入 1 个数,编程查找是否有该数,有显示其所在的位置,没有,显示 “No Found”,通过指针实现。#include<stdio.h>int main( )int a15=1,2,3,4,5,6,7,8,9,10,11,12,13,14,16;int *p,b,i;printf("input a number:");scanf("%d",&b);.'.p=a;for(i=0;i<15;i+)if(*p+=b)printf("located in a15:%dn",i+1);break;if(i=15

12、)printf("no found");2. 编程实现教材P291 第 6 题.#include<stdio.h>int main()char a20;char *p=a;int i=0;gets(a);p=a;while(*p+!='0')i+;printf("The length of the string is %d",i);return 0;3. 编程实现教材P291 第 10 题.#include<stdio.h>int main( )int sb(int *);int a55,i,j,*p;p=&

13、;a00;for(i=0;i<5;i+)for(j=0;j<5;j+)scanf("%d",&aij);sb(p);for(i=0;i<5;i+)for(j=0;j<5;j+)printf("%4d",aij);printf("n");.'.int sb(int *q)int i,j,*qmax,*qmin,t;qmax=q;qmin=q;for(i=0;i<5;i+)for(j=0;j<5;j+)if(*qmax<*(q+5*i+j)qmax=q+5*i+j;if(*qmin

14、>*(q+5*i+j)qmin=q+5*i+j;t=*(q+12);*(q+12)=*qmax;*qmax=t;t=*q;*q=*qmin;*qmin=t;qmin=(q+1);for(i=0;i<5;i+)for(j=0;j<5;j+)if(q+5*i+j)!=q&&*qmin>*(q+5*i+j)qmin=q+5*i+j;t=*(q+4);*(q+4)=*qmin;*qmin=t;qmin=(q+1);for(i=0;i<5;i+)for(j=0;j<5;j+)if(q+5*i+j)!=q&&(q+5*i+j)!=(q+4)&&*qmin>*(q+5*i+j)qmin=(q+5*i+j);t=*(q+20);*(q+20)=*qmin;*qmin=t;qmin=(q+1);for(i=0;i<5;i+)for(j=0

温馨提示

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

评论

0/150

提交评论