程序设计作业.docx
《程序设计作业.docx》由会员分享,可在线阅读,更多相关《程序设计作业.docx(8页珍藏版)》请在冰豆网上搜索。
程序设计作业
程序设计实验报告(第四次)
班级:
机自七班
姓名:
王学盛
学号:
20110401728
一、指针基础运算
(1)源程序代码:
#defineN5
#include
#include
intmain()
{
int*p,*q,a[N];
inti,tmp;
p=a;
q=(int*)malloc(N*sizeof(int));
printf("pleaseinputthefirstgroup:
");
for(i=0;iscanf("%d",p+i);
printf("pleaseinputthesecendgroup:
");
for(i=0;iscanf("%d",q+i);
for(i=0;iif(*(p+i)>*(q+i))
{
tmp=*(p+i);*(p+i)=*(q+i);*(q+i)=tmp;
}
printf("Result:
\n");
for(i=0;iprintf("%d",*(p+i));
printf("\n");
for(i=0;iprintf("%d",*(q+i));
printf("%X%x%X\n",p,a,q);
free(q);
return0;
}
(2)运行结果。
二、数据交换
(1)源程序代码。
#include
voidswap1(intx,inty);
voidswap2(int*x,int*p);
intmain()
{
inta,b;
printf("PleaseInputa=:
");
scanf("%d",&a);
printf("\nb=:
");
scanf("%d",&b);
swap1(a,b);
printf("\naftercallswap1:
a=%db=%d\n",a,b);
swap2(&a,&b);
printf("\naftercallswap2:
a=%db=%d\n",a,b);
return0;
}
voidswap1(intx,inty)
{
inttemp,a,b;
temp=x;
a=y;
b=temp;
}
voidswap2(int*x,int*y)
{
inttemp;
temp=*x;*x=*y;*y=temp;
}
(2)运行结果。
三.字符串反转连接.
1.程序代码.
#include
char*reverse(char*str);
char*link(char*str1,char*str2);
intmain()
{
charstr[50],str1[50],str2[50];
printf("pleaseinputreversingcharacterstring:
");
gets(str);
str[50]=*reverse(str);
printf("\npleaseoutputreversingcharacterstring:
");
puts(str);
printf("\npleaseinputstring1:
");
gets(str1);
printf("\npleaseinputstring2:
");
gets(str2);
str1[50]=*link(str1,str2);
puts(str1);
return0;
}
char*reverse(char*str)
{
char*p,*q,temp;
p=str;q=str;
while(*q!
='\0')
{
q++;
}
q--;
while(p{
temp=*p;*p=*q;*q=temp;
p++;q--;
}
returnstr;
}
char*link(char*str1,char*str2)
{
char*p=str1;
while(*p!
='\0')
{
++p;
}
p=str2;
returnstr1;
}
3.运行结果.
3.结果说明.
反转能正常运行,但连接有误。
四.数组元素奇偶排列.
1.程序代码.
#include
#defineN10
voidarrsort(inta[],intn);
intmain()
{
inta[N],i;
printf("pleaseinputthenum:
");
for(i=0;i{
scanf("%d",&a[i]);
}
arrsort(a,N);
for(i=0;iprintf("%d",a[i]);
printf("\n");
}
voidarrsort(inta[],intn)
{
int*p,*q,temp;
p=a;
q=a+n-1;
if(p{
if(*q%2==0)
q--;
if(*p%2==1)
p++;
if(p{
temp=*p;
*p=*q;
*q=temp;
}
p++;q--;
}
}
2.运行结果.
3.结果说明.
当输入数组是5182324261113504317时输出结果如图所示。
五.实验小结.
我发现自己对指针的概念还不是很清楚,运用起来有点吃力!
而且输入较慢,有些语句不太理解。