天津理工大学c语言上机报告7
天津理工大学
计算机与通信工程学院
实验试做报告
2009 至 2010 学年 第 一 学期
课程名称高级语言程序设计I学生专业信息安全实验(7)实验名称指针实验课时4课时试做时间2009年11月12日
实验环境P4、VC++6、MSDN实验要求
见实验指导书
实验步聚1.第一题的参考源代码如下:
#include"stdio.h"
void main()
{int i,j,k,t,*p;
int a[10];
printf("请输入10个数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);/*输入数据*/
p=a;/*指针p指向数组a*/
for(i=0;i<9;i++)
{k=i;/*变量k中存放最终需要交换的元素的位置*/
for(j=i+1;j<10;j++)
if(*(p+k)>*(p+j))k=j;/*有更小的元素值是更新k的指向*/
if(k!=i)/*当k被更新后就需要交换数据*/
{t=*(p+k);
*(p+k)=*(p+i);
*(p+i)=t;}}
for(p=a;p
}
2.第二题的参考源代码如下:
#include"stdio.h"
void main()
{void swap(p1,p2);
int a,b,*pa,*pb;
printf("请输入2个数\n");
scanf("%d%d",&a,&b);
pa=&a;/*指针pa指向整数a*/
pb=&b;/*指针pb指向整数b*/
swap(pa,pb);/*调用函数swap,实参为指针*/
printf("a=%d,b=%d\n",a,b);
}
void swap(int *p1,int *p2)/*定义函数swap,完成交换功能*/
{int t;
t=*p1;/*完成交换功能*/
*p1=*p2;
*p2=t;
}
3.第三题的参考源代码如下:
#include"stdio.h"
void main()
{int sum(int a,int b,int c);
void swap(int a,int b);
int a,b,c,(*p)();
int *aa,*bb;
printf("请输入2个数a,b\n");
scanf("%d,%d",&a,&b);
p=sum;
c=(*p)(a,b,c);
p=swap;
aa=&a;bb=&b;
(*p)(aa,bb);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
int sum(int a,int b,int c)
{c=a+b;
return(c);}
void swap(int *aa,int *bb)
{int t;
t=*aa;
*aa=*bb;
*bb=t;
}
4.第四题的参考源代码如下:
#include"stdio.h"
void main()
{
void pai(int *p,int a);
int a[10],i;
printf("请输入10个数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
pai(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
void pai(int *p,int n)
{int i,x[10],j,k,t;
for(i=0;i<10;i++)
x[i]=*(p+i);
for(i=0;i
{k=i;
for(j=i+1;j
if(x[k]>x[j])k=j;
if(k!=i)
{t=x[k];
x[k]=x[i];
x[i]=t;}}
for(i=0;i
printf("%d ",x[i]);
printf("\n");
}
5.第五题的参考源代码如下:
#include"stdio.h"
void main(){
int strcmp(char *p1,char *p2);
char s1[100],s2[100],* p1,*p2;
int a;
printf("请输入字符串s1\n");
gets(s1);
printf("请输入字符串s2\n");
gets(s2);
p1=s1;
p2=s2;
a=strcmp(p1,p2);
printf("%d\n",a);
}
int strcmp(char *p1,char *p2)
{int s=0;
for