c語言課程內容
『壹』 c語言課程
這上面有一切你想要的
http://www.grids.cn/
「大學堂」 的前身是「中國教育科研網格計劃」(ChinaGrid)立項建設的「大學課程在線」,由北京大學網路實驗室開發和部署,全國多所大學的自願者參與維護運行,其間也得到「863計劃」的支持。「大學堂」將繼續秉承「大學課程在線」公益性的宗旨,歡迎任何團體和個人加入,也歡迎各種機構和個人提供友好贊助,以不斷擴大其資源規模和服務能力,為構建一個終生學習環境做出貢獻
『貳』 C語言都有什麼課程內容
這是以前看到的一篇文章,感覺很好。不過裡面很多說都絕版了上網慢慢找吧
程序員之路——如何學習C語言並精通C語言
程序員之路——如何學習C語言
學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。請注意,即使是「最小的代價」,也絕不是什麼捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經歷艱苦的過程。
一、要讀就讀好書,否則不如不讀
所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。
大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給你程序設計應該掌握的思考方式;程序風格相當地不好,會讓你養成亂寫代碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以網路一下:)
Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標准C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《Pointers on C》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果你曾經學過C語言,有那麼一些C語言的基礎但又不是很扎實,那麼你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。
如果你已經啃完了一本C語言教材,想要更進一步,那麼有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後你可以挑戰一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完並能透徹理解,你便可以放心大膽地在簡歷上寫「精通C語言」了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如Visual Studio,而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)或者Dev C++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後你一定要轉向Unix環境的。Visual C++ 6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而Dev C++使用gcc編譯器,對C99的標准都支持良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C 2.0作為實驗環境,這是相當不可取的,原因其一是TC 2.0對C標准幾乎沒有支持,其二是TC 2.0編譯得到的程序是16位的,這對今後理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC 2.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基礎 主要包括以下幾6大方面
數據類型
各種運算符
三種控專制結構(順序 選擇屬 循環)
函數
數組
指針
我當初和你一樣,也是自學的,其實並不難,我看的是夏老師,講的挺簡明易懂的,特別適合我這樣0基礎的,上面說的這些就是講的主要內容。
『肆』 c語言的基本課程是什麼
最基本的就是數據類型
『伍』 c語言課程設計的內容簡介
本書適合作為普通高等院校或對程序設計要求較高的高職高專院校C語言課程設計、實訓或實習的指導書,也可作為C語言程序設計綜合性實驗的參考書。
『陸』 C語言課程
#include <stdio.h>
int fweekDay(); //尋找日期是星期幾
void weekDay(); //輸出星期幾,功能1
void printMon(int j); //列印月日歷,功能2
void printYear(); //列印年日歷,功能3
int mDays(int year,int mon); //求xxxx年xx月的天數
int y,m,d; //分別代表年,月,日
void main()
{
int choose=1,i;
char ch;
while(choose!=4 || 'Y'!=ch)
{
ch='n';
printf("******************************\n");
printf(" 1.查詢某年某月某日是星期幾\n");
printf(" 2.列印某年的某月的全月日歷\n");
printf(" 3.列印某年的全年日歷\n");
printf(" 4.退出\n");
printf("******************************\n");
printf("請選擇(1~5):");
scanf("%d",&choose);
switch(choose)
{
case 1:
weekDay();
break;
case 2:
printMon(1);
break;
case 3:
printYear();
break;
default:
printf("是否真的要退出?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
break;
}
}
}
void weekDay()
{
int week;
char ch='y';
while('Y'==ch || 'y'==ch)
{
printf("請輸入年月日(xxxx.xx.xx)\n");
scanf("%d.%d.%d",&y,&m,&d);
if(1==m)
{
m=13;
y=y-1;
}
if(2==m)
{
m=14;
y=y-1;
}
week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(week)
{
case 0:
printf("星期一 ");
break;
case 1:
printf("星期二 ");
break;
case 2:
printf("星期三 ");
break;
case 3:
printf("星期四 ");
break;
case 4:
printf("星期五 ");
break;
case 5:
printf("星期六 ");
break;
case 6:
printf("星期日 ");
break;
default:
break;
}
printf("\n是否繼續?(輸入y/Y繼續):");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
}
printf("\n");
}
void printMon(int judge)
{
int i,j,num;
int week;
int days; //天數
char ch='y';
while(('Y'==ch || 'y'==ch))
{
if(1==judge)
{
printf("請輸入要列印的年月(xxxx.xx)\n");
scanf("%d.%d",&y,&m);
}
printf("SUN\tMON\tTUE\tWED\tTHU\tFRI\tSAT\n");
d=1;
week=fweekDay();
days=mDays(y,m);
if(6==week)
week=-1;
for(j=0;j<=week;j++)
printf("\t");
for(i=0;i<days;i++)
{
printf("%d\t",i+1);
if((i+2+week)%7==0)
printf("\n");
}
if(1==judge)
{
printf("\n是否繼續?(輸入y/Y繼續):");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
}
else
ch='N';
}
printf("\n");
}
int mDays(int year,int mon)
{
int days=0;
switch(mon)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
if(year%400==0 || (year%4==0 && year%100!=0))
days=29;
else
days=28;
break;
default:
break;
}
return days;
}
int fweekDay()
{
int week,tm=m,ty=y;
if(1==m)
{
m=13;
y=y-1;
}
if(2==m)
{
m=14;
y=y-1;
}
week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
y=ty;
m=tm;
return week;
}
void printYear()
{
int i;
char ch='y';
while('Y'==ch || 'y'==ch)
{
printf("請輸入要列印的年月(xxxx)\n");
scanf("%d",&y);
for(i=1;i<13;i++)
{
m=i;
printf("第%d個月:\n",i);
printMon(0);
}
printf("\n是否繼續?(輸入y/Y繼續):");
fflush(stdin);
scanf("%c",&ch);
fflush(stdin);
}
}
『柒』 c語言的課程有什麼,具體
基本數據類型和基本運算
函數,數組,字元串,指針
預處理命令
結構體,枚舉
文件操作,內存操作
『捌』 c語言課程的總結
一學期結束了,對C語言也有了一些認識,不過自我感覺學得不太好,好在還專是學到了知識:屬
了解了C的發展以及編程的基本步驟,學會了Printf輸出語句,C語言的運算,知道了有哪幾種數據類型,還有我覺得經常用的if語句,if一eles語句,for循環,while 語句,do-while語句等等,基本會用數組和指針,還有字元串的處理,對了還有才學的結構體。
還有許多知識點,不一一羅列了,總之C語言要學的東西太多了,聽大二大三的都說C很簡單,但我並不認為他像人們說的那樣簡單,C是最基礎的,基礎不代表簡單,也可能是我沒學好才有這樣的感受。
『玖』 c語言培訓課程學哪些內容
肯定常用的都學啊,像變數、數組、語句、函數,難得後面有指針,簡單的庫函數