实验十 指针程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
float score[4][5]={{78,89,90,88,82},{70,80,90,100},{67,56,45,80,75},{56,78,77,61,67}},*p;
int i,j;
average(score);
searchfail(score);
highscore(score);
return 0;
{
int i,j,n=0;
float AllScore;
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);
while(from[i]!='\0')
{to[i]=from[i];i++;}
to[i]='\0';
}
例题8.27
#include<stdio.h>
#include<string.h>
int main()
{void sort(char*name[],int n);
void print(char*name[],int n);
}
void average(float (*pointer)[5])
{
int i;
float ave=0;
for(i=0;i<4;i++)
{
ave=ave+*(*(pointer+i));
}
printf("第一门课程的平均分是:");
printf("%4.2f\n",ave/4);
}
void searchfail(float (*pointer)[5])
b=*(p+9);
*(p+9)=*temp;
*temp=b;
}
void shuchu(int *p)
{
int i;
for (i=0;i<10;i++)
printf("%d ",*(p+i));
printf("\n");
}
int main()
{
int a[10];
shuru(a);
pan(a);
shuchu(a);
*(s+j+1)=temp;
}
}
习题15
#include<stdio.h>
int main()
{
void average(float (*pointer)[5]);
void searchfail(float (*pointer)[5]);
void highscore(float (*pointer)[5]);
#include<stdio.h>
int main()
{
void copy_string(char from[],char to[]);
char a[]="I am a student.";
char b[]="You are a student.";
printf("string a=%s\nstring b=%s\n",a,b);
printf("max=%d,min=%d\n",a,b);
return 0;
}
void swap(int*p1,int*p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
例题8。5
#include<stdio.h>
int main()
{
void exchange(int*q1,int*q2,int*q3);
printf("please input 10 string:\n");
for(i=0;i<10;i++)
p[i]=str[i];
for(i=0;i<10;i++)
scanf("%s",p[i]);
sort(p);
printf("the output 10 string:\n");
for(i=0;i<10;i++)
}
}
void highscore(float (*pointer)[5])
{
int i,j,n;
float ave=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++;
return 0;
}
void exchange(int*q1,int*q2,int*q3)
{
void swap(int*pt1,int*pt2);
if(*q1<*q2)swap(q1,q2);
if(*q1<*q3)swap(q1,q3);
if(*q2<*q3)swap(q2,q3);
}
void swap(int*pt1,int*pt2)
int i,j,k;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0)k=j;
if(k!=i)
{temp=name[i];name[i]=name[k];name[k]=temp;}
}
}
void print(char*name[],int n)
printf("%s,",p[i]);
printf("\n");
}
void sort(char *s[])
{
char *temp;
int i,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);
{int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
例题8.28
#include<stdio.h>
int main()
{ char*name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
printf("copy string a to string b:\n");
copy_string(a,b);
printf("string a=%s\nstring b=%s\n",a,b);
return 0;
}
void copy_string(char from[],char to[])
{
int i=0;
char**p;
int i;
for(i=0;i<5;i++)
{p=name+i;
printf("%s\n",*p);
}
return 0;
}
习题11
#include<stdio.h>
#include<string.h>
int main()
{
void sort(char *[]);
int i;
char str[10][6], *p[10];
for(i=0;i<n-1;i++)
{ຫໍສະໝຸດ Baidu
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])k=j;
if(k!=i)
{
t=x[i];x[i]=x[k];x[k]=t;}
}
}
习题3#include <stdio.h>
void shuru(int *p)
{
int i;
for (i=0;i<10;i++)
char*name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
int n=5;
sort(name,n);
print(name,n);
return 0;
}
void sort(char*name[],int n)
{ char*temp;
scanf("%d",p+i);
}
void pan(int *p)
{
int i,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;
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
例题8。10
#include<stdio.h>
int main()
{
void sort(int x[],int n);
int i,*p,a[10];
p=a;
printf("please enter 10 integer numbers:");
}
实验十一指针程序设计(二)
1.实验目的及意义:
更进一步掌握指针的概念及指针变量的使用;
能正确使用字符串的指针和指向字符串的指针变量;
了解指向指针的指针的概念及使用方法。
2.实验内容:
上机录入书上例题:例8.20,8.27,8.28;
编程序并上机调试运行:习题11,15(P291 292)。
例题8.20
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");
return 0;
}
void sort(int x[],int n)
{
int i,j,k,t;
int main()
{
void swap(int*p1,int*p2);
int a,b;
int*pointer_1,*pointer_2;
printf("please a and b:");
scanf("%d,%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a<b)
swap(pointer_1,pointer_2);
}
if(sum/4>=90) printf("平均成绩在90分以上学生%d\n",j);
}
}
实验十
实验目的及意义:
掌握指针的概念,会定义和使用指针变量;
能正确使用数组的指针和指向数组的指针变量;
能正确使用指针作函数的参数,返回正确结果。
2.实验内容:
上机录入书上例题:例8.3,8.5, 8.10;
编程序并上机调试运行:习题3,习题4 (P291)
例题8。3
#include<stdio.h>
int a,b,c,*p1,*p2,*p3;
printf("please enter three numbers:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
exchange(p1,p2,p3);
printf("The order is:%d,%d,%d\n",a,b,c);
相关文档
最新文档