當前位置:首頁 » 編程語言 » C語言漸漸

C語言漸漸

發布時間: 2023-04-02 07:50:34

c語言很難么

C語言個人認為並不是難,因為在大學剛上計算機語言,大家都缺少學習編程語言的基礎,而大學老師很多都是照本宣科,並沒有去備好課程,所以上課就只能去讀那種晦澀難懂的句子,說不定自己都不懂。其次,C語言從一屆學生口中,口耳相傳,就會給人以心理暗示,大學真的好難的錯覺,以至於最終大家潛意識都會認為C語言很難。最後,要告訴提問的小夥伴,C語言不是難,而是你沒有找到一個好的引路人,如果你有問題,可以繼續發給我

② 什麼是C++

C++這個詞在中國大陸的程序員圈子中通常被讀做「C加加」,而西方的程序員通常讀做「C plus plus」,「CPP」。 它是一種使用非常廣泛的計算機編程語言。C++是一種靜態數據類型檢查的、支持多重編程範式的通用程序設計語言。它支持過程化程序設計、數據抽象、面向對象程序設計、泛型程序設計等多種程序設計風格。
在C基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向 對象的程序設計語言。C++目前流行的編譯器最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2012。C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。
C++由美國AT&T貝爾實驗室的本賈尼·斯特勞斯特盧普博士在20世紀80年代初期發明並實現(最初這種語言被稱作「C with Classes」帶類的C)。開始,C++是作為C語言的增強版出現的,從給C語言增加類開始,不斷的增加新特性。虛函數(virtual function)、運算符重載(operator overloading)、多重繼承(multiple inheritance)、模板(template)、異常(exception)、RTTI、命名空間[1](name space)逐漸被加入標准。[2]
1998年國際標准組織(international standard organization, ISO)頒布了C++程序設計語言的國[3]際標准ISO/IEC 1988-1998。C++是具有國際標準的編程語言,通常稱作ANSI/ISOC++。[4]

1998年是C++標准委員會數枝成立的第一年,以後每5年視實際需要更新一次標准。C++0x最終國際投票已於2011年8月10日結束,並且所有國家都投出了贊成票,C++0x已經毫無疑義地成為正式國際標准。先殲鉛前被薯改敏臨時命名為C++0x的新標准將被稱為C++ 2011。C++ 2011將取代現行的C++標准ISO/IEC 14882,它公開於1998年並於2003年更新,通稱C++98以及C++03。國際標准化組織於2011年9月1日出版發布ISO/IEC 14882:2011,名稱是:Information technology -- Programming languages -- C++ Edition: 3。
計算機誕生初期, 人們要使用計算機必須用機器語言或匯編語言編寫程序。世界上第一種計算機高級語言誕生於1954年, 它是FORTRAN語言。 先後出現了多種計算機高級語言。 其中使用最廣泛、影響最大的當推BASIC語言和C語言。
BASIC語言是1964年在FORTRAN語言的基礎上簡化而成的, 它是為初學者設計的小型高級語言。
C語言是1972年由美國貝爾實驗室的D.M.Ritchie研製成功的。 它不是為初學者設計的,而是為計算機專業人員設計的。 大多數系統軟體和許多應用軟體都是用C語言編寫的。
但是隨著軟體規模的增大, 用C語言編寫程序漸漸顯得有些吃力了。
C++是由AT&T Bell(貝爾)實驗室的Bjarne Stroustrup博士及其同事於20世紀80年代初在C語言的基礎上開發成功的。 C++保留了C語言原有的所有優點, 增加了面向對象的機制。
C++是由C發展而來的, 與C兼容。 用C語言寫的程序基本上可以不加修改地用於C++。 從C++的名字可以看出它是C的超越和集中。 C++既可用於面向過程的結構化程序設計, 又可用於面向對象的程序設計, 是一種功能強大的混合型的程序設計語言。
C++對C的「增強」,表現在六個方面:
(1) 類型檢查更為嚴格。
(2) 增加了面向對象的機制。
(3)增加了泛型編程的機制(template)
(4)增加了異常處理
(5)增加了運算符重載
(6)增加了標准模板庫(STL)
面向對象程序設計,是針對開發較大規模的程序而提出來的,目的是提高軟體開發的效率。不要把面向對象和面向過程對立起來, 面向對象和面向過程不是矛盾的,而是各有用途、互為補充的。
學習C++, 既要會利用C++進行面向過程的結構化程序設計, 也要會利用C++進行面向對象的程序設計,更要會利用模板進行泛型編程。
C和C++關系
但是,C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目的。
C timeline
1978 k&R C---->1988 ANSI C-->1995 ISO C
學習C語言最經典的還是The C Programming Language
發展歷史
C++語言發展大概可以分為三個階段:
第一階段
從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向對象語言,並且憑借著接近C語言的效率,在工業界使用的開發語言中占據了相當大份額;
第二階段
從1995年到2000年,這一階段由於標准模板庫(STL)和後來的Boost等程序庫的出現,泛型程序設計在C++中占據了越來越多的比重性。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的沖擊;
第三階段
從2000年至今,由於以Loki、MPL等程序庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最復雜的一員。[7]
優點

C++代碼
· C++設計成靜態類型、和C同樣高效且可移植的多用途程序設計語言。
· C++設計成直接的和廣泛的支持多種程序設計風格(程序化程序設計、資料抽象化、面向對象程序設計、泛型程序設計)。
· C++設計成給程序設計者更多的選擇,即使可能導致程序設計者選擇錯誤。
· C++設計成盡可能與C兼容,藉此提供一個從C到C++的平滑過渡。
· C++避免平台限定或沒有普遍用途的特性。
· C++不使用會帶來額外開銷的特性。
· C++設計成無需復雜的程序設計環境。[8]
出於保證語言的簡潔和運行高效等方面的考慮,C++的很多特性都是以庫(如STL)或其他的形式提供的,而沒有直接添加到語言本身里。關於此類話題,Bjarne Stroustrup的《C++語言的設計和演化》(1994)里做了詳盡的陳述。
C++在一定程度上可以和C語言很好的結合,甚至目前大多數C語言程序是在C++的集成開發環境中完成的。C++相對眾多的面向對象的語言,具有相當高的性能。
C++引入了面向對象的概念,使得開發人機交互類型的應用程序更為簡單、快捷。很多優秀的程序框架包括MFC、QT、wxWidgets就是使用的C++。[9]
代碼性能
人們一般認為,使用Java或C#的開發成本比C++低。但是,如果充分分析C++和這些語言的差別,會發現這句話的成立是有條件的。這個條件就是:軟體規模和復雜度都比較小。如果不超過3萬行有效代碼(不包括生成器產生的代碼),這句話基本上還能成立。否則,隨著代碼量和復雜度的增加,C++的優勢將會越來越明顯。造成這種差別的就是C++的軟體工程性。[9]
缺點
C++由於語言本身過度復雜,這甚至使人類難於理解其語義。更為糟糕的是C++的編譯系統受到C++的復雜性的影響,非常難於編寫,即使能夠使用的編譯器也存在了大量的問題,這些問題大多難於被發現。[9]
由於本身的復雜性,復雜的C++程序的正確性相當難於保證。也有人提出不支持多線程的原語等缺陷。不過有如此多的知名人士提出了如此多的缺陷,正說明C++被廣泛使用和成功。
c++語言由於過度的復雜性,以及與unix的文化相抵觸,在unix/linux領域受到很多著名人士(比如Linux之父linus torvalds與著名黑客Eric S. Raymond)的強烈批評與抵制。
C++基本數據類型和表達式
數據是程序處理的對象,數據可以依其本身的特點進行分類。我們知道在數學中有整數、實數概念,在日常生活中需要用字元串來表示人的姓名和地址,有些問題的回答只能是「是」或「否」(即邏輯「真」或「假」)。不同類型的數據有不同的處理方法,例如:整數和實數可以參加算術運算,但實數的表示又不同於整數,要保留一定的小數位;字元串可以拼接;邏輯數據可以參加「與」、「或」、「非」等邏輯運算。
我們編寫計算機程序,目的就是為了解決客觀世界中的現實問題。所以,高級語言中也為我們提供了豐富的數據類型和運算。C++中的數據類型分為基本類型和自定義類型。基本類型是C++編譯系統內置的。
基本數據類型
C++的基本數據類型如下表所示(表中各類型的長度和取值范圍,以面向IA-32處理器的VC++ 2008和gcc 4.2為標准)。
類型名 長度(位元組) 取值范圍
bool 1 false,true

char
1 -128~127

signed char 1 -128~127
unsigned char 1 0~255
short(signed short) 2 -32768~32767
unsigned short 2 0~65535
int(signed int) 4 -2147483648~2147483647
unsigned int 4 0~4294967295
long(signed long) 4 -2147483648~2147483647
unsigned long 4 0~4294967295
float 4 3.4X10^(-38)~3.4X10^(38)
double 8 1.7X10^(-308)~1.7X10^(308)
long double 8 1.7X10^(-308)~1.7X10^(308)
編輯本段編程技巧
new和delete
運算符new和delete提供了存儲的動態內存分配和釋放功能,它的作用相當於C語言的函數malloc()和free(),但是性能更為優越。使用new較之使用malloc()有以下的幾個優點:
(1)new自動計算要分配類型的大小,不使用sizeof運算符,比較省事,可以避免錯誤。
(2)自動地返回正確的指針類型,不用進行強制指針類型轉換。
(3)可以用new對分配的對象進行初始化。[11]
inline
對於頻繁使用的函數,C語言建議使用宏調用代替函數調用以加快代碼執行,減少調用開銷。但是宏調用有許多的弊端,可能引起不期望的副作用。例如宏:#define abs(a)(a)<0?(-a):(a)),當使用abs(i++)時,這個宏就會出錯。
所以在C++中應該使用inline內聯函數替代宏調用,這樣既可達到宏調用的目的,又避免了宏調用的弊端。
使用內聯函數只須把inline關鍵字放在函數返回類型的前面。[11]
函數重載
在C語言中,兩個函數的名稱不能相同,否則會導致編譯錯誤。而在C++中,函數名相同而參數數據類型不同或參數個數不同或二者皆不同的兩個函數被解釋為重載。
使用函數重載可以幫助程序員處理更多的復雜問題,避免了使用諸如intabs()、fabs()、dabs()等繁雜的函數名稱;同時在大型程序中,使函數名易於管理和使用,而不必絞盡腦汁地去處理函數名。同時必須注意,參數數據類型相同,但是函數返回類型不同的兩個函數不能重載。[11]
參數傳遞
在C語言中,如果一個函數需要修改用作參數的變數值的時候 ,參數應該聲明為指針類型;當參數的大小超過一個機器字長時,通過傳值方式來傳遞參數的效率較低,也需要用指針。由於C語言的指針可以進行p++,--p,p+=1等算術運算,所以編譯器無法在編譯的時候確定指針引用的變數。對於復雜的程序,使用指針容易出錯,程序也難以讀懂。在C++中,對於上述情況 可以使用引用來代替指針,使程序更加清晰易懂。引用就是對變數取的一個別名,對引用進行操作,這就相當於對原有變數進行操作。[11]
預設參數
在C++中函數可以使用預設參數。
通常的情況下,一個函數應該具有盡可能大的靈活性。使用預設參數為程序員處理更大的復雜性和靈活性問題提供了有效的方法,所以在C++的代碼中都大量地使用了預設參數。
需要說明的是,所有的預設參數必須出現在不預設參數的右邊。亦即,一旦開始定義預設參數,就不可再說明非預設的參數。否則當你省略其中一個參數的時候,編譯器無法知道你是自定義了這個參數還是利用了預設參數而定義了非預設的參數。[11]
使用STL
STL(Standard Template Library,標准模板庫), STL的代碼從廣義上講分為三類:algorithm(演算法)、container(容器)和iterator(迭代器),並包括一些工具類如auto_ptr。幾乎所有的代碼都採用了模板類和模板函數的方式,這相比於傳統的由函數和類組成的庫來說提供了更好的代碼重用機會。
作用符被重載,使得我們可以像訪問數組一樣訪問vector中的元素。[11]
使用模板
.模板的概念。
模板是C++的一個特性,是函數和類可以作用於不同的類型上而不需要針對每一個具體類型重復相同的代碼。與模板相反,我們已經學過的重載(Overloading),對重載函數而言,C++的檢查機制能通過函數參數的不同及所屬類的不同。正確的調用重載函數。例如,為求兩個數的最大值,我們定義MAX()函數需要對不同的數據類型分別定義不同重載(Overload)版本。如果使用模板就可以只寫一個通用的MAX模板,而不需要針對每個類型重復相同的邏輯。
指針與引用的區別
指針與引用看上去完全不同(指針用操作符「*」和「->」,引用使用操作符「&」),但是它們似乎有相同的功能。指針與引用都是讓你間接引用其他對象。你如何決定在什麼時候使用指針,在什麼時候使用引用呢?
首先,要認識到在任何情況下都不能使用指向空值的引用。一個引用必須總是指向某些對象。因此如果你使用一個變數並讓它指向一個對象,但是該變數在某些時候也可能不指向任何對象,這時你應該把變數聲明為指針,因為這樣你可以賦空值給該變數。相反,如果變數肯定指向一個對象,例如你的設計不允許變數為空,這時你就可以把變數聲明為引用。[12]

③ Dev-C++的歷史發展

C++是從C語言中發展而來的。C語言是1972年由美國貝爾實驗室(AT&TBell)的D.M.Ritchie研製成功的。它不是為了初學者設計的,而是為計算機專業人員設計的。最初它是作為寫UNIX操作系統的一種工具,在貝爾實驗室內部使用。後來C語言不斷改進,人們發現它功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,既具有高級語言的優點,又具有低級語言的許多優點,特別適合於寫系統軟體,因此C語言從實驗室走向美國,從美國走向世界。到20世紀70年代,它已風靡全世界。無論是在中國還是在外國,C語言都成為了計算機開發人員的基本功。
但是隨著軟體規模的增大,用C語言編寫程序漸漸顯得有些吃力了。C語言是結構化和模塊化的語言,它是面向過程的。在處理較小規模的程序時,程序員用C語言還是比較得心應手。但是當問題比較復雜、程序的規模比較大時,結構化程序的設計方法就顯出它的不足。
為了解決軟體設計的危機,在20世紀80年代,人們提出了面向對象的程序設計(object oriented programming,OOP),需要設計出能支持面向對象的程序設計方法的新的語言。在實踐中,人們發現由於C語言是如此的深入人心,使用如此廣泛,面對程序設計方法的革命,最好的辦法不是另外發明一種語言去代替它,而是在它原有的基礎上加以發展。在這種形式下,C++應運而生。C++是由貝爾實驗室(AT&TBell)的Bjarne Stroustrup博士及其同事於20世紀80年代初在C語言的基礎上開發成功的。
AT&TBell發布的第一個Dev-C++編譯系統實際上是一個預編譯器(前端編譯器),真正的Dev-C++程序是在1988年誕生的。
C++中提供豐富的STL模板庫,不僅適合演算法競賽,同樣適合軟體開發。

④ 怎樣讓發光二極體漸漸的亮或漸漸的暗掉 C語言程序

這主要靠硬體上的支持了。
發光二極體的亮度,跟流過它的電流有關。
要改變電流,一是改變VCC電壓,一是改變迴路上的限流電此如阻。
改變電壓,
最奢侈的方法就是加個DA ,單片機控制輸出電壓值。
要不就是IO口輸出一個PWM波,要加個濾波電路。通過調整鬧舉PWM波的占空比來改變電壓
改變阻抗。
要看你亮暗分多少檔了,用幾個IO口來控森彎啟制,每個口上控制的迴路阻抗大小不同,用幾個口的組合來弄出不同的迴路阻抗。

⑤ c語言心得體會

c語言心得體會範文7篇

在平日里,心中難免會有一些新的想法,可用寫心得體會的方式將其記錄下來,這樣我們可以養成良好的總結方法。那麼心得體會該怎麼寫?想必這讓大家都很苦惱吧,以下是我幫大家整理的c語言心得體會範文,供大家參考借鑒,希望可以幫助到有需要的朋友。

c語言心得體會範文1

在初學C語言的一個學期後,我們進行了C語言實訓階段,嘗試編寫一個比較復雜的程序系統。在為期一周的時間中,我們同組的同學共同的感受是:C語言實訓和平時上課所接觸的程序是有很大不同的,所經受的考驗和克服的困難是平時所無法比擬的。好在同組的搭檔們精誠合作,分工明確,有問題共同解決,攻克了C語言實訓的復雜程序。在這里,我作為其中的參與者,感觸良多。

在這次實訓中,我對對C語言有了一個更深的了解認識,也對這個學期學的知識得到鞏固,還嘗試運行編程,每次運行程序成功,讓我對下面的項目就充滿信心。通過自己與同學合作編寫程序,最終把最初的理論知識轉化基本技能。這次的實訓,使我對C語言的學習產生濃厚的興趣。

耐神還是這次實訓,最令人激動的就是合作做項目,雖然那隻是一個很小很小的項目。每天大家來得很早,大家在一起學習,取長補短,我們很好的在實訓中長知識,提高我們的學習熱情。實訓中深切體會到了老師認真負責的偉大的精神和熱情為同學指導的促學方式,雖然對有些時候老師沒給我們指出解決問題的方法有些小抱怨,但是到了結束時才知道,這種教學讓我們自己學會了自學,學會了去看懂別人的代碼。更多是老師給的感動,每天在我們來之前就到了教室,在講課中海給我們分享他在公司上班的一些心得和體會,還有那些我們應該注意的事項,這些是平時上課時無法學到的,是更深層次的巨大收獲。

通過這次實訓,也使我們發現了許多問題。

在實訓中,我們認識到自己還有很多的知識沒學好,基礎知識沒理清,而且許多東西還要去翻書,去上網搜索。而且遇到一些小錯誤運行不出來,就會煩躁不安,覺得有些自暴自棄或者抱怨項目的變態,以後要克服,盡量保持一顆良好的心態,學好C語言,也學好用C語言編寫一個按要求的系統。

還有就是對於未來,近程就是下學期,我覺得我還有許多方面需要提高。

首先我要繼續學習好C語言的基礎知識,然後能在電腦上熟練的運用。然後每天都能寫一些程序,上網時候多看一些優秀的教程和優秀的代碼。遇到問題時多和同學討論,並且多弄出幾套方案,多鍛煉自己結局問題的能力和與同學合作的能力。

總之,這一切都成為我記憶裡面的一個篇章,更是在C語言編程上的一個里程碑。

c語言心得體會範文2

通過一學期對C語言的學習,我感覺學習C語言是有一定難度卻又是非常有趣的科目。也是很有幫助的,特別是對將要面對的計算機二級考試。這段時間的學習我知道了C語言的基本特點有以下幾點:

1.語言簡潔,使用靈活方便。

2.運算符豐富,表達能力強。

3.數計類型豐富。

4.目標程序質量高,具有面向硬體系統的特點。

5.具有結構化的控制語句和模塊化的程序結構。

6.具有編譯預處理功能。

7.程序設計自由度大,可移植性好。卜灶

這段時間學習使我掌握了:

一、我學習了C語言的數據類型、常量與符號常量、變數、C語言的運

算符和表達式、賦值運算符和賦值表達式、自增自減運算符以及逗號表達式等。

二、這章介紹了結構化程序的三種基本結構、C語句概述、數據輸出包

括字元輸出函數putchar和格式輸出函數printf、數據輸入包括字元輸入函數getchar和格式輸入函數scanf,還有一些簡單的C語程序設計舉列等。

前幾天一直在看C++語法,所以對一些比較實際的例子總感到比較抽象,但是昌弊虧那也是一個必需階段,可能大家和我的學習方式不一樣,但從剛接觸程序到現在來看,發現這樣學習語言的方法挺不錯的。

經過第一階段對語法的學習,我覺得實例階段應該是一個過渡階段吧,通過前一階段對語法的學習之後,可能有很多概念我們都比較模糊,或者說很多東西太抽象了,這就為我們第二個階段的學習做好了實例化的准備,可以這樣說吧,第一個階段就我們為我們的學習一樣東西而構建的一個類,裡面講了我們應該在這裡面要做什麼?第二階,也就是本階段,我們就應該去把前一段的東西具體化(實例化先前創建的類),那怎麼個具體化呢,呵呵!說白了,去練習一些小例子,從網上下載的電子書上有很多這方面的例子的,如果有自己去書店買書的話,裡面也應該提供了不少,裡面的例子,我是每次都打了一遍,也許有的人不會親自去用手打一遍,什麼等,當然這樣也行,但我個人認為,對於初學者來說,最好還是自己動手打一遍比較好,畢竟這些東西對我們來說,都比較陌生,如果每個字都自己打完的話,有些代碼你不想記住也難了,在這里,我們得弄懂練習的每一個例子,如果能把一些例子稍稍修改,弄懂裡面精髓的東西,讓自己知道為什麼這樣做,那麼是最好不過的了,我平時練習時,這一步是少不了的,都習慣了,所以也就成了條件反射,想不這樣都不行。最後,我們就應該匯一下總,把前面做過的例子里所用的技術理一下,再做一個比較大的例子,盡量把到目前為止所懂的知識全部應用到裡面去,只是盡量,當然有些東西是不能集成到一起的,也是是代碼之間的排斥性。

這是個人的一點學習心得,希望能更好的運用到學習中去。C語言是一門很有用的、對於我們的就業很實際的語言,學習好C語言是一項必須而實際的任務。我們必須要好好掌握。

c語言心得體會範文3

三周的課程設計已經結束了。

回想學習C語言 的過程中,既有快樂又有煩惱。

從領到書的那一刻,我就很郁悶,《C 語言程序設計》到底事學什麼的,有什麼用。剛開始上課時,還在迷茫這門課程是用來做什麼的。不過,這些感受都是在對這門課程不了解的情況下產生的。後來慢慢的接觸多了,聽老師講的多了,了解多了,漸漸的產生了興趣。尤其是學到語句和函數時,上機操作程序,經過編譯,調試和運行後,出現界面,當時覺得很好奇,想真正的學好這門課程。通過半個學期的學習,我掌握了基本知識。

下學期開始時,被通知要進行三周的課程設計。當時有點懵,感覺學的東西很少,很零散,不知該怎麼練到一起,就要課程設計,是不是太難為我們了。

第一天基本上都是在看書,把基本知識再熟悉一邊。到了下午的時候,老師發過來三道練習題,從這幾道練習題上我得到了不少啟發,然後我們組把整個程序的思路理清了,開始著手寫程序。

第一周結束的時候,我感覺自己收獲挺大的,從一開始的迷茫,不知道從何下手到把程序中的幾個模塊編寫出來,心裡挺開心的。但是,到了第二周,我們由不得不再次陷入困境。在整個程序的編寫過程中。最難的就是修改和刪除這兩個模塊,這也是我們第二周要解決的重點問題。

開始編寫修改和刪除時,很頭疼,去向其他人尋求幫助,在別人的幫助和提示下,我編完了修改程序,但編譯時老出錯,修改後的內容將文本內的信息全部覆蓋了。困難之時,我們組的其他人,幫助了我,完成了修改和刪除。這樣的話,整個程序基本上全部完成了,就剩下完善工作了。我們組寫了兩個程序,最後,兩個程序相互組合,互補,大功告成

雖然設計時完成了,但是我覺得其中還是由一些不足之處:

1. 警告句。程序中缺少一些警告句,例如:「是否真的刪除(y/n)?」。

2. 重名的情況。由於考慮的不周全,沒有設計遇到重名的情況該怎麼處理。

3. 選擇單一。我們設計的程序中,只設計了按名字選擇,進行操作,忽略了重名的情況。

整個程序完成了,還有很多不完善的地方,希望自己以後辦事的時候要認真,仔細,考慮周全。

短短的三周課程設計結束了,但是這段時間里,我又學到了更多C 知識,如:對象數組,string類,文件流等,同時我也被提醒以後辦事的時候要認真,仔細,考慮周全。,也看到了團隊精神和互幫互助的重要性。這一點會讓我終生受益。通過三周的課程設計,我覺得自己肚子里的墨水多了,收獲也挺大的,這三周過的挺充實!

c語言心得體會範文4

在初學C語言的一個學期後,我們進行了C語言階段,嘗試編寫各種類型的程序。在為期一個周時間中,我的感受是:C語言實訓和平時上課所接觸的成有很多不同,所經受的考驗和克服的困難和平時的相差不大,遇到不會做的題同學互相討論,互相幫助,共同解決,攻克了C語言的復雜程序,我感觸良多。

在這次實訓中,我對C語言有了一個更深的認識了解,也對這學期的知識得到鞏固,還嘗試了運行編程,每次運行程序成功,讓我對下面的項目充滿了信心通過自己的努力最終把最初的理論知識轉化成基本技能,這次的實訓,是我對C語言的學習產生了農活的興趣。

還是這次實訓,最令人激動的就是同學遇到問題互相幫助雖然只是一個很小得實訓,但同學們的滿腔人情卻是值得驕傲的,我們在實訓中取長補短在實訓中長知識,提高了我們學習,雖然對有些時候老師沒給我們指出解決問題的方法有一些小抱怨,但到了結束是才知道,這種教學讓我們自己學會了自學,學會了去看懂別人的代碼。更多的是老師的感動,每天在我們來之前家到了機房,給我們我分享他學C語言的感受,還提醒我們注意在編程時與遇到的事項,,這些是我們平時上課無發了解到的知識是我們更深層次的極大收獲。

通過實訓我們也發現了許多問題,在試訓中我認識到自己還有很多知識沒學好,最基本的'知識點沒有理清楚,而且許多東西要經過翻書,上網查閱,搜索,遇到一小點錯誤運行不出來,就會煩躁不安,覺得有些自暴自棄或這抱怨題目有些變態,以後要克服,盡量保持一顆藍好的心態,學好C語言,用C語言來編寫一個按要求的系統。

對於未來,近程下個學期,我覺得我還有許多方面需要提高。

首先我要繼續學習好C語言的基礎知識,然後能在電腦上熟練的運用。能寫出一些程序,上網的時候多看一些優秀的教程和優秀的代碼,遇到問題是多和同學討論,並且多弄出幾套方案,多練習自己結局問題的能力和與同學合作的能力。

總之,這一切都成為我記憶裡面的一個篇章,更是C語言編程上的一個里程碑。

c語言心得體會範文5

在科技高度發展的今天,計算機在人們之中的作用越來越突出。而c語言作為一種計算機的語言,我們學習它,有助於我們更好的了解計算機,與計算機進行交流,因此,c語言的學習對我們尤其重要。

在這個星期里,我們專業的學生在專業老師的帶領下進行了c語言程序實踐學習。在這之前,我們已經對c語言這門課程學習了一個學期,對其有了一定的了解,但是也僅僅是停留在了解的范圍,對裡面的好多東西還是很陌生,更多的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。

由於時間的關系,我們的這次實踐課程老師並沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理。簡單界面程序。高級界面程序。程序的添加修改。用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。

上機實驗是學習程序設計語言必不可少的實踐環節,特別是c語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。對於程序設計語言的學習目的,可以概括為學習語法規定、掌握程序設計方法、提高程序開發能力,這些都必須通過充分的實際上機操作才能完成。

學習c程序設計語言除了課堂講授以外,必須保證有不少於課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,盡快掌握用c語言開發程序的能力,為今後的繼續學習打下一個良好的基礎。為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程序是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:

1.加深對課堂講授內容的理解

課堂上要講授許多關於c語言的語法規則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機練習,對於語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規定。對於一些內容自己認為在課堂上聽懂了,但上機實踐中會發現原來理解的偏差,

這是由於大部分學生是初次接觸程序設計,缺乏程序設計的實踐所致。

學習c語言不能停留在學習它的語法規則,而是利用學到的知識編寫c語言程序,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有通過上機才能檢驗自己是否掌握c語言、自己編寫的程序是否能夠正確地解題。

通過上機實驗來驗證自己編制的程序是否正確,恐怕是大多數同學在完成老師作業時的心態。但是在程序設計領域里這是一定要克服的傳統的、錯誤的想法。因為在這種思想支配下,可能你會想辦法去"掩蓋"程序中的錯誤,而不是盡可能多地發現程序中存在的問題。自己編好程序上機調試運行時,可能有很多你想不到的情況發生,通過解決這些問題,可以逐步提高自己對c語言的理解和程序開發能力。

2.熟悉程序開發環境、學習計算機系統的操作方法

一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環境下才能進行。所謂"環境"就是所用的計算機系統硬體、軟體條件,只有學會使用這些環境,才能進行程序開發工作。通過上機實驗,熟練地掌握c語言開發環境,為以後真正編寫計算機程序解決實際問題打下基礎。同時,在今後遇到其它開發環境時就會觸類旁通,很快掌握新系統的使用。

3.學習上機調試程序

完成程序的編寫,決不意味著萬事大吉。你認為萬無一失的程序,實際上機運行時可能不斷出現麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結果顯然是錯誤的。開發環境所提供的編譯系統無法發現這種程序邏輯錯誤,只能靠自己的上機經驗分析判斷錯誤所在。程序的調試是一個技巧性很強的工作,對於初學者來說,盡快掌握程序調試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調試高手一眼就看出錯誤所在。

通過這次為數不多的幾天計算機實踐學習,我們了解了一些關於c語言的知識,理解鞏固了我們c語言的理論知識,著對我們將來到社會工作將會有莫大的幫助。同時它讓我知道,只要你努力,任何東西都不會太難。

c語言心得體會範文6

1、引言

《C語言程序設計》是各大高校理工類專業的一門重要的必修課程,由於C語言使用靈活,數據類型繁多,結構復雜,因此學生在學習該課程時都或多或少的感覺頭疼,學習不得要領。這就要求教師在教學中需要貫穿先進的教學理念,採用適合的教學方法。本文針對C語言教學中存在的問題,結合多年的教學經驗,提出幾點教學方法和體會。

2、C語言教學中存在的問題

2.1學生學習熱情不高

C語言課程的開設對象一般為大一學生,想讓他們馬上接受程序設計的思想幾乎是不可能的。另外他們從高年級同學那裡得知C語言學習難度大,就會產生學習C語言這門課程的懼怕心理。還有一部分學生認為學習C語言對自身的專業沒有什麼用處,因此產生了厭學的情緒。

2.2傳統教學方式存在弊端

以教師為中心的灌輸式教學方法忽視了學生的「學」,學生處於被動接受狀態,缺少教師和學生的互動,學生學習的主動性、積極性難以發揮。雖然近年來C語言程序設計課程多媒體課件教學得到廣泛普及,在某種程度上激發了學生的學習興趣,但仍然沒有脫離傳統教學方式,缺少教學目標的針對性,由「照本宣科」變為「照片(幻燈片)宣科」,沒有從根本上解決師生交互匱乏的現實[1]。

2.3學生學習方法不得當

由於大一學生還不是很適應大學的學習方式,很多時候還沿用高中時候學數學、英語等科目的方法來學習C語言,一些學生只重視理論知識,以為光靠背一背、做做題就能學好,忽視了實踐環節的重要性,從而導致了一部分學生學不得法,效率極低。

3、幾點教學體會

針對上述存在的問題,分別提出幾點體會,可以歸納為:「一個目標」、「兩個關鍵」、「三步實踐」。

3.1樹立一個目標

這是針對學生的學習態度提出的。做一件事情如果沒有一個明確的目標。就很難提起興趣,遇到困難也很容易放棄,當然也無法做好。學習C語言也不例外。如果想激發學生的學習興趣,讓學生喜歡學、主動學,就必須讓學生明確為什麼要學習C語言,明確一個學習的目標。事實上,學習C語言對於任何專業的學生都有莫大的好處,可以鍛煉邏輯思維能力,對以後的專業課的學習有很好的輔助作用,也會對以後學習其他編程語言打下良好的基礎,正所謂」萬變不離其宗」,如果真正掌握精了程序設計思想,具備了真正解決實際問題的能力,語言再更新可程序設計的本質不會變[2]。當然,從更實用的角度來看,可以把「通過國家二級考試」作為一個為之努力實現的目標,不僅對以後就業很有幫助,讓學習有了興趣和動力,有了克服困難的決心,取得事半功倍的效果。

c語言心得體會範文7

在初學C語言的一個學期後,我們進行了C語言實訓階段,嘗試自己編寫一個比較復雜的程序系統。在為期兩周的時間中,我們同組的同學共同的感受是:C語言實訓和平時上課所接觸的程序是有很大不同的,所經受的考驗和克服的困難是平時所無法比擬的。好在同組的搭檔們精誠合作,分工明確,有問題共同解決,攻克了C語言實訓的復雜程序。在這里,我作為其中的參與者,自然感觸良多。

剛開始接觸到C的時候,我已經學過一些有關VB的內容,這個在演算法和思維上稍微有點幫助。回想本學期的學習,首先,最基本的,是C的數據格式,讓我們知道整數,浮點數以及字元常量在C中的運用。然後,在學會了數據轉化,以及熟練的可以對各種數據處理之後,我開始進行有關數據結構,像數組,結構體等的學習,因為有的東西從現有的知識來看都是非常簡單的,還沒有聯繫到指針等等一些復雜的概念。可是,僅僅學會這些是遠遠不夠的,C語言中,還有很多更加經典、重要、實用的知識。

說說函數。雖說很多程序語言都有函數這一內容,但我覺得C語言的函數是最有魅力的了。學習函數的方法是比較簡單的,只有兩個字「牢記」,即:牢記函數的功能,牢記函數的用途以及如何輸入輸出。函數從本質上講是一段通用程序,用它可以幫助我們節約很多編程的時間,學習C語言的「高人」都說,一個聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數來代替的。比如,大家可以作一個比較字元串的實驗,用C語言中的strcmp()函數只要一句話,而自己編寫的話,30句都很難實現,可想而知函數的實用和快捷。在我們C語言實訓的代碼中,函數更是得到了充分的應用,可以說,實訓題目的復雜代碼,就是用無數個函數的調用和嵌套積累出來的。

要注意的是,有的同學剛剛開始的時候,都是被一些大的程序激勵的,所以當開始的時候看到繁瑣的數據轉化和簡單的演算法,都覺得很無聊,都想自己做幾個自己滿意的程序來看看,雖然這種想法很好,但是,我們說,沒有基礎,純粹是搬照一些現成設計方法,是不足取的。要知道,程序設計講究的是個人的思維的,假如剛開始就被一些現成的思想束縛住,以後就會覺得很無趣。

我們知道,指針其實是C語言的靈魂,許多的數據結構在我們學到這里之前都可以說是精通了。所以我們的任務就是,讓數據結構在指針中運行。當然,剛剛開始接觸到這些新的東西,是一件非常痛苦的事情,所以我們一定要用非常形象的思維去看待指針,不能太固化。所以,新的東西,比如結構體在指針中的表現方法,數組及多維數組在結構體中的運用,都一點一點的加了進來,同時豐滿了我們對原來C的數據機構,數據表示的理解。當我們完成了這三步的學習,我們已經可以自豪的說,我們的基礎都扎實了,可以進一步的學習有關演算法,設計概念等等深層次的東西了。

但是,指針,結構體,這些太抽象的東西,在學習C語言的時候我們就有點「似懂非懂」,可是在眼下的C語言實訓中,像這么重要的C語言知識,一定要達到能熟練掌握,實際運用的程度。在實訓的大程序中,結構體在指針中的表現方法,數組及在結構體中的運用等具體的技術環節,都得到了體現,不會指針,我們的工作是沒法展開的。所以,在實訓期間,大家在鞏固基本知識的基礎上,逐塊攻克實訓課題,克服了困難,自信心得到了提高。

最後,談談我們組的程序軟體。商店商品管理系統,是一個比較利於應用,解決實際問題,方便實際管理的程序。設計代碼比較復雜,結構比較嚴謹。在程序編寫的1周左右的時間里,組員們遇到了上述的困難,包括程序設計構思,甚至是指針等某些知識點的欠缺,導致的工作中出現的困難。但是,當大家一起團結協作,解決了這些困難之後,發現自己也可以編寫復雜的、應用性的程序了,更發現自己對C語言這門學科的興趣也提高了。

當然,我們編寫的商店商品管理系統,還存在很多疏漏和不合理之處。比如,程序復雜冗長,如果時間充裕,我們將在不改變程序運行結果的基礎上,簡化程序,使每一句更加精闢,總體上更加簡化。另外,在程序的外觀上,我們由於時間問題,沒有做更多的修飾,運行起來顯得比較死板、枯燥乏味。如果增添一些色彩和其他效果,我們的程序也許會更加完美。

⑥ C語言中初始化是什麼意思

C語言中的初始化就是你要給它賦予一個詞,這個詞漸漸影響到你程序的一個說說效果,如果不進行初始化,那這個數據,他的直將是不定的程序,也是無法運行的,就算是可以運行,也不是你想要的數據。

⑦ 計算機程序設計語言的發展經歷哪幾個階段

選擇B。

程序設計語言的發展經歷了從機器語言、匯編語言到高級語言的歷程。

第一代機器語言

機器語言是由二進制 0、1 代碼指令構成,不同的 CPU 具有不同的指令系統。機器語言程序難編寫、難修改、難維護,需要用戶直接對存儲空間進行分配,編程效率極低。這種語言已經被漸漸淘汰了。

第二代匯編語言

匯編語言指令是機器指令的符號化,與機器指令存在著直接的對應關系,所以匯編語言同樣存在著難學難用、容易出錯、維護困難等缺點。但是匯編語言也有自己的優點:可直接訪問系統介面,匯編程序翻譯成的機器語言程序的效率高。 從軟體工程角度來看,只有在高級語言不能滿足設計要求,或不具備支持某種特定功能的技術性能(如特殊的輸入輸出)時,匯編語言才被使用。

第三代高級語言

高級語言是面向用戶的、基本上獨立於計算機種類和結構的語言。其最大的優點是:形式上接近於算術語言和自然語言,概念上接近於人們通常使用的概念。高級語言的一個命令可以代替幾條、幾十條甚至幾百條匯編語言的指令。因此,高級語言易學易用,通用性強,應用廣泛。高級語言種類繁多,可以從應用特點和對客觀系統的描述兩個方面對其進一步分類。

拓展資料:

程序設計語言用於書寫計算機程序的語言。語言的基礎是一組記號和一組規則。根據規則由記號構成的記號串的總體就是語言。在程序設計語言中,這些記號串就是程序。程序設計語言有3個方面的因素,即語法、語義和語用。

語法表示程序的結構或形式,亦即表示構成語言的各個記號之間的組合規律,但不涉及這些記號的特定含義,也不涉及使用者。語義表示程序的含義,亦即表示按照各種方法所表示的各個記號的特定含義,但不涉及使用者。

⑧ C語言-存儲期(storage ration)

在函數中聲明的變數,並不是從程序開始到程序結束讓岩始終有效的。變數的生存期也就是生命有兩種,它們可以通過 存儲期 (storage ration)這個概念來體現。

在函數中不使用存儲類說明符 static 而定義出的對象(變數),被賦予了 自動存儲期 (automatic storage ration), 它具有以下特性。

也就是說,該對象擁有短暫的壽命,另外, 如果不顯式地進行初始化,則該對象會被初始化為不確定的值

被賦予自動存儲期的對象,在程序執行到 int ax = 0; 的時候,就被創建出來並且進行初始化。

在函數中使用 static 定義出來的對象,或者在函數外聲明定義出來的對象被賦予了 靜態存儲期 (static storage ration),它具有以下特性。

也就是說,改對象擁有"永久"的壽命。另外, 如果不顯式地進行初始化,則該對象會自動初始化為0

被賦予了靜態存儲期的對象,會在 main 函數兄滑罩開始執行之前被初羨鬧始化 。因此,雖說程序執行的時候會經過 static int sx = 0; 的聲明,但其實那個時候並沒有進行初始化處理,也就是說該聲明並未執行賦值處理。

在函數通過存儲類說明符 auto 和 register 聲明定義出的變數,也被賦予了自動存儲期。通過 auto int ax = 0; 進行的聲明和不使用 auto 進行的聲明在編譯的時候是完全相同的。因此 auto 就顯得有些多餘了。

另外,使用 register 進行的聲明 register int ax = 0; ,在源程序編譯的時候, 變數 ax 不是保存在內存中,而是保存在更高速的寄存器中,然而,由於寄存器的數量有限,所以也不是絕對的

現在編譯技術已經十分先進了,那個變數保存在寄存器中更好都是通過編譯自行判斷並進行最優化處理的(不僅如此,保存在寄存器中的變數在程序執行的時候也可能發生改變)。

使用 register 進行聲明也漸漸變得沒有意義了。

熱點內容
怎麼查看我的wifi密碼 發布:2024-04-25 18:54:43 瀏覽:756
fckeditorforjava 發布:2024-04-25 18:50:27 瀏覽:623
優酷上傳視頻需要多久 發布:2024-04-25 18:33:05 瀏覽:675
inf12編譯器 發布:2024-04-25 18:15:39 瀏覽:99
撲克總督3安卓哪裡下載 發布:2024-04-25 18:10:02 瀏覽:395
什麼網站是php 發布:2024-04-25 18:03:42 瀏覽:221
java教程免費下載 發布:2024-04-25 18:02:01 瀏覽:443
i西安編程 發布:2024-04-25 16:55:35 瀏覽:263
核磁看壓縮 發布:2024-04-25 16:37:22 瀏覽:432
訪問不上光貓 發布:2024-04-25 16:13:44 瀏覽:319