实验十 指针程序设计.docx
- 文档编号:23196869
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:13
- 大小:61.77KB
实验十 指针程序设计.docx
《实验十 指针程序设计.docx》由会员分享,可在线阅读,更多相关《实验十 指针程序设计.docx(13页珍藏版)》请在冰豆网上搜索。
实验十指针程序设计
实验十指针程序设计
(一)
实验目的及意义:
Ø掌握指针的概念,会定义和使用指针变量;
Ø能正确使用数组的指针和指向数组的指针变量;
Ø能正确使用指针作函数的参数,返回正确结果。
2.实验内容:
Ø上机录入书上例题:
例8.3,8.5,8.10;
Ø编程序并上机调试运行:
习题3,习题4(P291)
例题8。
3
#include
intmain()
{
voidswap(int*p1,int*p2);
inta,b;
int*pointer_1,*pointer_2;
printf("pleaseaandb:
");
scanf("%d,%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a
swap(pointer_1,pointer_2);
printf("max=%d,min=%d\n",a,b);
return0;
}
voidswap(int*p1,int*p2)
{inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
例题8。
5
#include
intmain()
{
voidexchange(int*q1,int*q2,int*q3);
inta,b,c,*p1,*p2,*p3;
printf("pleaseenterthreenumbers:
");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
exchange(p1,p2,p3);
printf("Theorderis:
%d,%d,%d\n",a,b,c);
return0;
}
voidexchange(int*q1,int*q2,int*q3)
{
voidswap(int*pt1,int*pt2);
if(*q1<*q2)swap(q1,q2);
if(*q1<*q3)swap(q1,q3);
if(*q2<*q3)swap(q2,q3);
}
voidswap(int*pt1,int*pt2)
{
inttemp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
例题8。
10
#include
intmain()
{
voidsort(intx[],intn);
inti,*p,a[10];
p=a;
printf("pleaseenter10integernumbers:
");
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{
printf("%d",*p);
p++;
}
printf("\n");
return0;
}
voidsort(intx[],intn)
{
inti,j,k,t;
for(i=0;i { k=i; for(j=i+1;j if(x[j]>x[k])k=j; if(k! =i) { t=x[i];x[i]=x[k];x[k]=t;} } } 习题3#include voidshuru(int*p) { inti; for(i=0;i<10;i++) scanf("%d",p+i); } voidpan(int*p) { inti,b; int*temp=p; for(i=0;i<10;i++)if(*temp>*(p+i))temp=p+i; b=*p; *p=*temp; *temp=b; temp=p; for(i=0;i<10;i++)if(*temp<*(p+i))temp=p+i; b=*(p+9); *(p+9)=*temp; *temp=b; } voidshuchu(int*p) { inti; for(i=0;i<10;i++) printf("%d",*(p+i)); printf("\n"); } intmain() { inta[10]; shuru(a); pan(a); shuchu(a); } 实验十一指针程序设计 (二) 1.实验目的及意义: 更进一步掌握指针的概念及指针变量的使用; 能正确使用字符串的指针和指向字符串的指针变量; 了解指向指针的指针的概念及使用方法。 2.实验内容: 上机录入书上例题: 例8.20,8.27,8.28; 编程序并上机调试运行: 习题11,15(P291292)。 例题8.20 #include intmain() { voidcopy_string(charfrom[],charto[]); chara[]="Iamastudent."; charb[]="Youareastudent."; printf("stringa=%s\nstringb=%s\n",a,b); printf("copystringatostringb: \n"); copy_string(a,b); printf("stringa=%s\nstringb=%s\n",a,b); return0; } voidcopy_string(charfrom[],charto[]) { inti=0; while(from[i]! ='\0') {to[i]=from[i];i++;} to[i]='\0'; } 例题8.27 #include #include intmain() {voidsort(char*name[],intn); voidprint(char*name[],intn); char*name[]={"Followme","BASIC","GreatWall","FORTRAN","Computerdesign"}; intn=5; sort(name,n); print(name,n); return0; } voidsort(char*name[],intn) {char*temp; inti,j,k; for(i=0;i {k=i; for(j=i+1;j if(strcmp(name[k],name[j])>0)k=j; if(k! =i) {temp=name[i];name[i]=name[k];name[k]=temp;} } } voidprint(char*name[],intn) {inti; for(i=0;i printf("%s\n",name[i]); } 例题8.28 #include intmain() {char*name[]={"Followme","BASIC","GreatWall","FORTRAN","Computerdesign"}; char**p; inti; for(i=0;i<5;i++) {p=name+i; printf("%s\n",*p); } return0; } 习题11 #include #include intmain() { voidsort(char*[]); inti; charstr[10][6],*p[10]; printf("pleaseinput10string: \n"); for(i=0;i<10;i++) p[i]=str[i]; for(i=0;i<10;i++) scanf("%s",p[i]); sort(p); printf("theoutput10string: \n"); for(i=0;i<10;i++) printf("%s,",p[i]); printf("\n"); } voidsort(char*s[]) { char*temp; inti,j; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(strcmp(*(s+j),*(s+j+1))>0) { temp=*(s+j); *(s+j)=*(s+j+1); *(s+j+1)=temp; } } 习题15 #include intmain() { voidaverage(float(*pointer)[5]); voidsearchfail(float(*pointer)[5]); voidhighscore(float(*pointer)[5]); floatscore[4][5]={{78,89,90,88,82},{70,80,90,100},{67,56,45,80,75},{56,78,77,61,67}},*p; inti,j; average(score); searchfail(score); highscore(score); return0; } voidaverage(float(*pointer)[5]) { inti; floatave=0; for(i=0;i<4;i++) { ave=ave+*(*(pointer+i)); } printf("第一门课程的平均分是: "); printf("%4.2f\n",ave/4); } voidsearchfail(float(*pointer)[5]) { inti,j,n=0; floatAllScore; for(j=0;j! =4;++j) {n=0; AllScore=0; for(i=0;i! =5;++i) { AllScore+=*(*(pointer+j)+i); if(*(*(pointer+j)+i)<60)n++; } if(n>=2)printf("学生%d至少有两门以上课程不及格\n",j); } } voidhighscore(float(*pointer)[5]) { inti,j,n; floatave=0,sum=0; for(j=0;j! =4;++j) {n=0; sum=0; for(i=0;i! =5;++i) { sum+=*(*(pointer+j)+i); if(*(*(pointer+j)+i)<60)n++; } if(sum/4>=90)printf("平均成绩在90分以上学生%d\n",j); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验十 指针程序设计 实验 指针 程序设计