C语言程序设计实验5-7教案

  • 格式:doc
  • 大小:403.00 KB
  • 文档页数:20

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课题:实验六、数组的应用——4学时

主要教学内容:一、二维数组、字符数组的定义、初始化和引用方法及字符串

函数的用法;一、二维数组、字符数组的地址和指针的概念和用法;

与数组有关的算法。

教学目标:1. 掌握一、二维数组、字符数组的定义、初始化和引用方法及字符

串函数的用法;

2. 掌握一、二维数组、字符数组的地址和指针的概念和用法;

3. 理解与数组有关的算法。

重点:完成9个题目的设计。

难点:第7、8、9题。

教学过程(组织与方法):首先,进行考勤并检查学生对实验的准备情况,做好

记录,之后指导学生完成实验指导书中规定的实验内容,最后,逐

个验收,并记录验收结果。

作业:实验报告:将实验内容的第7、8、9题中的任意一题写入实验报告,要

求画出传统流程图和N-S流程图。

实验六、数组的应用——设计型

1. 用起泡法(或称冒泡法)对15,5,9,2,7,11,8,3,12,1共10个整数由小到大排序。

解:(1)算法传统流程图如图1所示,N-S流程图如图2所示。

图1 传统流程图图2 N-S流程图

(2)程序和运行结果如下:

#include

void main ( )

{ int i , j , t , a[ 10 ] = { 15 , 5 , 9 , 2 , 7 , 11 , 8 , 3 , 12 , 1 } ;

for ( i = 0 ; i < 9 ; i++ )

for ( j = 0 ; j < 9 - i ; j++ )

if ( a[ j ] > a[ j + 1 ] ) { t = a[ j ] ; a[ j ] = a[ j + 1 ] ; a[ j + 1 ] = t ; }

for ( i = 0 ; i < 10 ; i++ )

printf ( "%3d" , a[ i ] ) ;

printf ( "\n" ) ; }

结果如下:

ㄩㄩ1ㄩㄩ2ㄩㄩ3ㄩㄩ5ㄩㄩ7ㄩㄩ8ㄩㄩ9ㄩ11ㄩ12ㄩ15

2. 定义一个指向整型变量的指针变量,用该指针变量对10个整数

15,5,9,2,7,11,8,3,12,1采用选择法进行由小到大排序。

解:(1)算法传统流程图如图3所示,N-S流程图如图4所示。

图3 传统流程图图4 N-S流程图

(2)程序和运行结果如下:

#include

void main ( )

{ int i , j , k , t ,*p ;

int a[10] = { 15 , 5 , 9 , 2 , 7 , 11 , 8 , 3 , 12 , 1 } ;

p = a ;

for ( i = 0 ; i < 10 ; i++ )

{ k = i ;

for ( j = i + 1 ; j < 10 ; j++ )

if ( *( p + k ) > *( p + j ) ) k = j ;

if ( k != i )

{ t = *( p + i ) ; *( p + i ) = *( p + k ) ; *( p + k ) = t ; }

printf ( "%3d" , *( p + i ) ) ;

}

printf ( "\n" ) ;

}

结果如下:

ㄩㄩ1ㄩㄩ2ㄩㄩ3ㄩㄩ5ㄩㄩ7ㄩㄩ8ㄩㄩ9ㄩ11ㄩ12ㄩ15

3. 编一程序,将字符数组s1中存放的字符串"Iㄩamㄩa ㄩ"和字符数组

s2中存放的字符串"student."连接起来,连接后的字符串存放在s1中。不要使用任何字符串函数。

解:(1)算法传统流程图如图5所示,N-S流程图如图6所示。

图5 传统流程图图6 N-S流程图

(2)程序和运行结果如下:

#include

void main ( )

{ int i , j ;

char s1[80] = "I am a " , s2[40] = "student." ;

i = 0 ;

while ( s1[i] ) i++ ;

j = 0 ;

while ( s1[i++] = s2[j++] ) ;

printf ( "%s\n" , s1 ) ;

}

结果如下:

Iㄩamㄩaㄩstudent.

4. 求A矩阵与B矩阵的和矩阵C。其中:

解:(1)算法传统流程图如图7所示,N-S流程图如图8所示。

(2)程序和运行结果如下:

#include

void main ( )

{ int i , j ;

int a[ ][4] = {{ 1 , 1 , 2 , 1 } , { 2 , 2 , 1 , 3 } , { 4 , 2 , 3 , 1 } };

int b[ ][4] = { { 2 , 3 , 5 , 2 } , { 3 , 1 , 6 , 1 } , { 1 , 1 , 5 , 0 } } , c [3][4] ;

for ( i = 0 ; i < 3 ; i++ )

{ for ( j = 0 ; j < 4 ; j++ )

{ c[i][j] = a[i][j] + b[i][j] ;

printf ( "%3d" , c[i][j] ) ; }

printf ( "\n" ) ; } }

结果如下:

ㄩㄩ3ㄩㄩ4ㄩㄩ7ㄩㄩ3

ㄩㄩ5ㄩㄩ3ㄩㄩ7ㄩㄩ4

ㄩㄩ5ㄩㄩ3ㄩㄩ8ㄩㄩ1