C語言程序設(shè)計(jì)實(shí)驗(yàn)57教案_第1頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)57教案_第2頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)57教案_第3頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)57教案_第4頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)57教案_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第 7-8 次課程名稱程序設(shè)計(jì)基礎(chǔ)課程性質(zhì)實(shí)驗(yàn)課授課班級(jí)網(wǎng)絡(luò)16-1、2授課地點(diǎn)1402授課時(shí)間2016年11月9日第5小節(jié)第8小節(jié)2016年11月16日第5小節(jié)第8小節(jié)2016年11月23日第5小節(jié)第8小節(jié)課題: 實(shí)驗(yàn)六、 數(shù)組的應(yīng)用4學(xué)時(shí)主要教學(xué)內(nèi)容:一、二維數(shù)組、字符數(shù)組的定義、初始化和引用方法及字符串函數(shù)的用法;一、二維數(shù)組、字符數(shù)組的地址和指針的概念和用法;與數(shù)組有關(guān)的算法。教學(xué)目標(biāo):1. 掌握一、二維數(shù)組、字符數(shù)組的定義、初始化和引用方法及字符串函數(shù)的用法;2. 掌握一、二維數(shù)組、字符數(shù)組的地址和指針的概念和用法;3. 理解與數(shù)組有關(guān)的算法。重 點(diǎn):完成9個(gè)題目的設(shè)計(jì)。難 點(diǎn):第7

2、、8、9題。教學(xué)過程(組織與方法):首先,進(jìn)行考勤并檢查學(xué)生對(duì)實(shí)驗(yàn)的準(zhǔn)備情況,做好記錄,之后指導(dǎo)學(xué)生完成實(shí)驗(yàn)指導(dǎo)書中規(guī)定的實(shí)驗(yàn)內(nèi)容,最后,逐個(gè)驗(yàn)收,并記錄驗(yàn)收結(jié)果。作業(yè):實(shí)驗(yàn)報(bào)告:將實(shí)驗(yàn)內(nèi)容的第7、8、9題中的任意一題寫入實(shí)驗(yàn)報(bào)告,要求畫出傳統(tǒng)流程圖和N-S流程圖。實(shí)驗(yàn)六、數(shù)組的應(yīng)用設(shè)計(jì)型1. 用起泡法(或稱冒泡法)對(duì)15,5,9,2,7,11,8,3,12,1共10個(gè)整數(shù)由小到大排序。解:(1)算法傳統(tǒng)流程圖如圖1所示,N-S流程圖如圖2所示。開 始j = 0結(jié) 束a10= 15,5,9,2,7,11,8,3,12,1i < 9i = 0j < 9-ia j ó a j

3、+1 aj>aj+1輸出 a i TFTFTFj = j+1i = i + 1i < 10i = 0TFi = i + 1輸出 "n"ajóaj+1輸出 a i a10= 15,5,9,2,7,11,8,3,12,1for i = 0 to 8a j > aj+1TFfor j = 0 to 9 - ifor i = 0 to 9輸出 "n"圖1 傳統(tǒng)流程圖 圖2 N-S流程圖(2)程序和運(yùn)行結(jié)果如下:#include <stdio.h>void main ( ) int i , j , t , a 10 = 15

4、 , 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" ) ; 結(jié)果如下:12357891112152. 定義一個(gè)指向整型變量的指針變量,用

5、該指針變量對(duì)10個(gè)整數(shù)15,5,9,2,7,11,8,3,12,1采用選擇法進(jìn)行由小到大排序。解:(1)算法傳統(tǒng)流程圖如圖3所示,N-S流程圖如圖4所示。輸出 *(p+ i )a10= 15,5,9,2,7,11,8,3,12,1for i = 0 to 9for j = i + 1 to 9k = j*(p+j)>*(p+j+1)TFk i輸出 "n"開 始k = i , j = i + 1結(jié) 束a10= 15,5,9,2,7,11,8,3,12,1i < 10p = a , i = 0j < 10k = j*(p+k)>*(p+j)輸出 *(p+

6、 i )TFTFTFj = j+1i = i + 1k i輸出 "n"*(p+i)ó*(p+k)TFp = a , i = 0k = i*(p+i)ó*(p+k)TF圖3 傳統(tǒng)流程圖 圖4 N-S流程圖(2)程序和運(yùn)行結(jié)果如下:#include <stdio.h>void main ( ) int i , j , k , t ,*p ; int a10 = 15 , 5 , 9 , 2 , 7 , 11 , 8 , 3 , 12 , 1 ; p = a ; for ( i = 0 ; i < 10 ; i+ ) k = i ; for

7、( 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" ) ;結(jié)果如下:12357891112153. 編一程序,將字符數(shù)組s1中存放的字符串"Iama "和字符數(shù)組s2中存放的字符串"student.&

8、quot;連接起來,連接后的字符串存放在s1中。不要使用任何字符串函數(shù)。解:(1)算法傳統(tǒng)流程圖如圖5所示,N-S流程圖如圖6所示。開 始i = i + 1結(jié) 束s180= "I am a ",s240="student."s1 i i = 0TFs1i+=s2j+TF輸出 s1j = 0i = i + 1s180= "I am a ",s240="student."i = 0當(dāng)s1 i 當(dāng)s1i+=s2j+輸出 s1圖5 傳統(tǒng)流程圖 圖6 N-S流程圖(2)程序和運(yùn)行結(jié)果如下:#include <stdio

9、.h>void main ( ) int i , j ; char s180 = "I am a " , s240 = "student." ; i = 0 ; while ( s1i ) i+ ; j = 0 ; while ( s1i+ = s2j+ ) ; printf ( "%sn" , s1 ) ; 結(jié)果如下:Iamastudent.4. 求A矩陣與B矩陣的和矩陣C。其中:。解:(1)算法傳統(tǒng)流程圖如圖7所示,N-S流程圖如圖8所示。(2)程序和運(yùn)行結(jié)果如下:#include <stdio.h>void m

10、ain ( ) 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 34 ; for ( i = 0 ; i < 3 ; i+ ) for ( j = 0 ; j < 4 ; j+ ) cij = aij + bij ; printf ( "%3d" , cij ) ; printf ( "n" ) ; 結(jié)果如下:347353745381

11、輸出 cija34 =1,1,2,1,2,2,1,3,4,2,3,1for i = 0 to 2for j = 0 to 3cij=aij+bij輸出 "n"b34 =2,3,5,2,3,1,6,1,1,1,5,0開 始a34 =1,1,2,1,2,2,1,3,4,2,3,1j = 0結(jié) 束i < 3i = 0j < 4cij=aij+bij輸出 cijTFTFj = j+1i = i + 1輸出 "n"b34 =2,3,5,2,3,1,6,1,1,1,5,0圖7 傳統(tǒng)流程圖 圖8 N-S流程圖5. 編程求出二維數(shù)組a的最大元素,同時(shí)求出該最

12、大元素所在的行row和列column。a數(shù)組如下:。解:(1)算法傳統(tǒng)流程圖如圖9所示,N-S流程圖如圖10所示。(2)程序和運(yùn)行結(jié)果如下:#include <stdio.h>void main() int a23= 3,9,2,7,5,1 ; int i,j,max=a00,row=0,colum=0; for(i=0;i<2;i+) for(j=0;j<3;j+) if(max<aij) max=aij; row=i; colum=j; printf("max=%d,row=%d,colum=%dn",max,row,colum);結(jié)果如下

13、:max=9,row=0,colum=1max=aija23 = 3,9,2,7,5,1 for i = 0 to 1for j = 0 to 2max<aij輸出 max , row , columb34 =2,3,5,2,3,1,6,1,1,1,5,0開 始a23 = 3,9,2,7,5,1 j = 0結(jié) 束i < 2i = 0j < 3max=aij;TFTFj = j+1i = i + 1輸出 max,row,colummax=a00,row=0,colum=0max<aijTFrow=icolum=jrow = icolum = jFT圖9 傳統(tǒng)流程圖 圖10

14、 N-S流程圖6. 定義二維數(shù)組,存放5個(gè)字符串"dog"、"tiger"、"wolf"、"cat"、"horse",然后用選擇法將這5個(gè)字符串按由小到大的順序排序并輸出。解:(1)算法傳統(tǒng)流程圖如圖11所示,N-S流程圖如圖12所示。開 始c510="dog","tiger","wolf","cat","horse"j = i + 1結(jié) 束i < 5i = 0j < 5k = jTF

15、TFj = j+1i = i + 1輸出 c i 串k = ick串>cj串TFck串 ó ci串k = jc510="dog","tiger","wolf","cat","horse"for i = 0 to 4for j = i + 1 to 4c k 串 >c j 串輸出 c i 串k = ik ic k 串 ó c i 串k iTFFTTF圖11 傳統(tǒng)流程圖 圖12 N-S流程圖(2)程序和運(yùn)行結(jié)果如下:#include <stdio.h>#i

16、nclude <string.h>void main ( ) int i , j , k ; char c510 = "dog" , "tiger" , "wolf" , "cat" , "horse" ; char t 10 ; for ( i = 0 ; i < 5 ; i+ ) k = i ; for ( j = i + 1 ; j < 5 ; j+ ) if ( strcmp ( c k , c j ) > 0 ) k = j ; if ( k != i )

17、 strcpy ( t , c k ) ; strcpy ( c k , c i ) ; strcpy ( c i , t ) ; printf ( "%sn" , c i ) ; 結(jié)果如下:catdoghorsetigerwolf7. 求s=的準(zhǔn)確值(結(jié)果:s=1613)。解:(1)算法傳統(tǒng)流程圖如圖13所示,N-S流程圖如圖14所示。結(jié) 束輸出 s i 開 始t30=1,s30=0ti=ti*nn25n = 1i < 30i = 0TFTFi = i+1i = 0ti+1=ti+1+ti/10i < 29TFti=ti%10i = i+1si=si+tii

18、< 30i = 0TFi = i+1i = 0si+1=si+1+si/10i < 29TFsi=si%10i = i+1n = n+1breaki 0TFi = i 1i = 29si 0i 0TFi = i 1FTt30=1,s30=0for n = 1 to 25for i = 0 to 29ti=ti*n輸出 s i s i 0breakTFfor i = 0 to 29ti+1=ti+1+ti/10ti=ti%10for i = 0 to 29si=si+tifor i = 0 to 29si+1=si+1+si/10si=si%10for i = 29 to 0 ste

19、p 1 for i to 0 step 1 圖13 傳統(tǒng)流程圖 圖14 N-S流程圖(2)程序和運(yùn)行結(jié)果如下:#include <stdio.h>#include <string.h>void main ( ) int i , n ; int t30 = 1 , s30 = 0 ; for ( n = 1 ; n <= 25 ; n+ ) for ( i = 0 ; i < 30 ; i+ ) ti = ti * n ; for ( i = 0 ; i < 29 ; i+ ) ti+1 = ti+1 + ti / 10 ; ti = ti % 10 ;

20、 for ( i = 0 ; i < 30 ; i+ ) si = si + ti ; for ( i = 0 ; i < 29 ; i+ ) si+1 = si+1 + si / 10 ; si = si % 10 ; for ( i = 29 ; i >= 0 ; i- ) if ( si != 0 ) break ; for ( ; i >= 0 ; i- ) printf ( "s=%d" , si ) ;結(jié)果如下:s=16138. 定義3個(gè)指向含有4個(gè)元素的一維整型數(shù)組的指針變量,用其求A矩陣與B矩陣的和矩陣C。其中:。解:(1)算法傳統(tǒng)流

21、程圖如圖15所示,N-S流程圖如圖16所示。(2)程序和運(yùn)行結(jié)果如下:#include <stdio.h>void main ( ) int i , j ; int (*p1)4 , (*p2)4 , (*p3)4 ; 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 34 ; p1 = a ; p2 = b ; p3 = c ; for ( i = 0 ; i < 3 ; i+ ) for

22、( j = 0 ; j < 4 ; j+ ) *( * ( p3 + i )+ j ) = *( * ( p1 + i )+ j ) + *( * ( p2 + i )+ j ) ; printf ( "%3d" , *( * ( p3 + i )+ j ) ) ; printf ( "n" ) ; 結(jié)果如下:347353745381a34 =1,1,2,1,2,2,1,3,4,2,3,1for i = 0 to 2b34 =2,3,5,2,3,1,6,1,1,1,5,0for j = 0 to 3輸出 *( * ( p3 + i )+ j ) )

23、*(*(p3+i)+j)=*(*(p1+i)+j)+*(*(p2+i)+j)輸出 "n"開 始a34 =1,1,2,1,2,2,1,3,4,2,3,1j = 0結(jié) 束i < 3i = 0j < 4*(*(p3+i)+j)=*(*(p1+i)+j)+*(*(p2+i)+j)輸出 *( * ( p3 + i )+ j ) )TFTFj = j+1i = i + 1輸出 "n"b34 =2,3,5,2,3,1,6,1,1,1,5,0p1 = a , p2 = b , p3 = cp1 = a , p2 = b , p3 = c圖15 傳統(tǒng)流程圖 圖

24、16 N-S流程圖9. 定義一個(gè)含有5個(gè)元素的一維字符指針數(shù)組,再定義二維字符數(shù)組,存放5個(gè)字符串"dog"、"tiger"、"wolf"、"cat"、"horse",然后用該一維字符指針數(shù)組并采用選擇法將這5個(gè)字符串按由小到大的順序排序并輸出。要求排序后二維數(shù)組中的字符串不允許改變。解:(1)算法傳統(tǒng)流程圖如圖17所示,N-S流程圖如圖18所示。開 始c510="dog","tiger","wolf","cat","horse"j = i + 1結(jié) 束i < 5i = 0j < 5k = jTFTFj =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論