當前位置:首頁 » 編程語言 » 為什麼大學要先學c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

為什麼大學要先學c語言

發布時間: 2022-06-21 16:03:13

① 為啥要學c語言

基礎的話什麼都不用。往深學需要英語 主要為了看外文書籍和代碼注釋。還需要數據結構和操作系統的知識。當然要想寫出一段高效的代碼 還需要離散數學,計算機演算法的知識。
程序員之路——如何學習C語言並精通C語言
程序員之路——如何學習C語言
學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。請注意,即使是「最小的代價」,也絕不是什麼捷徑,而是以最短的時間取得最多的收獲,同時也意味著需要經歷艱苦的過程。
一、要讀就讀好書,否則不如不讀
所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,還可以再次選擇。
大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給程序設計應該掌握的思考方式;程序風格相當地不好,會養成亂寫代碼的惡習;
Kernighan和Ritchie的《The C ProgrammingLanguage》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標准C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《CReferenceManual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是
根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《Pointers onC》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果曾經學過C語言,有那麼一些C語言的基礎但又不是很扎實,那麼可以嘗試一下這本書。相信,只要理解了指針,C語言便不再神秘。
如果已經啃完了一本C語言教材,想要更進一步,那麼有兩本書一定要看。首先是《C Traps andPitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後可以挑戰一下《Expert CProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦仔細讀完並能透徹理解,便可以放心大膽地在簡歷上寫「精通C語言」了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果看不懂,那一定是缺失了某些必需基礎知識。此時,要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如VisualStudio,而Unix程序員更加鍾愛Makefile與控制台。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基
本的Visutal C++工具欄按鈕就可以開始寫Hello,
World!了,而在Unix下,需要一些控制台操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不劃算。
對於一個只懂得Windows基本操作、連DOS是什麼都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習
ls、cat等命令有趣,況且要專注於C語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。
所以建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者DevC++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後一定要轉向Unix環境的。Visual C++6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而DevC++使用gcc編譯器,對C99的標准都支持良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C2.0作為實驗環境,這是相當不可取的,原因其一是TC 2.0對C標准幾乎沒有支持,其二是TC2.0編譯得到的程序是16位的,這對今後理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC2.0編譯出32位程序,不過那過於復雜了)。
等學完一本C語言的教材,一定要轉向Unix平台繼續學習,幾乎所有的C語言高級教程都是基於Unix平台的(比如《C專家編程》)。轉變的過程是痛
苦的,需要面對的是各種紛繁復雜的命令,完全不同於Windows平台的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,可以找到無數優秀的源代碼供你盡情閱讀,可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格
歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在准備向「高手」方向努力時,請先轉向Unix平台。
三、萬事俱備,就是東風
書已選定,環境配置完成,正所謂萬事俱備,只欠自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴需要什麼基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。
學習C語言,必需注意每一個細節,書上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要「創造」一些例子,比如學習運算符優先順序的時候,可以寫幾個相同的表達式,在不同的位置加上括弧,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b ==c)等等。自己抄的書上的例子以及改造之後的例子,還有自己「創造」的例子,都應該仔細地歸類保存,並且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。
例子之後就是習題了,建議初學者把所有的習題都獨立做一遍,然後對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。
也許認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等學到後面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,應該完數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今後繼續學習的一筆財富。以自己舉例,閱讀《Windows核心編程》時(只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,早已記不清Windows的系統編程了,但只要花幾分鍾翻出以前的代碼看看,便會重新瞭然於胸。所謂好記性不如爛筆頭,就是這個道理。
仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最後將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,還要具體情況具體分析。

② 大學生為什麼要學習C語言

C語言是計算機編程最基礎的語言之一,學習難度簡單,使用面最廣,通用性也很強,學會C語言再去學別的也很容易
除了計算機編程其它的開發、設計中也會用到一些基礎知識,比如字,位元組,有的可能會用到if語句,for循環等等

③ 為什麼大學都要學C語言

很高興為您解答!
c語言是學習其他語言的基礎
如果後續要學的專業有其他語言的話,那麼大一都要先學c語言
不是所有專業都學c語言

④ 為什麼現在的大學都是學C語言,C++,C#,但是真正畢業生缺很少有人從事這些,反而是Java的多

直接學實用的java或python,你以後的編程武力值只能達到%90,很難達到巔峰。
精通C/C++語言後,其它語言基本一看就懂,上手非常快。
另外一個原因,學校的東西比較次後於實際應用,畢竟社會競爭強烈,學校只要是名校,即使不那麼跟上潮流,其他學校短時間也很難撼動,導致學校之間競爭不夠激烈,另外開展一門新學科也很不容易,需要人才,往往人才都進入社會賺錢去了。

⑤ 為什麼先學C語言

誰說的?學JAVA可以直接進入的,什麼C是面向過程的,面向過程不就是流程么?學了C的人,知道先起床的刷牙,沒學過C的人難道會以為先刷牙,後起床呀。流程就是順序。
如果你真想學好JAVA,直接進入更好,這樣更有利於你直接接受面向對象的含義,不要停留在面向過程裡面。當然,如果能理解面對對象的意義,對面向過程又能分析得很嚴謹那就更完美了。
什麼C是基礎,C只要學的不是太深,同其它語言相比,最多就是多個指針,上層編程要那麼多指針做什麼?害怕你的程序會把你2G內存佔光呀,如果實在想了解指針,還是學下微機原理或是單片機這類會更明白,當然那些低層的也只有C才 能勝任了。
如果我告訴你學任何編程語言最重要學英語,你說對么?這才相當於拼音對漢字,學好英語,各個函數的意義,包括手冊都超簡單,那學任何編程語言那速度肯定夠快。

⑥ 大學為什麼要學c語言

C++語言是一種應用較廣的面向對象的程序設計語言,使用它可以實現面向對象的程序設計。面向對象的設計與面向過程的設計是有很大區別的,面向對象的程序設計是在面向過程的程序設計的基礎上一個質的飛躍。要學會面向對象的程序設計,首先要學會一種面向對象的語言,即要學會用VC編程,就要先有C++的基礎,而學習C++語言首先要認識它面向對象的特性和實現面向對象的方法。

C++是一種面向對象的程序設計語言

當你首次學習C++時,總會碰到一些在C語言從未見過的概念,如:類、對象、抽象、封裝、繼承、多態性、虛函數等等。這些概念是C++所具有,下面簡單的介紹一下C++對面向對象程序設計方法的支持和實現。

1、C++支持數據封裝

支持數據封裝就是支持數據抽象。在C++中,類是支持數據封裝的工具,對象則是數據封裝的實現。面向過程的程序設計方法與面向對象的程序設計方法在對待數據和函數關繫上是不同的,在面向對象的程序設計中,將數據和對該數據進行合法操作的函數封裝在一起作為一個類的定義,數據將被隱藏在封裝體中,該封裝體通過操作介面與外界交換信息。對象被說明具有一個給定類的變數,類類似於C語言中的結構,在C語言中可以定義結構,但這種結構中包含數據,而不包含函數。C++中的類是數據和函數的封裝體。在C++中,結構可作為一種特殊的類,它雖然可以包含函數,但是它沒有私有或保護的成員。

2、C++類中包含私有、公有和保護成員

C++類中可定義三種不同訪控制許可權的成員。一種是私有(Private)成員,只有在類中說明的函數才能訪問該類的私有成員,而在該類外的函數不可以訪問私有成員;另一種是公有(Public)成員,類外面也可訪問公有成員,成為該類的介面;還有一種是保護(Protected)成員,這種成員只有該類的派生類可以訪問,其餘的在這個類外不能訪問。

3、C++中通過發關消息來處理對象

C++中是通過向對象發關消息來處理對象的,每個對象根據所接收到的消息的性質來決定需要採取的行動,以響應這個消息。響應這些消息是一系列的方法,方法是在類定義中使用函數來定義的,使用一種類似於函數調用的機制把消息發送到一個對象上。

4、C++中允許友元破壞封裝性

類中的私有成員一般是不允許該類外面的任何函數訪問的,但是友元便可打破這條禁令,它可以訪問該類的私有成員(包含數據成員和成員函數)。友元可以是在類外定義的函數,也可以是在類外定義的整個類,前者稱友元函數,後者稱為友元類。友元打破了類的封裝性,它是C++另一個面向對象的重要牲。

5、C++允許函數名和運算符重載

C++支持多態性,C++允許一個相同的標識符或運算符代表多個不同實現的函數,這就稱標識符或運算符的重載,用戶可以根據需要定義標識符重載或運算符重載。

6、C++支持繼承性

C++中可以允許單繼承和多繼承。一個類可以根據需要生成派生類。派生類繼承了基類的所有方法,另外派生類自身還可以定義所需要的不包含在父類中的新方法。一個子類的每個對象包含有從父類那裡繼承來的數據成員以及自己所特有的數據成員。

7、C++支持動態聯編

C++中可以定義虛函數,通過定義虛函數來支持動態聯編。

以上是所講的是C++對面向對象程序設計中的一些主要特徵的支持。

C++的詞法及詞法規則

1、C++的字元集

字元是一些可以區分的最小符號。C++的字元集由大小寫英文字母(a-z和A-Z)、數據字元(0-9)、特殊字元(空格,!,#,%,^,&,*,_,<,>,?,\,,)組成。

2、單詞及詞法規則

單詞又稱詞法記號,它是由若干個字元組成的具有一定意義的最小詞法單元。C++共有6種單詞,分別是:標識符、關鍵字、運算符、分隔符、常量、注釋符,在編碼時要特別注意這些單詞的詞法規則。要注意的是C++中的空白符:C++中經常使用空白符,實際上,空白符不是一個字元,它是空格符、換行符和水平製表符的統稱。注意,空白符不等於空格符,只是空白符包含空格符。還有一個空字元,要把它與空白符分開。空字元是指ASCII碼值為0的那個字元。空字元在C++中有特殊用途,用它來作為字元串的結束符。存放在內存中的字元串常量都在最後有一個結束符,即用空字元,它用轉義序列方法表示為』\0』。

C++程序結構的組成

C++程序結構的基本組成部分

1 預處理命令,C++提供了三類預處理命令:宏定義命令、文件包含命令、條件編譯命令。

2 輸入輸出,C++程序中總是少不了輸入和輸出的語句,實現與程序內部的信息交流。特別是屏幕輸出的功能,幾乎每個程序都要用到,使用它把計算機的結果顯示在屏幕上。

3 函數,C++的程序是由若干個文件組成的,每個文件又是由若干個函數組成,因此,可以認為C++的程序就是函數串,即由若干個函數組成,函數與函數之間是相對的,並且是並行的,函數之間可以調用。在組成一個程序的若干個函中,必須有一個main()。

4 語句,語句是組成程序的基本單元。函數是由若干條語句組成的。但是,空函數是沒有語句的。語句是由單片語成,單詞間用空格符分隔,C++程序中的語句又是以以分號結束。語句除了有表達式語句和空語句之外,還有復合語句、分支語句、循環語句和轉向語句等若干類。

5 變數,多數程序都需要說明和使用變數。廣義講,對象包含了變數,即將變數也稱為一種對象,狹義講,將對象看作是類的實例,對象是指某個類的對象。

6 其他,除了以上講述的5個部分以外,還有其他組成部分。例如,符號常量和注釋信息也是程序的一部分。C++中都盡量把常量定義為符號常量,在C++的程序中出現的是符號常量,該符號常量代表著某個確定的常量值。

C++程序的書寫格式

在編程時應該注意C++的書寫格式,基本原則是:一行一般寫一條語句。短語句可以一行寫多個。長語句可以一條寫多行。分行原則是不能將一個單詞分開。用雙引號引用的一個字元串也最好不分開,如果一定要分開,有的編譯系統要求在行尾加續行符(「\」)

C++程序的實現

C++源程序的實現與其他高級語言源程序實現的原理是一樣的。一般都要經過編輯、編譯、運行。其中最要的是編譯過程,C++是以編譯方式實現的高級語言。C++程序的實現,必須要使用某種C++語言的編譯器對程序進行編譯。編譯器的功能是將程序的源代碼轉換成為機器代碼的形式,稱為目標代碼;然後,再使目標代碼進行連接,生成可執行文件。該過程可分為三個子過程:預處理過程、編譯過程(詞法分析、語法分析、符號表、錯誤處理程序、生成目標代碼)、連接過程。

Visual C++ 6.0版本是當前國內比較流行的一種C++編譯系統。

⑦ 為什麼編程入門要學C語言

現在都是信息化的時代,沒有一門好的技術是難以在社會之中立足的,
現在的電腦技術飛速增長,每家公司都需要電腦人才,你可以去學習電腦專業,
在這個領域中還是有很大的發展空間的,只要自己好好學習,以後的前景不可限量。

⑧ 編程 為什麼要先學C語言

C即C語言,可以從很多個角度來回答: 1.C是面向過程的語言.他的執行都是由上而下的瀑布式的.而現在流行的面向對象(例如JAVA.C++)的執行順序並 不是寫程序的人可以控制的.它是由某些動作來調用的 2.C是中級語言.一般我們認為匯編叫做低級語言.因為它直接提供了對硬體的操作.功能十分強大.效率也十分 的高.但是想完全使用匯編來寫一個應用幾乎是完全不可能的事情.並且匯編語言需要硬體的支持.也就是說 你針對自己的機器寫的匯編到別人的機器上未必就能跑的起來.而高級語言指的就是是用類似人類語言的語 言來表達的。比如JAVA.BASIC.PASCL等.這些語言與硬體之間的關系不大.通用性很強.開發應用程序效率比較 起低級語言來說要高很多。因為C提供了一種叫做指針的東西.可以直接操作系統的內存地址.這個功能是其 他高級語言所沒有的.所以人們習慣把C叫做中級語言.意思就是說既有高級語言類似人類語言的特點.又有匯 編的可以直接操作硬體的功能.

⑨ 為什麼很多專業都要學習 C 語言,大學生都要會編程嗎

大學理工科學生都要學C語言。學到的程度:至少是二級。C語言簡介:C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。