一、 实验的目的、要求及内容
1、 通过实验掌握指针的概念,学会定义和使用指针变量。 2、 能正确使用数组的指针和指向数组的指针变量。 3、 能正确使用字符串指针和指向字符串的指针变量。 4、 掌握结构体类型变量的定义和使用。
二、 算法设计思想及内容
本实验主要完成指针和结构体的应用训练,总共要求完成三个问题的源代码的编辑、编译、连接与运行,最终产生相关的运行结果,按规定要求提交相应的实验报告。具体要求完成的问题如下:
1、 采用指针方式编写程序输入10个整数,将其中最小的数与第一个数对换,把最
大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出处理后的10个数。
2、 采用指针方式在主函数中输入字符串,在函数中求出字符串的长度,然后输出求出的长度。
3、 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个
学生的数据,要求输出3门课程的总平均成绩,以及最高分数的学生的数据(包括学号、姓名、3门课的成绩、平均分)。
三、所使用的软硬件平台
软件平台:Microsoft Windows XP专业版SP3,Microsoft Visual C++ 6.0。
硬件平台:联想系列,Intel(R)Core(TM)i3,CPU 3.20Ghz,2.99GB内存,550GB硬盘。
四、源程序代码
1.#include
int main() {int a[10];
void shuru(int a[10]); void chuli(int a[10]); void shuchu(int a[10]); printf(\请输入10个数:\ shuru(a); chuli(a);
printf(\输出处理后的10个数为:\ shuchu(a); printf(\ return 0; }
void shuru(int a[10]) {int i;
for(i=0;i<10;i++) scanf(\}
void chuli(int a[10]) {int i,*max,*min,t1,t2; max=min=a; for(i=0;i<10;i++)
{if(*maxa[i]) min=&a[i]; }
t1=*max; *max=a[9]; a[9]=t1; t2=*min; *min=a[0]; a[0]=t2; }
void shuchu(int a[10]) {int i;
for(i=0;i<10;i++) printf(\}
2. #include
ch(char *a) {int count=0;
char *p=a;
while(*p++) count++; return count; }
int main() {char a[32767];
printf(\请输入一个字符串:\\n\gets(a);
printf(\该字符串的长度为:%d\\n\return 0; }
3. #include
{int i,j,sum=0,maxi=0,max=0,average=0; for(i=0;i {printf(\输入第%d个学生以下相关信息:\\n\ printf(\学号:\ scanf(\ printf(\姓名:\ scanf(\ for(j=0;j<3;j++) { printf(\第%d门课程的成绩:\ scanf(\ } } for(i=0;i for(j=0;j<3;j++) sum+=student[i].score[j]; student[i].average=sum/3; average=average+student[i].average; if(sum>max) { max=sum; maxi=i; } sum=1; } average/=N; printf(\学号 姓名 科目1 科目2 科目3 平均成绩\\n\ for(i=0;i printf(\ for(j=0;j<3;j++) printf(\ printf(\} printf(\门课程的总平均成绩为:%d\\n\ printf(\ 最 高 分 学 生 的 号 数 : %s , 姓 名:%s\\n\ printf(\这个学生3门课程的成绩分别为:%d,%d,%d,平均成绩为:d\\n\].score[2],student[maxi].average); return 0; } 五、运行结果及分析 1. 2. 3.