當前位置:首頁 » 編程語言 » C語言的教訓

C語言的教訓

發布時間: 2022-09-22 03:19:37

『壹』 c語言錯誤:expression must be a modifiable lvalue

這邊有兩個錯誤,首先,if括弧里是賦值語句,不是判斷語句,只有一個=,那麼報錯就是這邊導致的,第二個,c裡面兩個char字元串不能直接用=比較是否相等,應該用strcmp

(1)C語言的教訓擴展閱讀

基本特性

1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。

2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。

C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。

3、代碼級別的跨平台:由於標準的存在,使得幾乎同樣的C代碼可用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬體操作的場合,優於其它高級語言。

4、使用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持

但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果

但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。

『貳』 C語言的特點有哪些

  1. C語言是一個有結構化程序設計、具有變數作用域以及遞歸功能的過程式語言。

  2. C語言傳遞參數均是以值傳遞,另外也可以傳遞指針。

  3. 不同的變數類型可以用結構體組合在一起。

  4. 只有32個保留字,使變數、函數命名有更多彈性。

  5. 部份的變數類型可以轉換,例如整型和字元型變數。

  6. 通過指針,C語言可以容易的對存儲器進行低級控制。

  7. 編譯處理讓C語言的編譯更具有彈性。

(2)C語言的教訓擴展閱讀:

C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

『叄』 c語言的主要用途

C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。

基本特性
1、C是高級語言:它把高級語言的基本結構和語句與低級語言的實用性結合起來。工作單元。

2、C是結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。

3、C語言功能齊全:具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。

4、C語言適用范圍大:適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要硬體進行操作的場合,優於其它高級語言,有一些大型應用軟體也是用C語言編寫的。

5、C語言應用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。

『肆』 介紹一下C

這種事,自己問度娘啊。
C語言是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出。1978後,C語言已先後被移植到大、中、小及微型機上。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫。具體應用比如單片機以及嵌入式系統開發。

結構
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數組成。
3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。
4.源程序中可以有預處理命令(包括include 命令、if命令、pragma命令),預處理命令通常應放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。
6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
編輯本段特點
1. C是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2.C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。
4. C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。
C語言對編寫需要硬體進行操作的場合,明顯優於其它高級語言,有一些大型應用軟體也是用C語言編寫的。
編輯本段特色
指針是C語言的一大特色,可以說是C語言優於其它高級語言的一個重要原因。就是因為它有指針,可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
編輯本段入門
對於一個初學者,Microsoft Visual C++是一個比較好的軟體。界面友好,功能強大,調試也很方便。這是微軟出的一個C語言集成開發環境(IDE),主要有:VC++6.0、VS2005.VS2008.VS2010等,分為企業版和學生版等。對於初學者VC++6.0是比較容易上手的,但其對標准支持的不好可能使人養成不良的編程習慣。
在unix/linux操作系統上,學習c語言一般使用vim/emacs來編輯源文件,使用gcc來編譯源文件,使用make程序來管理編譯過程。
其他編譯器如CodeBlocks10.05(跨平台linux/windows開源免費)、dev-c++(開源免費)、turbo、c-free5.0、codelite(開源免費)、eclipse(開源免費基於Java 擴展平台)……

請看參考資料

『伍』 c語言 !!是什麼

結構
1.一個C語言源程序可以由一個或多個源文件組成。 2.每個源文件可由一個或多個函數組成。 3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。 4.源程序中可以有預處理命令(包括include 命令、if命令、pragma命令),預處理命令通常應放在源文件或源程序的最前面。 5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。 6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
編輯本段特點
1. C是高級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。 2.C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。 3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。 4. C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。 C語言對編寫需要硬體進行操作的場合,明顯優於其它高級語言,有一些大型應用軟體也是用C語言編寫的。
編輯本段特色
指針是C語言的一大特色,可以說是C語言優於其它高級語言的一個重要原因。就是因為它有指針,可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。 C語言的強勁之處在於用數學觀點對基於存儲程序原理(store program concept)的硬體架構進行軟抽象。
編輯本段入門
對於一個初學者,Microsoft Visual C++是一個比較好的軟體。界面友好,功能強大,調試也很方便。這是微軟出的一個C語言集成開發環境(IDE),主要有:VC++6.0、VS2005.VS2008.VS2010等,分為企業版和學生版等。對於初學者VC++6.0是比較容易上手的,但其對標准支持的不好可能使人養成不良的編程習慣。 在unix/linux操作系統上,學習c語言一般使用vim/emacs來編輯源文件,使用gcc來編譯源文件,使用make程序來管理編譯過程。 其他編譯器如CodeBlocks10.05(跨平台linux/windows開源免費支持高達29種不同的項目)、dev-c++(開源免費)、turbo、c-free5.0、codelite(開源免費)、eclipse(開源免費基於Java 擴展平台)……
編輯本段歷史
C語言的祖先是BCPL語言。 1967年,劍橋大學的 Martin Richards 對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Pogramming Language)語言。 1970年,美國貝爾實驗室的 Ken Thompson。以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。 在1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。 為了使UNIX操作系統推廣,1977年Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。 1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchie合著了著名的《The C Programming Language》一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C語言,後來由美國國家標准化協會(American National Standards Institute)在此基礎上制定了一個C語言標准,於一九八三年發表。通常稱之為ANSI C。 K&R第一版在很多語言細節上也不夠精確,對於pcc這個「參照編譯器」來說,它日益顯得不切實際;K&R甚至沒有很好表達它所要描述的語言,把後續擴展扔到了一邊。最後,C在早期項目中的使用受商業和政府合同支配,它意味著一個認可的正式標準是重要的。因此(在M. D. McIlroy的催促下),ANSI於1983年夏天,在CBEMA的領導下建立了X3J11委員會,目的是產生一個C標准。X3J11在1989年末提出了一個他們的報告[ANSI 89],後來這個標准被ISO接受為ISO/IEC 9899-1990。 1990年,國際標准化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標准(ISO9899-1990)。1994年,ISO修訂了C語言的標准。 1995年,ISO對C90做了一些修訂,即「1995基準增補1(ISO/IEC/9899/AMD1:1995)」。1999年,ISO有對C語言標准進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為ISO/IEC9899:1999。 2001年和2004年先後進行了兩次技術修正。 目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。
編輯本段優點
簡潔緊湊、靈活方便 C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。 運算符豐富 C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。 數據類型豐富 C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據結構的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。 同時對於不同的編譯器也有各種 C是結構式語言 結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。 語法限制不太嚴格,程序設計自由度大 雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。 允許直接訪問物理地址,對硬體進行操作 由於C語言允許直接訪問物理地址,可以直接對硬體進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。 生成目標代碼質量高,程序執行效率高 一般只比匯編程序生成的目標代碼效率低10へ20%。 適用范圍大,可移植性好 C語言有一個突出的優點就是適合於多種操作系統,如DOS、UNIX、windows 98.windows NT;也適用於多種機型。C語言具有強大的繪圖能力,可移植性好,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫,它也是數值計算的高級語言。
編輯本段缺點
1. C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。 2. C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。
編輯本段運算
C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。 先要明確運算符按優先順序不同分類,《C程序設計》運算符可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2.13級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序.
編輯本段結構
順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。 例如:a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為:c = a; a = b; b = c;執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。
選擇結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用選擇結構。選擇結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。選擇結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的選擇語句。選擇結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。

『陸』 c語言編程怎樣入門

相對於其他編程語言,C語言還是比較難的。初學者需要注意一下幾點:
一是學習順序
先從熟悉簡單的C語言語法開始入門,然後再循序漸進,學習C++語法,WIN32、MFC、QT、網路編程,資料庫、數據結構、演算法、COM、STL等。構建一個完整的C語言知識體系。這需要一個比較漫長的學習積累的過程。語法入門部分大概2-3個月,其他部分需要學習和工作中慢慢理解和消化了。
二是學習方法
人的知識80%是通過眼睛獲取的,但是學習編程有所不同,除了看書、看視頻之外,關鍵是要勤動手,勤動腦。通過做大量的練習、項目實戰不斷積累代碼量。只有代碼量足夠多了,項目做的多了,才能算是真正學會了。項目能否完成,就是衡量是否學會的唯一標准。後期就是代碼的質量和優化問題了,這個只能在項目工作中慢慢積累經驗了。
最後強調一點,很多人學不會編程是因為掉坑裡了。就是教程或者書上的知識點之間跨越太大,作為一個初學者很難自己摸索出來,前面的知識點沒有掌握,接著學習後面的知識,肯定是學不會了。目前絕大多數編程書籍和教程或多或少都有這樣的弊端。自學能力比較強的人可以通過各種方法,參考各種網上的資料自己解決。但是大多數自學能力不是很強的人,只能依賴老師、同學、同事或者朋友幫忙指導,或者報名培訓機構,老師指導完成了。學習編程通常需要一些好的學習資料,包括紙質的書籍,視頻教程,課件,項目練習,代碼。零基礎入門的書籍推薦《明解C語言》、《C Primer Plus》,還有一本非常特別的匯編和C語言正向逆向結合的書編程達人內部教材《匯編、C語言基礎教程》也非常不錯,講解匯編和C語言的本質非常透徹,非常細致。視頻資料也是特別多了,各種視頻網站、論壇、自媒體都有,比如網易課堂、騰訊課堂、慕客網這些。還有一些論壇,比如CSDN、編程中國等。最重要的一點就是答疑服務,推薦愛達人的網站也很不錯,從零基礎入門到應用課程,配套的視頻、課件、代碼、項目、答疑服務都有,還可以兼職接單,學以致用。

『柒』 C語言中的%是個什麼意思啊 有什麼用啊

%是求模的意思,兩邊必須是整數類型的,求模常用符號為mod,就是我們小學學的求余運算符。

例如50%23=4,因為余數為4,所以在程序中必須保證兩邊為整數才是這個意思。

(7)C語言的教訓擴展閱讀

「模」是「Mod」的音譯,模運算多應用於程序編寫中。 Mod的含義為求余。模運算在數論和程序設計中都有著廣泛的應用,從奇偶數的判別到素數的判別,從模冪運算到最大公約數的求法,從孫子問題到凱撒密碼問題,無不充斥著模運算的身影。雖然很多數論教材上對模運算都有一定的介紹,但多數都是以純理論為主,對於模運算在程序設計中的應用涉及不多。

基本性質

(1)若p|(a-b),則a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)

(2)(a % p)=(b % p)意味a≡b (% p)

(3)對稱性:a≡b (% p)等價於b≡a (% p)

(4)傳遞性:若a≡b (% p)且b≡c (% p) ,則a≡c (% p)

參考資料模運算_網路

『捌』 學完c語言後

如果學了C 不會數據結構的話 等於白學了,必須會數據結構,比如鏈表,樹,圖等幾個主要的結構

以前我也是剛學完C不太會數據結構,但其實學數據結構最關鍵的是要學會typedef的用法,要吃透,吃透他就差不多了,再要注意的是數據結構上的程序都是個抽象概念,上面的程序都是不能直接運行的,比如上面的一些函數,都是要自己去定義出來才行的

這里我有些題目 你先不必把數據結構一本書都看完,你做一道題,肯定與相關的數據結構知識有關,你對照這些題目去學數據結構上的知識點,相信你就會很快理解數據結構了

1. 設計一個單循環鏈表, 對鏈表進行相應的刪除操作。
數據輸入:
第一行為的正整數個數m。
第二行為要處理的m個正整數,中間用一個空格間隔;
第三行為要刪除的數據位置,可能為多次循環後之值。
數據輸出:
輸出刪除後的數據排列,中間用空格間隔。
示例:
輸入文件input1.txt:
3
1 2 3
5
輸出:(標准輸出)
1 3

2. 設計一個有序順序表,要求對兩個順序表中的元素進行排序後輸出。有序順序表和順序表的主要區別是有序順序表中的數據元素按數據元素值非遞減有序。
數據輸入:
第一行為要處理的第一個順序表包含的數據個數m。
第二行為要處理的第一個順序表,m個正整數之間用空格間隔。
第三行為要處理的第二個順序表包含的數據個數n。
第四行為要處理的第二個順序表,n個正整數之間用空格間隔。
數據輸出:
輸出合並後的有序順序表,數據之間用空格間隔。
示例:
輸入文件input2.txt:
2
1 4
2
3 2
輸出:(標准輸出)
1 2 3 4

3. 編寫一個判斷算術表達式中開括弧和閉括弧是否配對的演算法。
數據輸入:
第一行:算術表達式個數n
第二行到第(n+1)行:n個算術表達式
數據輸出:
第一行到第n行:n個算術表達式是否匹配,匹配為1,不匹配為0。
示例:
輸入文件input4.txt:
2
3+(4-5*6)
1-((4-8/2)
輸出:(標准輸出)
1
0

4. 鏈式堆棧設計。要求用鏈式堆棧設計實現堆棧。
數據輸入:
第一行:要入棧的數據個數m。
第二行:要入棧的m個數據。
第三行:要取出的第n個數據。
數據輸出:
輸出第n個數據的值。
示例:
輸入文件input5.txt:
5
2 4 6 8 10
4
輸出:(標准輸出)
4

5. 設串採用靜態數組存儲結構,編寫函數實現串的替換,即要求在主串S中,查找是否存在子串T,若主串S中存在子串T,則用子串V替換子串T;若主串S中不存在子串T,則返回0。
數據輸入:
第一行:測試串的個數n
第二行到第(n+1)行:n個串的值
第(n+2)行:子串T
第(n+3)行:子串V
數據輸出:
第一行到第n行:經過處理之後的n個串,如果存在子串T,則返回替換之後的串,如果不存在子串T,則返回0。
示例:
輸入文件input7.txt:
2
I am a student
I am a teacher
student
teacher
輸出:(標准輸出)
I am a teacher
0

6. 設串採用靜態數組存儲結構,試比較兩個串的大小。
數據輸入:
第一行:第一個串的值
第二行:第二個串的值
數據輸出:
第一行:兩個串的比較結果,比較結果可能有大於、等於和小於三種情況,分別輸出」>」,」=」,」<」。
示例:
輸入文件input8.txt:
I am a student
I am a teacher
輸出:(標准輸出)
<

7. 設對稱矩陣A、B和C為採用壓縮存儲方式存儲的n階上三角矩陣,矩陣元素為整數類型,要求:實現矩陣加C = A + B和矩陣乘C = A × B。
數據輸入:
第一行:矩陣的行列數m。
第二行到第(m+1)行:矩陣A的各行的的值。
第(m+2)行到第(2m+1)行:矩陣B的各行的的值。
數據輸出:
第1行到第m行:矩陣C各行的值。
第m+1行到第2m行:矩陣D各行的值。
示例:
輸入文件input10.txt:
2
1 2
3 4
5 6
7 8
輸出:(標准輸出)
6 8
10 12
19 22
43 50

8. 若將稀疏矩陣中的非零元素以行序為主序的順序存於一個一維數組中,並用一個二維數組表示稀疏矩陣中的相應元素是否是零元素,若稀疏矩陣中某元素是零元素,則該二維數組中對應位置的元素為0;否則為1。例如對稀疏矩陣A,可用一維數組V={10,20,30,40}和二維數組{1,0,1,0,0,1,1,0,0}表示該稀疏矩陣。實現使用上述稀疏矩陣存儲結構的矩陣加運算X=X+Y。
數據輸入:
第一行:矩陣X非零各元素的個數m。
第二行:矩陣X的m個非零元素的值。
第三行:矩陣X的二維0,1數組。
第四行:矩陣Y非零各元素的個數n。
第五行:矩陣Y的n個非零元素的值。
第六行:矩陣Y的二維0,1數組。
數據輸出:
第一行:矩陣X與Y相加之後非零各元素的值。
第二行:矩陣XY相加之後的二維0,1數組。
示例:
輸入文件 input11.txt:
2
1 2
0 1 0 1
2
3 4
1 0 1 0
輸出:(標准輸出)
3 1 4 2
1 1 1 1

9. 背包問題。設有一個背包可以放入物品的重量為s,現有n件物品,重量分別為w[0],w[1],...,[n-1]。問題是能否從這n件物品中選擇若干件放入此背包中使得放入的重量之和正好等於s。如果存在一種符合上述要求的選擇,則稱此背包問題有解;否則稱此背包問題無解。
數據輸入:
第一行:測試集合個數m。
第二行:第一個測試用例的s值。
第三行:第一個測試用例的物品數量n。
第四行:第一個測試用例的n件物品的重量,中間用空格分開。
第五行:第二個測試用例的s值。
第六行:第二個測試用例的物品數量n。
第七行:第二個測試用例的n件物品的重量,中間用空格分開。
………
第2m行:第m個測試用例的s值。
第2m+1行:第m個測試用例的物品數量n。
第2m+2行:第m個測試用例n件物品的重量,中間用空格分開。
數據輸出t:
第一行到第m行:分別輸出是否成功,如果可以放入和為s的物品,則輸出1,否則輸出0。
示例:
輸入文件input13.txt:
2
21
5
2 5 9 11 13
13
4
2 3 5 8
輸出:(標准輸出)
0
1

10. 用遞歸演算法實現折半查找問題。
數據輸入:
第一行:測試集合個數m。
第二行:第一個測試用例測試數據的個數n。
第三行:第一個測試用例的要查找的s值。
第四行:第一個測試用例的n個測試數據。
第五行:第二個測試用例測試數據的個數n。
第六行:第二個測試用例的s值。
第七行:第二個測試用例的n個測試數據。
………
第2m行:第m個測試用例測試數據的個數n。
第2m+1行:第m個測試用例的s值。
第2m+2行:第m個測試用例的n個測試數據。
數據輸出:
第一行到第m行:分別輸出是否成功,如果能查到,則輸出查到的位置,否則輸出0。
示例:
輸入文件input14.txt:
2
5
3
2 3 5 9 11
5
4
2 3 5 9 11
輸出:(標准輸出)
2
0

11. 根據輸入重構一個二叉樹,輸出按不同順序遍歷的節點序列
數據輸入:
第一行是一個整數N(1<=N<=20),表示有多少個測試例子,以下每行是一個測試例子。每個測試例子第一個是一個整數M,表示輸出的遍歷順序,其中M=0,表示前序;M=1,表示中序;M=2,表示後序。然後是一個字元序列,字元序列由A-Z和#表示,A-Z表示節點,#表示空。如果字元所在字元串的位置為i(i為正整數,位置從1開始計數),則位置為i*2,i*2+1的節點為它的子節點。如果i*2,i*2+1超過字元串長度,表示子節點為空。
數據輸出:
每行輸出一個例子的結果。一個字元串,中間無空格。
示例:
輸入文件名:input16.txt
2
0 AB#CD######EF
1 AB#CD######EF
輸出:(標准輸出)
ABCDEF
CBEDFA

12. 根據輸入的二叉樹前序和中序遍歷序列重構二叉樹,輸出對應節點的左右子節點。
數據輸入:
第一行是一個整數N(1<=N<=20),表示有多少個測試例子。以下每個測試例子的第一行是本測試例子的二叉樹的前序遍歷,第二行是中序遍歷,第三行首先是一個整數M,表示要求輸出結果的數目,以後有M個節點,每個中間由一個空格隔開。
數據輸出:
每行輸出一個例子的所有結果,如果其子節點為空則輸出字元#,同一例子的不同節點的輸出結果之間用一個空格隔開
示例:
輸入文件名:input17.txt
1
ABCDEF
CBEDFA
3 A B C
輸出:(標准輸出)
B# CD ##

『玖』 c語言都有什麼

C語言是一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C語言描述問題比匯編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%~20%。因此,C語言可以編寫系統軟體。

1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。[10]2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。[10]3、代碼級別的跨平台:由於標準的存在,使得幾乎同樣的C代碼可用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬體操作的場合,優於其它高級語言。[10]4、使用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。

熱點內容
收件伺服器有什麼作用 發布:2025-01-10 21:50:01 瀏覽:387
安卓70緩存 發布:2025-01-10 21:49:03 瀏覽:680
圖像檢索演算法 發布:2025-01-10 21:43:58 瀏覽:555
plsqlforupdate 發布:2025-01-10 21:43:50 瀏覽:913
如何設置健康碼快捷方式vivo安卓 發布:2025-01-10 21:39:52 瀏覽:500
安卓不兼容怎麼解決 發布:2025-01-10 21:37:02 瀏覽:29
linux字體大小 發布:2025-01-10 21:36:21 瀏覽:492
安卓手機的音量在哪裡調 發布:2025-01-10 21:32:11 瀏覽:613
路由器怎麼設置登錄密碼怎麼設置密碼 發布:2025-01-10 21:11:12 瀏覽:893
營運車解壓 發布:2025-01-10 21:11:01 瀏覽:932