《c語(yǔ)言程序設(shè)計(jì)》_第1頁(yè)
《c語(yǔ)言程序設(shè)計(jì)》_第2頁(yè)
《c語(yǔ)言程序設(shè)計(jì)》_第3頁(yè)
《c語(yǔ)言程序設(shè)計(jì)》_第4頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《C語(yǔ)言程序設(shè)計(jì)》

實(shí)驗(yàn)指導(dǎo)書(shū)丁麗郭萌萌張吉玲編目錄TOC\o"1-5"\h\z\o"CurrentDocument"實(shí)驗(yàn)ー C程序的運(yùn)行環(huán)境和運(yùn)行C程序的方法 3\o"CurrentDocument"實(shí)驗(yàn)ニ數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式 10\o"CurrentDocument"實(shí)驗(yàn)三 最簡(jiǎn)單的C程序設(shè)計(jì) 15\o"CurrentDocument"實(shí)驗(yàn)四邏輯結(jié)構(gòu)程序設(shè)計(jì) 21\o"CurrentDocument"實(shí)驗(yàn)五循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 27\o"CurrentDocument"實(shí)驗(yàn)六數(shù)組 32\o"CurrentDocument"實(shí)驗(yàn)七函數(shù) 40\o"CurrentDocument"實(shí)驗(yàn)ハ編譯預(yù)處理命令 46\o"CurrentDocument"實(shí)驗(yàn)九指針 51\o"CurrentDocument"實(shí)驗(yàn)十結(jié)構(gòu)體和共同體 55\o"CurrentDocument"實(shí)驗(yàn)十一位運(yùn)算 59\o"CurrentDocument"實(shí)驗(yàn)十二文件 62實(shí)驗(yàn)ーC程序的運(yùn)行環(huán)境和運(yùn)行C程序的方法ー、實(shí)驗(yàn)?zāi)康牧私馑玫挠?jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。(3)通過(guò)運(yùn)行簡(jiǎn)單的C程序,初步了解C源程序的特點(diǎn)。二、實(shí)驗(yàn)內(nèi)容(D檢查所用的計(jì)算機(jī)系統(tǒng)是否已安裝了c編譯系統(tǒng)并確定它所在的子目錄。(2)進(jìn)入所用的集成環(huán)境。(3)熟悉集成環(huán)境的界面和有關(guān)菜單的使用方法。(4)輸入并運(yùn)行ー個(gè)簡(jiǎn)單的、正確的程序。(5)輸入并編輯ー個(gè)有錯(cuò)誤的C程序。(6)輸入并運(yùn)行ー個(gè)需要在運(yùn)行時(shí)輸人數(shù)據(jù)的程序。(7)運(yùn)行一個(gè)自己編寫(xiě)的程序。題目是教材第1章的習(xí)題1.6。即輸入a、b、c3個(gè)值,輸出其中最大者。三、實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果(D檢查所用的計(jì)算機(jī)系統(tǒng)是否已安裝了C編譯系統(tǒng)并確定它所在的子目錄。(2)進(jìn)入所用的集成環(huán)境。如果用戶計(jì)算機(jī)系統(tǒng)已經(jīng)安裝了TurboC編譯系統(tǒng),則在DOS命令狀態(tài)下鍵入命令tc。進(jìn)入TurboC集成環(huán)境后,首先在屏幕上顯示TurboC主菜單窗口,如下圖所示。

(3)熟悉集成環(huán)境的界面和有關(guān)菜單的使用方法。可以看出,在該窗口,有8個(gè)菜單條目。各菜單的意義:File處理文件(包括裝入、存盤(pán)、選擇、建立、換名寫(xiě)盤(pán)),目錄操作(包括列表、改變工作目錄),退出系統(tǒng)及調(diào)用DOS〇②Edit建立、編輯源文件。③Run控制運(yùn)行程序。如果程序已經(jīng)編譯連接好,且Debug/SourceDebugging以及Option/Compiler/Codegeneration/OBJDebugInformation開(kāi)關(guān)置為On,則可以用此菜單初始化調(diào)試階段。?Compile編譯并生成目標(biāo)程序與可執(zhí)行文件。⑤Project允許說(shuō)明程序中包含哪些文件的管理?xiàng)l目。?Options可以選擇集成環(huán)境任選項(xiàng)(如存儲(chǔ)模式、編譯時(shí)的任選項(xiàng)、診斷及連接任選項(xiàng))及定義宏;也可以記錄IncludeOutput及Library文件目錄,保存編譯任選項(xiàng)和從配置文件加載任選。⑦Debug檢查、改變變量的值,査找函數(shù),程序運(yùn)行時(shí)査看調(diào)用棧。選擇程序編譯時(shí)是否在執(zhí)行行代碼中插入調(diào)試信息。⑧Break/Watch增加、刪除、編輯監(jiān)視表達(dá)式,及設(shè)置、清除、執(zhí)行至斷點(diǎn)。特別要指出的是,除了Edit項(xiàng)外,每ー個(gè)菜單又有對(duì)應(yīng)的子菜單。而選擇Edit項(xiàng)目后,只是進(jìn)入編輯器。菜單的選擇:為了從主菜單中選擇所需要的功能,可以用以下兩種方式之??:①按F10鍵后,可以看到屏幕上部主菜單中有反白顯示,此時(shí),利用左、右光標(biāo)移動(dòng)鍵(一與f)選擇需要的菜單,然后按回車(chē)(Enter)鍵。②直接按Alt+主菜單條目中的首字母(分別為F,E,R,C,P,0,D,B),此時(shí)就會(huì)出現(xiàn)相應(yīng)的子菜單。例如,按Alt+F表示選擇文件子菜單(File)。當(dāng)出現(xiàn)子菜單時(shí),其中某個(gè)條目是高亮度的,此時(shí)可以利用上、下光標(biāo)移動(dòng)鍵(t與!)來(lái)移動(dòng)該高亮度線,從而選擇所需要的功能。在菜單調(diào)用時(shí),按Esc鍵后將直接返回到活動(dòng)窗口。(4)輸入并運(yùn)行ー個(gè)簡(jiǎn)單的、正確的程序。輸入下面的程序(教材第1章例1.1):ttinclude<stdio.h>voidmain()I:print—Thisisacprogram.\n,z);本程序的作用是輸出以下一行信息:Thisisacprogram.保存文件:輸入完成之后,按F2鍵,彈出ー個(gè)對(duì)話框,在對(duì)話框中輸入文件名,如:program1.〇〇②根據(jù)本書(shū)第二部分介紹的方法對(duì)源程序進(jìn)行編譯,觀察屏幕上顯示的編譯信息如果出現(xiàn)“出錯(cuò)信息”,則應(yīng)找出原因并改正之,再進(jìn)行編譯,如果無(wú)錯(cuò),則進(jìn)行連接。③如果編譯連接無(wú)錯(cuò)誤,按Ctrl+F9運(yùn)行程序,如果沒(méi)有報(bào)錯(cuò),可以按Alt+F5査看運(yùn)行結(jié)果,再按空格鍵回到編輯窗口。④退出TC程序:按Alt+X鍵,彈出對(duì)話框,提示是否真的要退出TC,如果輸入Y就會(huì)退出TCo⑤打開(kāi)已經(jīng)存在的文件:按F3,彈出下列對(duì)話框。在該對(duì)話框中,輸入文件名即可。(5)輸入并編輯ー個(gè)有錯(cuò)誤的C程序。①輸入以下程序(教材第1章中例L2,故意漏打或打錯(cuò)兒個(gè)字符)。^include<stdio.h>voidmain(){inta,b,suma=123;b=456;sum=a+bprint(,zsumis%d\n",sum");②進(jìn)行編譯,仔細(xì)分析編譯信息窗ロ,可能顯示有多個(gè)錯(cuò)誤,逐個(gè)修改,直到不出現(xiàn)錯(cuò)誤。最后請(qǐng)與教材上的程序?qū)φ?。③使程序運(yùn)行,分析運(yùn)行結(jié)果:本程序的作用是求兩個(gè)整數(shù)a和b之和sum。第2行是聲明部分,定義變量a和b,指定a和b為整型(int)變量。第3行是兩個(gè)賦值語(yǔ)句,使a和b的值分別為123和456。第4行使sum的值為a+b,第5行中“%d”是輸入輸出的“格式字符串”,用來(lái)指定輸入輸出時(shí)的數(shù)據(jù)類(lèi)型和格式(詳見(jiàn)第4章),“%d”表示“以十進(jìn)制整數(shù)形式輸出”。在執(zhí)行輸出時(shí),此位置上代以ー個(gè)十進(jìn)制整數(shù)值。printf函數(shù)中括弧內(nèi)最右端sum是要輸出的變量,現(xiàn)在它的值為579(即123+456之值)。因此輸出一行信息為sumis579(6)輸入并運(yùn)行ー個(gè)需要在運(yùn)行時(shí)輸人數(shù)據(jù)的程序。①輸入下面的程序:#include<stdio.h>voidmain(){intmax(intx,inty);inta,b,c;printf(""inputa&b:");scanf("%d,%d”,&a,b);c=max(a,b);printf("max=%d\n〃,c);)intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);②編譯并運(yùn)行,在運(yùn)行時(shí)從鍵盤(pán)輸入整數(shù)2和5,然后按“回車(chē)”鍵,觀察運(yùn)行結(jié)果(運(yùn)行結(jié)果是max=5,輸出兩數(shù)中的較大數(shù))。(7)運(yùn)行一個(gè)自己編寫(xiě)的程序。題目是教材第1章的習(xí)題1.6。即輸入a、b、c3個(gè)值,輸出其中最大者。①輸入自己編寫(xiě)的源程序。參考程序:#include<stdio.h>main(){inta,b,c,max;printf("inputa&b&c:");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(maxくc)max二c;printf("max二%d\n〃,max);)②檢查程序有無(wú)錯(cuò)誤(包括語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤),有則改之。③編譯和連接,仔細(xì)分析編譯信息,如有錯(cuò)誤應(yīng)找出原因并改正之。④運(yùn)行程序,輸人數(shù)據(jù),分析結(jié)果。運(yùn)行結(jié)果:inputa&b&c:6,5,1max=6⑤自己修改程序(例如故意改成錯(cuò)的),分析其編譯和運(yùn)行情況。⑥將調(diào)試好的程序保存在自己的用戶目錄中,文件名自定。⑦將編輯窗口清空,再將該文件讀人,檢查編輯窗口中的內(nèi)容是否剛オ存盤(pán)的程序。⑧關(guān)閉所用的集成環(huán)境,用Windows的“我的電腦”找到剛オ使用的用戶子目錄,瀏覽其中文件,看有無(wú)剛オ保存的后綴為.c和.exe的文件。實(shí)驗(yàn)ニ數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式ー、實(shí)驗(yàn)?zāi)康恼莆誄語(yǔ)言數(shù)據(jù)類(lèi)型,熟悉如何定義ー個(gè)整型、字符型和實(shí)型的變量,以及對(duì)它們賦值的方法。掌握不同的數(shù)據(jù)類(lèi)型之間賦值的規(guī)律。學(xué)會(huì)使用C的有關(guān)算術(shù)運(yùn)算符,特別是自加(++)和自減(--)運(yùn)算符的使用。了解包含這些運(yùn)算符的表達(dá)式的運(yùn)行結(jié)果進(jìn)??步熟悉C程序的編輯、編譯、連接和運(yùn)行的過(guò)程。二、實(shí)驗(yàn)內(nèi)容C語(yǔ)言的基本數(shù)據(jù)類(lèi)型(整型、字符型和實(shí)型)變量的定義與賦值方法。C語(yǔ)言豐富的運(yùn)算符及表達(dá)式三、實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果.寫(xiě)出以下程序運(yùn)行的結(jié)果。main()(charcl='a',c2=9b',c3='c',c4=9\101',c5='\116,;printf(,za%cb%c\tc%c\tabc\nz,,cl,c2,c3);printf(*\t\b%c%c^,c4,c5);)程序的運(yùn)行結(jié)果為:aabbcccabcAN.寫(xiě)出程序的運(yùn)行結(jié)果。

main()/*定義字符型變量main()charcl,c2;cl=97;c2=98;printf(,z%c%c\n”,cl,c2);printf(,z%d%d\n”,cl,c2);)運(yùn)行結(jié)果:ab9798思考:可否改成intcl,c2;?可以,因?yàn)樵诳奢敵龅淖址秶鷥?nèi),/?向字符變量賦以整數(shù)*//?以字符形式輸出?//?以整數(shù)形式輸出?/用整型和用字符型作用相同。.要將“China”譯成密碼,密碼規(guī)律是:用原來(lái)的字母后面第4個(gè)字母代替原來(lái)的字母。例如,字母“A”后面第4個(gè)字母是“E”,用“E”代替“A”。因此“China”應(yīng)譯為“Glmre”。請(qǐng)編ー程序,用賦初值的方法使cl、c2、c3、c4、c5五個(gè)變量的值分別為’C‘/?向字符變量賦以整數(shù)*//?以字符形式輸出?//?以整數(shù)形式輸出?/用整型和用字符型作用相同。c3、c4、c5分別變?yōu)椤瓽‘、T、‘m’、’r‘、‘e',并輸出。main()charcl='C,c2='h',c3='i',c4='n',c5='a';/?字符型變量初始化*/cl+=4; /?字符型變量可與整數(shù)進(jìn)行算術(shù)運(yùn)算?/c2+=4;c3+=4;c4+=4;c5+=4;printf("Secretcode:%c%c%c%c%c\n",cl,c2,c3,c4,c5);).寫(xiě)出程序運(yùn)行結(jié)果。main(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d”,i,j,m,n);)運(yùn)行結(jié)果:9,11,9,10思考:m=++i;與m=i++:的相同之處與不同之處?++i與i++的作用相當(dāng)于i=i+1;但不同之處在于++i是先執(zhí)行i=i+1之后,再使用i的值;而i++是先使用i的值后,再執(zhí)行i=i+lo.下列程序的輸出是main()(inta=7,b=5;printf(飛d\n",b=b/a); /?輸出賦值表達(dá)式的值?/)輸出結(jié)果是零。.下列程序的輸出是main()inta=011; /?ハ進(jìn)制整常量賦給a*/printf("刎、n”,++a); /?先自加,再使用a值?/)運(yùn)行結(jié)果是10o.若int類(lèi)型數(shù)據(jù)占兩個(gè)字節(jié),則下列語(yǔ)句的輸出為main(){intk=—1;printf("%d,%u\n",k,k);)程序運(yùn)行結(jié)果是T,65535思考:一1在內(nèi)存中的存儲(chǔ)形式?.下列程序的運(yùn)行結(jié)果是#include<stdio.h>main(){printf("%d",null);)運(yùn)行情況:因?yàn)樽兞縩ull無(wú)定義,無(wú)法正確運(yùn)行。思考:如將null改為NULL,則結(jié)果如何?.若k,g均為int型變量,則下列語(yǔ)句的輸出為main()

intk,g;k=017intk,g;k=017;g=Ul;printf(*%d\t*printfC%x\n,z)運(yùn)行結(jié)果為:166f/?此處為十進(jìn)制常量?/++k); /?以十進(jìn)制輸出表達(dá)式++k的值?/g++); /?以十六進(jìn)制輸出表達(dá)式g++的值?/實(shí)驗(yàn)三最簡(jiǎn)單的C程序設(shè)計(jì)ー、實(shí)驗(yàn)?zāi)康?1)掌握c語(yǔ)言中賦值語(yǔ)句的使用方法。(2)掌握各種類(lèi)型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。二、實(shí)驗(yàn)內(nèi)容(1)掌握各種格式轉(zhuǎn)換符的正確使用方法。(2)編寫(xiě)習(xí)題3.7并上機(jī)運(yùn)行。三、實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果,若a=3,b=4,c=5,x=l.2,y=2.4,z=-3.6,u=51274,n=128765,cl=,a',c2=’ビ。想得到以下的輸出格式和結(jié)果,請(qǐng)寫(xiě)出程序(包括定義變量類(lèi)型和設(shè)計(jì)輸出)。要求輸出的結(jié)果如下:a=-3-b=_4一c=15x=l.200000,y=2.400000,z=-3.600000x+y=_3.60__y+z=-L20_z+x=-2.40u=151274一n=1_128765cl='a'?or?97(ASCII)c2='b'?or?98(ASCII)編程:main()(inta,b,c;longintu,n;floatx,y,z;charcl,c2;

a=3;b=4;c=5;x=l.2;y=2.4;z=-3.6;□=51274;n=128765;cl=,a,;c2='b,;printf("\n");printf(〃a=%2db=%2dc=%2d\n”,a,b,c);printf(〃x=%8.6f,y=%8.6f,z=%9.6f\nz/,x,y,z);printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n〃,x+y,y+z,z+x);printf(z/u=%61dn=%91d\n”,u,n);printf(zzcl=,%c'or%d(ASCII)\nzz,cl,cl);printf(〃c2='%c'or%d(ASCII)\nzz,c2,c2);)思考:程序最后兩行的printf語(yǔ)句中,在〃〃內(nèi)部即格式控制部分,哪些屬原樣輸出的普通字符?哪些屬要輸出數(shù)據(jù)的格式說(shuō)明?.請(qǐng)寫(xiě)出下面程序的輸出結(jié)果:main()Iinta=5,b=7;floatx=67.8564,y=-789.124;charc='A';longn=1234567;unsignedu=65535;printf(zz%d%d\nzz,a,b);printf(zz%3d%3d\nzz,a,b);printf(〃証,printf(〃証,%f\nzz,x,y);/?以各種小數(shù)形式輸出實(shí)數(shù)?/printf(*%—lOf,%—10f\n/z,x,y);printfC%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y);printf(w%e,%10.2e\n/z,x,y); /?以指數(shù)形式輸出實(shí)數(shù)?/printfC%c,%d,%〇?%x\n\c,c,c,c); /?以各種形式輸出字符變量的值*/printf(*%ld,%lo,%x\n”,n,n,n);printf(z,%u,%o,%x,%d\n”,u,u,u,u); /?以無(wú)符號(hào)十進(jìn)制、ハ進(jìn)制、十六進(jìn)制,帶符號(hào)十進(jìn)制形式輸出u值?/printf("版,%5.3s\n","COMPUTER","COMPUTER");/?輸出字符串?/)運(yùn)行結(jié)果:57767.856400,-789.12402367.856400,-789.124023-789.12,67.856400,-789.124023,67.856400,-789.1240236.785640e+01,-7.9e+02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER,COM思考:解釋倒數(shù)第三個(gè)printf語(yǔ)句的輸出結(jié)果。printf("%ld,%lo,%x\n",n,n,n);一句中格式控制符%Id指輸出長(zhǎng)整型數(shù)據(jù)(32位),即輸出1234567;%1。指按照ハ進(jìn)制輸出長(zhǎng)整型(無(wú)符號(hào)、32位),1234567轉(zhuǎn)換成ハ進(jìn)制即是4553207;%x是指將結(jié)果轉(zhuǎn)換成十六進(jìn)制輸出,但要注意,這里少了修飾符1.所以是指將數(shù)據(jù)轉(zhuǎn)換成十六進(jìn)制(結(jié)果是12d687)后,只輸出低16位(截?cái)?,即d687。3.用下面的scanf函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=7L82,cl='A',c2='a'。問(wèn)在鍵盤(pán)上如何輸入?main(){inta,b;floatx,y;charcl,c2;scanf(z,a=%db=%d〃,&a,&b);scanfC%f%e”,&x,&y);scanfC%c%c〃,&cl,&c2);printf(〃a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c\n〃,a,b,x,y,cl,c2);)可按如下方式在鍵盤(pán)上輸入:a=3b=7/8.571.82/Aa/a=3,b=7,x=8.500000,y=71.820000,cl=A,c2=a思考:為什么在第三個(gè)scanf函數(shù)雙引號(hào)第一個(gè)字符為空格字符,如果沒(méi)有這個(gè)空格字符,而寫(xiě)成:scanf(〃枇%c\&cl,&c2); 按以上的輸入,輸出將如何變化?答案:將變?yōu)?a=3,b=7,x=8.500000,y=71.820000,cl=,c2=A這是因?yàn)樵谳斎胪甑诙袛?shù)據(jù)后按的回車(chē)鍵被作為一個(gè)字符送到內(nèi)存輸入緩沖區(qū)中,因此第三個(gè)scanf函數(shù)中的第一個(gè)變量c!讀入了回車(chē)符(實(shí)際上是回車(chē)符的ASCII碼)。第三行輸入的第一個(gè)字符A被c2讀取,所以在執(zhí)行printf函數(shù)輸出cl時(shí),就輸出ー個(gè)回車(chē)符,輸出c2時(shí)就輸出字符A。我們?cè)诔绦虻谌齻€(gè)scanf函數(shù)雙引號(hào)中第一個(gè)字符處放了一個(gè)空格字符,這樣第二行末尾輸入的回車(chē)符就不會(huì)輸入給C1,而是與該空格字符對(duì)應(yīng),第三行輸入的第一個(gè)字符A就被cl讀取。也可以不在scanf函數(shù)中加空格,而在第三個(gè)函數(shù)前加一個(gè)getchar函數(shù):getchar();(注意要相應(yīng)地在程序開(kāi)頭加:#include<stdio.h>)用它將前面的回車(chē)符“吃掉”。在一個(gè)函數(shù)中的如果有兒個(gè)scanf函數(shù),在輸入數(shù)據(jù)時(shí)往往會(huì)出現(xiàn)ー些想象不到的情況(例如前面碰到的情況),其中一個(gè)重要的原因就是由回車(chē)符引起的。C語(yǔ)言很靈活,書(shū)上不可能把一切細(xì)節(jié)都講到,讀者在遇到類(lèi)似情況時(shí),上機(jī)多試驗(yàn)?下就可以找出規(guī)律來(lái)。4.設(shè)圓半徑r=L5,圓柱高h(yuǎn)=3,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計(jì)算結(jié)果,輸出時(shí)要求有文字說(shuō)明,取小數(shù)點(diǎn)后2位數(shù)字。請(qǐng)編程序。main()(floatpi,h,r,1,s,sq,vq,vz;pi=3.1415926;printf(/zinputr,h:\n"); /?輸入半徑和高?/scanf("%f,%f/z,&r,&h); /?求圓周長(zhǎng)?/l=2*pi*r; /?求圓面積?/s=r*r*pi; /?求圓球表面積?/sq=4*pi*r*r; /?求圓球體積?/vq=4.0/3.0*pi*r*r*r; /?求圓柱體積?/vz=pi*r*r*h;printf(*1=%6.2f\n*?1);printf("s=%6.2f\n”,s);printf("sq=%6.2f\n”,sq);printf(*vq=%6.2f\n*,vq);printf(Z,vz=%6.2f\nzz,vz);)運(yùn)行結(jié)果:inputr,h:1.5,3/1=9.42s=7.07sq=28.27vq=14.14vz=21.21實(shí)驗(yàn)四邏輯結(jié)構(gòu)程序設(shè)計(jì)ー、實(shí)驗(yàn)?zāi)康蘑帕私釩語(yǔ)言表示邏輯量的方法(以〇代表"假",以非〇代表"真")。(2)學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。(3)熟練掌握if語(yǔ)句和switch語(yǔ)句。(4)結(jié)合程序掌握ー些簡(jiǎn)單的算法。⑸學(xué)習(xí)調(diào)試程序。二、實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)要求事先編好解決下面問(wèn)題的程序,然后上機(jī)輸入程序并調(diào)試運(yùn)行。.有?函數(shù):y=,寫(xiě)ー程序,用scanf函數(shù)輸入x的值,求y值。.給出ー百分制成績(jī),要求輸出成績(jī)等級(jí)'A'、,B'、,C‘、’D‘、空’。90分以上為‘A',80~89分為‘B',7〇?79分為‘C',6〇?69分為‘D',60分以下為'E'。要求分別用if語(yǔ)句和switch語(yǔ)句實(shí)現(xiàn)。.給,ー個(gè)不多于5位的正整數(shù),要求:①求出它是兒位數(shù);②分別打印出每ー位數(shù)字:③按逆序打印出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。三、實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果.有一函數(shù):y=,寫(xiě)ー程序,用scanf函數(shù)輸入x的值,求y值。main(){intx,y;printf(,zinputx:つ;scanf("%d”,&x);if(x<l) /?當(dāng)xVl時(shí),求對(duì)應(yīng)y值?/y=x;printf("x=%3d,y=x=%d\n”,x,y);elseif(x<10) /?當(dāng)1くxVlO時(shí),求對(duì)應(yīng)y值?/(y=2*x—1;printf("x=%3d,y=2*x—l=%d\n”,x,y);)else /?當(dāng)x210時(shí),求對(duì)應(yīng)y值?/(y=3*x—11;printfCx=%3d,y=3*x-ll=%d\nw,x,y);})運(yùn)行結(jié)果:inputx:20/x=20,y=3*x-ll=49.給出ー百分制成績(jī),要求輸出成績(jī)等級(jí)‘A‘、,B‘、<‘、ヤ‘、空’。90分以上為‘A',80~89分為‘B',7〇?79分為’C',6〇、69分為‘D',60分以下為'E’。要求分別用if語(yǔ)句和switch語(yǔ)句實(shí)現(xiàn)。用if語(yǔ)句實(shí)現(xiàn):main()(intx;printf(,zpleaseinputyourgrade\nv);scanfぐ’%d",&x);if(x>=90&&x<=100)printf("A\n");elseif(x>=80&&x<=89)printf("B\n");elseif(x>=70&&x<=79)printf("C\n");elseif(x>=60&&x<=69)printf(〃D\n");elseif(x>=0&&x<60)printf;elseprintf("error\n");}用switch語(yǔ)句實(shí)現(xiàn):mainO(inta,s;printf("pleaseinputyourgrade\n");scanf("%dzz,&s);if(s==100)a=9;elsea=s/10;switch(a)(case0:case5:printf(〃E\n〃);break;case6:printf(/zD\nzz);break;case7:printf(zzC\n,z);break;case8:printf(z,B\nzz);break;case9:printf(zzA\n,z);break;default:printf(zzerror\nzz);))運(yùn)行結(jié)果:Pleaseinputyourgrade:91A3.給ー個(gè)不多于5位的正整數(shù),要求:①求出它是幾位數(shù);②分別打印出每ー位數(shù)字;③按逆序打印出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123。main()Ilongintnum;intindiv,ten,hundred,thousand,ten_thousand,place;printf(zzinput0—99999:〃);scanf("%ld〃,&num);if(num>9999)place=5;elseif(num>999)place=4;elseif(num>99)place=3;elseif(num>9)place=2;elseplace=l;printf(〃place=%d\n〃,place); /?輸出位數(shù)?/printf("shuziis:");ten_thousand=num/10000;/?以下五行分別求萬(wàn)位、千位、百位、十位、個(gè)位數(shù)字?/thousand=(int)(num—ten_thousand*10000)/1000;hundred=(int)(num—ten_thousand*10000—thousand*1000)/100;ten=(int)(num—ten_thousand*10000—thousand*1000—hundred*100)/10;indiv=(int)(num—ten_thousand*10000—thousand*1000—hundred*100—ten*10);switch(place) /?根據(jù)位數(shù)判斷應(yīng)該輸出哪兒位數(shù)字?/{case5:printf(z,%d,%d,%d,%d,%d〃,ten_thousand,thousand,hundred,ten,indiv);/?正序輸出?/printf("\ninvertis:〃);printf(z/%d%d%d%d%d\nzz,indiv,ten,hundred,thousand,ten_thousand);/?逆序輸出?/break;case4:printf(z,%d,%d,%d,%a,thousand,hundred,ten,indiv);printf(zz\ninvertis:zz);printf(zz%d%d%d%d\n,z,indiv,ten,hundred,thousand);break;case3:printf(,z%d,%d,%d〃,hundred,ten,indiv);printf("\ninvertis:〃);printf(〃%d%d%d\n〃,indiv,ten,hundred);break;case2:printf(〃%d,%d〃,ten,indiv);printf(zz\ninvertis:");printf("%d%d\n〃,indiv,ten);break;case1:printf(〃%d〃,indiv);printf(zz\ninvertis:");printf("%d\nzz,indiv);break;))運(yùn)行結(jié)果:input0-99999: 98765/place=5shuziis:9,8,7,6,5invertis:56789實(shí)驗(yàn)五循環(huán)結(jié)構(gòu)程序設(shè)計(jì)ー、實(shí)驗(yàn)?zāi)康氖煜ふ莆沼醚h(huán)語(yǔ)句:while語(yǔ)句,do-while語(yǔ)句,for語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。掌握在程序設(shè)計(jì)中用循環(huán)的方法實(shí)現(xiàn)??些常用算法(如窮舉、迭代、遞推等)。并且進(jìn)ー步學(xué)習(xí)調(diào)試程序。二、實(shí)驗(yàn)內(nèi)容編寫(xiě)程序并且上機(jī)調(diào)試運(yùn)行.輸入兩個(gè)正整數(shù)機(jī)和〃,求它們的最大公約數(shù)和最小公倍數(shù)。.輸入一行字符,分別統(tǒng)計(jì)出其中的英文字母、空格p數(shù)字邪其他字符的個(gè)數(shù)。/- ム+1=;(》“+一).用迭代法求スニノ。,求平方根的迭代公式為 2ム,要求前后兩次求出的x的差的絕對(duì)值小于10-5〇.猴子吃桃問(wèn)題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下ー個(gè)桃子了。求第一天共摘了多少桃子。三、實(shí)驗(yàn)步驟及運(yùn)行結(jié)果。.采用“輾轉(zhuǎn)相除法”求最大公約數(shù),始終用大數(shù)除以小數(shù),然后用余數(shù)代替較小數(shù),整除時(shí)的除數(shù)就是最大公約數(shù);最小公倍數(shù)等于兩數(shù)的乘積除以最大公約數(shù)。程序如下:main()(intp,r,n,m,temp;printf("請(qǐng)輸入兩個(gè)正整數(shù)scanf(n%d,%dn,&n,&m);temp=n;n=m;m=temp; /?把大數(shù)放在n中,小數(shù)放在m中?/)p=n*m; /?先將n和m的乘積保存在p中,以便求最小公倍數(shù)時(shí)用?/while(m!=O)/?求m和n的最大公約數(shù)?/(r=n%m;n=m;m=r;)printf("它們的最大公約數(shù)為:%d\n",n);printf("它們的最小公倍數(shù)為:%d\n",p/n);/*p是原來(lái)兩個(gè)整數(shù)的乘積?/)運(yùn)行情況:請(qǐng)輸入兩個(gè)正整數(shù)n,m:12,8它們的最大公約數(shù)為:4它們的最小公倍數(shù)為:24.程序如下:#include<stdio.h>main()(intword=0,space=0,num=0,other=0;charch;printf(“請(qǐng)輸入一行字符:\n");ch=getchar();while(ch!二’\n')(if(ch>='A'&&ch<='Z'llch>='a'&&ch<='z')word++;elseif(ch=='')space++;elseif(ch>='0'&&ch<='9')num++;elseother++;ch=getchar();)printf("字母數(shù)=%d,空格數(shù)=%d,數(shù)字?jǐn)?shù)=%d,其他字符數(shù)=%d\n",word,space,num,other);}運(yùn)行情況:請(qǐng)輸入一行字符:Myteacher'saddressis“#123BeijingRoad,Shanghai".字母數(shù):38,空格數(shù):6,數(shù)字?jǐn)?shù):3,其它字符數(shù):6.用迭代法求平方根的算法如下:(1)設(shè)定一個(gè)ス的初值へ:(2)用上述公式求出ス的下ー個(gè)值再;(3)再將再代入上述公式,求出ス的下ー個(gè)值々;(4)如此繼續(xù)下去,直到前后兩次求出的x值(ム和“同)滿足以下關(guān)系:lx?+1-x?klO-5為了便于程序處理,今只用變量X。和る,先令X的初值/=。/2(也可以是另外的值),求出玉;如果此時(shí)い"ハーム>1°-',則使?つム,然后用這個(gè)新的“。求出下ー個(gè)司;如此反復(fù),直到ス一“。k1°’為止。程序如下:#include<math.h>main()(floata,xO,xl;printf(MEnterapositivenumber:**);scanf(**%f**,&a);x0=a/2;xl=(xO+a/xO)/2;do(xO=xl;xl=(x0+a/x0)/2;}while(fabs(xO-xl)>=le-5);printf('*Thesquarerootof%5.2fis%8.5f\n'*,a,xl);)運(yùn)行結(jié)果:Enterapositivenumber:2Thesquarerootof2.00is1.41421.程序如下:main()intday,xl,x2;day=9;x2=l;while(day>0)(xl=(x2+l)*2;x2=xl;day-;)printf("total=%d\n",x1);)運(yùn)行結(jié)果:total=1534實(shí)驗(yàn)六數(shù)組ー、實(shí)驗(yàn)?zāi)康?掌握ー維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法:.掌握字符數(shù)組和字符串函數(shù)的使用;.掌握與數(shù)組有關(guān)的算法(特別是排序算法)。二、實(shí)驗(yàn)內(nèi)容編寫(xiě)程序并且上機(jī)調(diào)試運(yùn)行。用起泡法對(duì)10個(gè)數(shù)排序(由小到大)。將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè)二維數(shù)組中。例如:12314b=2545636輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格分隔開(kāi)將兩個(gè)字符串連接起來(lái),不要用strcat函數(shù)。三、實(shí)驗(yàn)步驟及運(yùn)行結(jié)果。1.起泡法的思路是:將相鄰兩個(gè)數(shù)比較,將小的調(diào)到前頭。見(jiàn)圖6.1。陽(yáng)88888守陽(yáng)55555陽(yáng)44444牌”ハ22222臼ノ00000[0!;[91■■第1次第2次第3次第4次第5次結(jié)果圖6.1圖6.2若有6個(gè)數(shù)。第一次將8和9對(duì)調(diào),第二次將第2和第3個(gè)數(shù)(9和5)對(duì)調(diào)……如此共進(jìn)行5次,得到854209的順序,可以看到:最大的數(shù)9己“沉底”,成為最下面一個(gè)數(shù),而小的數(shù)“上升”。最小的數(shù)〇已向上“浮起”ー個(gè)位置。經(jīng)第一趟(共5次)后,已得到最大的數(shù)。然后進(jìn)行第二趟比較,對(duì)余下的前面5個(gè)數(shù)按上法進(jìn)行比較,見(jiàn)圖6.20經(jīng)過(guò)4次比較,得到次大的數(shù)80如此進(jìn)行下去??梢酝浦?對(duì)6個(gè)數(shù)要比較5趟,才能使6個(gè)數(shù)按大小順序排列。在第一趟中要進(jìn)行兩個(gè)數(shù)之間的比較共5次,在第二趟中比4次……第5趟比1次。如果有n個(gè)數(shù),則要進(jìn)行n-1趟比較。在第1趟比較中要進(jìn)行n-1次兩兩比較,在第j趟比較中要進(jìn)行n-j次兩兩比較。據(jù)此畫(huà)出流程圖(見(jiàn)圖6.3)。根據(jù)流程圖寫(xiě)出程序(今設(shè)n=10),定義數(shù)組長(zhǎng)度為11,本例中對(duì)a[0]不用,只用a[1]到a[10],以符合人們的習(xí)慣。圖6.3程序如下:main()(inta[11];inti,j,t;printf(ninput10numbers:\n");for(i=l;i<ll;i++)scanf(n%d\&a[i]);printf(M\nn);for(j=l;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]>a[i+1]){t=aEi];aEi]=a[i+1];aEi+1]=t;}printf(Mthesortednumbers:\n");for(i=l;i<ll;i++)printf("%d",a[i]);運(yùn)行情況如下:input10numbers:1 0 4 8 12 65 -76 100 -45 123thesortednu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論