❶ 用c語言編寫用15個玻璃球分成不同的四堆·,共有多少種不同的分法
15÷4=3…3,3-1=2,3+1=4,15-2-3-4=6,答:學校體育室共有15個足球,李老師把這些球分成數量不同的4堆,其中數量最多的一堆最少有6個足球;故答案為:6.
❷ 想學C 語言!~
C語言是目前世界上流行、使用非常廣泛的高級程序設計語言。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫它是數值計算的高級語言。
常用的編譯軟體有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等......
C語言的發展歷史
C語言的發展頗為有趣。它的原型ALGOL 60語言。(也成為A語言)
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。
1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
C語言版本
目前最流行的C語言有以下幾種:
·Microsoft C 或稱 MS C
·Borland Turbo C 或稱 Turbo C
·AT&T C
這些C語言版本不僅實現了ANSI C標准,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
面向對象的程序設計語言
在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向 對象的程序設計語言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。
C語言的特點
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。
7. C語言程序生成代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。
C源程序的結構特點
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數組成。
3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。
4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。
6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
書寫程序時應遵循的規則
當然,C語言也有自身的不足,比如:C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數族下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。
總之,C語言既有高級語言的特點,又具有匯編語言的特點;既是一個成功的系統設計語言,有時一個使用的程序設計語言;既能用來編寫不依賴計算機硬體的應用程序,又能用來編寫各種系統程序;是一種受歡迎、應用廣泛的程序設計語言。
C語言有很多的優點
指針就是C語言的一大特色,可以說C語言優於其它高級語言的一個重要原因就是因為它有指針操作可以直接進行靠近硬體的操作,但是C的指針操作也給它帶來了很多不安全的因素.C++在這方面做了很好的改進,在保留了指針操作的同時又增強了安全性。Java又進一步提高了安全性。
C語言的缺點
C語言的缺點主要是表現在數據的封裝性上,這一點使得C在數據的安全性上做的有很大缺陷,這也是C和C++的一大區別
★關於學習編程和C語言
Q:該怎麼學習編程?
A:首先問你一個問題:你們在學校都學些什麼課程? 問這個問題的原因是,我認為學校的計算機科學基礎課很重要。如果你所在學校的課程設置合理,那你應該先把主要精力花在這些基礎課上。很多學生看到基礎理論就茫然,不知道這些圖表,符號,甚至硬體的知識對將來的軟體開發有什麼用。用處大得很哪。比如,操作系統課里講到的多線程的東西在系統編程里很有用。又比如,盡管你將來不會去涉及電腦的硬體,計算機架構里的知識對分析演算法的性能(快慢等等)很有用。可以把計算機語言和開發工具比作文字,而把計算機科學的知識比做思想。只有思想,不會行文,不行;但是,行文流暢,思想空洞,也不行。大學的階段正是打好基礎,豐富思想的年代。 成為一名好的程序員,不是簡單地通過學幾門課程就能做到的。
我個人認為成為一名好的程序員的要素有:
1、扎實的基礎知識;
2、很強的解決問題的能力;
3、熟練的編程調試能力;
4、創新能力;
5、團隊合作能力;
6、持續的自學能力;
7、好奇心 這些能力和品質(甚至可以說是習慣)都應該從大學階段就著手培養,並且從身邊的小事開始培養。
比如,很多中國的大學畢業生都缺乏編程和調試經驗。學習C語言,考試過關就算學會了。課題項目中,只要程序能夠編譯,運行,並且輸入輸出滿足要求就了事了。但是,寫程序的時候是否想過如何把程序寫得更加精煉,高效,高質量?對程序調試中出現的問題是否刨根問底知道原因,還是不求甚解搪塞過去算數?還有,很多中國的大學畢業生對於知識的掌握膚淺,機械,沒有好奇心,不會刨根問底。比如,學會了C++,有沒有看過一個object在編譯後,在匯編代碼中是如何被初始化的?這個object的各個成員在內存中是如何放的?在一個成員函數被調用的時候編譯器在匯編代碼中加入了哪些額外的動作?虛函數的調用是如何實現的? 這些東西恐怕在編程語言或編譯原理中都沒有詳細提到。但是,你是否有過好奇心去知道?最後,一些中國學生的大問題就是死記硬背,沒有學到某種演算法技術的根本原理,沒有應變和創新的能力。比如,有個問題是如何在不用額外內存的情況下把一棵樹的同一層節點都連起來。很多學生都能夠回答這是一個廣度遍歷的問題。但是,課本上說了廣度遍歷是一定要有額外數據結構輔助的(隊列)。所以,不給額外內存怎麼行?請看,課本上說的用隊列的方法記住了,但是就是不知道為什麼要用隊列。如果深刻掌握了這個隊列的作用,那麼這個問題是很容易的。 編程語言其實是一個很初級的工具,但是你又必須熟練的掌握它,學懂一門編程語言就好像學會了寫字,但是會寫字的人不見得會寫文章,而會寫文章又不見的寫得好。可是如果你不會寫字,那就一定寫不出文章來。
首先,在學習C語言之前,應該學好計算機基礎。裡面的很多概念對於C程序員都是非常重要的。如果你在著手學習C之前,或者已經開始學習C,但是碰到了很多問題,應該再把計算機基礎的書拿來好好看看。 如果你有足夠的耐心,十足的毅力,應該再學習C語言之前學學匯編,這會讓你對許多比較細膩的概念有清醒的認識,如果你不是那麼有耐心(恕我直言,大部分人可能沒有)。那麼可以在看完一遍C語言的教材後再看,但是一定要看一遍,相信我一定會受益匪淺。 看到有些人發問的帖子,很明顯的沒有仔細的思考過問題,或者沒有認真地查閱過書籍,因為其中的語法和邏輯錯誤實在是不能理解。想來如果你的語文作業上面滿篇都是錯字,老師一定不會放過你。為什麼不先打好基礎呢?有些人抱怨說因為教材不好,老師水平不行等等。但是我本人就是在TC2下學習C語言的,那時候除了譚浩強的書,也幾乎找不到什麼別的書。我不打算就譚浩強的書發表什麼意見,那也實在稱不上是一本好書,但是如果這本是能學好,全部看好,都記住,也應該有相當的水平了。建議不管看什麼書,先認真地看懂,不要貪速度,應該力求深入的理解。
如果你能夠比較熟練的解決一本教材上的所有習題,那麼就應該轉入對演算法的學習,盡管此時你的C語言還稱不上精通,有許多細節問題還不了解,許多問題還沒有碰到,但是這些問題會在後面的工作和學習中得到解決的。 過去,有個著名的公式,大概是:程序=語言+演算法+數據,不知道現在還提不提這個了。可能現在要加上更多的內容:項目管理、質量控制、代碼規范……。但是這個公式還是有相當的參考價值,還是用寫文章來類比,語言好比文字,演算法是文章的思想,數據是文章的內容。所以在經過一個階段的識字之後,應該試著發表一下自己的思想了。 經過一段零零散散的演算法學習,對「演算法」這兩個字有了概念之後,應該系統地對演算法進行學習,這個過程是與數據結合在一起的,應該看看數據結構,而且必須熟練的掌握。在這里提到的一本書是《運籌學》,裡面的演算法大都可以用計算機實現,我推薦這本書的原因在於,它不僅介紹了特定問題的演算法,而且詳細解釋了為什麼要這樣算,怎麼得出這個演算法的,等等。對於提高思考問題的能力有很大幫助。 如果你的精力和時間允許,現在就應該開始大量的閱讀和編寫代碼了,兩者同樣重要。「讀書破萬卷,下筆如有神」,盡管這種學習方法效率較低,而且很枯燥,但是應該看到,古代的這種教育方式培養了千古文豪,而現在的語文教育培養出來的……(唉,中小學語文教育的現狀大家都知道,我就是受害者)。
讀代碼確實是一件非常辛苦的事情,我曾經試圖閱讀全部的Linux內核原代碼,最後只看了不到十分之一,而其中看懂領會的,也就一半而已,但還是感到有很大幫助。至於大量編寫代碼,理由很簡單:實踐性的技術要在實踐中提高。但是要注意,如果你已經學完了C語言和數據結構(而且學得不錯),那就不應該專注於那些小程序了,那根本就是在浪費時間,此時應該編寫有些規模的,具有一定實用性的程序。並在這個過程中開始領會軟體工程的一些思想。第一個寫出來的程序一定是錯誤百出,一點點地修改,一點點地調試,一定會通過的。
對於寫代碼,說一個我本人的經歷,我第一遍看譚浩強的那本書,看到條件分支的時候,突然很興奮,想要寫點什麼,於是看了一些TC2的幫助,懂得了圖形編程,就自己寫了一個水果賭盤的游戲,可能有人在游戲廳見過,就是可以壓什麼蘋果橙子之類的。各位可以想像一下,當時我還不會數組,不知道循環,於是所有的這類東西都是用goto來完成的,這個歷史上最蹩腳的程序居然也正常運行了,後來我發現原來可以使用循環,於是將這段代碼替換掉,學到數組的時候,終於將那些小燈在屏幕上的位置放到了數組里,學到文件的時候,將圖形放進了二進制文件(原本都是一條線、一個點畫出來的),記不得經過了多少次修改,總之程序能運行之後,長度從2700行變成了127行。所以,想學好編程是要有點毅力的。 最後發表一下先學習C還是先學習C++的問題,這個問題見仁見智,我的意見是,先學習C。
盡管現在我很少用C了,但是C語言確實更加基礎,一個C++的高手要考慮的一些問題(比如內存的操作方面的問題),C語言的初學者可能就必須有所了解,否則會犯錯誤。這些只是遲早是要掌握的,但是因為C++關注更高層的概念,所以在學習C++的過程中這些問題可能被忽略了,以至於有人用了一兩年C++,還是有些問題不是很清楚。另一個主要的原因是:C++太優秀了,而C++的程序員會在某種程度上感覺自己比C程序員高明(他們確實有理由這樣),於是學完C++之後你可能就不屑於學習C所關注的內容,這樣的話會錯過提高的很好機會。 想成為一位好程序員(其實從事任何一個行業都是如此),重要的是要養成一個鑽研,好奇,創新,動手,合作,不滿足於填鴨,不滿足於考試交差,不滿足於表象的一種優秀的習慣。這不是學幾門課能夠一蹴而就的。當然,如果你的在校課程不能使你滿足,論壇上的朋友可能能夠給你推薦一些書或科目。
最後,不能只學語言。許多大學生認為學最新的計算機語言、技術、標準是最好的鋪路方法,因為許多公司招聘時要求這些方面的經驗。這些新技術雖然該學,但是學習計算機基礎課程更重要,因為計算機語言和開發平台日新月異,但是萬變不離其宗的就是那些基礎課程:數據結構、演算法、編譯原理、計算機組成、關系型資料庫原理等。有位同學生動地在「開復學生網」上把這些基礎課程比擬為內功,把新的語言、技術、標准比擬為外功。只追尋時髦的學生最後只懂招式,沒有功力,是不可能成為高手的。
★如何才能學好編程
Q: 我是大專學生,因此學制是二年半。時間會很快過去,但我不想一無所獲。 剛開始學習編程語言;與此同時,我也在學習數學、微積分。李老師說過這都是編程的基礎科目,我會認真學習。 但剩下的兩年,我該怎麼分配時間去學習呢?現在是大一下學期了,我在這個學期暫時想把匯編、C和數學學好,那麼其餘的幾個學期怎麼安排比較好呢?李老師有什麼建議嗎?
A: 我曾是微軟的程序員,希望能給你一點有用的建議。 首先,我認為你應該學學離散數學,比如布爾代數、集合論、數理邏輯,因為這些是計算機理論和工程的基礎。這些知識並不難,但是它對我的工作幫助很大。 學C語言
來自"http://www.kaifulee.com/moles/mediawiki/index.php/FAQ-%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%AD%A6%E4%B9%A0"
瀏覽統計:1,925 次。 最後修訂:16:14 2007年2月4日 &; 開復學生網.
❸ C語言編寫程序
#include <stdio.h>
#include <string.h>
typedef struct Tpeople
{
int party;
char name[22];
int footFlag;
}Tpeople,PTpeople;
void initPeople(Tpeople people[5]);
int is_li_sun(Tpeople people[5]);
int is_zhao_qian_sun(Tpeople people[5]);
int is_football(Tpeople people[5]);
int is_zhao_zhou_movie(Tpeople people[5]);char *movie = "Movie";
char *football = "Football";
char *restrant = "Restrant";void main()
{
int i , j , k , l , m;
int count = 0;
Tpeople people[5]; // 趙錢孫李周 == 0 1 2 3 4 看電影、踢足球和去餐館 == 0 1 2
int Tbool;
initPeople(people); for(i = 0 ; i != 3; ++i )
{
if(people[0].party == 1)
people[0].footFlag = 1;
else
people[0].footFlag = 0;
for( j = 0; j != 3; ++j)
{
if(people[1].party == 1)
people[1].footFlag = 1;
else
people[1].footFlag = 0;
for( k = 0; k != 3; ++k)
{
if(people[2].party == 1)
people[2].footFlag = 1;
else
people[2].footFlag = 0;
for( l = 0; l != 3; ++l)
{
if(people[3].party == 1)
people[3].footFlag = 1;
else
people[3].footFlag = 0;
for( m = 0; m != 3; ++m)
{
if(people[4].party == 1)
people[4].footFlag = 1;
else
people[4].footFlag = 0;
Tbool = is_li_sun(people)&&is_zhao_qian_sun(people)&&is_football(people)&&is_zhao_zhou_movie(people);
if(Tbool)
{
count = 0;
for(; count != 5; ++count)
{
switch (people[count].party)
{
case 0:
strcpy(people[count].name, "movie");
break;
case 1:
strcpy(people[count].name,"football");
break;
case 2:
strcpy(people[count].name,"restrant");
break;
default:
break;
}
}
printf("Zhao: %s Qian: %s Sun: %s Li: %s Zhou: %s \n",people[0].name,people[1].name,people[2].name,people[3].name,people[4].name);
printf("Zhao: %d Qian: %d Sun: %d Li: %d Zhou: %d \n",people[0].party,people[1].party,people[2].party,people[3].party,people[4].party);
printf("\n");
}
people[4].party++;
}
people[4].party = 0;
people[3].party++; }
people[3].party = 0;
people[2].party++; }
people[2].party = 0;
people[1].party++; }
people[1].party = 0;
people[0].party++; }
}void initPeople(Tpeople people[5])
{
int i = 0;
for (;i !=5 ; ++i)
{
people[i].party = 0;
people[i].footFlag = 0;
}
}int is_li_sun(Tpeople people[5])
{
if(people[2].party == people[3].party)
return 0;
return 1;
}int is_zhao_qian_sun(Tpeople people[5])
{
if( (people[0].party != people[1].party) && (people[1].party != people[2].party) && (people[0].party != people[2].party))
return 1;
return 0;
}int is_football(Tpeople people[5])
{
int i,count = 0;
for(i = 0; i != 5; ++i)
if(people[i].footFlag == 1)
count++;
if(count == 2)
return 1;
return 0;
}int is_zhao_zhou_movie(Tpeople people[5])
{
if(((people[0].party == 0) && (people[4].party == 0)) || ((people[0].party != 0) && (people[4].party != 0)))
return 1;
return 0;
}
❹ 下學期要開C語言了,現在對C語言是一竅不通,准備寒假自學,望各位指點一下C語言的拿些書能夠有利於自學
大連海事大學李春庚寫的《基於自然語言的。。》(具體名我忘了)結合譚浩強的《c語言程序設計》如果你能將李老師的例題全弄明白那你的c語言就沒問題了。
❺ 誰能給個C語言入門視頻教程網站
直接在www..com輸入「C 語言入門視頻」的關鍵詞,第一個鏈接就是了!
裡面有好多相關的C語言入門視頻
另外這個地址也不錯:
http://www.56.com/w95/album-aid-6956502.html
一個C語言教程的集合~~ 從初級到精通~
❻ 全國計算機等級考試二級 C語言 視頻教程
http://v.youku.com/v_playlist/f1642272o1p13.html
優酷的在線視頻,比較全,按高教的教材講的,我也在看
❼ 【C語言】編程:從鍵盤輸入所需托運行李的重量,輸出托運行李所需的費用
#include <stdio.h>
float charge(float n)
{
if(n<0)
return -1;
else if(n>20)
return 3.0*20+5*(n-20);
else
return 3.0*n;
}
int main()
{
float n;
printf("請輸入所需托運的行李重量:");
do
{
scanf("%f",&n);
if(charge(n)>=0)
{
printf("托運%.0f請客行李所需費用為%.0f元 ",n,charge(n));
break;
}
printf("托運行李重量不能小於0千克,請重新輸入所需托運的行李重量:");
}while(1);
return 0;
}
❽ c語言課程設計 心得誰能幫我編幾句啊
課程設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發展的日新日異,當今計算機應用在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握計算機開發技術是十分重要的。
回顧起此次課程設計,至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子裡,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,這畢竟獨立做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體……通過這次課程設計之後,一定把以前所學過的知識重新溫故。
這次課程設計終於順利完成了,在設計中遇到了很多編程問題,最後在謝老師的辛勤指導下,終於游逆而解。同時,在李老師的身上我學得到很多實用的知識,在次我表示感謝!同時,對給過我幫助的所有同學和各位指導老師再次表示忠心的感謝!
❾ C語言如何求100個數中的最大最小值
#include<stdio.h>
voidmain()
{
inti;
floatmin,max,a[100];
scanf("%f",&a[0]);
min=a[0];max=a[0];
for(i=1;i<100;i++)
{
scanf("%f",&a[i])
if(min>a[i])min=a[i];
if(max<a[i])max=a[i];
}
printf("最大值=%f 最小值=%f",max,min);
}