版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《程序設(shè)計(jì)基本》實(shí)驗(yàn)指引書(第一版)(14~26學(xué)時(shí))信息學(xué)院《程序設(shè)計(jì)基本》教研組3目錄前言 1實(shí)驗(yàn)一C程序運(yùn)營環(huán)境和簡(jiǎn)樸C源程序調(diào)試 2一、實(shí)驗(yàn)學(xué)時(shí) 2二、實(shí)驗(yàn)?zāi)?2三、預(yù)習(xí)規(guī)定 2四、實(shí)驗(yàn)內(nèi)容 2五、實(shí)驗(yàn)注意事項(xiàng) 7六、思考題 7實(shí)驗(yàn)二數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 9一、實(shí)驗(yàn)?zāi)?9二、實(shí)驗(yàn)要點(diǎn) 9三、實(shí)驗(yàn)規(guī)定 9四、實(shí)驗(yàn)內(nèi)容 9五、思考與總結(jié) 10實(shí)驗(yàn)三選取構(gòu)造程序設(shè)計(jì) 11一、實(shí)驗(yàn)學(xué)時(shí) 11二、實(shí)驗(yàn)?zāi)?11三、預(yù)習(xí)規(guī)定 11四、實(shí)驗(yàn)內(nèi)容 11五、實(shí)驗(yàn)注意事項(xiàng) 13六、思考題 14實(shí)驗(yàn)四循環(huán)構(gòu)造程序設(shè)計(jì)(一) 16一、實(shí)驗(yàn)學(xué)時(shí) 16二、實(shí)驗(yàn)?zāi)?16三、預(yù)習(xí)規(guī)定 16四、實(shí)驗(yàn)內(nèi)容 16五、實(shí)驗(yàn)注意事項(xiàng) 20六、思考題 20實(shí)驗(yàn)五循環(huán)構(gòu)造程序設(shè)計(jì)(二) 22一、實(shí)驗(yàn)學(xué)時(shí) 22二、實(shí)驗(yàn)?zāi)?22三、預(yù)習(xí)內(nèi)容 22四、實(shí)驗(yàn)內(nèi)容 22五、實(shí)驗(yàn)注意事項(xiàng) 24六、思考題 24實(shí)驗(yàn)六一維數(shù)組程序設(shè)計(jì) 26一、實(shí)驗(yàn)學(xué)時(shí) 26二、實(shí)驗(yàn)?zāi)?26三、預(yù)習(xí)規(guī)定 26四、實(shí)驗(yàn)內(nèi)容 26五、實(shí)驗(yàn)注意事項(xiàng) 28六、思考題 28實(shí)驗(yàn)七二維數(shù)組程序設(shè)計(jì) 30一、實(shí)驗(yàn)學(xué)時(shí) 30二、實(shí)驗(yàn)?zāi)?30三、預(yù)習(xí)規(guī)定 30四、實(shí)驗(yàn)內(nèi)容 30五、實(shí)驗(yàn)注意事項(xiàng) 34六、思考題 35實(shí)驗(yàn)八字符數(shù)組程序設(shè)計(jì) 37一、實(shí)驗(yàn)學(xué)時(shí) 37二、實(shí)驗(yàn)?zāi)?37三、預(yù)習(xí)規(guī)定 37四、實(shí)驗(yàn)內(nèi)容 37五、實(shí)驗(yàn)注意事項(xiàng) 39六、思考題 39實(shí)驗(yàn)九函數(shù) 41一、實(shí)驗(yàn)學(xué)時(shí) 41二、實(shí)驗(yàn)?zāi)?41三、預(yù)習(xí)規(guī)定 41四、實(shí)驗(yàn)內(nèi)容 41五、實(shí)驗(yàn)注意事項(xiàng) 46六、思考題 46實(shí)驗(yàn)十指針(一) 49一、實(shí)驗(yàn)學(xué)時(shí) 49二、實(shí)驗(yàn)?zāi)?49三、預(yù)習(xí)規(guī)定 49四、實(shí)驗(yàn)內(nèi)容 49五、實(shí)驗(yàn)注意事項(xiàng) 51六、思考題 51實(shí)驗(yàn)十一指針(二) 52一、實(shí)驗(yàn)學(xué)時(shí) 52二、實(shí)驗(yàn)?zāi)?52三、預(yù)習(xí)規(guī)定 52四、實(shí)驗(yàn)內(nèi)容 52五、實(shí)驗(yàn)注意事項(xiàng) 53六、思考題 53實(shí)驗(yàn)十二構(gòu)造體、共用體和位運(yùn)算 55一、實(shí)驗(yàn)學(xué)時(shí) 55二、實(shí)驗(yàn)?zāi)?55三、預(yù)習(xí)規(guī)定 55四、實(shí)驗(yàn)內(nèi)容 56五、實(shí)驗(yàn)注意事項(xiàng) 59六、思考題 59實(shí)驗(yàn)十三文獻(xiàn) 60一、實(shí)驗(yàn)學(xué)時(shí) 60二、實(shí)驗(yàn)?zāi)?60三、預(yù)習(xí)規(guī)定 60四、實(shí)驗(yàn)內(nèi)容 60五、實(shí)驗(yàn)注意事項(xiàng) 62六、思考題 62附錄:常用錯(cuò)誤提示信息英漢對(duì)照 63前言C語言是當(dāng)代最流行通用程序設(shè)計(jì)語言之一,它既具備高檔程序設(shè)計(jì)語言長(zhǎng)處,又具備低檔程序設(shè)計(jì)語言特點(diǎn),既可以用來編寫系統(tǒng)程序,又可以用來編寫應(yīng)用程序。因而,C語言正在被迅速地推廣和普及。上機(jī)實(shí)驗(yàn)是該課程教學(xué)一種重要環(huán)節(jié),因而規(guī)定學(xué)生做一定數(shù)量上機(jī)實(shí)驗(yàn)。本指引書可增強(qiáng)同窗上機(jī)實(shí)驗(yàn)針對(duì)性。整個(gè)教學(xué)和實(shí)驗(yàn)中,采用VC++6.0作為實(shí)驗(yàn)環(huán)境,強(qiáng)調(diào)學(xué)生切實(shí)培養(yǎng)動(dòng)手實(shí)踐能力,掌握調(diào)試程序辦法,通過調(diào)試?yán)斫釩語言程序運(yùn)營過程以及C語言語法規(guī)則,為后續(xù)課程設(shè)計(jì),計(jì)算機(jī)級(jí)別考試及其她應(yīng)用做好充分準(zhǔn)備。本實(shí)驗(yàn)指引書通過大量實(shí)例,循序漸進(jìn)地引導(dǎo)學(xué)生做好各章實(shí)驗(yàn)。依照實(shí)驗(yàn)教學(xué)大綱,共選取編寫了13個(gè)實(shí)驗(yàn),其中必做11個(gè),選做2個(gè)。每個(gè)實(shí)驗(yàn)內(nèi)容構(gòu)造如下:(1)實(shí)驗(yàn)學(xué)時(shí)(2)實(shí)驗(yàn)?zāi)浚?)預(yù)習(xí)規(guī)定(4)實(shí)驗(yàn)內(nèi)容(5)實(shí)驗(yàn)注意事項(xiàng)(6)思考題其中思考題屬于擴(kuò)展應(yīng)用某些,學(xué)生可以依照自己學(xué)習(xí)狀況選取完畢。在實(shí)驗(yàn)之前,規(guī)定學(xué)生對(duì)實(shí)驗(yàn)作好預(yù)習(xí)工作。在實(shí)驗(yàn)中,學(xué)生依照實(shí)驗(yàn)指引中內(nèi)容進(jìn)行驗(yàn)證與總結(jié),然后再去完畢實(shí)驗(yàn)內(nèi)容中安排任務(wù)。普通規(guī)定準(zhǔn)備好有關(guān)代碼,實(shí)驗(yàn)課中最佳以調(diào)試和討論為主。實(shí)驗(yàn)結(jié)束后,應(yīng)及時(shí)提交實(shí)驗(yàn)報(bào)告,報(bào)告詳細(xì)內(nèi)容可依照實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)規(guī)定進(jìn)行增刪。實(shí)驗(yàn)報(bào)告普通規(guī)定包括:(1)實(shí)驗(yàn)題目(2)設(shè)計(jì)思路或算法分析(3)流程圖(4)程序源代碼(5)程序運(yùn)營成果及分析(6)存在問題。
實(shí)驗(yàn)一C程序運(yùn)營環(huán)境和簡(jiǎn)樸C源程序調(diào)試一、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)二、實(shí)驗(yàn)?zāi)浚ㄒ唬┱莆赵赩isaulC++環(huán)境如何編輯、編譯和運(yùn)營C源程序;(二)掌握C語言各種數(shù)據(jù)類型以及整型、字符型、實(shí)型變量定義;(三)掌握C語言中關(guān)于算術(shù)運(yùn)算符及表達(dá)式使用。三、預(yù)習(xí)規(guī)定熟悉C程序書寫規(guī)則、上機(jī)調(diào)試環(huán)節(jié);熟悉C語言數(shù)據(jù)類型;熟悉C語言表達(dá)式構(gòu)成、運(yùn)算規(guī)則等內(nèi)容。(一)VisualC++6.0集成開發(fā)環(huán)境簡(jiǎn)介由于這些年C++語言程序普及,VisualC++6.0集成開發(fā)環(huán)境作為一種功能強(qiáng)大程序編譯器也被相稱多程序員所使用,使用VisualC++也可以完畢C語言編譯。由于VisualC++集成開發(fā)環(huán)境運(yùn)營于Windows下,對(duì)于習(xí)慣于圖形界面顧客來說是比較易學(xué),因而,簡(jiǎn)要簡(jiǎn)介一下如何用VisualC++來完畢C語言程序設(shè)計(jì)。VisualC++也有各種版本,本書中使用比較普及VisualC++6.0集成開發(fā)環(huán)境。(二)VisualC++6.0集成開發(fā)環(huán)境安裝VisualC++中文版集成開發(fā)環(huán)境安裝比較簡(jiǎn)樸,在輸入SETUP執(zhí)行后,可以按照提示信息完畢程序安裝,在這里不再詳述。四、實(shí)驗(yàn)內(nèi)容(一)創(chuàng)立一種新文獻(xiàn)夾為了以便管理自己C語言程序,在啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境前,一方面在E盤創(chuàng)立一種新文獻(xiàn)夾,以便存儲(chǔ)自己C語言程序。(二)啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境如圖1-1所示,單擊“開始”→“程序”→MicrosoftVisualStudio6.0→MicrosoftVisualC++6.0,就可以啟動(dòng)VisualC++6.0集成開發(fā)環(huán)境。啟動(dòng)后VisualC++6.0集成開發(fā)環(huán)境如圖1-2所示。(三)開始一種新程序1.創(chuàng)立文獻(xiàn)單擊主菜單中“文獻(xiàn)”→“新建”菜單命令,彈出“新建”對(duì)話框,在“新建”對(duì)話框中選取“文獻(xiàn)”選項(xiàng)卡。在左邊列出選項(xiàng)中,選取“C++SourceFile”;在右邊相應(yīng)對(duì)話框中,輸入文獻(xiàn)名稱“c1-1.c”及保存位置,如圖1-3所示。單擊“擬定”按鈕。圖1-1啟動(dòng)VisualC++6.0辦法圖1-2VisualC++6.0中文版集成開發(fā)環(huán)境E盤新建文獻(xiàn)夾E盤新建文獻(xiàn)夾圖1-3創(chuàng)立新C源文獻(xiàn)進(jìn)入VisualC++6.0集成環(huán)境代碼編輯窗口,如圖1-4所示。圖1-4VisualC++6.0集成環(huán)境代碼編輯窗口2.代碼編輯在VisualC++6.0代碼編輯窗口中,輸入如下所示源代碼,完畢后如圖1-4中所示。程序代碼:/*c1-1.cC語言第一種程序*/#include"stdio.h"voidmain(){ printf("*\n");printf("***\n");printf("*****\n");}3.程序編譯、連接與運(yùn)營將C語言源代碼編譯成計(jì)算機(jī)能執(zhí)行目的代碼。單擊主菜單下“組建”→“編譯[c1-1.c]”(或者是工具欄上按鈕或按快捷鍵Ctrl+F7),此時(shí)將彈出一種對(duì)話框,詢問與否創(chuàng)立一種項(xiàng)目工作區(qū),選取“是(Y)”。VisualC++6.0集成開發(fā)環(huán)境會(huì)自動(dòng)在c1-1.c文獻(xiàn)所在文獻(xiàn)夾中建立相應(yīng)項(xiàng)目文獻(xiàn)。編譯時(shí),在下方輸出框中將顯示出相應(yīng)編譯闡明,如圖1-5所示。如果代碼編譯無誤,最后將顯示:c1-1.obj-0error(s),0warning(s)這闡明編譯沒有錯(cuò)誤(error)和警告(warning),生成目的文獻(xiàn)c1-1.obj,程序編譯順利完畢。目的文獻(xiàn)(.obj)不能被計(jì)算機(jī)直接執(zhí)行,接下來將目的文獻(xiàn)(.obj)和有關(guān)庫函數(shù)或目的程序連接成為可執(zhí)行程序(.exe)。工具欄編譯按鈕工具欄編譯按鈕編譯信息窗口圖1-5VisualC++6.0集成環(huán)境下編譯源程序單擊主菜單下“組建”→“批組建”命令,將彈出如圖1-6所示對(duì)話框。圖1-6VisualC++6.0集成環(huán)境下批組建對(duì)話框保證選中“c1-1-Win32Release”復(fù)選框,這樣生成可執(zhí)行文獻(xiàn)才是發(fā)行版程序,否則生成是調(diào)試(Debug)版程序。單擊“創(chuàng)立”按鈕,生成可執(zhí)行文獻(xiàn)c1-1.exe。如果在“批組建”對(duì)話框中選中了兩個(gè)復(fù)選框,可以看到程序中生成了兩個(gè)c1-1.exe可執(zhí)行文獻(xiàn),一種文獻(xiàn)為調(diào)試版本,存儲(chǔ)在與c1-1.c同一文獻(xiàn)夾下Debug文獻(xiàn)夾中;另一種是發(fā)行版本,保存在與c1-1.c同一文獻(xiàn)夾下Release文獻(xiàn)夾中。這一步只是為了生成發(fā)行版程序文獻(xiàn),只有在程序準(zhǔn)備發(fā)行時(shí)才需要執(zhí)行這種編譯。在普通狀況下,可以單擊主菜單下“組建”→“組建[c1-1.exe]”(或工具欄按鈕或按快捷鍵F7),直接生成調(diào)試版本程序就可以了。編譯、連接完畢后,c1-1.exe已經(jīng)是一種獨(dú)立可執(zhí)行程序,可以在Windows資源管理器中直接執(zhí)行,也可以在VisualC++6.0集成開發(fā)環(huán)境中運(yùn)營。單擊主菜單下“組建”→[執(zhí)行c1-1.exe](或工具欄按鈕或按快捷鍵Ctrl+F5),此時(shí)彈出一種控制臺(tái)程序窗口,程序?qū)Φ倪\(yùn)營,如圖1-7所示。按任意鍵后返回VisualC++6.0集成開發(fā)環(huán)境。圖1-7VisualC++6.0集成環(huán)境下程序運(yùn)營成果4.關(guān)閉工作空間當(dāng)?shù)?~3步工作完畢后,應(yīng)當(dāng)將工作保存下來,并關(guān)閉工作空間,以便做下一種新程序。單擊主菜單下“文獻(xiàn)”→“保存所有”,然后再單擊“文獻(xiàn)”→“關(guān)閉工作空間”菜單命令,詢問確認(rèn)要關(guān)閉所有文檔窗口,選取“是(Y)”。(四)按照(三)操作,輸入下面程序,運(yùn)營并查看輸出成果。/*c1-2.cC語言第二個(gè)程序*/#include"stdio.h"voidmain(){ intc,a=3,b=5;c=a+b;printf("a=%d,b=%d,c=%d\n",a,b,c);}(五)打開已有文獻(xiàn)在打開已有文獻(xiàn)時(shí)一定要先確認(rèn)關(guān)閉了工作空間,然后單擊主菜單下“文獻(xiàn)”→“打開”命令,選?。ㄈ﹦?chuàng)立c1-1.c文獻(xiàn),然后打開。(六)重新開始一種新程序關(guān)閉所有工作空間,點(diǎn)擊VisualC++6.0窗口關(guān)閉按鈕即可退出VisualC++6.0集成環(huán)境,按照(二)、(三)再次進(jìn)入VisualC++6.0集成環(huán)境,輸入如下程序:/*c1-3.cC語言第三個(gè)程序*/#include"stdio.h"voidmain(){inta=38;printf("%d,%5d,%-5d\n",a,a,a);printf("%d,%o,%x,%u\n",a,a,a,a);}注意觀測(cè)兩個(gè)printf函數(shù)語句輸出成果有何不同?(七)在VisualC++6.0集成環(huán)境,輸入如下程序:/*c1-4.cC語言第四個(gè)程序*/#include"stdio.h"voidmain(){longinta=32767;printf("a=%ld\t",a);printf("a=%u\t",a);printf("a=%d\n",a);}將程序中a改為a=65535,并再次運(yùn)營程序,觀測(cè)成果。(八)在VisualC++6.0集成環(huán)境,,輸入如下程序:/*c1-5.cC語言第五個(gè)程序*/#include"stdio.h"voidmain(){charc1=97,c2=98;inta=97,b=98;printf("%3c,%3c\n",c1,c2);printf("%d,%d\n",c1,c2);printf("\n%c%c\n",a,b);}觀測(cè)程序運(yùn)營成果,掌握int與char類型數(shù)據(jù)互通性。(九)在VisualC++6.0集成環(huán)境,輸入如下程序:/*c1-6.cC語言第六個(gè)程序*/#include"stdio.h"voidmain(){inta,b;a=2;b=1%a;printf("%d\n",1/a);printf("b=%d\n",b);printf("%f%f\n",(float)(1/a),(float)b);}觀測(cè)程序運(yùn)營成果,(十)在VisualC++6.0集成環(huán)境,輸入如下程序:/*c1-7.cC語言第七個(gè)程序*/#include"stdio.h"voidmain(){inti,j;i=3;j=4;printf("%d,%d\n",i++,++j);printf("%d,%d\n",i,j);printf("%d,%d\n",-i++,-++j);}(十一)在VisualC++6.0集成環(huán)境,輸入如下程序/*c1-8.cC語言第八個(gè)程序*/#include"stdio.h"voidmain(){inta,b;a=5;a-=a*a;printf("a=%d\n",a);b=(a=3*5,a*4,a+5);printf("a=%d,b=%d\n",a,b);}(十二)下面程序,計(jì)算輸出當(dāng)x=2.5,a=7,y=4.7時(shí),表達(dá)式/*c1-9.cC語言第九個(gè)程序*/#include"stdio.h"voidmain(){_________a=7;floatx=2.5,y=4.7,z
;z=x+a%3*(int)(x+y)%2/4;printf("z=%f\n",z);}程序不完整,請(qǐng)刪除橫線后填空并運(yùn)營程序。五、實(shí)驗(yàn)注意事項(xiàng)(一)在VisualC++6.0集成環(huán)境VisualC++6.0集成環(huán)境(二)由于C程序運(yùn)營必要從main函數(shù)開始,因而一種C程序要有一種main函數(shù),且只能有一種main函數(shù)。當(dāng)一種程序運(yùn)營結(jié)束之后,一定要先“文獻(xiàn)”→“關(guān)閉工作空間”,然后再開始創(chuàng)立一種新C程序。(三)在程序輸入過程中:1.要注意區(qū)別大小寫;2.要注意程序中需要空格地方一定要留空格(如inta=3,b=5;中int和a之間必要留空格);3.注意“\”與“/”區(qū)別。4.所定義變量類型與輸入數(shù)據(jù)類型要一致,輸出時(shí)格式一定要滿足數(shù)據(jù)大小。5.注意實(shí)驗(yàn)內(nèi)容(十二)中當(dāng)運(yùn)算對(duì)象均為整數(shù)時(shí)“/”運(yùn)算符使用,“%”運(yùn)算符兩邊一定是整型數(shù)據(jù)。6.注意自加和自減運(yùn)算符運(yùn)算規(guī)則,仔細(xì)分析實(shí)驗(yàn)內(nèi)容(十)中程序輸出成果。六、思考題(一)有如下程序:#include"stdio.h"voidmain(){inta=-1;printf("%d,%o,%x,%u\n",a,a,a,a);}printf語句運(yùn)營成果是_______________。(二)有如下程序:#include"stdio.h"voidmain(){charc1=97,c2=98;inta=97,b=98;printf("%3c,%3c\n",c1,c2);printf("%d,%d\n",c1,c2);printf("%c%c\n",a,b);}最后一種printf語句運(yùn)營成果是_______________。(三)有如下程序:#include"stdio.h"voidmain(){inti,j;i=3;j=4;printf("%d%d\n",i++,++j);printf("%d,%d\n",i,j);printf("%d,%d\n",-i++,-++j);}最后一種printf語句運(yùn)營成果是_______________。(四)程序填空:#include"stdio.h"voidmain(){_________a=7;floatx=2.5,y=4.7,z;z=x+a%3*(int)(x+y)%2/4;printf("z=%f\n",z);}程序中空格處應(yīng)填_______________。實(shí)驗(yàn)二數(shù)據(jù)類型、運(yùn)算符和表達(dá)式一、實(shí)驗(yàn)?zāi)浚?)理解C語言數(shù)據(jù)類型意義,掌握基本數(shù)據(jù)類型變量特點(diǎn)和定義辦法。(2)學(xué)會(huì)使用C算術(shù)運(yùn)算符,以及包括這些運(yùn)算符算術(shù)表達(dá)式。(3)掌握自加(++)和自減(--)運(yùn)算符使用。(4)進(jìn)一步熟悉C程序編輯、編譯、連接和運(yùn)營過程。二、實(shí)驗(yàn)要點(diǎn)基本數(shù)據(jù)類型涉及整型、字符型、實(shí)型。三、實(shí)驗(yàn)規(guī)定(1)上機(jī)前先閱讀和編寫如下要調(diào)試程序。(2)上機(jī)輸入和調(diào)試程序并存在磁盤上。(3)檢查實(shí)驗(yàn)成果與否對(duì)的。四、實(shí)驗(yàn)內(nèi)容(如下內(nèi)容在實(shí)驗(yàn)報(bào)告中實(shí)驗(yàn)預(yù)習(xí)報(bào)告內(nèi)容中完畢)1.調(diào)試程序,分析輸出成果(1)輸入并運(yùn)營如下程序。main(){floata,b;a=123456.789e5;b=a+20;printf("a=%f,b=%f\n",a,b);}將第二行改為:doublea,b;重新運(yùn)營該程序,分析運(yùn)營成果。闡明:由于實(shí)型變量值是用有限存儲(chǔ)單元存儲(chǔ),因而其有效數(shù)字位數(shù)是有限。float型變量最多只能保證7位有效數(shù)字,背面數(shù)字是無意義,不能精確表達(dá)該數(shù)。(2)輸入并運(yùn)營如下程序。main(){charc1,c2;c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}①將第二行改為:intc1,c2;再運(yùn)營。②再將第三行改為:c1=300;c2=400;再運(yùn)營,分析運(yùn)營成果。闡明:字符型數(shù)據(jù)可作為整型數(shù)據(jù)解決,整型數(shù)據(jù)也可以作為字符型數(shù)據(jù)解決,但應(yīng)注意字符數(shù)據(jù)只占一種字節(jié),它只能存儲(chǔ)0-255范疇整數(shù)。2.完畢如下填空,并把程序調(diào)通,寫出運(yùn)營成果。下面程序計(jì)算由鍵盤輸入任意兩個(gè)整數(shù)平均值:main(){intx,y;;scanf(“%d,%d”,&x,&y);;printf("Theaverageis:%f",a);}3.指出如下程序錯(cuò)誤并改正,上機(jī)把程序調(diào)通main();{ inta;a=5;printf(“a=%d,a)}4.編寫程序并上機(jī)運(yùn)營要將“China”譯成密碼,譯碼規(guī)律是:用本來字母背面第3個(gè)字母代替本來字母。例如,字母“A”背面第4個(gè)字母是“E”,用“E”代替“A”。因而,“China”應(yīng)譯為“Fklqd”。請(qǐng)編一程序,用賦初值辦法使c1、c2、c3、c4、c5五個(gè)變量值分別為‘C’、‘h’、‘i’、‘n’、‘a(chǎn)’,通過運(yùn)算,使c1、c2、c3、c4、c5分別變?yōu)椤瓼’、‘k’、‘l’、‘q’、‘d’、,并輸出。輸入程序,并運(yùn)營該程序。分析與否符合規(guī)定。五、思考與總結(jié)(1)總結(jié)各種整型變量取值范疇。(2)總結(jié)各種實(shí)型變量有效數(shù)字位數(shù)和取值范疇。(3)總結(jié)算術(shù)運(yùn)算符和自加、自減運(yùn)算符優(yōu)先級(jí)與結(jié)合性。實(shí)驗(yàn)三選取構(gòu)造程序設(shè)計(jì)一、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)二、實(shí)驗(yàn)?zāi)浚ㄒ唬┱莆誄語言關(guān)系表達(dá)式和邏輯表達(dá)式運(yùn)算和使用;(二)對(duì)的使用條件控制語句(if語句、switch語句)進(jìn)行選取構(gòu)造程序設(shè)計(jì)。三、預(yù)習(xí)規(guī)定(一)關(guān)系運(yùn)算符和關(guān)系表達(dá)式、邏輯運(yùn)算符和邏輯表達(dá)式;(二)if語句三種形式(單分支、雙分支、多分支),以及if語句嵌套;(三)switch語句形式。四、實(shí)驗(yàn)內(nèi)容(一)分析下面程序,掌握關(guān)系及邏輯表達(dá)式運(yùn)算規(guī)則。/*c3-1.c關(guān)系及邏輯表達(dá)式運(yùn)算規(guī)則*/#include"stdio.h"voidmain(){inta=3,b=5,c=8;if(a++<3&&c--!=0)b=b+1;printf("a=%d\tb=%d\tc=%d\n",a,b,c);}注意該程序中條件判斷表達(dá)式a++<3&&c--!=0是一種邏輯表達(dá)式,關(guān)系表達(dá)式a++<3值為假,因而后一某些c--!=0就不再計(jì)算。試比較下列各某些運(yùn)營成果。#include"stdio.h"voidmain(){inta=3,b=5,c=8;if(a++<3&&c--!=0)b=b+1;printf("a=%d\tb=%d\tc=%d\n",a,b,c);inta=3,b=5,c=8;if(c--!=0&&a++<3)b=b+1;printf("a=%d\tb=%d\tc=%d\n",a,b,c);inta=3,b=5,c=8;if(a++<3||c--!=0)b=b+1;printf("a=%d\tb=%d\tc=%d\n",a,b,c);inta=3,b=5,c=8;if(c--!=0||a++<3)b=b+1;printf("a=%d\tb=%d\tc=%d\n",a,b,c);}(二)輸入下面兩段程序并運(yùn)營,掌握case語句中break語句作用。1./*c3-2.c*//*c3-3.c*//*不含breakswitch*//*含breakswitch*/#include"stdio.h"#include"stdio.h"voidmain()voidmain(){inta,m=0,n=0,k=0; {inta,m=0,n=0,k=0;scanf("%d",&a); scanf("%d",&a);switch(a) switch(a){case1:m++; {case1:m++;break;case2: case2:case3:n++; case3:n++;break;case4: case4:case5:k++; case5:k++;}}printf("%d,%d,%d\n",m,n,k);printf("%d,%d,%d\n",m,n,k);}}分別從鍵盤上輸入1、3、5,寫出程序運(yùn)營成果。(三)完善程序,從鍵盤上輸入x值,按下式計(jì)算y值。編程提示:注意邏輯表達(dá)式對(duì)的表達(dá)辦法,數(shù)學(xué)中1≤x<10應(yīng)使用C語言邏輯表達(dá)式(x>=1&&x<10)來表達(dá)。下面是用多分支選取構(gòu)造實(shí)現(xiàn)本題程序構(gòu)造:/*c3-4.cif語句實(shí)現(xiàn)多分支構(gòu)造*/#include"stdio.h"voidmain(){定義變量;輸入x;if(_______________)//按y=x為變量y賦值;elseif(_______________)//按y=2x-1為變量y賦值;else_______________//按y=3x-11為變量y賦值;printf("y=%f\n",y);}注意:在賦值語句中2x應(yīng)當(dāng)寫成2*x。(四)編寫程序,給出一種百分制成績(jī),規(guī)定輸出相應(yīng)級(jí)別A、B、C、D、E。90分以上為'A',80~89分為'B',70~79分為'C',60~69分為'D',60分如下為'E'。編程提示:1.先定義一種整型變量存儲(chǔ)百分制成績(jī)、定義一種字符型變量存儲(chǔ)相應(yīng)級(jí)別成績(jī);2.輸入百分制成績(jī);3.將百分制成績(jī)按10分,分檔作為switch語句中括號(hào)內(nèi)表達(dá)式;4.按 case10: case9: case8: case7: case6: default:這六種匹配狀況分別選取不同入口;5.輸出轉(zhuǎn)換后級(jí)別成績(jī)。(五)下面程序運(yùn)營時(shí)從鍵盤上分別輸入(20,15),(15,20),寫出運(yùn)營成果。/*c3-5.c分支構(gòu)造中復(fù)合語句*/#include"stdio.h"voidmain(){inta,b,t;t=0;scanf("%d,%d",&a,&b);if(a>b){t=a;a=b;b=t;}printf("a=%d,b=%d\n",a,b);}(六)編寫程序,給出一種不多于3位正整數(shù)n,規(guī)定:(1)求出它是幾位數(shù);(2)分別打印出每一位數(shù)字(數(shù)字之間加一種空格);(3)按逆序打印出各位數(shù)字(數(shù)字之間加一種空格)。編程提示:1.定義變量(考慮需要幾種變量)并輸入一種3位如下正整數(shù)n2.將n拆提成三個(gè)一位數(shù):表達(dá)式:n%10可將一種三位數(shù)n拆分出三位數(shù)中個(gè)位數(shù);表達(dá)式:n/100可將一種三位數(shù)n拆分出三位數(shù)中百位數(shù);表達(dá)式:((n%100))/10或(n-(n/100)*100)/10可將一種三位數(shù)n拆分出三位數(shù)中十位數(shù)。3.用一種嵌套選取構(gòu)造,按照百位數(shù)、十位數(shù)與否為0決定n為幾位數(shù)。4.按相反順序輸出n。思考:如果是對(duì)一種5位正整數(shù)進(jìn)行上述解決,程序應(yīng)如何改動(dòng)?(七)寫出與表達(dá)式z=(x>=y?x:y)等價(jià)if語句,并上機(jī)驗(yàn)證。五、實(shí)驗(yàn)注意事項(xiàng)(一)C程序中表達(dá)比較運(yùn)算等號(hào)用“==”表達(dá),賦值運(yùn)算符用“=”表達(dá),不能將賦值號(hào)“=”用于比較運(yùn)算。(二)控制表達(dá)式是指任何合法C語言表達(dá)式(不只限于關(guān)系或邏輯表達(dá)式),只要表達(dá)式值為“非零”,則為“真”,“零”則為“假”(三)在if語句嵌套構(gòu)造中,else與if配對(duì)原則是:每個(gè)else總是與同一種程序中、在前面浮現(xiàn)、并且距它近來一種尚未配對(duì)if構(gòu)成配對(duì)關(guān)系。(四)case及背面常量表達(dá)式,實(shí)際僅是起標(biāo)號(hào)作用??刂票磉_(dá)式值與某個(gè)狀況常量一旦匹配,那么,在執(zhí)行下面語句過程中,只要不遇到break語句,就始終執(zhí)行下去,而不再鑒別與否匹配。容許浮現(xiàn)各種“case”與一組語句相相應(yīng)狀況。六、思考題(一)下面程序功能是實(shí)現(xiàn)表達(dá)式z=(x>=y?x:y),請(qǐng)將程序填寫完整。/*分支構(gòu)造程序*/#include"stdio.h"voidmain(){intx,y,z;printf("Pleaseinputx,y:");scanf("%d%d",&x,&y);if(________)z=x;elsez=y;printf("z=%d",z);}(二)下面程序運(yùn)營成果為_______________。/*分支構(gòu)造程序*/#include"stdio.h"voidmain(){inta=1,b=5,c=8;if(a++<3&&c--!=0)b=b+1;printf("a=%d,b=%d,c=%d\n",a,b,c);}(三)程序填空,從鍵盤上輸入x值,按下式計(jì)算y值。/*多分支構(gòu)造程序*/#include"stdio.h"voidmain(){floatx,y;printf("x=");scanf("%f",&x);if(_________)y=x;elseif(x>=1&&x<10)y=2*x-1;elsey=3*x-11;printf("y=%f\n",y);}(四)下面程序運(yùn)營時(shí)從鍵盤上輸入15,20,運(yùn)營成果為_______________。/*分支構(gòu)造程序*/#include"stdio.h"voidmain(){inta,b,t;t=0;scanf("%d,%d",&a,&b);if(a>b){t=a;a=b;b=t;}printf("b=%d\n",b);}
實(shí)驗(yàn)四循環(huán)構(gòu)造程序設(shè)計(jì)(一)一、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)二、實(shí)驗(yàn)?zāi)浚ㄒ唬┱莆沼脀hile,do-while,for語句實(shí)現(xiàn)循環(huán)辦法;(二)掌握在設(shè)計(jì)條件型循環(huán)構(gòu)造程序時(shí),如何對(duì)的地設(shè)定循環(huán)條件,以及如何控制循環(huán)次數(shù)。(三)掌握與循環(huán)關(guān)于算法。三、預(yù)習(xí)規(guī)定預(yù)習(xí)教材關(guān)于while,do-while,for語句語法格式,并能通過這三種語句編寫、調(diào)試單層循環(huán)構(gòu)造程序。四、實(shí)驗(yàn)內(nèi)容(一)分析并運(yùn)營下面程序段,循環(huán)體執(zhí)行次數(shù)是__________。inta=10,b=0;do{b+=2;a-=2+b;}while(a>=0);(二)當(dāng)執(zhí)行如下程序段時(shí),循環(huán)體執(zhí)行次數(shù)是__________。x=-1;do{x=x*x;}while(!x);(三)編程求1!+2!+3!+……+20!值。注意:依照題目,考慮所定義各個(gè)變量應(yīng)當(dāng)為什么種類型。程序構(gòu)造如下:/*c4-1.c求1!+2!+3!+……+20!*/#include"stdio.h"voidmain(){定義變量i作為循環(huán)控制變量;定義變量p和sum分別存儲(chǔ)各個(gè)整數(shù)階乘和階乘之和;變量p和sum賦初值;for(i=1;i<=20;i++){變量p連乘;變量sum累加;}輸出sum值;}(四)編寫一種程序,求出兩個(gè)數(shù)m和n最大公約數(shù)和最小公倍數(shù)。編程提示:求最大公約數(shù)辦法有三種:1.從兩個(gè)數(shù)中較小數(shù)開始向下判斷,如果找到一種整數(shù)能同步被m和n整除,則終結(jié)循環(huán)。設(shè)n為m和n中較小數(shù),則如下程序段可實(shí)現(xiàn):for(k=n;k>=1;k--)if(m%k==0&&n%k==0)break;k即為最大公約數(shù)。/*c4-2.c求最大公約數(shù)算法1*/#include"stdio.h"voidmain(){}2.從整數(shù)1開始向上找,直至m和n中較小數(shù),每找到一種能同步被m和n整除整數(shù),將其存入一種變量中,當(dāng)循環(huán)結(jié)束時(shí),變量中存儲(chǔ)即為最大公約數(shù)。設(shè)n為m和n中較小數(shù),則如下程序段可實(shí)現(xiàn):for(k=1;k<=n;k++)if(m%k==0&&n%k==0)x=k;變量x值即為最大公約數(shù)。/*c4-3.c求最大公約數(shù)算法2*/#include"stdio.h"voidmain(){}3.用輾轉(zhuǎn)相除法,即將求m和n最大公約數(shù)問題轉(zhuǎn)化為求其中除數(shù)和兩個(gè)數(shù)相除所得余數(shù)公約數(shù)。每次循環(huán)中,先求兩個(gè)數(shù)余數(shù),然后以除數(shù)作為被除數(shù),以余數(shù)作為除數(shù),當(dāng)余數(shù)為0時(shí)結(jié)束循環(huán),此時(shí)除數(shù)即為最大公約數(shù)。設(shè)m和n中n為較小數(shù),則可用如下程序段實(shí)現(xiàn):b=m%n;while(b!=0){m=n;n=b;b=m%n;}printf("%d\n",n);/*c4-4.c求最大公約數(shù)算法3*/#include"stdio.h"voidmain(){}類似地,求最小公倍數(shù)辦法也可以從m和n中較大數(shù)開始向上找,或者從m*n向下找,請(qǐng)自己考慮程序設(shè)計(jì)辦法。此外,兩個(gè)數(shù)最大公約數(shù)和最小公倍數(shù)關(guān)系為:最小公倍數(shù)=m*n/最大公約數(shù)
可運(yùn)用此關(guān)系進(jìn)行程序設(shè)計(jì)。(五)編程實(shí)現(xiàn),從鍵盤上輸入一行字符,記錄其中英文字母、數(shù)字、空格和其他字符個(gè)數(shù)。編程提示:先定義一種字符型變量(如c),再定義4個(gè)整型變量作為計(jì)數(shù)器,作為計(jì)數(shù)器變量要先賦初值0。在循環(huán)中每次從鍵盤上讀入一種字符,在循環(huán)體中對(duì)讀入字符進(jìn)行判斷,相應(yīng)計(jì)數(shù)器加1,當(dāng)讀入字符為’\n’時(shí)結(jié)束。編程中可使用如下循環(huán)構(gòu)造:while((c=getchar())!=’\n’)){if(……)……;elseif(……)……;……;else……;}/*c4-5.c記錄字符串中指定字符個(gè)數(shù)*/#include"stdio.h"voidmain(){}注意:1.while((c=getchar())!=’\n’))中括號(hào)使用,第二層小括號(hào)不能省略,想一想為什么?2.字符常量’0’(六)下面程序功能是:計(jì)算1到100之間奇數(shù)之和及偶數(shù)之和,并輸出。請(qǐng)?jiān)诔绦蛑袡M線上填入恰當(dāng)內(nèi)容,將程序補(bǔ)充完整并運(yùn)營。/*c4-6.c計(jì)算1到100之間奇數(shù)之和及偶數(shù)之和*/#include"stdio.h"voidmain(){inta,b,c,i;_____________;/*變量初始化*/for(i=0;i<=100;i+=2){a+=i;/*變量a存儲(chǔ)偶數(shù)和*/____________;c+=b;/*變量c存儲(chǔ)奇數(shù)和*/}printf("sumofevensis%d\n",a);printf("sumofoddsis%d\n",________);}(七)編程打印出所有“水仙花數(shù)”,所謂水仙花數(shù)是指一種3位數(shù),其各位數(shù)字立方和等于該數(shù)自身。如153=13+33+53。編程提示:定義一種變量作為循環(huán)變量,再定義3個(gè)變量分別存儲(chǔ)三位數(shù)每位數(shù)字,在循環(huán)體中將一種三位數(shù)拆提成個(gè)位、十位、百位后判斷循環(huán)變量值與否為水仙花數(shù),如果是則輸出,否則不輸出。程序基本構(gòu)造為:/*c4-7.c打印出所有“水仙花數(shù)”*/#include"stdio.h"voidmain(){定義4個(gè)整型變量;for(j=100;j<=999;j++){a=j/100;/*分離出百位數(shù)*/b=j/10-a*10;/*分離出十位數(shù)*/c=___________;/*分離出個(gè)位數(shù)*/if(j==a*a*a+b*b*b+c*c*c)輸出j;}printf("\n");}(八)如下程序功能是:從鍵盤上輸入若干個(gè)學(xué)生成績(jī),記錄并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入。請(qǐng)將程序補(bǔ)充完整。/*c4-8.c求最大值最小值程序*/#include"stdio.h"voidmain(){floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;while(_______________){if(x>amax)amax=x;if(_______________)amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}(九)求兩個(gè)正整數(shù)[m,n]之間所有既不能被3整除也不能被7整除整數(shù)之和。編程提示:定義兩個(gè)變量m,n和t,再定義一種循環(huán)變量和成果變量s,從鍵盤輸入m和n值,判斷兩個(gè)變量值,如果m>n,則互換兩個(gè)變量。然后用循環(huán)依次判斷m和n之間每一種數(shù),在循環(huán)體中通過條件語句來判斷這個(gè)數(shù)與否既不能被3整除也不能被7整除,如果滿足條件,累加求和,如果不滿足,則繼續(xù)循環(huán)。程序基本構(gòu)造如下:/*c4-9.c按條件求數(shù)列和*/#include"stdio.h"voidmain(){定義變量;變量賦初值;輸入m,n值;if(m>n)m和n互換;for(_______________)if(i%3!=0&&i%7!=0)變量s累加求和;printf("Sumis:%ld\n",s);}(十)下面程序功能是:計(jì)算正整數(shù)num各位上數(shù)字之和。例如,若輸入:252,則輸出應(yīng)當(dāng)是:9;若輸入:202,則輸出應(yīng)當(dāng)是:4。請(qǐng)將程序補(bǔ)充完整。/*c4-10.c求整數(shù)各位數(shù)字和*/#include"stdio.h"voidmain(){intnum,k;_______________;/*k賦初值*/printf("\Pleaseenteranumber:");scanf("%d",&num);do{k=_______________;/*取最低位并累加*/num/=10; /*去掉最低位*/}while(num);printf("\n%d\n",k);}五、實(shí)驗(yàn)注意事項(xiàng)(一)while,do-while,for語句中應(yīng)有使循環(huán)趨向于結(jié)束語句,否則就也許構(gòu)成死循環(huán)。(二)while,do-while語句什么狀況下運(yùn)營成果是相似,什么狀況下不同。(三)注旨在循環(huán)構(gòu)造程序設(shè)計(jì)中,對(duì)的使用{}六、思考題(一)求兩個(gè)正整數(shù)x和y最大公約數(shù),請(qǐng)?zhí)羁铡?*求最大公約數(shù)程序*/#include"stdio.h"voidmain(){intx,y,t,i;scanf("%d,%d",&x,&y);/if(x>y){t=x;x=y;y=t;}for(i>=1;i<=x;i++){if(x%i==0&&y%i==0)break;}printf("%d\n",i);}(二)計(jì)算1到100之間奇數(shù)之和及偶數(shù)之和。請(qǐng)?zhí)羁铡?*計(jì)算1到100之間奇數(shù)之和及偶數(shù)之和*/#include"stdio.h"voidmain(){inta,b,c,i;a=0,c=0;/*變量賦初值*/for(i=0;i<=100;i+=2){a+=i;/*變量a存儲(chǔ)偶數(shù)和*/_______________;c+=b;/*變量c存儲(chǔ)奇數(shù)和*/}printf("SumofEvensis%d\n",a);printf("SumofOddsis%d\n",c-101);}(三)下面程序功能是:計(jì)算正整數(shù)num各位上數(shù)字之和。例如,若輸入:252,則輸出應(yīng)當(dāng)是:9;若輸入:202,則輸出應(yīng)當(dāng)是:4。請(qǐng)將程序補(bǔ)充完整。/*計(jì)算整數(shù)各位數(shù)字和*/#include"stdio.h"voidmain(){intnum,k=0;printf("請(qǐng)輸入一種整數(shù):");scanf("%d",&num);do{k=____________;num/=10;}while(num);printf("\n%d\n",k);}(四)求兩個(gè)正整數(shù)[m,n]之間所有既不能被3整除也不能被7整除整數(shù)之和。請(qǐng)?zhí)羁铡?*按條件求數(shù)列和*/#include"stdio.h"voidmain(){intm,n,i,t;longints=0;scanf("%d,%d",&m,&n);if(m>n){t=m;m=n;n=t;}for(_______________)if(i%3!=0&&i%7!=0)s+=i;printf("Sumis:%ld\n",s);}
實(shí)驗(yàn)五循環(huán)構(gòu)造程序設(shè)計(jì)(二)一、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)二、實(shí)驗(yàn)?zāi)浚ㄒ唬┱莆帐褂胒or,while,do-while語句實(shí)現(xiàn)循環(huán)嵌套辦法;(二)鞏固break和continue語句使用。三、預(yù)習(xí)內(nèi)容預(yù)習(xí)教材中關(guān)于用for,while,do-while語句實(shí)現(xiàn)循環(huán)嵌套辦法以及循環(huán)嵌套執(zhí)行過程。四、實(shí)驗(yàn)內(nèi)容(一)依照公式:sum=,計(jì)算sum值。注意:依照題目,考慮所定義各個(gè)變量應(yīng)當(dāng)為什么種類型。編程提示:定義一種變量存儲(chǔ)最后求和成果(假設(shè)為sum),sum數(shù)據(jù)類型應(yīng)為實(shí)型,定義變量t計(jì)算整數(shù)階乘。使用雙重循環(huán),程序基本構(gòu)造為:for(i=1,sum=0;i<=20;i++){t賦初值1;for(j=1;j<=i;j++)變量t連乘求積;變量sum累加t倒數(shù);}注意上述程序構(gòu)造和內(nèi)循環(huán)變量終值。想一想與否可以將t=1放在外循環(huán)之前?/*c5-1.c求數(shù)列和*/#include"stdio.h"voidmain(){}(二)編程輸出九九乘法表。編程提示:咱們尋常看到乘法表是:1×1=11×2=22×2=41×3=32×3=63×3=9…1×9=9………9×9=81每個(gè)算式可以歸為:i×j=?形式,并且每行中算式數(shù)量隨著行數(shù)變化??紤]外層循環(huán)變量和內(nèi)層循環(huán)變量應(yīng)當(dāng)取何值呢?程序基本構(gòu)造為:for(i=1;i<=9;i++){for(j=1;__________;j++)輸出乘法算式;輸出回車換行符;}/*c5-2.c輸出九九乘法表*/#include"stdio.h"voidmain(){}(三)編程求100~300之間素?cái)?shù)和。編程提示:一方面,弄清素?cái)?shù)概念是本題核心,素?cái)?shù):只能被1和它自身整除數(shù)為素?cái)?shù)。判斷一種數(shù)與否為素?cái)?shù)需要使用循環(huán)構(gòu)造才干實(shí)現(xiàn),求出100~300之間所有素?cái)?shù)要使用循環(huán)嵌套構(gòu)造。程序構(gòu)造提示如下:/*c5-3.c求100~300之間素?cái)?shù)和*/#include"stdio.h"voidmain(){定義變量;外層循環(huán)變量i從100遞增到300{標(biāo)志變量賦0;內(nèi)層循環(huán)變量從2遞增到i-1如果不是素?cái)?shù)(能整除),則標(biāo)志變量賦1,跳出循環(huán);如果標(biāo)志變量為0(是素?cái)?shù)),進(jìn)行求和;}輸出求和成果;}(四)編程輸出如下圖形。*********編程提示:輸出圖形這一類問題,一方面要看一看圖形特點(diǎn),找到規(guī)律:一共有幾行,每行先輸出什么字符,輸出幾種;后輸出什么字符,輸出幾種。普通外循環(huán)變量控制行數(shù),內(nèi)循環(huán)變量控制各種字符數(shù)量。程序基本構(gòu)造為:for(i=0;i<=2;i++){持續(xù)輸出若干空格;持續(xù)輸出若干個(gè)“*”;輸出一種換行;}/*c5-4.c輸出字符圖形*/#include"stdio.h"voidmain(){}想一想,輸出下面三種圖形分別應(yīng)當(dāng)如何實(shí)現(xiàn):*********************************************************************(五)運(yùn)營如下程序,分析程序運(yùn)營成果并上機(jī)驗(yàn)證。/*c5-5.c循環(huán)構(gòu)造程序*/#include"stdio.h"voidmain(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}五、實(shí)驗(yàn)注意事項(xiàng)(一)對(duì)于雙重循環(huán)來說,外層循環(huán)往往是控制變化較慢參數(shù)(例如所求成果數(shù)據(jù)項(xiàng)個(gè)數(shù)、圖形行數(shù)等),而內(nèi)層循環(huán)變化快,普通控制數(shù)據(jù)項(xiàng)計(jì)算、圖形中各種字符數(shù)量等。(二)注旨在循環(huán)構(gòu)造程序設(shè)計(jì)中,對(duì)的使用{}(三)外層循環(huán)變量增值一次,內(nèi)層循環(huán)變量從初值到終值執(zhí)行一遍。(四)程序書寫時(shí),最佳使用縮進(jìn)構(gòu)造以使程序構(gòu)造清晰。六、思考題(一)依照公式:sum=,計(jì)算sum值,請(qǐng)把程序補(bǔ)充完整。/*求數(shù)列和*/#include"stdio.h"voidmain(){longintn,j;floatsum=0,t;for(n=1;n<=20;n++){t=1.0;for(j=1;j<=n;j++)t=t*j;________________;}printf("%10.2f\n",sum);}(二)下面函數(shù)功能是輸出九九乘法表,請(qǐng)把程序補(bǔ)充完整。/*輸出九九乘法表*/#include"stdio.h"voidmain(){inti,j;for(i=1;i<=9;i++){for(j=1;__________;j++)printf("%d*%d=%-4d",i,j,i*j);printf("\n");}}(三)下面函數(shù)功能是求出100~300間素?cái)?shù)和,請(qǐng)把程序補(bǔ)充完整。/*求100~300間素?cái)?shù)和*/#include"stdio.h"voidmain(){inti,j,flag,sum=0;for(i=100;i<=300;i++){flag=0;for(j=2;j<=i-1;j++)if(i%j==0){flag=1;break;}if(________)sum+=i;}printf("Thesumis%d\n",sum);}(四)下面程序功能是:輸出如下圖形: * *** *****請(qǐng)把程序補(bǔ)充完整。/*輸出字符圖形*/#include"stdio.h"voidmain(){inti,j,k;for(i=0;i<=2;i++){for(j=0;j<=10-i;j++)printf("");for(k=0;_______________;k++)printf("*");printf(“\n”);}}
實(shí)驗(yàn)六一維數(shù)組程序設(shè)計(jì)一、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)二、實(shí)驗(yàn)?zāi)浚ㄒ唬┱莆找痪S數(shù)組定義、初始化辦法;(二)掌握一維數(shù)組中數(shù)據(jù)輸入和輸出辦法;(三)掌握與一維數(shù)組關(guān)于程序和算法;(四)理解用數(shù)組解決大量數(shù)據(jù)時(shí)優(yōu)越性。三、預(yù)習(xí)規(guī)定(一)理解數(shù)組概念、運(yùn)用數(shù)組存儲(chǔ)數(shù)據(jù)有何特點(diǎn);(二)一維數(shù)組定義、初始化辦法;(三)一維數(shù)組中數(shù)據(jù)輸入和輸出辦法。四、實(shí)驗(yàn)內(nèi)容(一)下面幾種程序都能為數(shù)組元素賦值,請(qǐng)輸入程序并運(yùn)營。比較一下這些賦值辦法異同。1.在定義數(shù)組同步對(duì)數(shù)組初始化。/*c6-1.c在定義數(shù)組同步對(duì)數(shù)組初始化*/#include"stdio.h"voidmain(){printf("\n%d%d%d%d\n",a[0],a[1],a[2],a[3]);}2.不使用循環(huán)對(duì)單個(gè)數(shù)組元素賦值。/*c6-2.c不使用循環(huán)對(duì)單個(gè)數(shù)組元素賦值*/#include"stdio.h"voidmain(){inta[4];a[0]=2;a[1]=4;a[2]=6;a[3]=8;printf("\n%d%d%d%d\n",a[0],a[1],a[2],a[3]);}3.用循環(huán)構(gòu)造,從鍵盤輸入為每個(gè)數(shù)組元素賦值,輸出各數(shù)組元素。/*c6-3.c運(yùn)用循環(huán)通過鍵盤對(duì)數(shù)組元素賦值*/#include"stdio.h"voidmain(){inti,a[4];for(i=0;i<4;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}(二)編寫一程序,為一維數(shù)組a中元素賦值,并按照逆序輸出。編程提示:通過對(duì)一維數(shù)組輸入輸出來實(shí)現(xiàn)。1.一方面復(fù)習(xí)教材上知識(shí)點(diǎn),充分理解例題。2.對(duì)一維數(shù)組輸入可以參照實(shí)驗(yàn)內(nèi)容(一)中三種辦法,選取其一輸出,用循環(huán)構(gòu)造來實(shí)現(xiàn)。3.注意是逆序輸出,可以通過輸出時(shí),在for語句中運(yùn)用循環(huán)變量遞減辦法來實(shí)現(xiàn)。/*c6-4.c運(yùn)用循環(huán)實(shí)現(xiàn)一維數(shù)組輸入輸出*/#include"stdio.h"voidmain(){inti,a[10];/*定義循環(huán)變量i和一維數(shù)組a*/for(i=0;i<=9;i++)scanf("%d",&a[i]);for(_____)/*請(qǐng)補(bǔ)充完整循環(huán)語句*/printf("%d",a[i]);/*按照逆序輸出*/printf("\n");}(三)編寫程序,輸出一維數(shù)組a中元素最小值及其下標(biāo)。編程提示:1.定義一種整型變量存儲(chǔ)最小值下標(biāo),將其初始化為0,例如:intp=0;即從數(shù)組第零個(gè)元素開始判斷。2.通過循環(huán),依次判斷數(shù)組中每一種元素a[i]與否不大于a[p],如果是,則將p和a[p]值作相應(yīng)變化。/*c6-5.c輸出一維數(shù)組中元素最小值及其下標(biāo)*/#include"stdio.h"voidmain(){inti,m=a[0];p=0;for(i=1;i<10;i++)if(a[i]<m){printf("%d,%d\n",a[p],p);/*輸出一維數(shù)組a中最小值及其下標(biāo)*/}(四)編寫一程序,求一維數(shù)組中下標(biāo)為偶數(shù)元素之和。編程提示:1.定義一種數(shù)組a并初始化。2.定義一種整型變量sum,存儲(chǔ)下標(biāo)為偶數(shù)元素和,并初始化為0。3.從數(shù)組第0個(gè)元素開始,每次循環(huán)變量遞增2,始終到數(shù)組最后一種元素,將其累加到sum變量。4.輸出sum變量即為下標(biāo)為偶數(shù)元素之和。/*c6-6.c求一維數(shù)組中下標(biāo)為偶數(shù)元素之和*/#include"stdio.h"voidmain(){inti,sum=0;/*初始化sum為0*/inta[]={2,3,4,5,6,7,8,9};for(i=0;i<8;)/*請(qǐng)補(bǔ)充完整循環(huán)語句*/sum+=a[i];printf("sum=%d\n",sum);}(五)編寫一程序,將100以內(nèi)素?cái)?shù)存儲(chǔ)到一種數(shù)組中。編程提示:這是一種雙層循環(huán)嵌套程序。1.一方面復(fù)習(xí)教材上內(nèi)容,掌握判斷素?cái)?shù)辦法。2.定義一種數(shù)組存儲(chǔ)100以內(nèi)素?cái)?shù),想一想該數(shù)組大小應(yīng)當(dāng)為多少?3.定義一種整型變量作循環(huán)變量。4.定義一種整型變量作為數(shù)組元素下標(biāo)計(jì)數(shù)器,想一想該變量應(yīng)賦什么樣初值?5.在外層循環(huán)中,對(duì)1~100之間所有整數(shù)進(jìn)行判斷;內(nèi)層循環(huán)則判斷每個(gè)整數(shù)與否為素?cái)?shù)。如果是素?cái)?shù),存儲(chǔ)到數(shù)組中,并使數(shù)組下標(biāo)變量加1;否則繼續(xù)判斷下一種整數(shù)。6.用循環(huán)語句輸出數(shù)組中所有素?cái)?shù),注意循環(huán)變量初值和終值如何擬定。(六)將一種數(shù)組中值按逆序重新存儲(chǔ)。例如,本來順序?yàn)?,6,5,4,1,2,規(guī)定改為按2,1,4,5,6,8順序存儲(chǔ)(注意是逆序存儲(chǔ)而不是逆序輸出)。編程提示:1.定義一種數(shù)組,為該數(shù)組賦值(可以在定義時(shí)初始化,也可以用循環(huán)語句)。2.在循環(huán)中,使第0個(gè)元素與第5個(gè)元素互換,第1個(gè)元素與第4個(gè)元素互換,第2個(gè)元素與第個(gè)3元素互換(注意循環(huán)次數(shù)按n/2擬定,n為數(shù)據(jù)個(gè)數(shù))。3.輸出逆序存儲(chǔ)后各數(shù)組元素(使用循環(huán)語句)。五、實(shí)驗(yàn)注意事項(xiàng)例如,有定義:inta[10];則數(shù)組元素下標(biāo)上界為9。(二)由于數(shù)組中下標(biāo)和元素位置相應(yīng)關(guān)系是:第一種元素下標(biāo)為0,第二個(gè)元素下標(biāo)為1,第三個(gè)元素下標(biāo)為2,依次類推,第n個(gè)元素下標(biāo)為n-1。(三)數(shù)值型數(shù)組要對(duì)各種數(shù)組元素賦值時(shí),使用循環(huán)語句,使數(shù)組元素下標(biāo)依次變化,從而為每個(gè)數(shù)組元素賦值。例如:inta[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);不能通過如下辦法對(duì)數(shù)組中所有元素賦值。inta[10],i;scanf("%d",&a[i]);六、思考題(一)定義一種數(shù)組名為ftop且有5個(gè)int類型元素一維數(shù)組,同步給每個(gè)元素賦初值為0,請(qǐng)寫出數(shù)組定義語句。(二)下面程序功能是:為一維數(shù)組a中元素賦值,并按照逆序輸出。請(qǐng)?jiān)诔绦蛑袡M線上填入對(duì)的內(nèi)容。#include"stdio.h"voidmain(){inti,a[10];/*定義循環(huán)變量i和一維數(shù)組a*/for(i=0;i<=9;i++)scanf("%d",&a[i]);for(;i>=0;i--)printf("%d",a[i]);/*按照逆序輸出*/printf("\n");}(三)下面程序功能是:輸出一維數(shù)組a中最小值及其下標(biāo)。請(qǐng)?jiān)诔绦蛑袡M線上填入對(duì)的內(nèi)容。#include"stdio.h"voidmain(){inti,p=0,a[10];/*定義a為數(shù)組名,p為下標(biāo)名*/for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=1;i<10;i++)if(a[i]<a[p]){;}printf("%d,%d",a[p],p);/*輸出一維數(shù)組a中最小值及其下標(biāo)*/}(四)下面程序功能是:求一維數(shù)組中下標(biāo)為偶數(shù)元素之和并輸出。請(qǐng)?jiān)诔绦蛑袡M線上填入對(duì)的內(nèi)容。#include"stdio.h"voidmain(){inti,sum=0;inta[]={2,3,4,5,6,7,8,9};for(i=0;i<8;)sum+=a[i];printf("sum=%d\n",sum);}
實(shí)驗(yàn)七二維數(shù)組程序設(shè)計(jì)一、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)二、實(shí)驗(yàn)?zāi)浚ㄒ唬┱莆斩S數(shù)組定義、賦值及輸入輸出辦法;(二)掌握與二維數(shù)組關(guān)于算法如查找、矩陣轉(zhuǎn)置等;(三)掌握在程序設(shè)計(jì)中使用數(shù)組辦法。數(shù)組是非常重要數(shù)據(jù)類型,循環(huán)中使用數(shù)組能更好地發(fā)揮循環(huán)作用,有些問題不使用數(shù)組難以實(shí)現(xiàn)。(四)掌握在VC++環(huán)境下上機(jī)調(diào)試二維數(shù)組程序辦法,并對(duì)成果進(jìn)行分析。三、預(yù)習(xí)規(guī)定熟悉二維數(shù)組定義、引用和有關(guān)算法(求最大值、最小值)程序設(shè)計(jì),同步要掌握在程序設(shè)計(jì)中運(yùn)用雙重循環(huán)來實(shí)現(xiàn)二維數(shù)組輸入和輸出。四、實(shí)驗(yàn)內(nèi)容(一)二維數(shù)組初始化,即給二維數(shù)組各個(gè)元素賦初值。下面幾種程序都能為數(shù)組元素賦值,請(qǐng)輸入程序并運(yùn)營,比較這些賦值辦法有何異同。1.在定義數(shù)組同步對(duì)數(shù)組元素分行初始化。/*c7-1.c二維數(shù)組初始化(分行)*/#include"stdio.h"voidmain(){inti,j,a[for(i=0;i<2;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}}2.不分行初始化。把{}中數(shù)據(jù)依次賦值給數(shù)組各個(gè)元素。/*c7-2.c二維數(shù)組初始化(不分行)*/#include"stdio.h"voidmain(){for(i=0;i<2;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");}}3.為某些數(shù)組元素初始化。如:數(shù)組定義語句為:inti,j,a[2][3]={{1,2},{4}};4.可以省略第一維定義,但不能省略第二維定義。如:inta[][3]={1,2,3,4,5,6};依次運(yùn)營以上程序,比較這四種定義方式不同之處。(二)求一種4×4矩陣主對(duì)角線元素之和,填空并運(yùn)營程序。編程提示:1.定義一種4行4列二維數(shù)組a。2.可運(yùn)用雙重循環(huán)嵌套為該二維數(shù)組各個(gè)數(shù)組元素賦值,普通格式為:for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);3.用循環(huán)求和,并注意矩陣對(duì)角上線元素特性是:行下標(biāo)和列下標(biāo)相似。4.輸出對(duì)角線元素之和。/*c7-3.c求一種4×4矩陣主對(duì)角線元素之和*/#include"stdio.h"voidmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,sum=0;for(i=0;i<4;i++)_____;/*把對(duì)角線元素和放在變量sum中*/printf("sum=%d\n",sum);/*輸出對(duì)角線元素和*/}(三)打印出如下楊輝三角(規(guī)定打印出10行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 1編程提示:1.楊輝三角特點(diǎn)是:第1列和對(duì)角線上元素為1,其他各元素值都是上一行上一列元素和上一行前一列元素之和。2.定義一種10×10二維數(shù)組a。3.先用一種單層循環(huán)為第一列和對(duì)角線上元素賦值。如:for(i=0;i<10;i++){4.再用一種雙重循環(huán)嵌套為其他元素賦值。for(;i<10;i++)for(;;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];想一想,劃?rùn)M線地方應(yīng)當(dāng)填入什么內(nèi)容?5.計(jì)算之后再用一種雙重循環(huán)嵌套輸出楊輝三角。注意各層循環(huán)變量初值和終值如何擬定。(四)記錄3個(gè)學(xué)生,每個(gè)學(xué)生4門課程考試成績(jī),規(guī)定輸出每個(gè)學(xué)生總成績(jī),每個(gè)學(xué)生平均成績(jī),3個(gè)學(xué)生總平均成績(jī)。填空并運(yùn)營程序。/*c7-4.c學(xué)生成績(jī)解決*/#include"stdio.h"voidmain(){intstu[3][4],i,j,t[3];floatsum=0,a[3];for(i=0;i<3;i++)/*輸入三個(gè)學(xué)生4門課程考試成績(jī)*/for(j=0;j<4;j++)scanf("%d",&stu[i][j]);for(i=0;i<3;i++){t[i]=0;for(j=0;j<4;j++){sum+=stu[i][j];/*sum存儲(chǔ)三個(gè)學(xué)生4門課程總成績(jī)*/t[i]+=stu[i][j];/*t[i]存儲(chǔ)第i個(gè)學(xué)生4門課程成績(jī)*/}printf("%-6d",t[i]);/*輸出第i個(gè)學(xué)生總成績(jī)*/;printf("%-6.2f\n",a[i]);/*a[i]存儲(chǔ)第i個(gè)學(xué)生4門課程平均成績(jī)*/}printf("average=%.2f\n",sum/12.0);}(五)已知二維數(shù)組a中元素為:443437312565求二維數(shù)組a中最大值和最小值。程序輸出應(yīng)為:Themaxis:37Theminis:3填空并運(yùn)營程序。/*c7-5.c求二維數(shù)組中元素最大值與最小值*/#include"stdio.h"voidmain(){max=a[0][0];;for(i=0;i<3;i++)for(j=0;j<3;j++){if(max<a[i][j])max=a[i][j];if(min>a[i][j])min=a[i][j];}printf("Themaxis:%d\n",max);printf("Theminis:%d\n",min);}(六)如下程序是查找二維數(shù)組a最大元素及其下標(biāo),填空并運(yùn)營程序。/*c7-6.c求二維數(shù)組中元素最大值及其下標(biāo)*/#include"stdio.h"voidmain(){inta[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}};inti,j,max,l,c;/*max存儲(chǔ)最大值,l、c分別存儲(chǔ)行和列下標(biāo)*/max=a[0][0];for(i=0;i<4;i++)for(j=0;j<4;j++)if(max<a[i][j]){printf("max=%d,l=%d,c=%d%\n",max,l,c);}(七)下面程序是自動(dòng)形成并輸出如下矩陣,填空并運(yùn)營程序。123451167811191011111111111/*c7-7.c生成指定矩陣*/#include"stdio.h"voidmain(){inti,j,k,a[5][5];k=2;for(i=0;i<5;i++)/*行循環(huán)*/for(j=0;j<5;j++)/*列循環(huán)*/if()a[i][j]=1;/*產(chǎn)生矩陣下三角元素*/elsea[i][j]=k++;/*產(chǎn)生矩陣上三角元素*/for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%4d”,a[
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場(chǎng)施工防化學(xué)災(zāi)害制度
- 應(yīng)急物資裝備應(yīng)急預(yù)案
- 醫(yī)療護(hù)理醫(yī)學(xué)培訓(xùn) 吸痰護(hù)理技術(shù)課件
- DB6103T 87-2025企業(yè)簡(jiǎn)易注銷登記服務(wù)規(guī)程
- XX村電排建設(shè)及維護(hù)合同書2025
- 個(gè)人股權(quán)抵押融資合同樣本
- 臨時(shí)促銷服務(wù)合同
- 中小企業(yè)融資合作合同協(xié)議
- 京東商城代運(yùn)營合同模板
- 個(gè)人質(zhì)押貸款合同模板
- 2024電力系統(tǒng)安全規(guī)定
- 脊柱骨折與脊髓損傷護(hù)理課件
- 小學(xué)二年級(jí)語文上冊(cè)閱讀理解專項(xiàng)訓(xùn)練20篇(含答案)
- 科技論文圖表等規(guī)范表達(dá)
- 高考寫作指導(dǎo)議論文標(biāo)準(zhǔn)語段寫作課件32張
- 2021年普通高等學(xué)校招生全國英語統(tǒng)一考試模擬演練八省聯(lián)考解析
- 華能火力發(fā)電機(jī)組節(jié)能降耗技術(shù)導(dǎo)則(2023年版)
- 基礎(chǔ)知識(shí)3500個(gè)常用漢字附拼音
- 企業(yè)易制毒化學(xué)品管理培訓(xùn)
- JJF(紡織)072-2018紡織滾筒式烘干機(jī)校準(zhǔn)規(guī)范
- 羊水栓塞的應(yīng)急預(yù)案演練腳本
評(píng)論
0/150
提交評(píng)論