指针程序设计(三)

原创 2012年03月22日 13:20:24

实验九  指针程序设计(三)

一.实验目的

1. 掌握指针的基本概念与操作方法;

2. 掌握指针、指针函数访问方式的程序设计。

二.实验环境

1. 硬件:PII以上计算机;

2. 软件:Windows、Visual C++ 6.0;

3. 其它:一张软盘或者U盘等可移动的存储设备。

三.实验内容

练习1.编写一个程序,其中包含一个子函数,功能为比较两个字符串,将长的那个字符串的首地址作为子函数的返回值,然后在主函数中输出。要求:

l      子函数形式为:char *fun(char*s1,char *s2);

运行结果示例:

练习2.编写一个程序,功能为读入多个正整数(以输入-1作为结束标志),输出其中的最大值、最小值。

l         要求:所有数据均不得使用整型变量,而全部使用malloc( )函数。

l         提示:申请创建3个空间,分别用一个指针加以指向(例如:int*p,*max,*min;)。

练习3.编写一个程序,其中包含一个子函数,功能为:产生n个0~20之间的随机数,调整数据排列顺序,使得所有的奇数排在非奇数之前,然后输出。

要求:

l         存储随机产生的一组数据时,不得使用数组,而使用calloc( )函数;

l      子函数负责调整数据顺序,函数形式为:int rearrange(int *s,int n);

其中n是数据的总个数,子函数返回奇数的个数。

l         程序中对数据的处理全部使用指针方式。

运行结果示例:

练习4.编写一个程序,其中包含一个子函数,功能为将字符串s2中所有未出现在s1中的字母添加到s1的末尾,然后输出。要求:

l      子函数形式为:char *addat(char *s1,char*s2);即:使用指针型函数的方式定义子函数,函数返回值为字符串s1的地址。

运行结果示例:

练习5.编写一个程序,其中包含一个子函数,功能为统计一个字符串在另一个字符串中出现的次数。要求:

l      子函数形式为:int strat(char *a,char*sub);

l      主函数中使用函数指针变量的方式调用子函数;

运行结果示例:

*练习6.编写一个实现串通配符匹配的函数pattern_index( ),其中的通配符只有”?”,它可以和任一字符匹配成功。例如,pattern_index( “?re”,”thereare”)返回的结果是2。要求:

l         子函数形式为:int pattern_index(char *a,char *sub);

 

练习1:

#include"stdio.h"

#include"iostream.h"

#include"string.h"

void main()

{

       char*fun(char *s1,char *s2);

       char*s1,*s2;

       char*p;

       printf("输入s1字符串:");

       gets(s1);

       cout<<endl;

       printf("输入s2字符串:");

       gets(s2);

       cout<<endl;

       p=fun(s1,s2);

       printf("较长的字符串为:%s",p);

}

char *fun(char *s1,char *s2)

{

       intm,n;

       m=strlen(s1);

       n=strlen(s2);

       if(m>n)return(s1);

       elsereturn(s2);

}

 

练习2:

#include"iostream.h"

#include"stdio.h"

#include"stdlib.h"

void main()

{

       int*p,*max,*min;

       inti;

       p=(int*)malloc(sizeof(float));

       max=(int*)malloc(2);

       min=(int*)malloc(2);

       printf("输入一组正整数(以-1结束):\n");

       cin>>*p;

       *max=*p;

       *min=*p;

       for(i=0;;i++)

       {

              cin>>*p;

              if(*p==-1)break;

              if(*p>*max)*max=*p;

              if(*p<*min)*min=*p;

       }

       cout<<"最大值:"<<*max<<endl;

       cout<<"最小值:"<<*min<<endl;

}

 

练习3:

#include"iostream.h"

#include"stdio.h"

#include"stdlib.h"

void main()

{

       intrearrange(int *s,int n);

       intn,*s,i,m;

       printf("");

       cin>>n;

       s=(*int)calloc(n,sizeof(int));

       printf("");

       for(i=0;i<n;i++,s++)

       {

              *s=rand()%20;

              cout<<*s;

       }

       m=rearrange(s,n);

       printf("%s\n",s);

       cout<<""<<m<<""<<endl;

}

int rearrange(int *s,int n)

{

       int

       for(i=0;i<n;i++)

       {

              if(*(s+i)%2!=0)

              {

                     t=*(s+i);

                     for(j=0;j<i;j++)*s[j+1]=*s[j];

                     m=0;

                     *(s+m)=t;

                     m++;

              }

 

练习4:

#include"iostream.h"

#include"stdio.h"

void main()

{

       char*addat(char *s1,char *s2);

       charstr1[80],str2[80];

       char*s1=str1,*s2=str2;

       cout<<"输入字符串s1:";gets(s1);

       cout<<endl<<"输入字符串s2:";gets(s2);

       cout<<endl<<"结果:"<<addat(s1,s2)<<endl;

}

char *addat(char *s1,char *s2)

{

       char*p=s1;

       for(;*s2!='\0';)

       {

              for(;*s1!='\0';s1++)

              {

                     if(*s1==*s2)break;

                     else*s1=*s2;

              }

              *(s1+1)='\0';

              s2++;

       }

       return(p);

}

 

 

 

相关文章推荐

C程序设计语言(三)指针与数组

C程序设计语言 第5章 指针与数组

谭浩强C++程序设计_指针习题11

【1.题目】  11. 在主函数中输入10个等长的字符串。 用另一函数对它们排序。 然后在主函数 出这 10 个已排好序的字符串。 12. 用指针数组处理上一题目, 字符串不等长。  【2....

网易云课堂程序设计入门--C语言第七周:指针与字符串学习笔记

第七周:指针与字符串学习笔记 网易云课堂 程序设计入门--C语言

面试宝典5,6,7--程序设计基本概念;预处理、const与sizeof;指针与引用

http://blog.csdn.net/winglet/article/details/2831605 1.What will be the output of the following C...

C/C++程序设计——指针基本概念

在计算机系统中,无论是存入或是取出数据都需要与内存单元打交道,物理 器件通过地址编码寻找内存单元。地址编码是一种数据,C语言的指针类型正是为 了表示这种计算机所特有的地址数据。通过指针间接访问内存...

程序设计之指针

第七章 指针 指针简介   指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串; 并能象汇编语言一样处理内存...

程序设计基础(C&C++) 戴波、张东祥 第五章 指针 编程作业

1最大整数(25分)题目内容:输入3个整数,用指针指向最大整数并输出输入格式:输出格式:输入样例:1,2,3输出样例:3参考代码#include int main(){ int a,b,c;...

1271面向对象程序设计上机练习九(对象指针)

面向对象程序设计上机练习九(对象指针)#include #include using namespace std; int a,b,c; class student { public : in...

指针程序设计(二)

实验八  指针程序设计(二) 一.实验目的 1. 掌握指针的基本概念与操作方法; 2. 掌握字符指针、指针函数访问方式的程序设计。 二.实验环境 1. 硬件:PII以上计算机; 2. 软件...

《c程序设计语言》读书笔记(五)——指针与数组

《c程序设计语言》读书笔记(五)——指针与数组book5.1 指针的概念 声明:int *ip; \\一个指向int类型的指针 基本操作:ip = &x; \\将ip指向x,ip中存放x的地址 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指针程序设计(三)
举报原因:
原因补充:

(最多只允许输入30个字)