南工程计院C语言实验七 指针带答案_第1页
南工程计院C语言实验七 指针带答案_第2页
南工程计院C语言实验七 指针带答案_第3页
南工程计院C语言实验七 指针带答案_第4页
南工程计院C语言实验七 指针带答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、1、编写一个函数,求一组整数中的最大值及位置和最小值及位置。#include#include#includeintf(int*a,intlen,int*pmin,int*pmaxpos,int*pminpos)/一个函数只能返回一个值,其它三个值的传回要用指针来实现inti,max,min,maxpos,minpos;max=min=a0;maxpos=minpos=0;for(i=1;ilen;i+)if(maxai)min=ai;minpos=i;*pmin=min;*pmaxpos=maxpos;*pminpos=minpos;returnmax;main()intn,i,max,min

2、,maxpos,minpos;printf(请输入数组的元素个数);scanf(%d,&n);int*a;a=(int*)malloc(n*sizeof(int);/动态生成数组,这样程序通用for(i=0;in;i+)ai=rand()%100;/随机生成100以内的随机数printf(%5d,ai);printf(n);max=f(a,n,&min,&maxpos,&minpos);printf(最大值:d最大值下标位置:d最小值:d最小值下标位置:dn,max,maxpos,min,minpos);2、编写一个函数,求出一个字符串的长度(即字符串中字符的个数)。#include#incl

3、udeintstrlength(char*);main()char*s=(char*)malloc(80*sizeof(char);printf(请输入字符串,包括空格,以回车为结束n);gets(s);printfC字符串的长度为:dn,strlength(s);intstrlength(char*s)intcount;for(count=0;*s+;count+);returncount;3、编写一个函数,实现一个字符串的翻转。#include#includechar*reverse(char*s)inti;char*p,*q,t;p=s;for(i=0;*p+;i+);p=s;q=s+i

4、-1;while(pq)t=*p,*p=*q,*q=t;p+;q-;returns;main()char*s;s=(char*)malloc(80*sizeof(char);printf(请输入字符串:”);gets(s);printf(翻转前:);puts(s);s=reverse(s);printf(翻转后:);puts(s);4、编写一个函数,实现strcat的功能。#include#includevoidmystrcat(char*s1,char*s2)while(*s1)s1+;while(*s1+=*s2+);main()char*s1,*s2;s1=(char*)malloc(8

5、0*sizeof(char);printf(请输入字符串1:);gets(s1);s2=(char*)malloc(10*sizeof(char);printf(请输入字符串2:);gets(s2);mystrcat(s1,s2);puts(s1);5、编写一个函数,从一组整数中查找一个数,若找到返回该数在数组中的下标值,否则返回-1。(要求用指针表示法表示数组元素)说明:以下所有ai字样用*(a+i)表示即为指针表示法。1)顺序查找法实现#include#include#includeintfind(int*a,intlen,intx)inti;for(i=0;ilen;i+)if(x=ai

6、)break;if(i=len)return-1;elsereturni;main()intn,i,x,pos;printf(请输入数组的元素个数);scanf(%d,&n);int*a;a=(int*)malloc(n*sizeof(int);/动态生成数组,这样程序通用for(i=0;in;i+)ai=rand()%100;/随机生成100以内的随机数printf(%5d,ai);printf(n);printf(请输入要查找的数:);scanf(%d,&x);if(pos=find(a,n,x)=-1)printf(没找到n);elseprintf(该数在数组中的下标值为dn,pos);

7、2)二分查找法实现#include#includeintfind(int*a,intlen,intx)intleft,right,mid;left=0;right=len-1;while(leftamid)left=mid+1;elseif(xamid)right=mid-1;elsereturnmid;return-1;main()inta10=1,3,5,6,8,9,11,12,13,15;/二分查找是在有序的一组数中查找inti,x,pos;for(i=0;i10;i+)printf(%5d,ai);printf(n);printf(请输入要查找的数:);scanf(%d,&x);if(

8、pos=find(a,10,x)=-1)printf(没找到n);elseprintf(该数在数组中的下标值为dn,pos);6、编写一个函数,从一个字符串数组中寻找指定的一个字符串,若找到返回1,若找不到返回0。#include#include#includeintsearchstr(char*sarr,intlen,char*s)inti;for(i=0;ilen;i+)if(strcmp(s,sarri)=0)return1;return0;main()inti,x;char*sarr10,*s;for(i=0;i10;i+)sarri=(char*)malloc(20*sizeof(char);printf(请输入第d个字符串:,i+1);gets(sarri)

温馨提示

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

评论

0/150

提交评论