实验九指针
一实验目的
1了解指针的概念,学会定义和使用指针变量。 2.掌握函数的值调用和引用调用的含义
3.掌握简单变量、数组和指针作为函数参数进行传递的形式
二、实验内容
1.运行下列程序,写出运行结果。 #include\main()
{inta[5],*p,j;
for(j=0;j<5;j++)a[j]=j+1; p=a;
for(j=0;j<5;j++)printf(\改为p[j] }
2.想使指针变量pt1指向a和b中的大者,pt2指向小者,以下程序能否实现此目的?
swap(int*p1,int*p2) {int*p;
p=p1;p1=p2;p2=p;//inta;a=*p1;*p1=*p2;*p2=a; }
main()
{inta,b;int*pt1,*pt2; scanf(\pt1=&a;pt2=&b;
if(a
printf(\}
上机调试此程序。如果不能实现题目要求,指出原因并修改之。
1.编写自定义函数:进行两个数据之间的交换。分析与设计:使用两种参数传递方法,进行数据的交换,比较下面程序的运行结果有何不同。 程序1:参数的值传递。 voidswap(intx,inty) {intt;t=x;x=y;y=t;
printf(“x=%d\\ty=%d\\n”,x,y); }
main() {inta,b;
printf(“pleaseinputa,b:”); scanf(“%d,%d”,&a,&b); swap(a,b);
printf(“a=%d\\tb=%d\\n”,a,b); }
程序2:参数的地址传递。 voidswap(int*x,int*y) {intt;
t=*x;*x=*y;*y=t;
printf(“x=%d\\ty=%d\\n”,*x,*y); }
main() {inta,b;
printf(“pleaseinputa,b:”); scanf(“%d,%d”,&a,&b); swap(a,b);//swap(&a,&b);
printf(“a=%d\\tb=%d\\n”,a,b); }
三.案例项目
1.用指针变量记录一门课的成绩a,并用指针输出a的值;
2.用指针数组score[]记录两个学生的成绩a[3],b[3],并用score输出所有成绩.
3(选做).输入学生课程的数目,并用指针与动态内存分配函数malloc()记录一个学生的成绩:pp2811)函数malloc
实验十自定义数据、文件
一实验目的
1掌握结构体类型的概念和定义方法与使用。
2掌握指向结构体变量的指针变量的概念和应用。 二案例项目
1.完成下列自定义函数:
1)定义一个学生信息结构体Student_Info(其成员变量有姓名,学号,成绩数组,平均分),并在main()函数中用结构体变量记录一个学生的信息,然后输出该学生的所有信息。
2)用一个结构体数组Student_InfoStudent[1000],记录N个学生的结构体变量。定义一个函数AddStudent(structStudent_Infos[]),向Student[]数组中添加一个学生的信息。
3)定义一个函数find(intnumber)查找指定学号number的学员,并返回该学生在Student[1000]数组中的下标i,如果指定学号不存在,返回-1;
4)定义一个函数voidquery(intnumber):用find(intnu