-
簡介:COMMENT創(chuàng)創(chuàng)1頁237C語言高級編程技術(shù)237C語言高級編程技術(shù)語言高級編程技術(shù)8181遞歸程序設(shè)計遞歸程序設(shè)計811811遞歸與遞歸程序設(shè)計遞歸與遞歸程序設(shè)計遞歸技術(shù)在算法和程序設(shè)計中是一種十分有用的技術(shù),C語言提供了支持遞歸定義的機(jī)制和手段。遞歸有直接遞歸和間接遞歸兩種。在一個函數(shù)的定義中出現(xiàn)了對自身的調(diào)用,稱之為直接遞歸;一個函數(shù)F的定義中包含了對函數(shù)G的調(diào)用,而G的實現(xiàn)過程又調(diào)用了F,即函數(shù)調(diào)用形成了一個環(huán)狀調(diào)用鏈這種方式稱之為間接遞歸。例8181編寫一個遞歸函數(shù),求N的階乘值N。若用FACTN表示N的階乘值,根據(jù)階乘的數(shù)學(xué)定義可知0101NNFACTNNNFACT顯然當(dāng)N0時,F(xiàn)ACTN是建立在FACTN1的基礎(chǔ)上。由于求解FACTN1的過程與求解FACTN的過程完全相同,只是具體實參不同,因而在進(jìn)行程序設(shè)計時,不必再仔細(xì)考慮FACTN1的具體實現(xiàn),只需借助遞歸機(jī)制進(jìn)行自身調(diào)用即可。于是求N的階乘值FACTN的具體實現(xiàn)為LONGFACTINTNLONGMIFN0RETURN1ELSEMNFACTN1RETURNM例8282編寫一個遞歸函數(shù),求FIBONACCI數(shù)列第N項的值。若用FIBONAN表示FIBONACCI數(shù)列第N項的值,根據(jù)FIBONACCI數(shù)列的計算公式2N2FIBONAN1FIBONAN211FIBONANN可知當(dāng)N2時,F(xiàn)IBONACCI數(shù)列第N項的值等于第N1項的值與第N2項的值相加之和,而FIBONACCI數(shù)列第N1項和第N2項值的求解又分別取決于它們各自前兩項之和??傊現(xiàn)IBONAN1和FIBONAN2的求解過程與FIBONAN的求解過程相同,只是具體實參不同。利用以上這種性質(zhì),我們在進(jìn)行程序設(shè)計時便可以使用遞歸技術(shù),F(xiàn)IBONAN1和FIBONAN2C語言高級編程技術(shù)239調(diào)用,這樣逐層返回,直至返回到第一次調(diào)用,當(dāng)?shù)谝淮握{(diào)用結(jié)束后,釋放調(diào)用所分配的空間,整個遞歸調(diào)用才完成。在例81中,給出了一個求階乘的函數(shù)。下面以求4為例,其調(diào)用過程如圖81所示。要求4即要求的FACT4值。圖81遞歸函數(shù)調(diào)用的執(zhí)行過程813813遞歸算法的優(yōu)缺點遞歸算法的優(yōu)缺點遞歸函數(shù)的主要優(yōu)點是可以把算法寫的比使用非遞歸函數(shù)時更清晰更簡潔,而且某些問題,特別是與人工智能有關(guān)的問題,更適宜用遞歸方法。遞歸算法的缺點,一是需要額外的內(nèi)存開銷,特別是當(dāng)遞歸層次較大時,遞歸函數(shù)需要占用的堆??臻g相當(dāng)大。二是遞歸引起一系列的函數(shù)調(diào)用,并且可能會有一系列的重復(fù)計算,遞歸算法的執(zhí)行效率相對較低??傊f歸算法要比解決同樣問題的非遞歸算法效率低一些。內(nèi)存空間需求更多一些。大多數(shù)用遞歸算法解決的問題,都可以找到相應(yīng)的非遞歸算法,只有少數(shù)問題的求解只有遞歸算法。由于遞歸算法具有效率低、內(nèi)存消耗大等缺點,在設(shè)計程序時,若有比較好的非遞歸算法,應(yīng)盡量采用非遞歸算法。814814遞歸程序設(shè)計的應(yīng)用實例遞歸程序設(shè)計的應(yīng)用實例例8383編程實現(xiàn)將正整數(shù)轉(zhuǎn)換為字符串。要求在主函數(shù)中輸入正整數(shù),轉(zhuǎn)換以及輸出編一遞歸函數(shù)完成。
下載積分: 9 賞幣
上傳時間:2024-03-08
頁數(shù): 51
大?。?2.13(MB)
子文件數(shù):
-
簡介:C語言程序設(shè)計試題三返回一單項選擇題1設(shè)INTX1Y1表達(dá)式(X||Y)的值是_________A0B1C2D12MAININTNN64N6N2PRINTF“NDN”N此程序的輸出結(jié)果是______________A30B24C60D483若有如下定義,則__________是對數(shù)組元素的正確的引用。INTA10PPAPAPAPAABINTA21234CINTA22123DINTA212346程序段的功能是將變量U、S中的最大值賦給變量T。A’A’’A’||CCDC’A’則以下能夠正確輸出變量X值的語句是_______。APRINTF“XDN”XBPRINTF“XLDN”XCPRINTF“X?LN”XDPRINTF“XLDN”X14下列關(guān)于指針定義的描述,___________是錯誤的。A指針是一種變量,該變量用來存放某個變量的地址值的。B指針變量的類型與它所指向的變量類型一致。C指針變量的命名規(guī)則與標(biāo)識符相同。D在定義指針時,標(biāo)識符前的“”號表示后面的指針變量所指向的內(nèi)容。15已知INTXINTY10下列______是合法的。ABSCANF“DD”CSCANF“C”CDSCANF“FDN”17C語言中以追加方式打開一個文件應(yīng)選擇_______________參數(shù)。A“R”B“W”C“RB”D“A”18BREAK語句的正確的用法是。A無論在任何情況下,都中斷程序的執(zhí)行,退出到系統(tǒng)下一層。B在多重循環(huán)中,只能退出最靠近的那一層循環(huán)語句。C跳出多重循環(huán)。
下載積分: 6 賞幣
上傳時間:2024-03-07
頁數(shù): 11
大?。?0.03(MB)
子文件數(shù):
-
簡介:成績優(yōu)評語掌握了本次實驗的所有內(nèi)容,很好批改時間2012326170230批改老師胡小麗實驗1C程序的運行環(huán)境和最簡單的C程序設(shè)計學(xué)號姓名實驗日期3221實驗?zāi)康暮鸵螅?)熟悉C語言程序開發(fā)環(huán)境(VISUALC),了解開發(fā)環(huán)境中的編輯、編譯、鏈接和運行命令。(2)掌握在C語言開發(fā)環(huán)境中如何編輯、編譯、鏈接和運行一個標(biāo)準(zhǔn)C語言程序。(3)通過運行簡單的程序,熟悉C語言的基本格式規(guī)范,并初步了解它的結(jié)構(gòu)特點。(4)了解下列命令及函數(shù)INCLUDE、MAIN、PRINTF、SCANF。(5)掌握C語言數(shù)據(jù)類型的概念,熟悉如何定義一個整型、字符型、實型變量,以及如何對它們進(jìn)行賦值。(6)掌握整型、字符型、實型變量數(shù)據(jù)輸出時所用的格式轉(zhuǎn)換符。2實驗內(nèi)容2121如下程序,實現(xiàn)兩個數(shù)交換,但不使用中間變量。請?zhí)羁?。如下程序,實現(xiàn)兩個數(shù)交換,但不使用中間變量。請?zhí)羁?。INCLUDEMAININTABA9B5PRINTF“交換前,兩個數(shù)為A?DN“ABABB____A____PRINTF“交換以后,兩個數(shù)為A?DN“AB2121編寫的程序及運行結(jié)果如下編寫的程序及運行結(jié)果如下INCLUDEMAININTABA9B5PRINTF“交換前,兩個數(shù)為A?DN“ABABAAB14BA5B9145A5A9(設(shè)AX)則AAX514XX9A9PRINTF“交換以后,兩個數(shù)為A?DN“AB2323編寫的程序及運行結(jié)果如下編寫的程序及運行結(jié)果如下3實驗小結(jié)1通過這一次的實驗掌握了相關(guān)運算的優(yōu)先級。2在輸出函數(shù)PRINTF中容易出錯,如PRINTF“AD“A中容易忘掉A前面的逗號。3變量必須先定義后使用。本次實驗的第二題就是還沒定義變量就使用,導(dǎo)致出錯。4百分?jǐn)?shù)的輸出也是本次的一個容易出錯的問題。INCLUDEMAINC1“COMPUER“DOUBLEX311900Y312ZS3119A5B7CABEABTPRINTF“A0FB0FAB0F“ABEPRINTF“AB0FN“C100PRINTF“C1S“C1PRINTF“C24S“C1PRINTF“C34SN“C1PRINTF“X2FY1FZ4FN“XYXPRINTF“S5ET2EN“SYRETURN0
下載積分: 5 賞幣
上傳時間:2024-03-07
頁數(shù): 3
大小: 0.05(MB)
子文件數(shù):
-
簡介:1STATIC變量變量靜態(tài)變量的類型說明符是STATIC。靜態(tài)變量當(dāng)然是屬于靜態(tài)存儲方式,但是屬于靜態(tài)存儲方式的量不一定就是靜態(tài)變量。例如外部變量雖屬于靜態(tài)存儲方式,但不一定是靜態(tài)變量,必須由STATIC加以定義后才能成為靜態(tài)外部變量,或稱靜態(tài)全局變量。2靜態(tài)局部變量靜態(tài)局部變量靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點1靜態(tài)局部變量在函數(shù)內(nèi)定義它的生存期為整個源程序,但是其作用域仍與自動變量相同,只能在定義該變量的函數(shù)內(nèi)使用該變量。退出該函數(shù)后,盡管該變量還繼續(xù)存在,但不能使用它。2允許對構(gòu)造類靜態(tài)局部量賦初值例如數(shù)組,若未賦以初值,則由系統(tǒng)自動賦以0值。3對基本類型的靜態(tài)局部變量若在說明時未賦以初值,則系統(tǒng)自動賦予0值。而對自動變量不賦初值,則其值是不定的。根據(jù)靜態(tài)局部變量的特點,可以看出它是一種生存期為整個源程序的量。雖然離開定義它的函數(shù)后不能使用,但如再次調(diào)用定義它的函數(shù)時,它又可繼續(xù)使用,而且保存了前次被調(diào)用后留下的值。因此,當(dāng)多次調(diào)用一個函數(shù)且要求在調(diào)用之間保留某些變量的值時,可考慮采用靜態(tài)局部變量。雖然用全局變量也可以達(dá)到上述目的,但全局變量有時會造成意外的副作用,因此仍以采用局部靜態(tài)變量為宜。3靜態(tài)全局變量靜態(tài)全局變量全局變量外部變量的說明之前再冠以STATIC就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式,靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲方式。這兩者在存儲方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當(dāng)一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯誤。從以上分析可以看出,把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域,限制了它的使用范圍。因此STATIC這個說明符在不同的地方所起的作用是不同的。4STATIC函數(shù)函數(shù)內(nèi)部函數(shù)和外部函數(shù)當(dāng)一個源程序由多個源文件組成時,C語言根據(jù)函數(shù)能否被其它源文件中的函數(shù)調(diào)用,將函數(shù)分為內(nèi)部函數(shù)和外部函數(shù)。1內(nèi)部函數(shù)(又稱靜態(tài)函數(shù))內(nèi)部函數(shù)(又稱靜態(tài)函數(shù))如果在一個源文件中定義的函數(shù),只能被本文件中的函數(shù)調(diào)用,而不能被同一程序其它文件中的函數(shù)調(diào)用,這種函數(shù)稱為內(nèi)部函數(shù)。定義一個內(nèi)部函數(shù),只需在函數(shù)類型前再加一個“STATIC”關(guān)鍵字即可,如下所示STATIC函數(shù)類型函數(shù)名函數(shù)參數(shù)表關(guān)鍵字“STATIC”,譯成中文就是“靜態(tài)的”,所以內(nèi)部函數(shù)又稱靜態(tài)函數(shù)。但此處“STATIC”的含義不是指存儲方式,而是指對函數(shù)的作用域僅局限于本文件。使用內(nèi)部函數(shù)的好處是不同的人編寫不同的函數(shù)時,不用擔(dān)心自己定義的函數(shù),是否會與其它文件中的函數(shù)同名,因為同名也沒有關(guān)系。2外部函數(shù)外部函數(shù)外部函數(shù)的定義在定義函數(shù)時,如果沒有加關(guān)鍵字“STATIC”,或冠以關(guān)鍵字“EXTERN”,表示此函數(shù)是外部函數(shù)EXTERN函數(shù)類型函數(shù)名函數(shù)參數(shù)表調(diào)用外部函數(shù)時,需要對其進(jìn)行說明EXTERN函數(shù)類型函數(shù)名參數(shù)類型表,函數(shù)名2參數(shù)類型表2;案例外部函數(shù)應(yīng)用。(1)文件MAINFCMAINEXTERNVOIDINPUTPROCESSOUTPUTINPUTPROCESSOUTPUT(2)文件SUBF1CEXTERNVOIDINPUT定義外部函數(shù)(3)文件SUBF2CEXTERNVOIDPROCESS定義外部函數(shù)(4)文件SUBF3CEXTERNVOIDOUTPUT定義外部函數(shù)來源考試大計算機(jī)二級考試
下載積分: 3 賞幣
上傳時間:2024-03-07
頁數(shù): 2
大?。?0.02(MB)
子文件數(shù):
-
簡介:第1章導(dǎo)言在本書的開篇,我們首先概要地介紹C語言,主要是通過實際的程序引入C語言的基本元素,至于其中的具體細(xì)節(jié)、規(guī)則以及一些例外情況,在此暫時不多做討論。因此,本章不準(zhǔn)備完整、詳細(xì)地討論C語言中的一些技術(shù)(當(dāng)然,這里所舉的所有例子都是正確的)。我們是希望讀者能盡快地編寫出有用的程序,為此,本章將重點介紹一些基本概念,比如變量與常量、算術(shù)運算、控制流、函數(shù)、基本輸入輸出等。而對于編寫較大型程序所涉及到的一些重要特性,比如指針、結(jié)構(gòu)、C語言中十分豐富的運算符集合、部分控制流語句以及標(biāo)準(zhǔn)庫等,本章將暫不做討論。這種講解方式也有缺點。應(yīng)當(dāng)提請注意的是,在本章的內(nèi)容中無法找到任何特定語言特性的完整說明,并且,由于比較簡略,可能會使讀者產(chǎn)生一些誤解;再者,由于所舉的例子并沒有用到C語言的所有強大功能,因此,這些例子也許并不簡潔、精煉。雖然我們已經(jīng)盡力將這些問題的影響降到最低,但問題肯定還是存在。另一個不足之處在于,本章所講的某些內(nèi)容在后續(xù)相關(guān)章節(jié)還必須再次講述。我們希望這種重復(fù)給讀者帶來的幫助效果遠(yuǎn)遠(yuǎn)超過它的負(fù)面影響。無論是利還是弊,一個經(jīng)驗豐富的程序員應(yīng)該可以從本章介紹的內(nèi)容中推知他們自己進(jìn)行程序設(shè)計所需要的一些基本元素。初學(xué)者應(yīng)編寫一些類似的小程序作為本章內(nèi)容的補充練習(xí)。無論是經(jīng)驗豐富的程序員還是初學(xué)者,都可以把本章作為后續(xù)各章詳細(xì)講解的內(nèi)容的框架。11入門學(xué)習(xí)一門新程序設(shè)計語言的惟一途徑就是使用它編寫程序。對于所有語言的初學(xué)者來說,編寫的第一個程序幾乎都是相同的,即請打印出下列內(nèi)容HELLOWLD盡管這個練習(xí)很簡單,但對于初學(xué)語言的人來說,它仍然可能成為一大障礙,因為要實現(xiàn)這個目的,我們首先必須編寫程序文本,然后成功地運行編譯,并加載、運行,最后輸出到某個地方。掌握了這些操作細(xì)節(jié)以后,其它事情就比較容易了。在C語言中,我們可以用下列程序打印出“HELLOWLD”INCLUDEMAINPRINTF“HELLOWLDN“如何運行這個程序取決于所使用的系統(tǒng)。這里舉一個特殊的例子。在UNIX操作系統(tǒng)中,首先必須在某個文件中建立這個源程序,并以“C”作為文件的擴(kuò)展名,例如HELLOC,然后再通過下列命令進(jìn)行編譯CCHELLOC如果源程序沒有什么錯誤(例如漏掉字符或拼錯字符,編譯過程將順利進(jìn)行,并生成一個可執(zhí)行文件AOUT。然后,我們輸入AOUT即可運行AOUT,打印出下列信息HELLOWLD了一種通用的可擴(kuò)充的機(jī)制。除此之外,C語言提供的轉(zhuǎn)義字符序列還包括T表示制表符;B表示回退符;“表示雙引號;表示反斜杠符本身。23節(jié)將給出轉(zhuǎn)義字符序列的完整列表。練習(xí)11在你自己的系統(tǒng)中運行“HELLOWLD”程序。再有意去掉程序中的部分內(nèi)容,看看會得到什么出錯信息。練習(xí)12做個實驗,當(dāng)PRINTF函數(shù)的參數(shù)字符串中包含C其中C是上面的轉(zhuǎn)義字符序列中未曾列出的某一個字符)時,觀察一下會出現(xiàn)什么情況。1212變量與算術(shù)表達(dá)式我們來看下一個程序,使用公式。C59F32打印下列華氏溫度與攝氏溫度對照表此程序中仍然只包括一個名為MAIN的函數(shù)定義。它比前面打印“HELLOWLD”的程序11720640460158026100371204814060160711808220093220104240115260126280137300148
下載積分: 9 賞幣
上傳時間:2024-03-07
頁數(shù): 227
大?。?1.49(MB)
子文件數(shù):
-
簡介:1一、單選題(共一、單選題(共60小題,每題小題,每題1分,共分,共60分)分)1執(zhí)行下列程序中的輸出語句后,X的值是______。(知識點310)MAIN()INTX;PRINTF(“DN”,(X56,X2,X20));A)30B)60C)50D)802下列程序的輸出結(jié)果是_______。(知識點38)MAININTX1,Y0,Z;Z(X0);PRINTF(“DDDN”,ZXY);A)011B)010C)010D)0113在C語言中,下列選項屬于合法的長整型常數(shù)的是_______。(知識點33)A0LB1234567C00234567D314159E34下列選項中屬于不正確的賦值語句的是_____。(知識點36)AT;BN1(N2(N30));CKIJ;DABC15若有定義INTA,B;X,Y;并有以下輸入數(shù)據(jù)1422XXYY(回車)則能給A賦整數(shù)14,給B賦整數(shù)22,給X賦字符X,給Y賦字符Y的正確程序段是________。(知識點42)ASCANF“DD”,
下載積分: 6 賞幣
上傳時間:2024-03-08
頁數(shù): 21
大?。?0.21(MB)
子文件數(shù):
-
簡介:C語言經(jīng)驗技巧位運算沒有任何輸入SCANF“CD,DATA“代表前一個不予讀入,跟著是輸出,再輸入整數(shù)類型DATADOWHILE循環(huán)語句DO語句WHILE條件注意DOWHILE循環(huán)語句結(jié)尾一定要加上分號;還有就是DOWHILE和其它編程語言的不同,它的條件不是直到真才退出,而是當(dāng)真是才退出。不過我們可以動些手腳,小技巧將它改為直到條件才退出,就是將條件改為邏輯非INTSPECIALKEYINTKEY2MAININTKEY200PRINTF“掃描碼Ⅱ碼N“FSPECIALKEYKEYIFKEY0||KEY1PRINTF“D“KEY0PRINTF“DN“KEY1IFKEY01EXIT1SPECIALKEYINTKEY2IFBIOSKEY1KEY00KEY10RETURNKEY0KEY1BIOSKEY0KEY08高八位落到底八位KEY1高八位清零0XFF00這個是底八位清零0XFFFF16111111112等待函數(shù)DELAY5000參加單位微秒,這個函數(shù)通常都不精確SLEEP5參加單位秒,比較精確
下載積分: 6 賞幣
上傳時間:2024-03-08
頁數(shù): 10
大小: 0.06(MB)
子文件數(shù):
-
簡介:譚浩強C語言程序設(shè)計1C語言概述11C語言的發(fā)展過程12當(dāng)代最優(yōu)秀的程序設(shè)計語言13C語言版本14C語言的特點15面向?qū)ο蟮某绦蛟O(shè)計語言16C和C++17簡單的C程序介紹18輸入和輸出函數(shù)19C源程序的結(jié)構(gòu)特點110書寫程序時應(yīng)遵循的規(guī)則111C語言的字符集112C語言詞匯113TURBOC20集成開發(fā)環(huán)境的使用1131TURBOC20簡介和啟動1132TURBOC20集成開發(fā)環(huán)境1133FILE菜單1134EDIT菜單1135RUN菜單1136COMPILE菜單
下載積分: 9 賞幣
上傳時間:2024-03-07
頁數(shù): 440
大?。?1.32(MB)
子文件數(shù):
-
簡介:INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEVOIDMY_DELAYINTCLICKSUNSIGNEDINTFARCLOCKUNSIGNEDINTFAR0X0000046CLUNSIGNEDINTNOWNOWCLOCKWHILEABSCLOCKNOWCLICKSWENZIXIANSHIINTXYICH2STR“1234567QWERTYUASDFGHJ“X100SETTEXTSTYLE002OUTTEXTXY90100“PLEASEUSEAUTOMAKESOUND“SETTEXTSTYLE001OUTTEXTXY120320“PRESSESCTOEXIT“SETCOLREDFI0I21ICH0STRICH10OUTTEXTXYX5160CHX20RETURN0DONGHUAINTIJXSTEPX100STEPY180CASEHI19J1760BREAKCASEJI20J1976BREAKDEFAULTCONTINUESETFILLSTYLE115BARSTEPXI20STEPY0STEPXI2020STEPY100SOUNDJMY_DELAY3NOSOUNDSETFILLSTYLE10BARSTEPXI20STEPY0STEPXI2020STEPY100RETURN0MAININTMODEINTDRIVERDETECTINITGRAPHCLEARDEVICEDONGHUACLOSEGRAPHRETURN0
下載積分: 5 賞幣
上傳時間:2024-03-08
頁數(shù): 3
大小: 0.03(MB)
子文件數(shù):
-
簡介:C語言程序設(shè)計教程一、基本知識C語言是一種高級語言,適于編寫系統(tǒng)程序。它有良好的可移植性,應(yīng)用于各個領(lǐng)域。起源于ALGOL語言。具有良好的可讀性和可移植性。C語言屬于過程語言,即按照程序的設(shè)計算法逐條輸入語句。二、基本結(jié)構(gòu)C語言的基本結(jié)構(gòu)是指一個C程序的基本組成成分。如下DEFINEPI31415宏定義MAIN函數(shù)名函數(shù)體開始FLOATRACR半徑A面積C周長R25給定R的值A(chǔ)PIRR計算面積C2PIR計算周長PRINTF“R?FN”RA輸出R和A函數(shù)體結(jié)束經(jīng)過計算機(jī)的運算得到R2500000A19634956C語言的基本結(jié)構(gòu)就是函數(shù)。一個C程序由若干C函數(shù)構(gòu)成,一個C函數(shù)由若干C語言構(gòu)成,一條C語句由若干基本單詞構(gòu)成。C函數(shù)包括函數(shù)名形式參數(shù)函數(shù)體函數(shù)名是標(biāo)識函數(shù)的依據(jù),主函數(shù)名MAIN形式參數(shù)(形參)是函數(shù)調(diào)用時的數(shù)據(jù)傳遞途徑。有表示,不能省略。函數(shù)體是程序的主要語句。C語句完成某種功能的最小單位,所有語句以“;”號結(jié)尾。分為表達(dá)式語句、復(fù)合語句、空語句。表達(dá)式語句就是用“;”隔開的語句;復(fù)合語句就是用括起來的語句,屬于一條語句;只有一個“;”的語句就是空語句,作用就是延遲一段時間?;締卧~C語言有五種基本單詞關(guān)鍵字、標(biāo)識符、常數(shù)、操作符、分隔符。關(guān)鍵字是C語言中有特定意義和用途且不能它用的字符。如AUTOBREAKCASE等等。共有32個。強調(diào)所有關(guān)鍵字必須小寫。標(biāo)識符用來表示變量名、數(shù)組、函數(shù)、指針、結(jié)構(gòu)名等。由字符構(gòu)成,第一個字符必須是字母或下劃線。不能和C的關(guān)鍵字相同,且區(qū)分大小寫。如AB和AB就是不同的。常數(shù)包括數(shù)值常數(shù)、字符常數(shù)、字符串常數(shù)、符號常數(shù)等。操作符包括運算符和有特定意義的標(biāo)點符號。分隔符最常見的就是空格。三、書寫方式1)每個函數(shù)在程序中的位置是任意的。主函數(shù)不一定在程序開始處,但運行時總從主函數(shù)開始。2)每個程序行中的語句是任意的,即可一行寫多條語句,也可一條語句多行寫,但窗口組成主菜單、編輯窗口、編輯信息窗口、功能提示鍵。常用功能鍵F2存儲;F3載入;ALTX退出;CTRLF9運行;ALTF5切換結(jié)果窗口;EXIT返回編輯窗口;ALTFO暫時進(jìn)入DOS上機(jī)作業(yè)編寫一個程序一個籠子里有雞和兔。雞和兔的頭數(shù)共30個,腳共100只,算一下籠里有多少雞和兔提示數(shù)學(xué)模型XY302X4Y100程序如下INCLUDEMAININTXYFTSCANF“DD”X4TF2YF2T2PRINTF“CHICKENSDRABBITSDN”XY其中T頭數(shù)F腳數(shù)X雞數(shù)Y兔數(shù)?;緮?shù)據(jù)類型和數(shù)據(jù)運算一、基本數(shù)據(jù)類型包括整型、浮點型、雙精度型、字符型及無值類型。通常代表單個數(shù)據(jù)。整型INT描述整數(shù);字符型描述單個字符;浮點型(單精度型)FLOAT描述實數(shù)。雙精度型DOUBLE無值型VOID沒有具體值?;緮?shù)據(jù)類型的修飾SIGNED符號型,能修飾和INT型數(shù)據(jù)。UNSIGNED無符號型。SHT短型,只能修飾INT。LONG長型,能修飾INT和DOUBLE型。二、常量及類型常量在程序運行過程中,其值不變的量。分四種整型、雙精度型、字符型、字符串型。由于C語言對書寫形式較為嚴(yán)格,所以分清類型對書寫程序非常重要
下載積分: 6 賞幣
上傳時間:2024-03-07
頁數(shù): 19
大?。?0.12(MB)
子文件數(shù):
-
簡介:中國最先進(jìn)的大學(xué)生互動求職平臺19經(jīng)典)經(jīng)典)C語言測試想成為嵌入式程序員應(yīng)知道的語言測試想成為嵌入式程序員應(yīng)知道的0X100X10個基本問題個基本問題C語言測試是招聘嵌入式系統(tǒng)程序員過程中必須而且有效的方法。這些年,我既參加也組織了許多這種測試,在這過程中我意識到這些測試能為帶面試者和被面試者提供許多有用信息,此外,撇開面試的壓力不談,這種測試也是相當(dāng)有趣的。從被面試者的角度來講,你能了解許多關(guān)于出題者或監(jiān)考者的情況。這個測試只是出題者為顯示其對ANSI標(biāo)準(zhǔn)細(xì)節(jié)的知識而不是技術(shù)技巧而設(shè)計嗎這個愚蠢的問題嗎如要你答出某個字符的II值。這些問題著重考察你的系統(tǒng)調(diào)用和內(nèi)存分配策略方面的能力嗎這標(biāo)志著出題者也許花時間在微機(jī)上而不上在嵌入式系統(tǒng)上。如果上述任何問題的答案是“是“的話,那么我知道我得認(rèn)真考慮我是否應(yīng)該去做這份工作。從面試者的角度來講,一個測試也許能從多方面揭示應(yīng)試者的素質(zhì)最基本的,你能了解應(yīng)試者C語言的水平。不管怎么樣,看一下這人如何回答他不會的問題也是滿有趣。應(yīng)試者是以好的直覺做出明智的選擇,還是只是瞎蒙呢當(dāng)應(yīng)試者在某個問題上卡住時是找借口呢,還是表現(xiàn)出對問題的真正的好奇心,把這看成學(xué)習(xí)的機(jī)會呢我發(fā)現(xiàn)這些信息與他們的測試成績一樣有用。有了這些想法,我決定出一些真正針對嵌入式系統(tǒng)的考題,希望這些令人頭痛的考題能給正在找工作的人一點幫住。這些問題都是我這些年實際碰到的。其中有些題很難,但它們應(yīng)該都能給你一點啟迪。這個測試適于不同水平的應(yīng)試者,大多數(shù)初級水平的應(yīng)試者的成績會很差,經(jīng)驗豐富的程序員應(yīng)該有很好的成績。為了讓你能自己決定某些問題的偏好,每個問題沒有分配分?jǐn)?shù),如果選擇這些考題為你所用,請自行按你的意思分配分?jǐn)?shù)。預(yù)處理器(PREPROCESS)1用預(yù)處理指令DEFINE聲明一個常數(shù),用以表明1年中有多少秒(忽略閏年問題)DEFINESECONDS_PER_YEAR606024365UL我在這想看到幾件事情DEFINE語法的基本知識(例如不能以分號結(jié)束,括號的使用,等等)懂得預(yù)處理器將為你計算常數(shù)表達(dá)式的值,因此,直接寫出你是如何計算一年中有多少秒而不是計算出實際的值,是更清晰而沒有代價的。意識到這個表達(dá)式將使一個16位機(jī)的整型數(shù)溢出因此要用到長整型符號L告訴編譯器這個常數(shù)是的長整型數(shù)。如果你在你的表達(dá)式中用到UL(表示無符號長整型),那么你有了一個好的起點。記住,第一印象很重要。2寫一個“標(biāo)準(zhǔn)“宏MIN,這個宏輸入兩個參數(shù)并返回較小的一個。DEFINEMINAB((A)BAB這個測試是為下面的目的而設(shè)的標(biāo)識DEFINE在宏中應(yīng)用的基本知識。這是很重要的,因為直到嵌入INLINE操作符變?yōu)闃?biāo)準(zhǔn)C的一部分,宏是方便產(chǎn)生嵌入代碼的唯一方法,對于嵌入式系統(tǒng)來說,為了能達(dá)到要求的性能,嵌入代碼經(jīng)常是必須的方法。三重條件操作符的知識。這個操作符存在C語言中的原因是它使得編譯器能產(chǎn)生比IFTHENELSE更優(yōu)化的代碼,了解這個用法是很重要的。懂得在宏中小心地把參數(shù)用括號括起來中國最先進(jìn)的大學(xué)生互動求職平臺39A一個整型數(shù)(ANINTEGER)B一個指向整型數(shù)的指針(APOINTERTOANINTEGER)C一個指向指針的的指針,它指向的指針是指向一個整型數(shù)(APOINTERTOAPOINTERTOANINTEGE)RD一個有10個整型數(shù)的數(shù)組(ANARRAYOF10INTEGERS)E一個有10個指針的數(shù)組,該指針是指向一個整型數(shù)的。(ANARRAYOF10POINTERSTOINTEGERS)F一個指向有10個整型數(shù)數(shù)組的指針(APOINTERTOANARRAYOF10INTEGERS)G一個指向函數(shù)的指針,該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)(APOINTERTOAFUNCTIONTHATTAKESANINTEGERASANARGUMENTRETURNSANINTEGER)H一個有10個指針的數(shù)組,該指針指向一個函數(shù),該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)(ANARRAYOFTENPOINTERSTOFUNCTIONSTHATTAKEANINTEGERARGUMENTRETURNANINTEGER)答案是AINTAANINTEGERBINTAAPOINTERTOANINTEGERCINTAAPOINTERTOAPOINTERTOANINTEGERDINTA10ANARRAYOF10INTEGERSEINTA10ANARRAYOF10POINTERSTOINTEGERSFINTA10APOINTERTOANARRAYOF10INTEGERSGINTAINTAPOINTERTOAFUNCTIONATHATTAKESANINTEGERARGUMENTRETURNSANINTEGERHINTA10INTANARRAYOF10POINTERSTOFUNCTIONSTHATTAKEANINTEGERARGUMENTRETURNANINTEGER人們經(jīng)常聲稱這里有幾個問題是那種要翻一下書才能回答的問題,我同意這種說法。當(dāng)我寫這篇文章時,為了確定語法的正確性,我的確查了一下書。但是當(dāng)我被面試的時候,我期望被問到這個問題(或者相近的問題)。因為在被面試的這段時間里,我確定我知道這個問題的答案。應(yīng)試者如果不知道所有的答案(或至少大部分答案),那么也就沒有為這次面試做準(zhǔn)備,如果該面試者沒有為這次面試做準(zhǔn)備,那么他又能為什么出準(zhǔn)備呢STATIC6關(guān)鍵字STATIC的作用是什么這個簡單的問題很少有人能回答完全。在C語言中,關(guān)鍵字STATIC有三個明顯的作用在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。在模塊內(nèi)(但在函數(shù)體外),一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量。在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用。大多數(shù)應(yīng)試者能正確回答第一部分,一部分能正確回答第二部分,同是很少的人能懂得第三部分。這是一個應(yīng)試者的嚴(yán)重的缺點,因為他顯然不懂得本地化數(shù)據(jù)和代碼范圍的好處和重要性。CONST7關(guān)鍵字CONST有什么含意我只要一聽到被面試者說“CONST意味著常數(shù)“,我就知道我正在和一個業(yè)余者打交道。去年DANSAKS已經(jīng)在他的文章里完全概括了CONST的所有用法,因此ESP譯者EMBEDDEDSYSTEMSPROGRAMMING的每一位讀者應(yīng)該非常熟悉CONST能做什么和不能做什么如果你從沒有讀到那篇文章,只要能說出CONST意味著“只讀“就可以了。盡管這個答案不是完全的答案,但我接受它作為一個正確的答案。(如果你想知道更詳細(xì)的答案,仔細(xì)讀一下SAKS的
下載積分: 6 賞幣
上傳時間:2024-03-07
頁數(shù): 9
大?。?0.08(MB)
子文件數(shù):
-
簡介:分類3編寫一程序P313C實現(xiàn)以下功能求任意的一個MN矩陣的鞍點鞍點是指該位置上的元素在該行上為最大、在該列上為最小,矩陣中可能沒有鞍點,但最多只有一個鞍點。M、N2M20、2N20及矩陣元素從鍵盤輸入只考慮INT型和每行、每列中沒有并列最大/最小的情況。編程可用素材PRINTF“PLEASEINPUTMN“、PRINTF“PLEASEINPUTAJUZHENHANGLIEN、PRINTF“NMEIYOUANDIANN“、PRINTF“NYOUANDIANWEIJUZHENN。程序的運行效果應(yīng)類似地如圖1和圖2所示,圖1中的56和314236742358883257374347144797512577445459336544342543683425827891232134及圖2中的56和31421136742358883257413743471447975112577445459336574434254368342521827891232134是從鍵盤輸入的內(nèi)容。圖1程序運行效果示例無鞍點單擊此處上傳所設(shè)計的程序單擊此處上傳所設(shè)計的程序“P412C”“P412C”3分類3編寫一程序P415C實現(xiàn)以下功能設(shè)有10名歌手編號為110參加歌詠比賽,另有6名評委打分,每位歌手的得分從鍵盤輸入先提示“PLEASEINPUTSINGERSSCE”,再依次輸入第1個歌手的6位評委打分10分制,分?jǐn)?shù)為整型,分?jǐn)?shù)之間使用空格分隔,第2個歌手的6位評委打分以此類推。計算出每位歌手的最終得分扣除一個最高分和一個最低分后的平均分,最終得分保留2位小數(shù),最后按最終得分由高到低的順序輸出每位歌手的編號及最終得分。注意變量數(shù)據(jù)類型的選擇應(yīng)適當(dāng),在保證滿足設(shè)計要求精度的情況下,養(yǎng)成不浪費內(nèi)存空間和計算時間的好習(xí)慣。編程可用素材PRINTF“PLEASEINPUTSINGERSSCE“、PRINTF“NSCESN“、PRINTF“NO。程序的運行效果應(yīng)類似地如圖1所示,其中的147363468358736842747464456725357893744738943736483728516787是從鍵盤輸入的內(nèi)容。圖1程序運行效果示例
下載積分: 6 賞幣
上傳時間:2024-03-08
頁數(shù): 12
大?。?0.59(MB)
子文件數(shù):
-
簡介:第7章高級匯編語言程序設(shè)計高級匯編語言程序設(shè)計7171結(jié)構(gòu)結(jié)構(gòu)711結(jié)構(gòu)的定義結(jié)構(gòu)的定義格式結(jié)構(gòu)名結(jié)構(gòu)名STRUC字段名字段名DBDWDD字段定義字段定義結(jié)構(gòu)名結(jié)構(gòu)名ENDS結(jié)構(gòu)定義是一種對存儲形式的描述并不真正分配存儲空間只是定義了一種新的數(shù)據(jù)類型類似定義了一個類面向?qū)ο蠹夹g(shù)的思考方法。類是結(jié)構(gòu)的進(jìn)化。例定義一個學(xué)生成績結(jié)構(gòu)STUDENTSTRUCNUM1DB;學(xué)號NAME1DB‘ABCDEFGHIJ’;姓名SEX1DB;性別MATH1DBCOMPU1DBADDRESS1DB20DUP;地址STUDENTENDS712結(jié)構(gòu)變量的定義結(jié)構(gòu)變量的定義格式變量名變量名結(jié)構(gòu)名結(jié)構(gòu)名變量名變量名結(jié)構(gòu)名結(jié)構(gòu)名NDUP定義了變量后才分配了存儲空間,變量類似面對象技術(shù)中的一個實例。例S1STUDENTS2STUDENT723記錄的運算記錄的運算1記錄或記錄字段寬度運算符WIDTHMOVAXWIDTHSTUFMOVDLWIDTHSEX2記錄屏蔽運算符MASK返回8位或16位,只對應(yīng)記錄段名為1,其它位為0MOVAXMASKSEX724對記錄及字段的訪問對記錄及字段的訪問用MASK7373宏匯編宏匯編731宏定義宏定義C中的INLINE格式格式(1)帶參宏定義)帶參宏定義宏指令名宏指令名MACRO形參形參1,形參,形參2,宏體宏體ENDM(2)無參宏定義)無參宏定義宏指令名宏指令名MACRO宏體宏體ENDM例例PRINTMACROBUF1LEADX,BUF1MOVAH,9INT21HENDM732宏調(diào)用宏調(diào)用格式格式宏指令名宏指令名實參實參1,實參,實參2,例如對上面的宏定義的三種調(diào)用形式為例如對上面的宏定義的三種調(diào)用形式為┆PRINTBUF1┆PRINTBUF2┆PRINTBUF3┆
下載積分: 5 賞幣
上傳時間:2024-03-08
頁數(shù): 5
大?。?0.06(MB)
子文件數(shù):
-
簡介:FILENAMEC語言規(guī)范PDF1CC語言規(guī)范語言規(guī)范摘要摘要本文描述C編程語言的語法、語義和設(shè)計。作者作者SCOTTWILTAMUTH和ERSHEJLSBERGFILENAMEC語言規(guī)范PDF322詞法結(jié)構(gòu)詞法結(jié)構(gòu)757521程序7622語法77221文法表示法78222詞法文法79223句法文法8023詞法分析81231行結(jié)束符82232空白83233注釋8424標(biāo)記86241UNICODE字符轉(zhuǎn)義序列87242標(biāo)識符88243關(guān)鍵字90244文本912441布爾值922442整數(shù)932443實數(shù)952444字符962445字符串972446空文本99245運算符和標(biāo)點符號10025預(yù)處理指令101251條件編譯符號103252預(yù)處理表達(dá)式104253聲明指令105254條件編譯指令107255診斷指令110256區(qū)域指令111257行指令11233基本概念基本概念11311331應(yīng)用程序啟動11432應(yīng)用程序終止11533聲明116
下載積分: 9 賞幣
上傳時間:2024-03-07
頁數(shù): 707
大小: 2.08(MB)
子文件數(shù):
-
簡介:C世界DUANXINC世界說明說明1、原先的少部分題目有錯,請用紅色的部分替換掉;、原先的少部分題目有錯,請用紅色的部分替換掉;2、如果紅色部分有文字、如果紅色部分有文字“刪除該行刪除該行”,就直接刪除該行;,就直接刪除該行;第一章第一章C語言的基礎(chǔ)知識語言的基礎(chǔ)知識第一節(jié)對C語言的初步認(rèn)識習(xí)題1下列敘述中錯誤的是BA)任何一個C程序都必須有且僅有一個MAIN函數(shù),C語言總是從MAIN函數(shù)開始執(zhí)行。B)C語言中的變量,可以先使用后定義。C)所有的C語言語句最后都必須有一個分號D)C程序書寫格式自由,語句可以從任一列開始書寫,一行內(nèi)可以寫多個語句。第二節(jié)熟悉VISUALC習(xí)題1C語言源程序名的后綴是BA)EXEB)CC)OBJD)CP2下列敘述中錯誤的是DA)計算機(jī)不能直接執(zhí)行用C語言編寫的源程序B)C程序經(jīng)C編譯后,生成后綴為OBJ的文件是一個二進(jìn)制文件C)后綴為OBJ的文件,經(jīng)連接程序生成后綴為EXE的文件是一個二進(jìn)制文件D)后綴為OBJ和EXE的二進(jìn)制文件都可以直接運行3用C語言編寫的代碼程序BA)可立即執(zhí)行B)是一個源程序C)經(jīng)過編譯即可執(zhí)行D)經(jīng)過編譯解釋才能執(zhí)行C世界DUANXIN第三節(jié)標(biāo)識符習(xí)題1按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是BA)大寫字母B)連接符C)數(shù)字字符D)下劃線2以下選項中不合法的標(biāo)識符是CA)PRINTB)FC)B)DOUBLEINT_C)LONGFD)FLOATUS第六節(jié)算術(shù)表達(dá)式與賦值表達(dá)式習(xí)題1表達(dá)式36-521252的值是DA)43B)48C)33D)382設(shè)有定義FLOATX1234567,則執(zhí)行以下語句后輸出的結(jié)果是_____。12346PRINTF“FN“INTX1000510003設(shè)有定義FLOATA2B4H3以下C語言表達(dá)式與代數(shù)式H計算結(jié)果不相符的是BA)ABH2B)12ABHC)ABH12D)H2AB第七節(jié)自加自減運算符、逗號表達(dá)式習(xí)題1設(shè)變量已正確定義為整型,則表達(dá)式NI2II的值為______。32設(shè)有定義INTK0以下選項的4個表達(dá)式中與其他3個表達(dá)式的值不相同的是AA)KB)K1C)KD)K13有以下程序BMAINA1MA2MPRINTF“CN“A1A2以下敘述中正確的是A)程序輸出大寫字母MB)程序輸出小寫字母MC)格式說明符不足,編譯出錯D)程序運行時產(chǎn)生出錯信息4有以下程序BMAININTA0B0A10給A賦值B20給B賦值PRINTF“ABDN“AB輸出計算結(jié)果程序運行后的結(jié)果是A)AB30B)AB10C)30D)程序出錯第八節(jié)字符習(xí)題1以下選項中不屬于字符常量的是()。BA)CB)“C“C)0D)0722已知字母A的Ⅱ代碼值為65,若變量KK為型,以下不能正確判斷出KK中的值為大寫字母的表達(dá)式是()。BA)KKAKKA‖KKZ
下載積分: 8 賞幣
上傳時間:2024-03-07
頁數(shù): 33
大?。?0.13(MB)
子文件數(shù):