资源描述:
《c语言程序设计实验5-7教案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7-8次课程名称程序设计基础课程性质实验课授课班级网络16-1、2授课地点1402授课时间2016年11月9日第5小节~第8小节2016年11月16日第5小节~第8小节2016年11月23日第5小节~第8小节课题:实验六、数组的应用——4学时主要教学内容:一、二维数组、字符数组的定义、初始化和引用方法及字符串函数的用法;一、二维数组、字符数组的地址和指针的概念和用法;与数组有关的算法。教学目标:1.掌握一、二维数组、字符数组的定义、初始化和引用方法及字符串函数的用法;2.掌握一、二维数组、字符数组的地
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所
3、示,N-S流程图如图2所示。开始j=0结束a[10]={15,5,9,2,7,11,8,3,12,1}i<9i=0j<9-ia[j]óa[j+1]a[j]>a[j+1]输出a[i]TFTFTFj=j+1i=i+1i<10i=0TFi=i+1输出""a[j]óa[j+1]输出a[i]a[10]={15,5,9,2,7,11,8,3,12,1}fori=0to8a[j]>a[j+1]TFforj=0to9-ifori=0to9输出""图1传统流程图图2N-S流程图(2)程序和运行结果如下:#incl
4、udevoidmain(){inti,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("");}结果如下:ㄩㄩ1ㄩㄩ2ㄩㄩ3ㄩㄩ5ㄩㄩ7ㄩㄩ8ㄩㄩ9ㄩ11ㄩ12ㄩ152.定义一个指向整型变量的指针变量,用该指针变量对10
5、个整数15,5,9,2,7,11,8,3,12,1采用选择法进行由小到大排序。解:(1)算法传统流程图如图3所示,N-S流程图如图4所示。输出*(p+i)a[10]={15,5,9,2,7,11,8,3,12,1}fori=0to9forj=i+1to9k=j*(p+j)>*(p+j+1)TFk≠i输出""开始k=i,j=i+1结束a[10]={15,5,9,2,7,11,8,3,12,1}i<10p=a,i=0j<10k=j*(p+k)>*(p+j)输出*(p+i)TFTFTFj=j+1i=i+1
6、k≠i输出""*(p+i)ó*(p+k)TFp=a,i=0k=i*(p+i)ó*(p+k)TF图3传统流程图图4N-S流程图(2)程序和运行结果如下:#includevoidmain(){inti,j,k,t,*p;inta[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
7、+k)=t;}printf("%3d",*(p+i));}printf("");}结果如下:ㄩㄩ1ㄩㄩ2ㄩㄩ3ㄩㄩ5ㄩㄩ7ㄩㄩ8ㄩㄩ9ㄩ11ㄩ12ㄩ153.编一程序,将字符数组s1中存放的字符串"Iㄩamㄩaㄩ"和字符数组s2中存放的字符串"student."连接起来,连接后的字符串存放在s1中。不要使用任何字符串函数。解:(1)算法传统流程图如图5所示,N-S流程图如图6所示。开始i=i+1结束s1[80]="Iama",s2[40]="student."s1[i]i=0TFs1[i++]=s2[
8、j++]TF输出s1j=0i=i+1s1[80]="Iama",s2[40]="student."i=0当s1[i]当s1[i++]=s2[j++]输出s1图5传统流程图图6N-S流程图(2)程序和运行结果如下:#includevoidmain(){inti,j;chars1[80]="Iama",s2[40]="student.";i=0;while(s1[i])i++;j=0;while(s1[i++]=s2[j++]