指针应用程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
编号:XH03JW024-05/0 实训(验) 报告 班级: 姓名: 座号: 指导教师: 成绩: 课程名称: 程序设计基础 实训(验):实验9指针应用程序设计 2011年 4 月22日
一、 实训(验)目的:
1、通过实验进一步掌握指针的概念,会定义和使用指针变量; 2、能正确使用数组的指针和指向数组的指针变量;
3、能正确使用字符串的指针和指向字符串的指针变量; 4、能正确使用指向函数的指针变量;
5、了解指向指针的指针的概念及其使用方法
二、 实训(验)内容、记录和结果(含数据、图表、计算、结果分析等) 1、程序
清单
安全隐患排查清单下载最新工程量清单计量规则下载程序清单下载家私清单下载送货清单下载
sy9_1.c如下:
#include
void main()
{
int a,b,*c,*d;
clrscr();
c=&a,d=&b;
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
printf("a=%d b=%d\n",a,b);
printf("a=%d b=%d\n",*c,*d); }
程序运行结果:
2、程序清单sy9_2.c如下:
#include
void main()
{
void h(int *a1,int *a2,int *a3);
int a,b,c,*p1,*p2,*p3;
clrscr();
p1=&a,p2=&b,p3=&c;
scanf("%d,%d,%d",&a,&b,&c);
h(p1,p2,p3);
printf("zuixiao=%d,zhonjian=%d,zuida=%d\n",a,b,c);
}
void h(int *a1,int *a2,int *a3) {
void s(int *s1,int *s2);
第 1 页 共 6 页
if(*a1>*a2)
s(a1,a2);
if(*a1>*a3)
s(a1,a3);
if(*a2>*a3)
s(a2,a3);
}
void s(int *s1,int *s2) {
int t;
t=*s1;
*s1=*s2;
*s2=t;
}
程序运行结果:
3、程序清单sy9_3.c如下:
#include void main()
{
int array[10],*p,i=0;
clrscr();
p=array;
printf("shu ru yi ge shu zu:\n");
for(;i<10;i++)
scanf("%d",&array[i]);
for(p=array;p<(array+10);p++)
printf(" %d",*p);
printf("\n"); }
程序运行结果如下:
4、程序清单sy9_4.c如下:
#include void main()
{
int slength(char *a1,int *a2);
int i=0,*p1;
char str[26];
clrscr();
第 2 页 共 6 页
p1=&i;
printf("shu ru yi zu shu zu:\n");
gets(str);
slength(str,p1);
printf("chang du=%d\n",*p1);
}
int slength(char *a1,int *a2)
{
while(*a1)
{
a1++;
*a2=*a2+1;
}
}
程序运行结果: 4、程序清单sy9_5.c如下:
#include
#include void main()
{
void sort();
void print();
char *name[3];
int i;
int n=3;
clrscr();
for(i=0;i<3;i++)
scanf("%s",name[i]);
sort (name,n);
print(name,n);
}
void sort(char *name[ ],int n)
{char *temp;
int i,j,k;
for(i=0;i0) k=j;
if(k!=i)
{temp=name[i];name[i]=name[k];name[k]=temp;}
}
}
第 3 页 共 6 页
void print(char *name[ ],int n)
{int i;
for(i=0;i
void main()
{
int p(int s[3][3],int s1[3][3]);
int i,j,str[3][3],str1[3][3];
clrscr();
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&str[i][j]);
printf("qian:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%6d",str[i][j]);
printf("\n");
}
p(str,str1);
printf("hou:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%6d",str1[i][j]);
printf("\n");
}
}
int p(int s[3][3],int s1[3][3]) {
int i,j;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
s1[j][i]=s[i][j];
}
第 4 页 共 6 页
程序运行结果:
7、程序清单如下:
#include
void count(char str[26],int *up1,int *low1,int *digit1,int *other1)
{
int i;
for(i=0;str[i]!='\0';i++)
if(str[i]>='A'&&str[i]<='Z')
(*up1)++;
else if(str[i]>='a'&&str[i]<='z')
(*low1)++;
else if (str[i]>='0'&&str[i]<='9')
(*digit1)++;
else(*other1)++;
}
void main()
{
char str[26];
int up=0,low=0,digit=0,other=0;
int *up1,*low1,*digit1,*other1;
clrscr();
up1=&up,low1=&low,digit1=&digit,other1=&other;
gets(str);
count(str,&up,&low,&digit,&other);
printf("dzm=%d,xzm=%d,sz=%d,qt=%d\n",*up1,*low1,*digit1,*other1);
}
程序运行结果如下:
8、程序清单如下:
#include
void main()
{
int pr(int *a,int *zuida1,int *zuixiao1);
第 5 页 共 6 页
int str[10],i=0,j=0,n;
int *zuida1,*zuixiao1;
clrscr();
zuida1=&i,zuixiao1=&j;
for(n=0;n<10;n++)
scanf("%d",&str[n]);
pr(str,&i,&j);
n=0;
printf("zuida=%d,zuixiao=%d\n",*zuida1,*zuixiao1);
}
int pr(int *x,int *zuida1,int *zuixiao1) {
int k,i,j,t;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(*(x+j)>*(x+k)) k=j;
if(k!=i)
{t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}
}
*zuida1=*(x+0);
*zuixiao1=*(x+9);
}
程序运行结果如下:
三、 实验总结:
通过这次实验让我知道了如何运用指针来运算一个程序,指针相对于我们前面学的内容会难了许多,因为指针如果出错是很难改过来的。指针可以直接存取,直接访问对某个地址的存储单元进行操作。指针同时也可以进行间接存取。在程序运行的不同时刻指针可以指向不同的变量。并且指针变量中只能存放的地址,不要将一个整数或任何其他地址类型的数据赋给一个指针变量。总的来说就是这节课学到了很多,指针虽然很难但是我相信只要认真就同意顶能够学好的。
本文来自:
第 6 页 共 6 页