资源描述:
《实验报告一(指针).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、指针实验一指向变量的指针变量编程一.实验目的与要求1.理解指针的概念。2.掌握指针变量的定义与使用。3.掌握指针变量作为函数参数的使用方法。二.实验题目1.用指针变量编程,求数组中的最大元素和最小元素。#include"stdio.h"#defineN10voidmain(){voidmaxmin(intarr[],int*pt1,int*pt2,intn);intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;p1=&a;p2=&b;maxmin(array,p1,p2,N);print
2、f("max=%d,min=%d",a,b);}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti;*pt1=*pt2=arr[0];for(i=1;i*pt1)*pt1=arr[i];if(arr[i]<*pt2)*pt2=arr[i];}}实验二字符指针编程一.实验目的与要求1.理解字符指针的概念。2.掌握字符指针的定义与使用。二.实验题目2.用字符指针编程求出字符串中指定字符的个数。例如:假设字符串为:“abcdaghckpamn”,指定字符为‘a’,则
3、结果为3。要求:从main函数输入字符串和指定字符,输出结果。#include#defineMAXLEN20intCountLetter(char*str,charch){inttime=0;while(*str)if(*str++==ch)time++;returntime;}intmain(){charstr[MAXLEN];charch;printf("Pleaseinputastring:");scanf("%s",str);getchar();//getenterprintf("Inputthealetter
4、tocount:");scanf("%c",&ch);printf("%d",CountLetter(str,ch));}实验三指向一维数组的指针变量编程一.实验目的与要求1.理解指针与数组之间的关系。2.掌握用指针变量引用数组元素的方法。3.掌握用指向一维数组的指针变量编程。二.实验题目3.已知一个整型数组,编程将其数组元素的值改为当前元素与相邻的下一个元素的乘积,数组的最后一个元素改为它与第0个元素的乘积,要求用指针变量实现。例如:已知a[5]={1,2,3,4,5};计算后a[5]={2,6,12,20,10}。#defineN5
5、#include"stdio.h"voidf(int*p,intn){inti;for(i=0;i6、指针变量的使用。二.实验题目4.用一个二维数组score[4][3]来存放4个学生3门课的成绩,编程实现:(1)输入学生成绩;(2)求出每个学生的平均分,将其保存在数组a[4]中;(3)求出每门课程的平均成绩,将其保存在数组b[3]中;(4)输出数组a、b中成绩。要求:用指向二维数组元素的指针变量实现。#include"stdio.h"voidinputScore(float(*p)[3])//输入学生成绩{inti,j;printf("请输入学生成绩,每个学生3门课程成绩,共4名学生");for(i=0;i<4;i++){printf
7、("请输入学生%d的3门课的成绩",i+1);for(j=0;j<3;j++)scanf("%f",p[i]+j);}}voidavstu(float*psco,float*pa)//求每个学生的平均成绩{inti,j;floatave;for(i=0;i<4;i++){ave=0;for(j=0;j<3;j++){ave+=(*(psco+3*i+j));//累计每门课的成绩*(pa+i)=ave/3;}}}voidavsco(float(*psco)[3],float*pb)//求每门课的平均成绩{inti,j;floatave;f
8、or(j=0;j<3;j++)//j表示列{ave=0;for(i=0;i<4;i++)//i表示行{ave+=(*(*(psco+i)+j));//累计每个学生的各科成绩*(p