手机版

第八章:善于利用指针

发布时间:2024-11-17   来源:未知    
字号:

南京信息工程大学 滨江学院 实验(实习)报告

实验(实习)名称 指针 实验(实习)日期 2011.12 指导教师 宣文霞

专业 实验班 年级 大一 班次4 班 姓名 王雅婷 学号 20112335052 Eg8-1: 输入两个整数,并使其从大到小输出,用指针变量实现数的比较。

(1) 源程序:

#include <stdio.h>

void main()

{ int *p1,*p2,*p,a,b;

scanf("%d,%d",&a,&b);

p1=&a; p2=&b;

if(a<b)

{ p=p1; p1=p2; p2=p;}

printf("a=%d,b=%d\n",a,b);

printf("max=%d,min=%d\n",*p1,*p2);

}

(2)输入数据:13,15

(3)结果输出:

Eg8-2: 输入两个整数,并使其从大到小输出,用函数实现数的交换

(1)源程序:

#include <stdio.h>

void swap(int *p1, int *p2)

{ int p;

p=*p1;

*p1=*p2;

*p2=p;

}

void main()

{ int a,b;

int *p,*q;

scanf("%d,%d",&a,&b);

p=&a; q=&b;31

if(a<b) swap(p,q);

printf("\n%d,%d\n",a,b);

}

(2)输入数据:13,16

(3)结果输出:

(4)如果将 swap 函数修改为如下形式,分析如何调试和修改?

void swap(int *p1, int *p2)

{

int *p;

*p=*p1;

*p1=*p2;

*p2=*p;

}

Eg8-3:用指针法输入 12 个数,然后按每行 4 个数输出。

(1)算法分析:定义一个整型数组和一个整型指针,这样通过数组就可以静态分配 内存空间,存储数据;然后将指针与数组相关,使指针指向与数组相同的首地址处,这样就可以通过指针或者数组都可以对存储空间加以操作。

(2)源程序:

#include <stdio.h>

void main()

{ int j,k,a[12],*p ;

p=a; //使指针 p 指向与数组 a 相同的首地址处

for(j=0;j<12;j++)

scanf("%d",p++); //移动 P 的位置,输入数据

p=a; //指针重定位

for(j=0;j<12;j++)

{

if(j%4==0)

printf("\n"); //按每行 4 个数输出

printf("%4d",*p++);

}

printf("\n");

}

(3)输入数据:0 1 2 3 4 5 6 7 8 9 10 11

(4)结果输出:

Eg8-4: 从键盘输入十个整数,要求用冒泡法(或选择法)实现从大到小的排列输出。 #include <stdio.h>

main()

{

int s[10],t,i,j,x;

printf("input 10 numbers:\n");

for(t=0;t<10;t++)

scanf("%d",&s[t]);

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

for(j=0;j<9-i;j++)

if(s[j]<s[j+1])

{t=s[j];s[j]=s[j+1];s[j+1]=t;}

printf("the result is:\n ");

for(j=0;j<10;j++)

printf("%d",s[ji]);

printf("\n");

}

输入数据: 1 2 3 4 5 6 7 8 9 10 结果输出:

Eg8-5: 练习指针数组:有三个字符串“DATA STRUCTURE”、“COPUTER DESIGN”、 “C PROGROM”,请按字符顺序输出这三个字符串。(要求用指针数组指

向这三个字符串。)

#include<stdio.h>

#include<string.h>

void sort(char *p[]);

int main()

{

char a[]="DATA STRUCTURE ",b[]="COPUTER DESIGN ",c[]="C PROGROM "; char *p[3];

int i;

p[0]=a;

p[1]=b;

p[2]=c;

sort(p);

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

printf("%s ",p[i]);

printf("\n");

return 0;

}

void sort(char *p[])

{

char *t;

if(strcmp(p[0],p[1])>0)

{

t=p[0];

p[0]=p[1];

p[1]=t;

}

if(strcmp(p[0],p[2])>0)

{

t=p[0];

p[0]=p[2];

p[2]=t;

t=p[1];

p[1]=p[2];

p[2]=t;

}

}

输入数据:“DATA STRUCTURE”、“COPUTER DESIGN”、结果输出:

“C PROGROM”

第八章:善于利用指针.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)