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

編程達人匯編c語言

發布時間: 2023-04-29 13:25:21

c語言如何學習

談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是「讓我歡喜讓我憂。」歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,你就可以理直氣壯地對他人說「我是電腦高手!」,而且以後若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如「少林武功」一般博大精深,太難學了。其實就筆者認為C語言並非是「difficult(困難)」的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言。
學習C語言必須從以下四點入手,也就是說,只要你能掌握這四點的內容,那麼基本上就大功告成了。
1、多看代碼 在有一定基礎以後一定要多看別人的代碼。 注意代碼中的演算法和數據結構。
畢竟學C之後的關口就是演算法和數據結構。提到數據結構,指針是其中重要的一環,絕大多數的數據結構是建立在指針之上的,如鏈表、隊列、樹、圖等等,所以只有學好指針才能真正學好C。別的方面也要關注一下,諸如變數的命名、庫函數的用法等等。有些庫函數是經常用到的。對於這些函數的用法就要牢牢記住。
2、要自己動手 編程序是個實乾的活,光說不練不行。剛開始學的時候可以多練習書上的習題。 對於自己不明白的地方,自己編個小程序實驗一下是最好的方法,能給自己留下深刻的印象。 自己動手的過程中要不斷糾正自己不好的編程習慣和認識錯誤。有一定的基礎以後可以嘗試編一點小游戲,文曲星之類的電子詞典上小游戲很多,照著編作為練習。基礎很扎實的時候,可以編一些關於數據結構方面的東西,諸如最經典的學生管理系統。之後.....學匯編、硬體知識。
3、選擇一個好的編譯器 VS2010以上版本
4、關於養成良好的編程習慣 基本上每本C教材上都要提到。作為新手這條一定要時時遵守。具體方面:
(1) 在比較復雜的代碼後面要有注釋。 如果光溜溜一堆代碼,別人就不可能看懂你的代碼,而且也不利於查找錯誤。
(2)注意語句的嵌套不能過長,一般來說,一段代碼里Tab要少於8個。
簡單說就是語句最多8個嵌套。 對於新手來說,這個標准還要下降。有一個好習慣是,把主函數盡量寫簡短。經常看到別人的代碼是主函數只有幾行,幾個函數調用,而定義全在主函數外部。這樣一是減少了主函數內部的嵌套,二是比較精簡,容易讀懂。
(3)注意語句的選擇。並不是分支語句就用if循環就用while、for。在適當的情況下switch和do while語句也是要用的。

⑵ c語言編程怎樣入門

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

⑶ C語言編程

C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。因此,它的應用范圍廣泛。主要有以下特點:

C語言在很多方面都可以用,不僅僅是在軟體開發上,各類科研都是需要用到C語言的。具體應用比如我是學硬體的,單片機以及嵌入式系統都可以用C來開發。

C 語言發展如此迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C 語言加上一些匯編語言子程序, 就更能顯示C 語言的優勢了, 象PC- DOS 、WORDSTAR等就是用這種方法編寫的。歸納起來C 語言具有下列特點:1. C是中級語言它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。

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

3. C語言功能齊全C 語言具有各種各樣的數據類型, 並引入了指針概念, 可使程序效率更高。另外C 語言也具有強大的圖形功能, 支持多種顯示器和驅動器。而且計算功能、邏輯判斷功能也比較強大, 可以實現決策目的編游戲,編3D游戲,做資料庫,做聯眾世界,做聊天室,做PHOTOSHOP做FLASH,做3DMAX。

4. C語言適用范圍大C語言還有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。

C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。

C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。

⑷ 請編程達人用c語言編寫一個程序輸出魔方陣

#include
<stdio.h>
#define
N
16
//這里可以修改N的值
int
main()
{
int
a[N][N],i,j,k,p,m,n;
p=1;
while(p==1)
/*要求階數為1~15的商數*/
{
printf("Enter
n(n=1~15):");
//可以輸入小於等於N-1的整數
scanf("%d",&n);
if((n!=0)&&(n<=N-1)&&(n%2!=0))
p=0;
}
for(i=1;i<=n;i++)
/*初始化*/
for(j=1;j<=n;j++)
a[i][j]=0;
j=n/2+1;
/*建立魔方陣*/
a[1][j]=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if((i<1)&&(j>n))
{
i=i+2;
j=j-1;
}
else
{
if(i<1)
i=n;
if(j>n)
j=1;
}
if(a[i][j]==0)
a[i][j]=k;
else
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=1;i<=n;i++)
/*輸出魔方陣*/
{
for(j=1;j<=n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return
0;
}

⑸ C語言怎麼學

淺談C語言學習方法
本人是一名windows程序寫作員,使用的語言是C語言.其他語言了解一點點,但並不擅長.可能對於初學者來說,首先就是選擇一門程序設計語言.當然,今天我將要說的不是這方面.每種語言都有它所擅長的領域與層面.當然對於其他非C語言我是一名門外汗,我也不會站在C語言的立場去談論其他任何一門語言.好了,在開始進入正題之前,我想談談個人對C的一些看法:

C語言是一種早期的計算機語言,最初誕生目的是為了提供一種基於UNIX系統的工作語言.但是,後來卻被越來越多的人發現它的優點與潛力.C本身比較接近底層,適合開發系統軟體甚至是操作系統.我個人也認為它是界於高級語言與匯編語言之間的中級語言.C語言是一門結構化語言(我認為主要是指它的控制結構如:if if-else while for等等).C程序設計上有提到"自頂向下,逐步深入".以函數為原子功能模塊.對於大型的程序來說模塊化是很重要的,有一句話說的很好"優質的程序首先就是便與人們之間的相互討論與交流,其次才是執行效率".當然我個人認為任何一名程序寫作者,都應該養成一種特定的思維方式,以程序的思維方式來思考程序的實現.前提就是要足夠的來了解計算機底層技術.要不我想就連學習都是很困難的,凡事都是一個思路的問題嘛.標準的來衡量,C應該算是高級語言陣營的一份子.可很多有C語言開發經驗的程序寫作者.通常親切的稱C為界於底級語言與高級語言之間的中級計算機語言.當然不是因為C比高級語言要差,之所以這么認為是因為C既具有高級語言的結構化與可理解性又具有低級語言的高效率.同時C的移植性也是非常不錯的,大家應該知道,越是接近硬體,接近底層的語言就越加的依賴硬體環境,也就是我們所說的設備相關性.C這一點做的是非常棒的.說了這些,在從另一個角度去分析C語言.當然每種語言都有它自身的優缺點,C也一樣.比如在現在高級語言與頂層技術的角度來看的話,C最大的缺陷就是Data與演算法的分離.舉一個例子: 對於一個擁有幾千行甚至上萬行Code的程序來說,如果修改Data,比如我在Structure中增加一個欄位,可能為此我的整個程序都要改動,這使得程序的可重用性大大降低.開發周期也大大的延長.但是在底層的角度來看這也正是C的優點.我為什麼要這么說呢?我個人認為在求解與實現一個小問題的時候,我們可以寫出一個通用的模塊處理不同的Data.當然比如某些經常用到的,基於數據結構的一些常用演算法我們可以寫出來在開發的時候我們可以直接把預先編寫的模塊插入到我們的程序中去,這不也是大大低了開發周期嗎?初學者完全可以根據自己的需求來編寫一個自定義庫.好了,說了這些,有些地方我理解錯了,還請各位指出來,交流是很重要的,前提是要把自己的心態放平.下面我將談論本問的重點,也就是如何來學習C語言,是給那些初學者讀的.

正題部分:

有人可能會說:學習還用你教啊,誰沒上過學啊.其實我今天要說的只是,站在一個過來人的角度,來分析與解釋學習C語言的過程中比較困難的地方.當然我個人也會對比較具體的問題進行解釋(個人看法).我一直在強調個人看法,我是想讓大家明白,對於同一個問題大家可能都很難達成統一的意見,希望批評的時候客氣點就好嘍!

初學者該看哪些書來入門:

在學習C語言之前,首先就要選擇一本教材,對於初學者,我個人並不建議去讀電子書籍,最好是買紙質書來學習.比如比較有名的"C程序設計"就很不錯,尤其是第二版.我也看過,比較適合中國人來初學.整本書都在全面系統的講解C的語法結構,構成C的語言元素包括:數據類型,支持的運算符,標識符(是由程序員按照命名規則起的名字,用於變數名,函數名,宏名等等),關鍵字(編譯系統用於實現C內部功能的詞,比如:轉向goto和中斷break等等)等.看完這本書你基本上可以寫一些簡單的小程序,當然是DOS下的程序.如果你想在進一步深入學習C的話,可以看"C陷阱與缺陷"這本書.寫這本書的作者是在Bell工作對C是非常精通的,應該算是大師級的人物了.如果你暫時不想深入C的話,也沒問題,因為此時你完全可以把C當作一種編程工具來使用,你要做的就是多寫Code來讓自己熟悉C語言.經驗是非常重要的,"經驗是檢驗真理的唯一方法".當然你不會紙上談兵,如果你有過多的開發經驗的話,就知道在紙上或最初的設想的Code拿到計算機上來實現,最終會發現有很多地方都是不合理的,之前是沒有辦法想像到的.在初學C的過程中,比如你會看"C程序設計"來初學C,當你學完每一章的時候要把習題來完成,這里就是考驗你學到的知識了,看看你應用能力怎麼樣?尤其是程序設計題目,比較有意思.哪裡不懂了.可以翻回去看書中的解釋.如果沒有解釋或你還是不明白,可以去問別人,與其他人交流. bbs,QQ或Google.直到你弄明白為止.當你把問題最終解決的時候,我敢打賭,此時你一定很興奮,或者是比較興奮.這個時候知識已經在你的大腦里了.

下面我為你推薦幾本不錯的關於C語言籍:

C編程規范
C語言大全第四版 (個人感覺不錯,裡面有提及C標准方面的東西)
C和指針
The C programming Language (經典著作)

如果你要看電子書的話,以上幾本書在Google上很容易就可以找到.

關於C語言的初步理解:

對於初學者,會有太多的疑問,原因是你的知識面太小.現在我為你解釋一些C相關的東西.目的是讓你能夠有一個大致清晰的方向,來給自己安排學習計劃.專業的來說,我們是或將是一名程序員,程序員當然就是要開發程序了.對於軟體開發方面我來解釋下術語:

C,C++,ASM,Basic,Java 這些是計算機語言.計算機語言很多,我就不多說了.

Visual C++,Visual Basic, Microsoft研發的開發環境,開發環境包括:編譯器,庫函數(每種C語言編譯器都支持標准庫,同時它們也會擴展自己的庫,所以很多比較以來庫函數實現的程序員,在轉向不同的開發環境的時候最初總是不使用的,會遇到很多問題),一些資源模板等等.Visual 就是可視的意思,後面的就是語言.Visual C++支持C與C++2種語言,是根據文件的擴展名來判斷採用哪種編譯內核.

什麼是"面向對象"與"面向過程"? 其實是2種完全不同的程序設計思想,C語言是面向過程語言,而C++是面向對象語言.在面向對象的語言中有"類(Class)"這個東西.C中沒有.對象是由類來派生的一個實例,相反類就象是一個模板.

什麼是SDK? SDK就是軟體開發工具包(Software Development Kit).指的范圍比較廣,通俗的說,凡是能夠與軟體開發過程占上邊的東西都屬於.比如:庫文件,參考資料,介面函數,當然語言也應該屬於.

DDK就是設備驅動程序開發工具包.

Turbo C: 這是一個比較精緻的C語言編譯器.

理論上來說任何一門語言都可以在任何一種操作系統上運行,前提是操作系統要支持.也就是我們所說的應用程序介面,比如Window API(Application Programming Interface),其實是Microsoft內部定義的介面函數用於實現一些Windows內部的功能.一些對象的描述術語,在不同平台上是不同的,比如:Windows下的"調用",經常被稱為"呼叫","返回"被稱為"傳回".

什麼是"演算法"? 你最初只需要知道演算法實際上就是對特定的Data進行運算的一段代碼而已.也可以認為在求解一道題目的時候,採取的方法與步驟的總稱.對於基本的C程序來說,實際上就是由Data與演算法來組成的.

什麼是"數據結構"? 如果要是系統的講解,還需要一本書"數據結構",簡單的說:是程序要處理的數據在內存中的存儲與組織的方式,分為:物理結構與邏輯結構.邏輯結構就是我們抽象化以後得到的大腦影象.

什麼是"函數庫"? 它們以文件的形式存儲,是預先定義好的函數的集合,我們的程序可以直接調用.當然前提是要包含它的頭文件(庫函數的原型聲明).這些函數是在靜態連接期間組成到.exe文件中去的.Windows又存在另一種庫,叫做動態連接庫(DLL).

GUI: 也就是"圖形用戶界面",就是我們在Windows上看到的,存在:菜單欄,滾動條與顯示區域的窗口.

GDI: 圖形設備介面,從程序寫作者的角度來看,其實GDI就是由上百個函數與數據形態和一些相關的數據結構所組成的.

學習C語言的全過程:

仔細想想,實際上學習C語言,最初是應該先學習C語言的基礎語法.也就是學習C語言的組成部分.一部分一部分的向下學.知識要一點一點的鞏固的.本人假設你學習C語言是看"C程序設計".我認為你應該先把C程序設計仔細的看一便,這樣你應該可以對整本書和C語言的整體組成結構有個大致的清晰了解.不要認為學習只是在看書,看一便就可以了.你應該學會記筆記,在記筆記的過程中,其實你就是在學習,從知識的分析,理解,歸納,到最後以自己的思維方式記下來,這整個過程就是把書中的知識抽象到你自己的腦袋裡.個人感覺學習效果非常好,不懂就問,要多多與人交流,要多思考,遇到問題自己先多想想,實在找不到問題出在哪,在去請教別人,不要有不懂的地方就直接去問別人,那樣對你沒太大的好處.其實要學會給自己安排適合自己的學習計劃,我大致來估計了一下,如果你每天能花4個小時安靜的,用心去學習的話,30天之內你應該可以掌握C語言了.其實在整個學習過程中你大多數時間都在看書,而不是面對電腦.在調試你的代碼之前,先在紙上把核心代碼大致寫出來,分析一下:程序的組成模塊(可以是一個函數或多個),由幾個函數來實現,介面的封裝.採用哪種數據結構更適合一些.關鍵在於演算法.在你的最終程序發布之前,最好把你的代碼行數減到最少.不要只想著把代碼寫多.過多的代碼對程序來說是負擔.你可以在Internet上下載一個文件(C語言經典例題.chm),裡面大致包含了上百個經典的例題.每一個例題都是C語言某部分的典型應用.花時間把這個文件中的所有例題代碼研究一下,最好能自己把代碼改善,以自己的方式來求解.以後你會發現你在寫一些應用程序的時候經常會有一些演算法.會涉及到我之前提到的例題.最後我認為你可以自己來寫C語言標准函數,比如strcpy(); strlen();strcat();最好不要過分依賴庫函數.

C語言學習的難點:

現在應該是已經講到一個重點的環節.很多網友都說學習C語言很難,我認為C中有些部分是比較復雜,難理解的.當然在你具有了豐富的開發經驗以後,這以不在是問題了.下面我個人會對我認為學習C的時候比較難學的地方進行我自己的闡述,如果哪裡不正確,還請各位指出:

指針的出現:

我想有很多初學者學習到指針那一章都感覺很難,下面我就以自己的想法來解釋下指針這個特殊的數據類型,
基本變數大家可能並不難理解,因為基本變數其內部存儲了同類型的常量,事實上指針也是變數,不過呢,這個變數和基本變數有點不一樣,那你又問了:是哪裡不一樣呢? 我告訴你,簡單的來理解其實普通的變數內部存儲了同類型的常量,而指針變數內部存儲的則是"同類型變數的首地址".這樣你能夠理解嗎,是很簡單的解釋,但不失本質.事實就是這樣的.如果你不理解"同類型變數的首地址"的話,我可以給你形象的來描述一下:
float Variable; //聲明一個單精度實型的變數
此時,編譯器已經給Variable分配了內存空間,結構如下:
__________
| |1001
|---------
| |1002
|---------
| |1003
|---------
| |1004
|---------

以上便是Variable的內存結構了,16位下的float佔用4個位元組,內存地址是線性編碼的,我們可以很容易的看出Variable的首地址就是他第一個單元的地址1001,好的,繼續向下看:
float *Pointer=&Variable; //聲明一個指向Variable的指針Pointer
_________
|1001 | 這是Pointer的內存結構
|_______|

我們的程序可以這樣來執行:

Variable=1.0;
直接給Variable賦值,我們稱為直接訪問.

也可以這樣執行:
*Pointer=1.0;
也可以通過指針變數來賦值,前面的*是間接運算符號,意思是求Pointer內部存儲地址所標識的內存單元.也就是Variable.此時,是賦值是通過間接訪問來實現的.可以這樣形象的描述:

________ (指向Variable) __________
|Pointer|------------------------------------>|Variable|
--------- ----------

以上應該是指針實現的基本解釋,很多優秀的程序寫作者都說指針是C語言中的精華,的確如此,很多優秀的程序寫作者寫程序都非常依賴指針,因為它很方便,實際上指針所訪問的對象是沒有限制的,他可以指向任何類型的變數,前提是只要我們知道內存地址.因此指針也並不安全,在開發網路程序的時候,盡量要少使用指針.下面我們在來看一下指針在數組中的使用.

數組中的指針:

簡單的來解釋下數組,數組結構在C中使用比較普遍,其實最常用的就是char 類型的數組,主要是用於字元串操作.實際上數組是"同類型變數的有限集合".我想這應該不難理解吧.數組在內存中佔用連續的內存單元(地址連續),來存儲數組中的每一個元素.數組是預先分配好指定長度的內存單元,供數組元素使用.它並不支持動態內存分配.在內存中想要唯一的確定數組,需要2個標識:入口地址(函數名)和結束標記('\0').有些語言並不向C語言這樣支持字元串結束標記,它們必須要另外聲明一個變數來標識尾元素的下標.那數組名其實就是這一組內存單元的首單元,他的地址就是整個數組的入口地址.此時應該明白了,數組名是一個指針,這樣理解沒有問題.不錯在具體操作的時候不允改變數組名的地址,也不符合實際要求.這樣就可以明白數組名是一個什麼 const Pointer(指針常量).我們可以這樣做:
int Array[10];
int *Pointer;
Pointer=Array;
for(i=0;i<10;++i)
Pointer==i;

以上代碼應該是沒問題吧,同類型的指針,完全可以勝任數組名的任務.一點問題沒有而且可以運行的很好.當然,我們可以進一步把代碼這樣來寫:

for(i=0;i<10;++i)
Pointer=i;
改成
for(i=0;i<10;++i,Pointer++)
*Pointer=i;
不好意思,我記不清了,指針的++運算是地址+1還是向後移動一個元素的位置,如果是地址+1的話,以上代碼在改成這樣:
for(i=0;i<10;++i,Pointer+sizeof(int))
*Pointer=i;

如果數組類型是char的話,那就更方便了,因為字元串存存在一個在尾元素之後的結束標記('\0'),下面給出一個簡單的代碼,應用char Pointer:
char * my_strcpy(char * dst, const char * src)

{

char * cp = dst;

while( *cp++ = *src++ ); // 注意運算符的優先順序與結合性

return( dst ); //返回新傳的指針

}
以上代碼實現字元傳Copy功能,代碼是不是很簡潔啊.如果不需要移動內存塊的話,我們完全可以通過交換指針(內存地址)來實現排序操作,其效率應該是很客觀的.補充一句:千萬要弄清楚,指針本身與指針所指向的變數不是一個單元.

⑹ C語言編程達人請進

看這一句:
fwrite(&arr,sizeof(int),1,fp);
sizeof(int)表示你悔穗寫入的一塊的大小,你用的是一個int大小。
1表示你要寫入的塊的數目。

顯然在你機器上一個int是4個位元組,碧前卜而arr的悔高類型是char *,一個char是1個位元組,所以你寫入4個位元組大小的數據時就會寫入四個字元。
如果你要寫入全部字元,改成
fwrite(&arr,sizeof(char),10,fp);

⑺ 請C語言編程達人幫忙編寫一段程序

我沒用用文件啊 用的就是結構體typedef struct employee 這個就是結構體
#include<stdio.h>
#include<stdlib.h>
typedef struct employee
{
int id;
char name[20];
char department[20];
int money;
char position[20];
struct employee *next;
}Employee,*ept;
typedef struct
{
ept head;//頭指針
ept tail;//尾指針
ept current;
ept p,q;
int tot;
}Linkemployee;
int isfound(Linkemployee &l,int id)//判斷是否有重復的職工號
{
int count=0,flag;
l.p=l.head;
while(count++<l.tot)
{
flag=0;
if(l.p->id==id)
flag=1;
else
l.p=l.p->next;
}
if(flag==1)
return 1;
else
return 0;
}
void CreatLink(Linkemployee &l)//構造空鏈表
{
l.head=l.tail=(Employee*)malloc(sizeof(Employee));
l.head=l.tail=NULL;
l.tot=0;
}
void AddInformation(Linkemployee &l)
{
l.current=(Employee*)malloc(sizeof(Employee));
printf("請輸入職工穗缺姓名:");
scanf("%s",l.current->name);
printf("請輸入職工號:");
scanf("%d",&l.current->id );
printf("請輸入職工部門:");
scanf("%s",l.current->department);
printf("請輸入職工職位:");
scanf("%s",l.current->position );
printf("請輸入職工工資:");
scanf("%d",&l.current->money );
if(l.head==NULL)
{
l.head=l.tail=l.current;
l.head->next=l.tail;
l.tail->next=NULL;
l.tot++;
printf("職工添加成功!!!\n");
}
else
{
if(!isfound(l,l.current->id))
{
l.tail->next=l.current;
l.current->next=NULL;
l.tail=l.current;
l.tot++;
printf("職工添加成功!!!猜褲辯\n");
}
else
printf("職工號已經存在\n");
}

}
void SearchInformation(Linkemployee &l)
{
if(l.tot>0)
{
int findnumber,count=0;
l.p=l.head;
printf("輸入要要查找的職工號:");
scanf("%d",&findnumber);
while(count++<l.tot)
{
if(findnumber==l.p->id)
{
printf("職工信息找到!\n");
printf("姓名 職工號 職工部門 職工工資 職工職位\n");
printf("%s%6d%8s%8d%8s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
}
else
printf("無輸入職工號的信息\n");
l.p=l.p->next;
}
}
else
printf("沒有任何信息\n");
}
void DisplayInformation(Linkemployee &l)
{
if(l.tot>0)
{
int count=0;
l.p=l.head;
printf("姓名 職工號 職工部門 職工工資 職工純圓職位\n");
while(count++<l.tot)
{
printf("%s%8d%8s%8d%8s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
l.p=l.p->next;
}
}
else
printf("沒有任何信息\n");
}
void DeleteInformation(Linkemployee &l)
{
int findid, count=0;
int flag;
int selection;
l.p=l.head;
l.q=l.p;//記錄刪除節點的前一個節點
if(l.tot>0)
{
printf("輸入要刪除的職工號:");
scanf("%d",&findid);
while(count++<l.tot)
{
flag=0;
if(findid==l.p->id)
{
flag=1;
}
else
{
l.q=l.p;//記錄刪除節點的前一個節點
l.p=l.p->next;
}
}
if(flag==1)
{
printf("職工信息找到!\n");
printf("姓名 職工號 職工部門 職工工資 職工職位\n");
printf("%s%6d%6s%6d%6s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
printf("確認刪除嗎?1刪除,2退出\n");
scanf("%d",&selection);
if(selection==1)
{
if(l.p==l.tail )
{
l.q->next=NULL;
l.tail=l.q;
free(l.p);
}
else if(l.p==l.head)
{
l.q=l.p;
l.p=l.p->next;
l.head=l.p;
free(l.q);
}
else
{
l.q->next=l.p->next;
free(l.p);
}
l.tot--;
}
else
printf("自動退出\n");
}
else
printf("無輸入職工號信息\n");
}
else
printf("沒有任何信息\n");
}
void main()
{
int selection;
Linkemployee l;
CreatLink(l);
printf("----------------------------------------------\n歡迎進入公司職工信息管理程序");
printf("\n----------------------------------------------\n");
printf("請選擇您的操作:\n1. 增加職工信息\n2. 查找職工信息\n3. 顯示所有職工信息\n4. 刪除職工信息\n5. 退出\n");
while(scanf("%d",&selection)&&selection!=5)
{
switch(selection)
{
case 1:AddInformation(l);break;
case 2:SearchInformation(l);break;
case 3:DisplayInformation(l);break;
case 4:DeleteInformation(l);break;
}
printf("----------------------------------------------\n歡迎進入公司職工信息管理程序");
printf("\n----------------------------------------------\n");
printf("請選擇您的操作:\n1. 增加職工信息\n2. 查找職工信息\n3. 顯示所有職工信息\n4. 刪除職工信息\n5. 退出\n");
}
}

⑻ 匯編語言和c語言哪個執行效率高為什麼

針對性調優過的匯編速度是最巧游告快的。所有的語言最終都到匯編 匯編再到機器語言。 語言編譯的時候都有優化,所以好的匯編是最快的。但是差的匯編也不少MSP430上的程序都磨旅有一個判斷執行15秒的。

程序設計語言中匯編語言速度最快,c語言效率最高,執行效率高。程序設計語言(ProgrammingLanguage):是一組用來定義計算機程序的語法規則。它是一種被標准化的交流技巧,用來向計算機發出指令。

一種計算機語言讓程序員能夠准確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動。程序設計語言特點不同,適用領域也不同。


(8)編程達人匯編c語言擴展閱讀:

如今通用的編程語言有兩種形式:匯編語言和高級語言。匯編語言和機器語言實質是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,容易識別和記憶。源程序經匯編生成的可執行文件不僅比較小,而且執行速度孝明很快。

高級語言是絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。