第七章 指针ppt课件.ppt
文本预览下载声明
第七章 指 针(重点) 教学要求、重点与难点 教学要求 (1) 掌握指针的概念、指针变量、变量的指针、指针变量的运算。 (2) 掌握指针与数组之间的关系。 (3) 掌握指针变量作为函数的参数传递。 (4) 掌握返回值为指针的函数的用法。 重点与难点 (1) 指针变量的定义与引用; (2) 指针与数组及应用; (3) 指针与函数及应用。 指 针 指针是C语言的一个重要概念,也是C语言的一个重要特色。深刻理解和正确使用指针是学习本章的基本要求。 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,多上机调试,一定能掌握C语言的精华。 7.1 学生成绩排序 1.问题描述 编写一个程序,要求定义一个一维数组score,存放10个学生的成绩,首先通过键盘输入学生成绩,再将存放在数组中的学生成绩输出,接着对存放在数组中的学生成绩从低分到高分排序,最后把排序后的学生成绩输出。每个过程都编写一个函数完成,在main函数中调用。 2.问题抽象 依据题意,我们可以建立如下的一个main函数,其中包括:首先定义score数组,再给score数组中输入成绩数据,调用input函数,接着将排序前的数据输出,调用output函数;再对score中的数据进行排序,调用sort函数,最后把排序后score数组中的数据输出,调用output函数。 从问题空间的角度来处理: 因此主函数main可以这样编写: void main() { 定义一个存放10个学生的一维数组; 输入10个成绩数据,并存放在一维数组中; 输出排序前的10个成绩数据; 对10个成绩数据进行排序; 输出排序后的10个成绩数据; } 从平台空间角度来看:可以转化为下面的C语言程序: void main() { int score[10]; input(score,10); /*输入10个成绩数据*/ printf(Before Sort Data:\n); output(score,10); /*输出10个成绩数据*/ sort(score,10); /*对10个成绩数据进行排序*/ printf(\n After Sort Data:\n); output(score,10); /*输出10个成绩数据*/ } (1) 编写input(score,10)函数 void input( int *a , int n) { int i; for (i=0;in; i++) /*从键盘输入数据给数组赋值*/ scanf(%d , a+i); } (2) 编写output(score,10)函数 void output ( int *a , int n) { int i; for (i=0;in;i++) /* score中数据输出*/ printf(%d , *(a+i) ); } (3) 编写sort(score,10)函数 该函数的功能就是把实参中传递过来的数组按升序进行排序,排序算法在一维数组中已经讲解,现在直接可以使用。因此sort函数应该这样编写: void sort( int *a , int n) { int i,j,temp; for (i=0;in-1;i++) /*冒泡排序*/ for (j=0;jn-1-i;j++) if ( *(a +j) *(a +j+1) ) { temp= *(a +j) ; /*交换*(a +j)与*(a +j+1)*/ *(a +j)= *(a +j+1); *(a +j+1) =temp; } } 3.映射编码 #include stdio.h void input( int *a , int n) { int i; for (i=0;in; i++) /*从键盘输入数据给数组赋值*/ scanf(%d , a+i); } void output ( int *a
显示全部