歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

【東北林業(yè)大學(xué)】機電控制程序設(shè)計技術(shù)實驗指導(dǎo)書

  • 資源ID:28694482       資源大?。?span id="snnu5cg" class="font-tahoma">612.50KB        全文頁數(shù):43頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

【東北林業(yè)大學(xué)】機電控制程序設(shè)計技術(shù)實驗指導(dǎo)書

機電控制程序設(shè)計技術(shù)實驗指導(dǎo)書機電控制程序設(shè)計技術(shù)實驗指導(dǎo)書專業(yè):機械電子工程專業(yè)教研室:機械電子工程教研室機電工程學(xué)院2013 年3月前言C語言是一種被廣泛學(xué)習(xí)、普遍使用的計算機程序設(shè)計語言。它的高級語言行式、低級語言功能具有特殊的魅力。由于C語言具有完整的編程語言特點,因而被大多數(shù)高等院校作為典型的計算機教學(xué)語言。在計算機等級、全國計算機應(yīng)用證書考試等多種計算機知識考試中都有C語言。此外,C語言作為一門實用的、功能強大的程序語言,被程序設(shè)計人員廣泛使用。因此,C語言是一門十分重要的程序設(shè)計語言。實驗要求實驗過程中,要求學(xué)生做到:(1)預(yù)習(xí)實驗指導(dǎo)書有關(guān)部分,認(rèn)真做好實驗內(nèi)容的準(zhǔn)備,就實驗可能出現(xiàn)的情況提前作出思考和分析。(2)仔細(xì)觀察上機編程時出現(xiàn)的各種現(xiàn)象,記錄主要情況,作出必要說明和分析。(3)認(rèn)真書寫實驗報告。實驗報告包括實驗?zāi)康暮鸵?,實驗情況及其分析,寫出程序設(shè)計說明,給出源程序框圖和清單。(4)遵守機房紀(jì)律,服從輔導(dǎo)教師指揮,愛護(hù)實驗設(shè)備。(5)實驗課程不遲到,如有事不能出席,所缺實驗一般不補。實驗的驗收將分為兩個部分。第一部分是上機操作,包括檢查程序運行和即時提問。第二部分是提交書面的實驗報告。目 錄實驗一 順序程序設(shè)計- 7 -實驗二 選擇結(jié)構(gòu)程序設(shè)計- 10 -實驗三 循環(huán)結(jié)構(gòu)程序設(shè)計- 13 -實驗四 數(shù)組- 17 -實驗五 函數(shù)- 24 -實驗六 預(yù)處理命令- 29 -實驗七 指針- 30 -實驗八 結(jié)構(gòu)體與公用體- 33 -實驗九 位運算- 34 -實驗十 文件操作- 35 -實驗十一 小規(guī)模實用軟件的設(shè)計- 37 -C 語言上機操作指導(dǎo)程序設(shè)計是實踐性很強的過程,任何程序最終都必須在計算機上運行,以檢驗程序的正確與否。因此在學(xué)習(xí)程序設(shè)計中,一定要重視上機實踐環(huán)節(jié),通過上機可以加深理解 C語言的有關(guān)概念,以鞏固理論知識,另一方面也可以培養(yǎng)程序調(diào)試的能力與技巧。1C語言程序的上機步驟按照 C 語言語法規(guī)則而編寫的 C 程序稱為源程序。源程序由字母、數(shù)字及其它符號等構(gòu)成,在計算機內(nèi)部用相應(yīng)的 ASCII 碼表示,并保存在擴展名為“C”的文件中。源程序是無法直接被計算機運行的,因為計算機的 CPU 只能執(zhí)行二進(jìn)制的機器指令。這就需要把 ASCII 碼的源程序先翻譯成機器指令,然后計算機的 CPU 才能運行翻譯好的程序。源程序翻譯過程由兩個步驟實現(xiàn):編譯與連接。首先對源程序進(jìn)行編譯處理,即把每一條語句用若干條機器指令來實現(xiàn),以生成由機器指令組成的目標(biāo)程序。但目標(biāo)程序還不能馬上交計算機直接運行,因為在源程序中,輸入、輸出以及常用函數(shù)運算并不是用戶自己編寫的,而直接調(diào)用系統(tǒng)函數(shù)庫中的庫函數(shù)。因此,必須把“庫函數(shù)”的處理過程連接到經(jīng)編譯生成的目標(biāo)程序中,生成可執(zhí)行程序,并經(jīng)機器指令的地址重定位,便可由計算機運行,最終得到結(jié)果。C 語言程序的調(diào)試、運行步驟可以用圖 A-1 表示:圖 A-1 C 語言程序的調(diào)試、運行步驟圖 A-1 中,虛線表示當(dāng)某一步驟出現(xiàn)錯誤時的修改路線。運行時,無論是出現(xiàn)編譯錯誤、連接錯誤,還是運行結(jié)果不對(源程序中有語法錯誤或邏輯錯誤),都需要修改源程序,并對它重新編譯、連接和運行,直至將程序調(diào)試正確為止。除了較簡單的情況,一般的程序很難一次就能做到完全正確。在上機過程中,根據(jù)出錯現(xiàn)象找出錯誤并改正稱為程序調(diào)試。我們要在學(xué)習(xí)程序設(shè)計過程中,逐步培養(yǎng)調(diào)試程序的能力,它不可能靠幾句話講清楚,要靠自己在上機中不斷摸索總結(jié),它可以說是一種經(jīng)驗積累。程序中的錯誤大致可分為三類:程序編譯時檢查出來的語法錯誤;連接時出現(xiàn)的錯誤;程序執(zhí)行過程中的錯誤。編譯錯誤通常是編程者違反了 C 語言的語法規(guī)則,如保留字輸入錯誤、大括號不匹配、語句少分號等等。連接錯誤一般由未定義或未指明要連接的函數(shù),或者函數(shù)調(diào)用不匹配等因素引起,對系統(tǒng)函數(shù)的調(diào)用必須要通過“include”說明。對于編譯連接錯誤,C 語言系統(tǒng)會提供出錯信息,包括出錯位置(行號)、出錯提示信息。編程者可以根據(jù)這些信息,找出相應(yīng)錯誤所在。有時系統(tǒng)提示的一大串錯誤信息,并不表示真的有這么多錯誤,往往是因為前面的一兩個錯誤帶來的。所以當(dāng)你糾正了幾個錯誤后,不妨再編譯連接一次,然后根據(jù)最新的出錯信息繼續(xù)糾正。有些程序通過了編譯連接,并能夠在計算機上運行,但得到的結(jié)果不正確,這類在程序執(zhí)行過程中的錯誤往往最難改正。錯誤的原因一部分是程序書寫錯誤帶來的,例如應(yīng)該使用變量 x 的地方寫成了變量 y,雖然沒有語法錯誤,但意思完全錯了;另一部分可能是程序的算法不正確,解題思路不對。還有一些程序有時計算結(jié)果正確,有時不正確,這往往是編程時,對各種情況考慮不周所致。解決運行錯誤的首要步驟就是錯誤定位,即找到出錯的位置,才能予以糾正。通常我們先設(shè)法確定錯誤的大致位置,然后通過 C 語言提供的調(diào)試工具找出真正的錯誤。為了確定錯誤的大致位置,可以先把程序分成幾大塊,并在每一塊的結(jié)束位置,手工計算一個或幾個階段性結(jié)果,然后用調(diào)試方式運行程序,到每一塊結(jié)束時,檢查程序運行的實際結(jié)果與手工計算是否一致,通過這些階段性結(jié)果來確定各塊是否正確。對于出錯的程序塊,可逐條仔細(xì)檢查各語句,找出錯誤所在。如果出錯塊程序較長,難以一下子找出錯誤,可以進(jìn)一步把該塊細(xì)分層更小的塊,按照上述步驟進(jìn)一步檢查。在確定了大致出錯位置后,如果無法直接看出錯誤,可以通過單步運行相關(guān)位置的幾條語句,逐條檢查,一定能找出錯誤的語句。當(dāng)程序出現(xiàn)計算結(jié)果有時正確有時不正確的情況時,其原因一般是算法對各種數(shù)據(jù)處理情況考慮不全面。解決辦法最好多選幾組典型的輸入數(shù)據(jù)進(jìn)行測試,除了普通的數(shù)據(jù)外,還應(yīng)包含一些邊界數(shù)據(jù)和不正確的數(shù)據(jù)。比如確定正常的輸入數(shù)據(jù)范圍后,分別以最小值、最大值、比最小值小的值和比最大值大的值,多方面運行檢查自己的程序。Visual C 語言集成環(huán)境C+語言是在 C 語言的基礎(chǔ)上發(fā)展而來,它增加了面向?qū)ο蟮木幊?,成為?dāng)今最流行的一種程序設(shè)計語言。Visual C+是微軟公司開發(fā)的,面向 Windows 編程的 C+語言工具。它不僅支持 C+語言的編程,也兼容 C 語言的編程。由于 VC+被廣泛地用于各種編程,使用面很廣。這里簡要地介紹如何在 VC+下運行 C 語言程序。1 啟動 VC+VC+是一個龐大的語言集成工具,經(jīng)安裝后將占用幾百兆磁盤空間。從“開始”“程序”“Microsoft Visual Studio 6.0”“Microsoft Visual C+ 6.0”,可啟動 VC+。2 新建/打開 C 程序文件選擇“文件”菜單的“新建”菜單項,單擊如圖 A-2所示的“文件”標(biāo)簽,選中“C+Source File”,按“確定”。然后在編輯窗口中輸入程序。圖 A-2新建文件如果程序已經(jīng)輸入過,可選擇“文件”菜單的“打開”菜單項,并在查找范圍中找到正確的文件夾,調(diào)入指定的程序文件。3 程序保存在打開的 VC+界面上,可直接在編輯窗口輸入程序,由于完全是 Windows 界面,輸入及修改可借助鼠標(biāo)和菜單進(jìn)行,十分方便。當(dāng)輸入結(jié)束后,保存文件時,因指定擴展名“.C”,否則系統(tǒng)將按 C+擴展名“.CPP”保存。如圖 A-3所示。圖 A-3 指定保存文件名4 執(zhí)行程序首先要生成可執(zhí)行文件。使用 VC+“編譯”菜單中的“構(gòu)件”菜單項,如圖 A-4所示,也可使用快捷鍵【F7】。在編譯連接過程中 VC+將保存該新輸入的程序,并生成一個同名的工作區(qū)。保存文件時須填入文件名,如“4-1.C”。假如不指定擴展名.C,VC+會把擴展名定義為.CPP,即 C+程序。如果程序沒有錯誤,將在圖 A-5信息窗口中顯示內(nèi)容:0 error(s) 0 warning(s)。表示沒有任何錯誤。有時出現(xiàn)幾個警告性信息(warning),不影響程序執(zhí)行。假如有致命性錯誤(error),如圖 A-6 所示,雙擊某行出錯信息,程序窗口中會指示對應(yīng)出錯位置,根據(jù)信息窗口的提示分別予以糾正。然后用“編譯”菜單中的“執(zhí)行”菜單項(或快捷鍵【Ctrl】+【F5】)執(zhí)行程序。圖 A-4 編譯連接菜單圖 A-5 編譯連接正確圖 A-6 編譯連接出錯當(dāng)運行 C 程序后,VC+將自動彈出數(shù)據(jù)輸入輸出窗口,如圖 A-7所示。按任意鍵將關(guān)閉該窗口。圖 A-7 數(shù)據(jù)輸入輸出窗口對于編譯連接執(zhí)行操作,VC+還提供了一組工具按鈕,如圖 A-8所示。圖 A-8 編譯連接執(zhí)行工具按鈕組5 關(guān)閉程序工作區(qū)當(dāng)一個程序編譯連接后,VC+系統(tǒng)自動產(chǎn)生相應(yīng)的工作區(qū),以完成程序的運行和調(diào)試。若想執(zhí)行第二個程序時,必須關(guān)閉前一個程序的工作區(qū),然后通過新的編譯連接,產(chǎn)生第二個程序的工作區(qū)。否則的話運行的將一直是前一個程序。“文件”菜單提供關(guān)閉程序工作區(qū)功能,如圖 A-9(a),執(zhí)行“關(guān)閉工作區(qū)”菜單功能,然后在如圖 A-9(b)對話框中選擇“否”。如果選擇“是”將同時關(guān)閉源程序窗口。圖 A-9 關(guān)閉程序工作區(qū)實驗一 順序程序設(shè)計【實驗?zāi)康摹?學(xué)會順序程序設(shè)計的思想2熟練掌握各種數(shù)據(jù)類型的輸入輸出格式,并學(xué)會使用輸入輸出函數(shù)3學(xué)會使用表達(dá)式【實驗內(nèi)容】1在屏幕中輸出一行文字“Hello,Welcome!”說明:(1)只需要在屏幕中顯示一行文字即可參考程序如下:#include<stdio.h>main() printf("Hello,Welcome!n");2 輸入一個華氏溫度,要求輸出攝氏溫度。公式為輸出要求有文字說明,取兩位小數(shù)說明:(1)攝氏溫度F和華氏溫度c都應(yīng)用float類型變量存儲(2)注意表達(dá)式書寫中的各變量的順序問題(3)輸出時只需輸出兩位小數(shù)參考程序如下:#include<stdio.h>main() float F,c; printf("input F:"); scanf("%f",&F); c=5*(F-32)/9; printf("c=%.2fn",c);3輸入三角形三邊長、,求三角形周長和面積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果,輸出時要求有文字說明,取消書店后兩位小數(shù)。說明:(1)程序設(shè)計中使用的所有變量均為float類型(2)三角形周長公式:(3)三角形面積公式;,其中(4)注意應(yīng)保證輸入數(shù)據(jù)能夠構(gòu)成三角形(5)需要使用開根號函數(shù)sqrt,在程序頂部加上#include<math.h>一句(6)以,運行程序,查看執(zhí)行結(jié)果參考程序如下:#include<stdio.h>#include<math.h>main() float a,b,c,l,s; float p; printf("input a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); l=a+b+c; p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); printf("l=%.2fn",l);printf("s=%.2fn",s);4設(shè)圓半徑,圓柱高,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果,輸出時要求有文字說明,取消書店后兩位小數(shù)。說明:(1)程序設(shè)計中使用的所有變量均為float類型(2)圓周長公式:(3)圓面積公式:(4)圓球表面積公式:(5)圓球體積公式:(6)圓柱體積公式:參考程序如下:#include<stdio.h>#define PI 3.14main() float r=1.5,h=3; float l,s1,s2,v1,v2; l=2*PI*r; s1=PI*r*r; s2=4*PI*r*r; v1=4*PI*r*r*r/3; v2=PI*r*r*h; printf("l=%.2fn",l);printf("s1=%.2fn",s1);printf("s2=%.2fn",s2);printf("v1=%.2fn",v1);printf("v2=%.2fn",v2);實驗二 選擇結(jié)構(gòu)程序設(shè)計【實驗?zāi)康摹?了解C語言的邏輯運算2學(xué)會使用if語句和switch語句3熟練掌握選擇結(jié)構(gòu)程序設(shè)計方法【實驗內(nèi)容】1有一函數(shù)寫一程序,輸入,輸出值說明:(1)根據(jù)輸入的不同求的值,使用if語句(2)分別輸入三個分段中的三個數(shù),判斷輸出結(jié)果是否正確,測試程序正確與否參考程序如下:#include<stdio.h>main() float x,y; printf("input x:"); scanf("%f",&x); if( x<1 ) y=x; if( x>=1 && x<10 ) y=2*x-1; if( x>=10 ) y=3*x-11;printf("y=%fn",y);2從鍵盤輸入一個字符,可以是數(shù)字、字母、或是標(biāo)點符號,對輸入的字符進(jìn)行判斷,如果是數(shù)字則輸出“* is a number!”,如果是字母則輸出“* is a letter!”,如果是其他的字符怎輸出“* is the other!”(*為輸入的字符)說明:(1)從鍵盤輸入一個字符,用char類型變量存儲(2)使用if語句作判斷(3)判斷條件根據(jù)輸入字符的ASCII碼值的范圍,具體的ASCII碼值參看書后的ASCII碼表參考程序如下:#include<stdio.h>main() char c; printf("input a char:"); scanf("%c",&c); if( c>=48 && c<=57 ) printf("%c is a number!n",c); else if( (c>=65 && c<=90) | (c>=97 && c<=122 ) ) printf("%c is a letter!n",c); else printf("%c is the other!n",c);3輸入兩個實數(shù)、,保證變量中存儲的是較大的數(shù),變量中存儲的實較小的數(shù),并按照由大到小的順序輸出。說明:(1)需要對輸入的兩個數(shù)進(jìn)行比較,判斷是否需要交換兩個數(shù)(2)按照從大到小的順序輸出兩個數(shù)參考程序如下:#include<stdio.h>main() float a,b; float temp; printf("input a,b:"); scanf("%f,%f",&a,&b); if( a<b ) temp=a;a=b;b=temp;printf("%f,%fn",a,b);4輸入一年份,判斷該年是否是閏年。說明:(1)判斷閏年的條件:能夠被4整除,但不能被100整除或者能被100整除,又能被400整除(2)使用一個變量來代表是否是閏年(3)如果是閏年則輸出“* is a leap year!”,否則輸出“* is not a leap year!”。*代表輸入的年份參考程序如下:#include<stdio.h>main() int year; int flag=0; printf("input a year:"); scanf("%d",&year); if( (year%4=0 && year%100!=0) | (year%100=0 && year%400=0) ) flag=1; if( flag=1 ) printf("%d is a leap year!n",year); else printf("%d is not a leap year!n",year);5從鍵盤輸入一個月號,顯示輸出該月號的英文名稱說明:(1)使用if語句較為麻煩,因為需要做12次比較(2)使用switch語句(3)如果輸入月份超出范圍,則應(yīng)當(dāng)輸出錯誤信息參考程序如下:#include<stdio.h>main() int month; printf("input a month:"); scanf("%d",&month); switch( month ) case 1:printf("January!n");break;case 2:printf("February!n");break;case 3:printf("March!n");break;case 4:printf("April!n");break;case 5:printf("May!n");break;case 6:printf("June!n");break;case 7:printf("July!n");break;case 8:printf("August!n");break;case 9:printf("September!n");break;case 10:printf("October!n");break;case 11:printf("November!n");break;case 12:printf("December!n");break;default:printf("input error!n");實驗三 循環(huán)結(jié)構(gòu)程序設(shè)計【實驗?zāi)康摹?學(xué)會使用while、do-while、for語句2熟練掌握循環(huán)結(jié)構(gòu)程序設(shè)計方法3掌握選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套【實驗內(nèi)容】1求和(即求1!+2!+20!)說明:(1)首先要求出每一項的n!的值(2)然后把各項相加得到所求的值(3)存儲求和運算結(jié)果的變量的初始值應(yīng)為0(4)存儲求積運算結(jié)果的變量的初始值應(yīng)為1參考程序如下:使用while循環(huán)#include<stdio.h>main() float sum=0; float mid=1; int n=1; while( n!=21 ) mid=mid*n;n+;sum=sum+mid;printf("sum=%fn",sum);使用for循環(huán)#include<stdio.h>main() float sum=0; float mid=1; int n; for( n=1;n<=20;n+ ) mid=mid*n;sum=sum+mid;printf("sum=%fn",sum);2求出100到200以內(nèi)最大的素數(shù)和最小的素數(shù),并求出兩者的差值說明:(1)素數(shù)的概念:只能被1和自身整除的正整數(shù)(2)分別求出這個兩個素數(shù),并輸出,輸出格式為: big one:* small one:* 最小的素數(shù)正序找出 最大的素數(shù)倒序找出(3)求出兩者的差,并輸出,輸出格式為: result:*參考程序如下:#include<stdio.h>main() int big,small; int result; int i,j; int flag; for( i=100;i<200;i+ ) flag=0;for( j=2;j<i;j+ )if( i%j=0 )flag=1;break;if( flag=0 )small=i;break;for( i=200;i>=100;i- )flag=0;for( j=2;j<i;j+ )if( i%j=0 )flag=1;break;if( flag=0 )big=i;break;result=big-small;printf("big:%dn",big);printf("small:%dn",small);printf("reslut:%dn",result);3輸入兩個正整數(shù)和,求其最大公約數(shù)和最小公倍數(shù)說明:(1)最大公約數(shù):能夠被和同時整除的最大正整數(shù)(2)最小公倍數(shù):和相乘的積除以最大公約數(shù)(3)使用for循環(huán),將和同時除以1到(為和兩者中較小者),直到找出最大的正整數(shù)即為最大公約數(shù)(4)輸出格式如下: The greatest common divisor is *! The least common multiple is *!參考程序如下:#include<stdio.h>main()int m,n,temp;int i;int great,least; printf("input m,n:"); scanf("%d,%d",&m,&n);if( m>n )temp=m;m=n;n=temp;for( i=1;i<=m;i+ )if( n%i=0 && m%i=0 )great=i;least=m*n/great;printf("The greatest common divisor is %dn",great);printf("The least common multiple is %dn",least);4打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個3位數(shù),其各位數(shù)字立方和等于該數(shù)本書。例如,153是一水仙花數(shù),因為說明:(1)“水仙花數(shù)”是三位數(shù),所以范圍是從100到999(2)使用for循環(huán)(3)循環(huán)中需要把數(shù)字的每一位都分離出來,然后求和,同原數(shù)字比較,進(jìn)行判斷參考程序如下:#include<stdio.h>main()int a,b,c;int i;int temp;for( i=100;i<1000;i+ )a=i/100;b=(i-a*100)/10;c=i%10;temp=a*a*a+b*b*b+c*c*c;if( i=temp )printf("%dn",i);實驗四 數(shù)組【實驗?zāi)康摹?掌握一維數(shù)組和二維數(shù)組的定義、賦值和初始化的方法2掌握字符數(shù)組的使用3熟練掌握與數(shù)組相關(guān)的各種算法【實驗內(nèi)容】1從鍵盤輸入10個整數(shù),對這個十個數(shù)進(jìn)行排序,并輸出說明:(1)將這10個整數(shù)存入一個含有10個元素的一維數(shù)組中(2)冒泡法:從第一個數(shù)開始依次讓相鄰的兩個數(shù)進(jìn)行比較,如次序?qū)t不做任何操作;如次序不對則使這兩個數(shù)交換位置。第一遍比較后,最大的數(shù)已放在最后,第二遍只需考慮剩下的數(shù),以此類推直到最后兩個數(shù)比較后就可以完成排序。(3)比較完成后將數(shù)組中元素依次輸出參考程序如下:#include<stdio.h>main()int num10;int i,j;int temp;printf("input 10 numbers:");for( i=0;i<10;i+ )scanf("%d",&numi);for( i=0;i<=8;i+ )for( j=0;j<9-i;j+ )if( numj>numj+1 )temp=numj;numj=numj+1;numj+1=temp;printf("the sorted numbers:");for( i=0;i<10;i+ )printf("%d ",numi);2從鍵盤輸入一串字符串,統(tǒng)計字符串中特定字符的個數(shù)(特定字符也需要從鍵盤輸入),并輸出個數(shù)說明:(1)輸入時需要用到的輸入格式控制字是%s(2)字符串存入一個足夠大的字符數(shù)組中,保證輸入的字符個數(shù)不要超過最大個數(shù)(3)使用循環(huán)控制語句,需要了解字符數(shù)組的結(jié)束標(biāo)志是0,作為循環(huán)的結(jié)束標(biāo)志(4)輸出格式如下: The number of * is *!參考程序如下:#include<stdio.h>main()char str50;char ch;int count=0;int i=0;printf("input a string:");scanf("%s",str);getchar();printf("input the char:");scanf("%c",&ch);while( stri!=0 )if( stri=ch )count+;i+;printf("The number of %c is %d!n",ch,count);注意:程序中多了一行g(shù)etchar(),這并不是多余的,而是因為在輸入完字符串后,鍵入的回車被放入到內(nèi)存的輸入緩沖區(qū)中,在輸入特殊字符的時候ch得到了上一個回車,而無法得到我們要輸入的字符,因此需要使用一行g(shù)etchar()將緩沖區(qū)中的回車讀出,相當(dāng)于清除緩沖區(qū)的作用。3青年歌手參加歌曲大獎賽,有10個評委進(jìn)行打分,試編程求這位選手的平均得分(去掉一個最高分和一個最低分)。說明:(1)將10位評委的打分放入一個含有10個元素的一維數(shù)組中(2)程序設(shè)計重點是排序(3)排序后只要用中間的8個元素即可(4)輸出格式為: The average is *!參考程序如下:#include<stdio.h>main()float score10;float average=0;float sum=0;int i,j;float temp;printf("input the 10 score:");for( i=0;i<10;i+ )scanf("%f",&scorei);for( i=0;i<=8;i+ )for( j=0;j<9-i;j+ )if( scorej>scorej+1 )temp=scorej;scorej=scorej+1;scorej+1=temp;for( i=1;i<=8;i+ )sum=sum+scorei;average=sum/8;printf("The average is %f!n",average);4將兩個字符串連接起來,不要使用strcat函數(shù)。說明:(1)將連個字符串存入兩個字符串?dāng)?shù)組中,要保證第一個字符串的長度能夠容納兩個字符串之和(2)連接兩個字符串主要是找到第一個字符串的結(jié)尾,然后將第二個字符串連接到第二個字符串的后邊(3)輸出格式為: The connected string is *!參考程序如下:#include<stdio.h>main()char str150,str220;int i,j;printf("input string1:");scanf("%s",str1);getchar();printf("input string2:");scanf("%s",str2);for( i=0;str1i!=0;i+ );for( j=0;str2j!=0;j+,i+ )str1i=str2j;str1i=0;printf("The connected string is %sn",str1);5已有一個已排好序的數(shù)組,從鍵盤輸入一個數(shù),要求按原來排序的規(guī)律將它插入數(shù)組中。說明:(1)需要保證數(shù)組的元素?fù)?jù)個數(shù)比插入前多1(2)需要找到在數(shù)組中插入的位置(3)可倒序查找:假設(shè)從小到大排序,從最后一個開始查找,如果要插入元素比當(dāng)前數(shù)組元素小則將該數(shù)組元素賦予后邊一個元素,繼續(xù)比較;否則將要插入元素賦予該數(shù)組元素的下一個元素,然后break結(jié)束循環(huán)(4)輸入該數(shù)組即可參考程序如下:#include<stdio.h>main()int a10=0,1,2,4,5,6,7,8,9;int b=3;int i;for( i=8;i>=0;i- )if( ai>b )ai+1=ai;elseai+1=b;break;printf("The new sorted array is ");for( i=0;i<10;i+ )printf("%d ",ai);6將一個數(shù)組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1,要求改為1,4,5,6,8。說明:(1)只要將原來數(shù)組中的值以中間值為中心交換(2)交換次數(shù)為次(3)注意此時的是數(shù)組最后一個元素的下標(biāo)參考程序如下:#include<stdio.h>main()int num110=0,1,2,3,4,5,6,7,8,9;int num29=1,2,3,4,5,6,7,8,9;int i;int temp;for( i=0;i<(9+1)/2;i+ )temp=num1i;num1i=num19-i;num19-i=temp;for( i=0;i<(8+1)/2;i+ )temp=num2i;num2i=num28-i;num28-i=temp;printf("The converted array1 is ");for( i=0;i<10;i+ )printf("%d ",num1i);printf("nThe converted array2 is ");for( i=0;i<9;i+ )printf("%d ",num2i);7求一個33矩陣的對角線元素之和說明:(1)使用33的二維數(shù)組存儲數(shù)據(jù)(2)使用for循環(huán)嵌套,判斷數(shù)組中元素是否是對角線元素,如果是則相加(3)對角線元素的特點是行號和列號相同參考程序如下:#include<stdio.h>main()int array33=1,2,3,4,5,6,7,8,9;int sum=0;int i,j;for( i=0;i<3;i+ )for( j=0;j<3;j+ )if( i=j )sum=sum+arrayij;printf("summary is %dn",sum);8設(shè)計一個較為復(fù)雜的一維數(shù)組操作程序,實現(xiàn)對一維數(shù)組的基本操作說明:(1)通過輸入函數(shù)實現(xiàn)對一維數(shù)組的輸入,可以將數(shù)組定義為100個整型元素,輸入其中的10個元素(2)在屏幕上將數(shù)組中的10個元素輸出(3)往數(shù)組中插入一個元素,并將插入后的11個元素輸出(4)從數(shù)組中刪除一個元素,并將刪除后的10個元素輸出(5)從數(shù)組中查找一個元素,并將查找后的元素下標(biāo)輸出,如果元素不存在,給出提示參考程序如下:#include<stdio.h>main()int a100,i,j;int ins,del,find,pos;printf("input the data: ");for(i=0;i<10;i+)scanf("%d",&ai);printf("The array is ");for(i=0;i<10;i+)printf("%d ",ai);printf("ninsert a data: ");scanf("%d",&ins);for( i=0;i<10;i+ )if( ins<ai )for( j=9;j>=i;j- )aj+1=aj;ai=ins;break;if( i=10 )ai=ins;printf("nAfter insert: ");for( i=0;i<11;i+ )printf("%d ",ai);printf("ndelete a data: ");scanf("%d",&del);for( i=0;i<11;i+ )if( del=ai )for( j=i;j<10;j+ )aj=aj+1;break;if( i=11 )printf("nnot foundn");elseprintf("nAfter delte: ");for( i=0;i<10;i+ )printf("%d ",ai);printf("nfind a data: ");scanf("%d",&find);for( i=0;i<10;i+ )if( find=ai )pos=i;break;if( i=10 )printf("nnot foundn");elseprintf("npos=%dn",pos+1);實驗五 函數(shù)【實驗?zāi)康摹?掌握C語言函數(shù)的定義、聲明以及函數(shù)的調(diào)用方法2了解主調(diào)函數(shù)和被調(diào)函數(shù)之間的參數(shù)傳遞方式3熟練掌握數(shù)組作為函數(shù)參數(shù)的用法【實驗內(nèi)容】1寫一個判斷素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。說明:(1)判斷素數(shù)的函數(shù)名為Prime(2)傳遞參數(shù)為int類型的變量(3)輸出格式為: * is a prime!或者* is not a prime!參考程序如下:#include<stdio.h>Prime( int num )int i;int flag=0;for( i=2;i<num;i+ )if( num%i=0 )flag=1;break;if( flag=0 )printf("%d is a prime!n",num);elseprintf("%d is not a prime!n",num);main()int num;printf("input a num:");scanf("%d",&num);Prime(num);2寫一個函數(shù),用“冒泡法”對輸入的10個數(shù)字由小到大順序排列,并輸出。說明:(1)排序的函數(shù)名為Sort(2)排序前后的輸入輸出都應(yīng)在主函數(shù)中完成(3)使用數(shù)組作為函數(shù)參數(shù)(4)使用“冒泡法”排序參考程序如下:#include<stdio.h>Sort( int num )int i,j;int temp;for( i=0;i<=8;i+ )for( j=0;j<9-i;j+ )if( numj>numj+1 )temp=numj;numj=numj+1;numj+1=temp;main()int num10;int i;printf("input 10 numbers:");for( i=0;i<10;i+ )scanf("%d",&numi);Sort(num);printf("the sorted numbers:");for( i=0;i<10;i+ )printf("%d ",numi);3寫一函數(shù),使給定的一個二維數(shù)組(55)轉(zhuǎn)置,即行列互換。說明:(1)使用55的二維數(shù)組存放數(shù)據(jù)(2)矩陣轉(zhuǎn)置的函數(shù)名為Turn(2)轉(zhuǎn)置前后的輸入輸出都應(yīng)在主函數(shù)中完成(3)使用數(shù)組作為函數(shù)參數(shù)參考程序如下:#include<stdio.h>void Turn( int num55 )int i,j;int temp;for( i=0;i<5;i+ )for( j=i;j<5;j+ )temp=numij;numij=numji;numji=temp;main()int num55=1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25;int i,j;printf("Before array be turned:n");for( i=0;i<5;i+ )for( j=0;j<5;j+ )printf("%2d ",numij);printf("n");Turn(num);printf("After array be turned:n");for( i=0;i<5;i+ )for( j=0;j<5;j+ )printf("%2d ",numij);printf("n");4寫一函數(shù),使輸入的字符串反序存放,在主函數(shù)中輸入和輸出字符串。說明:(1)字符串反序的函數(shù)名為Reverse(2)反序前后的輸入輸出都應(yīng)在主函數(shù)中完成(3)使用數(shù)組作為函數(shù)參數(shù)(4)需要使用strlen函數(shù)得到字符串長度,需要在源文件頭部加入#include<string.h>參考程序如下:#include<stdio.h>#include<string.h>void Reverse( char str )int length;int i;char temp;length=strlen(str);for( i=0;i<length/2;i+ )temp=stri;stri=strlength-1-i;strlength-1-i=temp;main()char str50;printf("input a string:");scanf("%s",str);Reverse(str);printf("After reversed is %sn",str);5寫一函數(shù),將兩個字符串連接。說明:(1)連接兩個字符串的函數(shù)名為:Connect(2)將連個字符串存入兩個字符串?dāng)?shù)組中,要保證第一個字符串的長度能夠容納兩個字符串之和(3)連接兩個字符串主要是找到第一個字符串的結(jié)尾,然后將第二個字符串連接到第二個字符串的后邊(4)輸出格式為: The connected string is *!(5)使用數(shù)組作為函數(shù)參數(shù)(6)連接前后的字符串輸出都要在主函數(shù)中完成,自定義函數(shù)只完成連接功能參考程序如下:#include<stdio.h>void Connect( char str1,char str2 )int i,j;for( i=0;str1i!=0;i+ );for( j=0;str2j!=0;j+,i+ )str1i=str2j;str1i=0;main()char str150,str220;int i,j;printf("input string1:");scanf("%s",str1);getchar();printf("input string2:");scanf("%s",str2);Connect(str1,str2);printf("The connected string is %sn",str1);6寫一函數(shù),求字符串的長度,并編寫主函數(shù)。說明:(1)求字符串長度的函數(shù)名為:Count(2)字符串結(jié)束的標(biāo)志是0(3)輸出格式為: The length of string is *!(4)使用數(shù)組作為函數(shù)參數(shù)參考程序如下:#include<stdio.h>int Count( char str )int i;for( i=1;stri!=0;i+ );return i;main()char str10;int length;printf("input the string:");scanf("%s",str);length=Count(str);printf("The length of string is %d!n",length);實驗六 預(yù)處理命令【實驗?zāi)康摹?掌握C語言預(yù)處理命令的使用方法2熟練掌握宏定義 【實驗內(nèi)容】1判斷下面程序的執(zhí)行結(jié)果#include<stdio.h>#define PQ 4.5#define ABC(x) PQ+(x*x)main()int a=3,b,c,d;b=ABC(a);c=ABC(a+1);d=2.0*ABC(a);printf("b=%d,c=%d,d=%dn",b,c,d);參考答案:相當(dāng)于:b=4.5+a*ac=4.5+(a+1*a+1)d=2.0*4.5+(a*a)輸出結(jié)果:b=13,c=11,d=18實驗七 指針【實驗?zāi)康摹?掌握C語言指針變量的定義、聲明和賦值2學(xué)會使用指針變量的程序設(shè)計3掌握指針作為函數(shù)參數(shù)的用法【實驗內(nèi)容】1使用指針作為函數(shù)參數(shù),寫一交換兩個數(shù)的函數(shù)說明:(1)交換兩個數(shù)的函數(shù)名為:Swap(2)使用指針變量作為函數(shù)參數(shù)(3)在主函數(shù)中輸入輸出,自定義函數(shù)只完成交換功能參考程序如下:#include<stdio.h>Swap( int *p1,int *p2 )int temp;temp=*p1;*p1=*p2;*p2=temp;main()int a,b;int *p1,*p2;printf("input a,b:");scanf("%d,%d",&a,&b);p1=&a;p2=&b;printf("Before swap a=%d,b=%dn",a,b);Swap(p1,p2);printf("After swap a=%d,b=%dn",a,b);2使用指針作為函數(shù)參數(shù),寫一求數(shù)組中最大值和最小值的函數(shù)。說明:(1)函數(shù)名為:MaxAndMin(2)使用指針指向一維數(shù)組(3)最大值和最小值的輸出必須要在主函數(shù)中參考程序如下:#include<stdio.h>MaxAndMin( int *array,int *max,int *min )int i;*max=array0;*min=array0;for( i=0;i<10;i+ )if( *max<ar

注意事項

本文(【東北林業(yè)大學(xué)】機電控制程序設(shè)計技術(shù)實驗指導(dǎo)書)為本站會員(xinsh****encai)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!