课题一:用指针优化学生成绩排名一、目的1.熟悉变量的指针和指向变量的的指针变量的概念和使用2.熟悉数组的指针和指向数组的的指针变量的概念和使用3. 掌握冒泡法或选择法排序的算法4. 掌握函数的定义、调用、声明,以及参数的两种传递方式二、实习环境个人计算机,Windows 操作系统,Turbo C 2.0 或 WinTC 或 Visual C++等编译开发环境三、实习内容与步骤1.定义一个数组 stu[10]存放 10 个学生的成绩,从键盘输入数据,要求用指针实现2.将数组 stu[10]的内容输出到屏幕上,要求用指针实现3.将成绩数组根据从高到低进行排序,要求用指针实现4.将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单5.采纳指针方法,输入字符串“student score ”,复制该字符串并输出(复制字符串采纳库函数或用户自定义函数)6.在实习报告中画出程序流程图,说明程序设计的算法,附主要程序段运行结果(屏幕截图).7。 在实习报告中说明知识点。8.在实习报告中说明程序设计过程中的难点、解决办法及编程小结或体会.四、程序流程图、算法及运行结果1。程序流程图:开始2.算法:先定义一个函数接收 10 个学生的成绩,利用指针将数据保存在数组中,再定义第二个函数输出所以学生的成绩,同样也是使用指针,最后定义一个函数用选择排序法对成绩进行由大到小的排序,将指针指向的是数组中的第一个地址,在主函数中依次调用这两个函数;定义一个字符指针指向字符串,利用库函数中的 strcpy 将 student score 复制给字符指针,输出字符串3。程序:#include"stdio.h”#include"string。h"struct student{int grade;int num;}stu[10];void input(struct student *p){ int i;for(i=0;i<10;i++,p++){ printf(”请输入第 %—2d 个学生的成绩:”,i+1);由键盘输入成绩输出成绩比较成绩的高低复制student score对成绩排序输出字符串输出排序好的成绩结束scanf("%d%d”,&p—>num,&p—〉grade); }}void printout(struct student *p){ int i;for(i=0;i〈10;i++,p++)printf ( " 第 % — 2d个 学 生 的 成 绩 为 : %d\n”,i+1,p-〉grade);}void arrow (int *p1,int *p2,int *px,int *py){ int t,m; t=*px; *px=*py; *py=t;m=*p1; *p1=*p2; *p2=m; } void place(struct student stu[]) { int i,j; for(i=1;i〈10;i...