c語言校欺
A. 如果快速的學習c語言
下面是本人自己總結的方法。本人感覺只要你肯花時間。學好應該沒問題。
《C程序設計》的內容很豐富,一般選譚浩強老師編寫的教材,按照我們現在的教學大綱,教學的主要內容是基礎知識、四種結構的的程序設計、函數與數組的應用和一些簡單的演算法。在學習時,同學們應該把主要精力放在這些部分,通過實踐(練習和上機調試等熟練掌握。當然,在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?相應的根本就沒學習,又談何學的好?
不要說在家裡自己學看著書這種方法.個人覺得完全是自欺欺人.而且你沒有基礎根本就學不到什麼東西.不管你多用功!這種東西必須先入門!這才是最快的方法.起電腦學校培訓去吧,他們教不到你什麼東西,就是教你最快的入門跟編程基礎,真真的你想靠IT致富的話,起碼要有3年以上的工作經驗再說!出了學校門,找個IT公司進去當」苦力」.跟著老師傅做幾年項目,培養點工作經驗!能獨立完成業務了!你就離有房有車的日子不遠了!前提是你必須好好在單位搞幾年.
但是我沒有銀子,也沒有關系怎麼快速入門。建議大家可以看著書加上詳細的視頻教程學習是目前最好的方法,主要省錢還高效。可以從網路裡面搜索「理想視頻教程網」,自我感覺這個網的內容學習起來還可以,講的比較系統。
最後,學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。比如:在C語言中最典型的是關於結構化程序設計構思,不管是那種教材,一開始就強調這種方法,這時也許你不能充分體會,但是學到函數時,再回頭來仔細體會,溫故知新,理解它就沒有那麼難了。學習C語言就是要經過幾個反復,才能前後貫穿,積累應該掌握的C知識。
B. C語言問題
C語言是基礎,學了C語言才能更好地向其他語言發展,比如C++、C#甚至JAVA,所以還是先把基礎紮好。
***********************************************************
別人是這樣說的:
***********************************************************
很多人學C語言很長一段時間了,還不知C究竟能幹什麼,以為學習c語言沒什麼用,純粹是為了應付學校的考試.更有人說"學C語言?別做如此愚蠢的行為了!趕快學C++吧!"這種看法是不對的,不應該把c跟c++之間劃起絕對的界限,過分看重c++而把c貶得一無是處,這是很片面的.C++功能雖然強大,但它畢竟是c的"超集",在c++里有哪一處找不到c的影子呢?沒有c的支持,c++只能是無本之木。
一般情況下,c++編程方式編寫的程序源代碼量小,但編譯後的代碼量較大,運行的速度略低,不過開發時的工作量和工作難度較小;而c編程方式編寫的源代碼量較大,但可執行的效率高.如果一些對速度要求高,尤其是對硬體操作較多的程序,大多數還是用c編程方式開發的(用C又比用匯編簡單,易於實現).另外,學Win32 C程序設計還有助於更深入地了解Windows 的內幕和Win32 API。
任何的編程語言都是一種工具,學習語言的目是要使用它來編寫出實際需要的軟體來,而軟體作為一個用戶程序,運行時要依賴操作系統,大多數人使用什麼操作系統,我們就要編寫出基於哪一種平台上的程序來.這樣,軟體才會有更大的市場。
現在市面上出現的有關c語言方面的書大多是教授DOS下的c,上機實習也是在Turbo C 2.0(簡稱Tc)環境下轉來轉去.編程環境的單調總使人感到不爽.這也沒辦法,dos 下的c是最簡單的,初學者當然要從最簡單的入門啦.連比較有名的計算機專家譚浩強編的書也都是贊成從dos下的c學起的.再說,一個剛剛入門的人想在windows 這樣的多進程,多線程的操作系統下用c編程,那似乎又不太現實.(那要了解在windows下,一個win32程序大體上是怎樣執行的.要對系統有比較多的了解才行,一個初學者暫時還不具備那麼多的知識)但我們的腳步又不能夠只停留在dos里,應該積極地從dos向windows轉變.在dos的時代,我們可以對dos下的編程迷戀,但現在都是windows橫行霸道的時代了,我們就應用c語言編寫windows平台上的程序,因時而變,學以致用.是時代使然!如果現在還是dos雄霸天下的話,那我就不會寫這篇狗屁不通的文章來遺笑大方了,不被臭雞蛋扔死才怪呢!
"變法"是大勢所趨的了,關鍵是怎麼變,不單單是學習c語言的人如此,就連學c++的人都這樣,筆者曾經在QQ上碰到一個學了c++將近一年的小伙,居然問我,他想編一個windows窗口,該怎麼下手,如果學一門語言用了一年時間,只是學了一點語法知識,卻沒有編過一道程序,那實在是一種悲哀.下面我談談從dos向windows轉變的一些個人見解,(這純屬個人觀點,僅供參考,如果您已是高手,完全不必要在此浪費時間):
一.拓寬視野,改變偏見
別老以為c只是dos特有的東西,一提到c語言就認為c只能在dos下編程.其實,這是被tc束縛了意識,我們在學校里平時就只在dos的tc裡面用c編程,很少用到"圖形模式",整天面對?quot;烏黑黑"的屏幕,也難怪有些人一看到一個用c語言描繪出來的像windows的窗口便以為是c++的手筆.其實,作為一種語言,可以在任何一種平台上編程,只是介面不同而已,只要找到適合該平台的編程工具即可,c語言當然也能在windows下大放異彩.眼界放寬點,改變偏見,必有精彩發現.
二.選擇優秀的編程工具.
「有好的工具,做起事來就事半功倍」.在dos下我們常用tc或bc(borland c).在windows下可以用c++builder 或者visual c++ 來編程,最好用visual c++ 畢竟是微軟的東西嘛!微軟一天不垮台,編程者的飯碗就不會掉的啦 ^_^ .再說,windows操作系統是微軟出的,其內幕微軟是最清楚不過的了,在應用程序介面上,相信vc也是做得最好的.不過用vc++6來編c程序會恨煩的,大家要有心理准備.同時可以選擇多種編程工具,例如匯編,可以加強對windows的了解,是成為高手的好方法。
三.加強對windows的了解.
可以說編一個程序,就是用一種語言的語法形式將數據結構和表面的執行過程描述出來.在不同的操作系統下,其程序的執行過程是不同的.我們應該對windows的系統機制最起碼有個大體的了解,才有可能編寫windows的程序.dos是單進程單線程的系統,進程從頭到尾的順序執行,而windows是多進程、多線程的操作系統,是基於事件的,消息驅動的操作系統.明白這些是在windows下編程必不可少的,多學學它,你會發現windows 和 dos有很多的不同之處。
四.採取靈活多變的學習方法.
在不同的時期,學習不同的東西?可是有些人學習像word,excel這類操作性極強的辦公軟體時,總是先看書,看到尾巴忘了頭,到上機時卻不知所措.這種學習方式是被動的,看這些軟體操作的書,裡面說的都是具體的操作,不親手又怎能接受新知識?
五.多進行比較.
dos和windows有許多共同和不同的地方,如果是從dos學過來的話,在學習過程中不妨多進行比較,把不同的地方記下,相同的地方可以跳過,這可以快速地了解系統的不同之處,迅速地學到東西!
學習程序設計,我主張"實踐->理論->再實踐"的方式,在編程的初期,不管你會不會寫程序,都應先實踐,(這里的實踐是指編程工具操作方面的實踐),學會操作編程工具.也許有些人會說:"廢話!沒有理論,又怎麼實踐?"不錯,當你坐在一台電腦面前不知所措時,你就會想方設法使自己學會操作它,主動看書,看聯機幫助,請教別人,忙得個"不亦樂乎",這不是變"被動"為"主動"了嗎? 邊學習邊操作,以實踐來帶動理論的學習,接著達到"理論與實踐同步",就可闖過第一關,學會了編程工具的基本操作,可以為以後上機實踐打下鋪墊.
光學會操作像vc這類的工具還不行,工具是死的,人才是活的,不會編程只能是空操作,你還會說:"廢話!沒有理論,怎麼實踐?"的,這時就要學習編程的真功夫了,也就是我說的第二階段--學"理論"階段,深入研究前輩們的著作,吸取前人的智慧精華為我所用,扎扎實實打好編程內功,功夫到家了就應該"再實踐",將學到的東西運用於實際,編寫出我們需要的軟體來.學以致用嘛,呵呵~~這種方式總比"先學好語法的條條框框,再上機實踐"的效果好得多啦.
C. c語言怎麼學
轉載
(一)語言入門:
《C++ Primer》
最新版本:第三版(第四版國外已上架,國內一些網上書店也在預訂中)
適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認為此書帶著過於強烈的C語言的痕跡,對於C++的學習未必是好事。
《The C++ Programming Language》/《C++程序設計語言》
最新版本:第三版特別版
簡稱TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為「TCPL」,但需與另一本《The C Programmer Language》區分開來)
《Essential C++》
《Accelerated C++》
這兩本薄一些,都是不錯的選擇。《Accelerated C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。
以上幾本書都有相應的中文版,而且翻譯的質量都不錯。上面的書未必都需要讀一遍,但無論如何,TC++PL是應該閱讀的。
(二)進階A:
這個路線側重於語言本身
《Effective C++》
最新版本:第二版(第三版國外已上架,國內一些網上書店也在預訂中)
簡稱EC。C++程序員必讀!很多時候,我們說C++聖經不是指TC++PL,而是這一本。《The Pragmatic Programmer》一書中寫到:「一旦你發現自己要參與C++項目的開發,趕快跑(不要走)到書店去購買Scott Mayer的《Effective C++》,可能還要《More Effective C++》」。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 編程規范》
個人認為此書應為C++程序員必備的案頭書。幾乎Effective系列和Exceptional系列都在這里得到了總結。最新的模版、異常的業界經驗都在這里的到了體現。可能的唯一缺陷就是對一個新手而言,關於「為什麼這么做」的問題,解釋的不夠。
我的看法是:如果你不理解其中的條款,記憶,並且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我認為這本書中的內容至少在2009年以前都不會過時,人們將廣為傳誦它制定的101條戒律。
還不知道他的簡稱,也許「101」會成為一個候選者?
提到《Effective C++》,那麼另外三本書一一浮出水面:
《More Effective C++》
《Exceptional C++》
《More Exceptional C++》。
新書《Exceptional C++ Style》也是值得一看的好書。
上述幾本書,一本也不應該放過。
個人建議上述書籍按順序閱讀。並且,在將來反復閱讀這幾本書。
(三)進階B:
這個路線側重於程序庫。
《The C++ Standard Library》/《C++標准程序庫—自修教程與參考手冊》
聽說過STL嗎?這本書會教你最基本的,也是最重要的STL的使用。這本書,應該是必讀的。
《Effective STL》
會使用STL還不夠,還必須知道什麼時候選擇什麼STL組件,這是STL使用的必讀書。
《Generic Programming and the STL: Using and Extending the C++ Standard Template Library》/《泛型編程與STL》。
這本書理論性較強,但是真的很嚴謹,而且並不是非常難懂。理解其中對於Concept的解釋,將是非常重要的。
《C++ STL》
這不是講述使用程序庫的,而是講述程序庫實現原理的。腸胃不好的,需要慢慢吸收。
這個路線的書,仍然是建議按順序閱讀。
進階A、進階B兩個路線應該是可以並行的。
其他進階參考書
提出這些參考書,只是避免爭議,也為開闊視野,筆者並不曾完全讀過所有的。
《Thinking in C++》/《C++編程思想》
這本書及其中文版傳言好壞都有,沒有認真看過,不做評價,如果確有興趣,不妨嘗試一下該書。
以下幾本書基本上涉及的都是語言本身,大體上可以按照以下的順序閱讀。
《C++必知必會》
如果早一年,這本書將是重量級的,然而它被101和《Exceptional C++ Style》蓋過一頭。
《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序設計陷阱》
這又是一本我未曾讀過,而且廣受好評的書。
《STL 源碼剖析》
這本書我剛到手,就被人"借"走,以至於到現在也沒有看過。看過這本書的朋友,可以給一個合適的評價。
高級:
《The Design and Evolution of C++》/《C++語方的設計和演化》
簡稱D&E,內容並不艱深,Bjarne的書,僅此,就值得一讀。
前段時間,互動網曾8塊一本(人民幣)賤賣此書,現在好像沒了。
《Inside The C++ Object Model》/《深度探索C++對象模型》
C程序員讀後一定會覺得C++原來並不神秘。
《C++ Template》
在閱讀STL、Boost或者Loki的源代碼之前,請仔細閱讀本書,它可以減輕一些閱讀的煩惱。這本書是討論C++模版的權威。
《Modern C++ Design Generic Programming and Design Patterns Applied》/《C++設計新思維——泛型編程與設計模式之應用》
簡稱MCD。在閱讀MCD之前,建議先閱讀一下《C++ Template》。
《對象揭秘:Java、Eiffel和C++》
你對C++不滿嗎?這本書可以部分地幫你完成抱怨的目標。也許它還可以讓你不迷信C++。
最後,一份C++標准文檔也是應該加以咀嚼的。
還有一些書籍,並不能簡單的歸於C++,也難以在純粹的書本學習中加以掌握。《Design Patterns》/《設計模式》一書就歸於此類。
所有上述的書籍,要麼談論C++語言本身,要麼談論STL的,要麼兼而有之(當然嚴格講STL也是C++語言非常重要的一部分)。偶爾,某些書中條目也會涉及實際工程。這些書並不是C++軟體開發的全部,但是他們很重要。閱讀這些書,未必需要化費太多的精力,有時候是會困難,但也有時候會很快速。
最後,編程語言並非計算機科學技術的全部,尤其對於在校的學生來說,打好基礎、開闊視野都是非常重要的。
D. 關於C語言的問題
1.C語言屬於工科的,是面向過程的一門計算機語言,是一種直接與計算機交流的手段
2.C語言一類的向後發展知識很廣,主要的是C++,C++是面向對象的,但是以C語言為基礎,學好C語言對將來C++的學習幫助很大。學習C語言要掌握「過程」兩個字,即盡量透析程序的過程,理清思路是很重要的。C語言中的變數,函數,數組,程序的結構(順序,選擇和循環)及指針是必須牢牢掌握的內容。
3.學習C語言對先行課沒有什麼要求。只需知道及其簡單的英語單詞就OK了,然後就要靠自己多練習,勤思考
4.學習C語言,最基礎的,也是最重要的就是學習一個思想,學習結構化程序設計的方法。應從程序的靈魂--演算法學起,了解了演算法,再去認識C語言的數據類型,運算符和表達式,這些是程序最最基礎的組成部分。然後再展開來學習結構,數組等,但是學習這些的同時一定要與函數相結合的學習,這樣才能融會貫通。
5.對於初學者來說 WIN-TC 就再好不過了,是集成的環境。還有就是Turbo C,後面的這個主要是鍵盤操作的,我當初學的時候用的是WIN-TC 。
6.軟體工程是編程學習的最適當的學科了,後期學的比較的深入,但是如果只想學習C語言的話,就沒有那麼麻煩了,計算機的二級等級考試考的就是C語言,你可以報這么一個二級學習班,現在有好多這樣的學習班。當然你也可以買書自學,難度不是很大,給你推薦一本書,《C程序設計》(第三版) 譚浩強 著 清華大學出版社。 對你來說這書最好不過了。祝你學習順利!
E. C為什麼這么受欺負
C語言是一種計算機程序設計語言。
它既具有高級語言的特點,又具有匯編語言的特點。
它由美國貝爾研究所的D.M.Ritchie於1972年推出。1978後,C語言已先後被移植到大、中、小及微型機上。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫。具體應用比如單片機以及嵌入式系統開發。
計算機語言具有高級語言和低級語言之分。而高級語言又主要是相對於匯編語言而言的,它是較接近自然語言和數學公式的編程,基本脫離了機器的硬體系統,用人們更易理解的方式編寫程序。
樓上說的」C語言是一切語言的基礎」是一個悖論。
只不過C語言是現在比較通用的,得到大家認可的具有高效且易於開發的語言。
類似的語言有很多。除了C++,Java等語言是在C的基礎上延伸出來的以外,基本上跟其他語言並沒有嚴格上的誰是基礎。
現在普遍應用的是C,C++,Perl,Java,PHP等高級語言。你在各個公司的招聘簡章中都能看到此類的信息。
但是也用很多公司招聘匯編等低級語言。
相對來說,高級語言易學,低級語言麻煩。
但是從一定的角度來說,學會低級語言的含金量,明顯要比會幾個Java語句來的高。物以稀為貴,正是這個道理。
F. 寫個讓人不要欺負你的c語言程序
#include<stdio.h>
main()
{
puts("不要欺負我");
}
G. 如何系統的學習C語言(我是一個初學者,什麼都不懂)
下面是本人自己總結的方法。本人感覺只要你肯花時間。學好應該沒問題。
《C程序設計》的內容很豐富,一般選譚浩強老師編寫的教材,按照我們現在的教學大綱,教學的主要內容是基礎知識、四種結構的的程序設計、函數與數組的應用和一些簡單的演算法。在學習時,同學們應該把主要精力放在這些部分,通過實踐(練習和上機調試等熟練掌握。當然,在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?相應的根本就沒學習,又談何學的好?
不要說在家裡自己學看著書這種方法.個人覺得完全是自欺欺人.而且你沒有基礎根本就學不到什麼東西.不管你多用功!這種東西必須先入門!這才是最快的方法.起電腦學校培訓去吧,他們教不到你什麼東西,就是教你最快的入門跟編程基礎,真真的你想靠IT致富的話,起碼要有3年以上的工作經驗再說!出了學校門,找個IT公司進去當」苦力」.跟著老師傅做幾年項目,培養點工作經驗!能獨立完成業務了!你就離有房有車的日子不遠了!前提是你必須好好在單位搞幾年.
但是我沒有銀子,也沒有關系怎麼快速入門。建議大家可以看著書加上詳細的視頻教程學習是目前最好的方法,主要省錢還高效。可以從網路裡面搜索「理想視頻教程網」,自我感覺這個網的內容學習起來還可以,講的比較系統。
最後,學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。比如:在C語言中最典型的是關於結構化程序設計構思,不管是那種教材,一開始就強調這種方法,這時也許你不能充分體會,但是學到函數時,再回頭來仔細體會,溫故知新,理解它就沒有那麼難了。學習C語言就是要經過幾個反復,才能前後貫穿,積累應該掌握的C知識。
以下幾點是我的總結:
1、學好C語言,你可以很好地應付任何一種編程工具。
2、一定要多上機練習,通過程式了解相關知識。幾經反復方得正果。
3、不要把學習C語言當成一種任務,更不要把它看成很難完成的任務。要充滿自信,只要是一個智力正常的人都能學好C語言。始終保持游戲的心態,多發現其中的樂趣。當感到編程趣味無窮,那你在電腦方面將前程無量。
4、如果一個程式一時無法弄清楚最後暫時放在一邊,過一段時間你可能會從其他的程式中悟出道理。
5、C語言是一個整體,各個方面是有機聯系的,要從總體上把握它,不要把它割裂成互不關聯的部件。
6、不要完全相信教材(包括本講義),所有結論最好都上機驗證。
怎樣學好C語言
1. 工欲善其事,必先利其器
准備工作:一個開發環境,如Turbo C 2.0、Visual C++等開發工具;一本好教材,如譚浩強主編的《C語言程序設計》(第二版)。我當時看的是他的第一版,就為它的簡潔、完美所吸引,簡直愛不釋手,用了兩個星期一口氣看完。
2. 秘密武器
初學者學習計算機語言要會「讀程序」,要對小型的應用型、游戲型程序感興趣,並模仿去加深對C語言程序設計的理解和操作,只有不斷地寫程序、調試程序才能得到編寫程序的經驗和加深對程序的理解,這也是學習編寫優秀高級程序的秘密武器。
3. 發揚探索精神
學習C語言程序設計有點像做數學難題,只要我們善於思考,善於探索,發揚探索精神去尋找好的設計思想和方法,才能把C語言的精髓真正地掌握。
備戰C語言考試要訣
1. 了解大綱,臨陣不亂
各類筆試中,大多數考題是與大綱要求的基本內容一致的,難度不高,但內容十分廣泛,應牢固掌握C語言考試大綱要求的基礎部分。只有熟悉題型,理解語法、句法,做到心中有數,才能臨陣不亂。
2. 善於歸納,強化記憶
對於需要記憶的計算機基礎知識和基本概念,如果考試時因此失分就十分可惜。如:C語言中有幾種不同的數據類型?運算的優先順序別是怎樣的?因此我們需要善於歸納這些計算機基礎知識,並在理解的基礎上強化記憶。
3. 重視實踐,善於調試
計算機科學是一門理論性、實踐性都很強的學科,對C語言考試的參加者來說,基礎理論方面要求不高,而上機試題往往是很多考生不能通過考試的重要原因,因此要勤於實踐。
4. 多做練習,查漏補缺
在認真地學完指定用書後,最好再找些試題,認真地測試一下,一則可以檢查自己的復習情況;二則可以查漏補缺;三則可以調節心理狀況,以備正式考試時沉著冷靜、萬無一失。
H. 大一C語言問題
這是用C寫的~~
#include<stdio.h>
#include<string.h>
#define NUM 2 /*定義一個宏,以用來更改管理的學生人數*/
struct student
{
char name[10]; /*學生姓名*/
char id[10]; /*學生學號*/
double math; /*數學成績*/
double english; /*英語成績*/
double c; /*C語言成績*/
double total; /*總分*/
double ave; /*平均成績*/
};
void input(struct student *); /*輸入學生的信息*/
void output(struct student *); /*輸出學生的信息*/
void sort(struct student *); /*對學生信息按總分多少進行排序*/
void search(struct student *,char num[]); /*查找學生信息*/
struct student stu[NUM];
void main()
{
struct student *p;
char names[10];
char ch;
int i=0;
p=stu;
input(p);
sort(p);
printf("是否要輸出排序後的學生信息(Y\\N)?\n");
while(1) /*當用戶輸入有誤時,提醒讓其重新輸入*/
{
scanf("%c",&ch);
if(ch=='Y')
{
printf("排序後的學生信息為:\n");
printf("===============================================\n");
output(p);
break;
}
else if(ch=='N')
break;
else
{
printf("輸入有誤!請按照規則重新輸入:");
continue;
}
}
printf("請輸入您要查詢的學生的姓名:");
scanf("%s",names);
search(p,names);
}
/********************************************************
該函數用於讓用戶輸入學生信息:
無返回值,參數為指向結構體的指針
********************************************************/
void input(struct student *p)
{
int i=0;
for(i=0;i<=NUM-1;i++)
{
printf("請輸入第%d個學生的信息:\n",i+1);
printf("請輸入姓名:");
scanf("%s",(p+i)->name);
printf("請輸入學號:");
scanf("%s",(p+i)->id);
printf("請輸入該生的數學成績:");
scanf("%lf",&(p+i)->math);
printf("請輸入該生的英語成績:");
scanf("%lf",&(p+i)->english);
printf("請輸入該生的C語言成績:");
scanf("%lf",&(p+i)->c);
printf("===============================================\n");
(p+i)->total=(p+i)->math + (p+i)->english + (p+i)->c;
(p+i)->ave=(p+i)->total/3;
}
}
/********************************************************
該函數用於輸出學生信息:
無返回值,參數為指向結構體的指針
********************************************************/
void output(struct student *p)
{
int i=0;
printf("下面輸出%d個學生的信息:\n",NUM);
printf("--------------------------------------------------\n");
for(i=0;i<=NUM-1;i++)
{
printf("第%d個學生的信息為:\n",i+1);
printf("該生的姓名:%s\n",(p+i)->name);
printf("學號:%s\n",(p+i)->id);
printf("數學成績:%0.3lf\n",(p+i)->math);
printf("英語成績:%0.3lf\n",(p+i)->english);
printf("C語言成績:%0.3lf\n",(p+i)->c);
printf("總分:%0.3lf\n",(p+i)->total);
printf("平均成績:%0.3lf\n",(p+i)->ave);
printf("--------------------------------------------------\n");
}
}
/********************************************************
該函數用於對學生信息進行排序:
無返回值,參數為指向結構體的指針
********************************************************/
void sort(struct student *p)
{
struct student temp;
int i=0,j=0;
for(i=0;i<=NUM-2;i++) /*選擇排序,進行排序*/
{
for(j=i+1;j<=NUM-1;j++)
{
if((p+i)->total < (p+j)->total )
{
temp=*(p+j);
*(p+j)=*(p+i);
*(p+i)=temp;
}
}
}
}
/********************************************************
該函數用於查找學生信息:
無返回值,參數為指向結構體的指針和字元型數組
********************************************************/
void search(struct student *p,char num[])
{
int i=0;
for(i=0;i<=NUM-1;i++)
{
if( !strcmp(num,(p+i)->id) )
{ printf("===============================================\n");
printf("您要查詢的學生的信息如下:\n");
printf("該生的姓名:%s\n",(p+i)->name);
printf("學號:%s\n",(p+i)->id);
printf("數學成績:%0.3lf\n",(p+i)->math);
printf("英語成績:%0.3lf\n",(p+i)->english);
printf("C語言成績:%0.3lf\n",(p+i)->c);
printf("總分:%0.3lf\n",(p+i)->total);
printf("平均成績:%0.3lf\n",(p+i)->ave);
printf("===============================================\n");
break;
}
else
{
printf("無此人的信息!\n");
break;
}
}
}
void main()
{
/*自己寫主函數吧*/
}
你說的界面設計,是要用MFC寫吧?!
I. C語言要怎麼去學啊
這是我的經驗1.先學習C語言的基礎知識。現在正在學C語言的在校學生可以直接進入第2步學習。 2.按照《C語言程序設計入門學習六步曲》進行上機練習。 3.在上機練習時要養成良好的編程風格。點擊查看C語言的編程風格 4.積極參加C、C++興趣小組,養成和老師與同學交流習慣,從而相互收益。有時別人不經意的一句話可能使你茅塞頓開--「一句話點醒夢中人」。 5.及時總結自己的學習經驗,養成寫C語言日記的習慣。軟體有編程日記功能。 6.從網上或教材上找一個自己感興趣的題目(選題時根據自己的能力,可先易後難,培養自己的成就感,如果有了成就感,即使再苦再累還是感覺C語言學習是一件快樂的事,同學們喜歡打游戲,經常通宵達旦地玩游戲也樂而不疲就是這個道理)進行實戰訓練,提高自己的C語言綜合應用能力。 7. 由於C語言靈活、強大,初學者要全面地掌握它是不可能的,因此在學習C語言的過程中,不要在細枝末節上浪費精力(比如++、--用於表達式的計算,實際上是沒有意義的),但一定要熟練掌握C語言的流程式控制制語句、數組、函數、指針等基礎知識的應用,為學習面向對象程序設計打下堅實的基礎。如果這些知識你學不好,要後續學習好C++、可視化的程序設計Visual C++或C++Builder就像空中樓閣,是不現實的。 C語言程序設計入門學習六步曲 筆者在從事教學的過程中,聽到同學抱怨最多的一句話是:老師,上課我也能聽懂,書上的例題也能看明白,可是到自己動手做編程時,卻不知道如何下手。發生這種現象的原因有三個: 一、所謂的看懂聽明白,只是很膚淺的語法知識,而我們編寫的程序或軟體是要根據要解決問題的實際需要控製程序的流程,如果你沒有深刻地理解C語言的語句的執行過程(或流程),你怎麼會編寫程序解決這些實際問題呢? 二、用C語言編程解決實際問題,所需要的不僅僅是C語言的編程知識,還需要相關的專業知識。例如,如果你不知道長方形的面積公式,即使C語言學得再好你也編不出求長方形的面積的程序來。 三、C語言程序設計是一門實踐性很強的課程,「紙上談兵」式的光學不練是學不好C語言的。例如,大家都看過精彩自行車雜技表演,假如,你從來沒有騎過自行車,光聽教練講解相關的知識、規則、技巧,不要說上台表演、就是上路你恐怕都不行。 出現問題原因清楚了,那麼如何學習呢?請你看【C語言學習六步曲】 在程序開發的過程中,上機調試程序是一個不可缺少的重要環節。「三分編程七分調試」,說明程序調試的工作量要比編程大得多。這里以如何上機調試C程序來說明C語言的學習方法。 第一步、驗證性練習 在這一步要求按照教材上的程序實例進行原樣輸入,運行一下程序是否正確。在這一步基本掌握C語言編程軟體的使用方法(包括新建、打開、保存、關閉C程序,熟練地輸入、編輯C程序;初步記憶新學章節的知識點、養成良好的C語言編程風格)。 初學者最容易犯的錯誤是: 1、沒有區分開教材上的數字1和字母l,字母o和數字0的區別,造成變數未定義的錯誤。另一個易錯點是將英文狀態下的逗號,分號;括弧()雙引號""輸入出入成中文狀態下的逗號,分號;括弧(),雙引號「」造成非法字元錯誤。 2、C語言初學者易犯語法錯誤:使用未定義的變數、標示符(變數、常量、數組、函數等)不區分大小寫、漏掉「;」、「{」與「}」、「(」與「)」不匹、控制語句(選擇、分支、循環)的格式不正確、調用庫函數卻沒有包含相應的頭文件、調用未C聲明的自定義函數、調用函數時實參與形參不匹配、數組的邊界超界等。 3、修改C語言語法錯誤時要注意以下兩點: (1)、由於C語言語法比較自由、靈活,因此錯誤信息定位不是特別精確。例如,當提示第10行發生錯誤時,如果在第10行沒有發現錯誤,從第10行開始往前查找錯誤並修改之。 (2)、一條語句錯誤可能會產生若干條錯誤信息只要修改了這條錯誤,其他錯誤會隨之消失。特別提示:一般情況下,第一條錯誤信息最能反映錯誤的位置和類型,所以調試程序時務必根據第一條錯誤信息進行修改,修改後,立即運行程序,如果還有很多錯誤,要一個一個地修改,即,每修改一處錯誤要運行一次程序。 第二步、照葫蘆畫瓢 在第一步輸入的C程序的基礎上進行試驗性的修改,運行一下程序看一看程序結果發生了什麼變化,分析結果變化的原因,加深新學知識點的理解。事實上這和第一步時同步進行的,實現「輸入」加深知識的記憶,「修改」加深對知識的理解。記憶和理解是相輔相成的,相互促進。 例如:將最簡單的Hello World!程序 #include "stdio.h" int main() { printf("Hello World!\n"); return 0; } 中的 printf("Hello World!\n"); 中的Hello World!改成你的姓名,運行一下程序,看有什麼變化? 再如求1+2+3...+100的和的程序 #include <stdio.h> main() { int i,sum=0; for(i=1;i<=100;i++) { sum=sum+i; } printf("sum=%d\n",sum); } 第1次將for(i=1;i<=100;i++)中的100改成50,運行一下程序,看有什麼變化? 第2次將for(i=1;i<=100;i++)中的i++改成i=i+2,運行一下程序,看有什麼變化? 找出程序結果變化的原因,就加深了對C語句的理解。 第三步、不看教材看是否能將前兩步的程序進行正確地輸入並運行。 在這一步要求不看教材,即使程序不能運行,看能否將其改正,使其能正確運行。目的是對前兩步的記憶、理解進一步強化。 第四步、增強程序的調試能力 在教材中每章都有C語言初學者易犯的錯誤,按照易出錯的類型,將教材中的正確的程序改成錯誤的程序,運行一下程序,看出現的錯誤信息提示,並記下錯誤信息,再將程序改成正確的,運行一下程序。這樣反復修改,就能夠學習C語言程序發生錯誤的原因和修改錯誤的能力。 注意:每次只改錯一個地方,目的是顯示發生該錯誤的真正原因,避免一次改動多個地方,搞清發生錯誤的真正原因,切記!!!! 注意:上機調試程序時要帶一個記錄本,記下英文錯誤提示信息和解決該錯誤問題的方法,積累程序調試經驗,避免在編程犯同樣的錯誤,切記!!!!。 例如,將Hello World程序中語句 printf("Hello World!\n"); 中的;改成中文的分號; 運行一下程序,看有什麼結果? 調試程序是一種實踐性很強的事,光紙上談兵是是沒用的,就像游泳運動員只聽教練講解示範,而不親自下水練習,是永遠學不會游泳的。 即使在優秀的程序員編寫程序也會犯錯誤的,可能事最低級的語法錯誤,但他能快速發現錯誤並改正錯誤,而我們C語言初學者面對錯誤提示,不知道發生了什麼錯誤,如何改正,這就事差別。 第五步、研究典型的C語言程序,提高程序設計能力 C語言初學者遇到最多的困惑是:上課也能聽懂,書上的例題也能看明白,可是到自己動手做編程時,卻不知道如何下手。發生這種現象的原因是:所謂的看懂聽明白,只是很膚淺的語法知識,而沒有深刻地理解C語言的語句的執行過程(或流程)。 計算機是按照人的指令(編寫的程序)去執行的,如果不知道這些C語句在計算機中是如何執行的,你怎麼回靈活運用這些知識去解決實際問題呢? 解決問題的方法是要先理解C語言各種語句的流程(即計算機是如何執行這些語句的過程),然後研讀現成C語言經典程序,看懂別人事如何解決問題的,以提高自己的程序設計能力。 第六步、研究課程設計源成序,提高C語言的綜合應用能力.
希望採納
J. 校歷 C語言代碼
二、 課程設計的主要內容
根據輸入的開學和放假日期,為每學期生成相應的校歷,並提供各學期的校歷查詢顯示功能。
(1)輸入數據
學年度: 2007-2008
學期: 2
開學日期: 2008-02-18
放假日期: 2008-07-05
(2)輸出數據
2007--2008 學年度 第 2 學期
--------------------------------------------------------------------------------------------------
月份 周次 一 二 三 四 五 六 日
--------------------------------------------------------------------------------------------------
二月 一 上課 19 20 21 22 23 24
--------------------------------------------------------------------------------------------------
二月 二 25 26 27 28 29 1 2
--------------------------------------------------------------------------------------------------
三月 三 3 4 5 6 7 8 9
--------------------------------------------------------------------------------------------------
三月 四 10 11 12 13 14 15 16
--------------------------------------------------------------------------------------------------
三月 五 17 18 19 20 21 22 23
--------------------------------------------------------------------------------------------------
三月 六 24 25 26 27 28 29 30
--------------------------------------------------------------------------------------------------
四月 七 31 1 2 3 4 5 6
--------------------------------------------------------------------------------------------------
四月 八 7 8 9 10 11 12 13
--------------------------------------------------------------------------------------------------
四月 九 14 15 16 17 18 19 20
--------------------------------------------------------------------------------------------------
四月 十 21 22 23 24 25 26 27
--------------------------------------------------------------------------------------------------
五月 十一 28 29 30 五一 2 3 4
--------------------------------------------------------------------------------------------------
五月 十二 5 6 7 8 9 10 11
--------------------------------------------------------------------------------------------------
五月 十三 12 13 14 15 16 17 18
--------------------------------------------------------------------------------------------------
五月 十四 19 20 21 22 23 24 25
--------------------------------------------------------------------------------------------------
五月 十五 26 27 28 29 30 31 1
--------------------------------------------------------------------------------------------------
六月 十六 2 3 4 5 6 7 8
--------------------------------------------------------------------------------------------------
六月 十七 9 10 11 12 13 14 15
--------------------------------------------------------------------------------------------------
六月 十八 16 17 18 19 20 21 22
--------------------------------------------------------------------------------------------------
六月 十九 復考 24 25 26 27 28 29
--------------------------------------------------------------------------------------------------
七月 二十 30 1 2 3 4 暑假
--------------------------------------------------------------------------------------------------
要求:
(1)界面布局美觀
(2)節假日的計算和輸出
(3)閏年計算
(4)年月日與周日的對應計算
(5)年月日與周次的對應計算
(6)周次與月份的對應計算
(7)校歷按文件保存
提示:
(1) 使用字元串、數組、文件
(2) 內存數據處理與界面輸出分離
——————————題目應該是這個————