- 相關推薦
如何學好語言的學習方法
如何學好語言的學習方法

如何學好C語言?
最佳答案我也是軟件學校的,正在學編程,為了我們的前途,還是給你說說吧
談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂。”歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了后,再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如“少林武功”一般博大精深,太難學了。其實就筆者認為C語言并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那么自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。
一、明確學習目的:
C語言功能強大,本書涉及知識結構全面、合理。是一門非常好的編程語言基礎語言。
C是一門學習邏輯、程序算法、算法實現(xiàn)很好的教程。通過第一學期C語言的學習,從而可以了解程序的設計編碼的過程。
C是一單進程、單線程執(zhí)行,從頭到尾執(zhí)行,學習難不小。但結構嚴謹?shù)母呒壵Z言,可以很好學習編程規(guī)范和要求。
C語言是為以后學習其它語言打下基礎的語言。
二、好的學習方法:
基于上述學習目的并且也我們第一門編程語言。學習方法是:
課前預習,課后復習,認真做課堂、課后的作業(yè),理解理論知識。
記住語法規(guī)則。
加強邏輯思維。
多動手,通過練習上機了解它的運行過程。
實踐—>理論—>再實踐,剛開始學習C語言時,按示例練習,并推動理論的學習,然后再自己多思考,多上機實踐。
常見問題:
1、有同學聽說C語言很難,剛學習到第二、三章時,于是說:老師,我不會呀!真的很難。我不知道如何學習?
分析:
1)心理作用,在沒有學習之前都認為很難了。學不會也正常。
2)前三章是基礎,對于沒有學習過編程語言的同學來說,新的專業(yè)名詞很多。
3)前三章是基礎,還不能完整的寫出一個C程序。于是,就不知道如何去用,在哪個時候用等很多的疑問。
問題的存在:過于著急,對新的事務領悟不夠。
解決方法:學習是循序漸進和積累的過程,不要著急。這此知識都是為以后作鋪墊的。
2、有同學學到數(shù)組時,說:聽你上課時,我懂,但要我自己寫,我不知道如何寫?不知道如何開始?
分析:
1)邏輯性思想太亂。如果問:“如果班上有30個同學,要判斷成績是否及格,你將如何做?”;“當然先知道每個同學的成績,然后一個一個和60比較,如果大于等60,則及格,否則不及格。”;“那么C語言來實現(xiàn),如何做?”。聲明30個變量存儲成績?不是一個好辦法。如果聲明一個30元素的數(shù)組,是不是更合理。另外,如果要寫30個條件語句來判斷,也太過于繁鎖。如果用for循環(huán)是不是更加合理。
2)練習太少,有解決方法,但不能用C語言實現(xiàn)。
問題的存在:思路不清淅,練習太少。
解決方法:多上機練習,多思考,舉一反三。了解程序的運行過程和編碼。
三、學習要點和重點:
第一章至第四章的:基礎知識和理論知識必須要求能理解、領悟。也是學習其它語言的基礎。
第二章、第三章提到很多的專業(yè)名詞,如數(shù)據(jù)類型,變量與常量的區(qū)別,標識符的命名規(guī)則,表達式及各種運算符及輸入輸出函數(shù)基礎
五章和第六章:程序的基本結構,學習完前六章,要求能理解程序運行和編碼的過程。
將我們的算法用編程語言來實現(xiàn),主要是學習程序設計的邏輯性。也是學習其它語言的基礎
第七章到第十一章:學習C語言的特色,更深入了解C語言。本章讓學員加強空間的想象力。
第十二章:是文件的操作?紤]的是如何將程序的輸出結果及相關信息用文件記錄下來。
四、學習難度:
與日常的自然語言的表達不完全相同,所有結果要通過計算才能得。計算機沒有想像能力和空間思維能力。計算機能運行,依靠程序員的嚴謹?shù)拿顏眚寗印?/p>
語法格式多,知識點全面。應用時,要將零散的知識點有效有序的組合。
很多問題的解決方法是需要經驗的。
C語言中的運算符
無論是加減乘除還是大于小于,都需要用到運算符,在C語言中的運算符和我們平時用的基本上都差不多。運算符包括賦值運算符、算術運算符、邏輯運算符、位邏輯運算符、位移運算符、關系運算符、自增自減運算符。大多數(shù)運算符都是二目運算符,即運算符位于兩個表達式之間。單目運算符的意思是運算符作用于單個表達式。(具體什么是表達式下一節(jié)再說)一、賦值運算符
賦值語句的作用是把某個常量或變量或表達式的值賦值給另一個變量。符號為‘=’。這里并不是等于的意思,只是賦值,等于用‘==’表示。
注意:賦值語句左邊的變量在程序的其他地方必須要聲明。
得已賦值的變量我們稱為左值,因為它們出現(xiàn)在賦值語句的左邊;產生值的表達式我們稱為右值,因為她它們出現(xiàn)在賦值語句的右邊。常數(shù)只能作為右值。
例如:
count=5;
total1=total2=0;
第一個賦值語句大家都能理解。
第二個賦值語句的意思是把0同時賦值給兩個變量。這是因為賦值語句是從右向左運算的,也就是說從右端開始計算。這樣它先total2=0;然后total1=total2;那么我們這樣行不行呢?
(total1=total2)=0;
這樣是不可以的,因為先要算括號里面的,這時total1=total2是一個表達式,而賦值語句的左邊是不允許表達式存在的。二、算術運算符
在C語言中有兩個單目和五個雙目運算符。
符號
功能
單目正
單目負
乘法
除法
取模
加法
減法
下面是一些賦值語句的例子,
在賦值運算符右側的表達式中就使用了上面的算術運算符:
Area=Height*Width;
num=num1+num2/num3-num4;
運算符也有個運算順序問題,先算乘除再算加減。單目正和單目負最先運算。
取模運算符(%)用于計算兩個整數(shù)相除所得的余數(shù)。例如:
a=7%4;
最終a的結果是3,因為7%4的余數(shù)是3。
那么有人要問了,我要想求它們的商怎么辦呢?
b=7/4;
這樣b就是它們的商了,應該是1。
也許有人就不明白了,7/4應該是1.75,怎么會是1呢?這里需要說明的是,當兩個整數(shù)相除時,所得到的結果仍然是整數(shù),沒有小數(shù)部分。要想也得到小數(shù)部分,可以這樣寫7.0/4或者7/4.0,也即把其中一個數(shù)變?yōu)榉钦麛?shù)。
那么怎樣由一個實數(shù)得到它的整數(shù)部分呢?這就需要用強制類型轉換了。例如:
a=(int)
(7.0/4);
因為7.0/4的值為1.75,如果在前面加上(int)就表示把結果強制轉換成整型,這就得到了1。那么思考一下a=(float)
(7/4);最終a的結果是多少?
單目減運算符相當于取相反值,若是正值就變?yōu)樨撝,若是負?shù)就變?yōu)檎怠?/p>
單目加運算符沒有意義,純粹是和單目減構成一對用的。三、邏輯運算符
邏輯運算符是根據(jù)表達式的值來返回真值或是假值。其實在C語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。
符號
功能
&&
邏輯與
邏輯或
邏輯非
例如:
5!3;
0||-2&&5;
!4;
當表達式進行&&運算時,只要有一個為假,總的表達式就為假,只有當所有都為真時,總的式子才為真。當表達式進行||運算時,只要有一個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。邏輯非(!)運算是把相應的變量數(shù)據(jù)轉換為相應的真/假值。若原先為假,則邏輯非以后為真,若原先為真,則邏輯非以后為假。
還有一點很重要,當一個邏輯表達式的后一部分的取值不會影響整個表達式的值時,后一部分就不會進行運算了。例如:
a=2,b=1;
a||b-1;
因為a=2,為真值,所以不管b-1是不是真值,總的表達式一定為真值,這時后面的表達式就不會再計算了。四、關系運算符
關系運算符是對兩個表達式進行比較,返回一個真/假值。
符號
功能
>
大于
<
小于
>=
大于等于
<=
小于等于
等于
不等于
這些運算符大家都能明白,主要問題就是等于==和賦值=的區(qū)別了。
一些剛開始學習C語言的人總是對這兩個運算符弄不明白,經常在一些簡單問題上出錯,自己檢查時還找不出來。看下面的代碼:
if(Amount=123)
很多新人都理解為如果Amount等于123,就怎么樣。其實這行代碼的意思是先賦值Amount=123,然后判斷這個表達式是不是真值,因為結果為123,是真值,那么就做后面的。如果想讓當Amount等于123才運行時,應該if(Amount==123)
……五、自增自減運算符
這是一類特殊的運算符,自增運算符++和自減運算符--對變量的操作結果是增加1和減少1。例如:
--Couter;
Couter--;
++Amount;
Amount++;
看這些例子里,運算符在前面還是在后面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表達式的一部分,兩者就有區(qū)別了。運算符放在變量前面,那么在運算之前,變量先完成自增或自減運算;如果運算符放在后面,那么自增自減運算是在變量參加表達式的運算后再運算。這樣講可能不太清楚,看下面的例子:
num1=4;
num2=8;
a=++num1;
b=num2++;
a=++num1;這總的來看是一個賦值,把++num1的值賦給a,因為自增運算符在變量的前面,所以num1先自增加1變?yōu)?,然后賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因為自增運算符在變量的后面,所以先把num2賦值給b,b應該為8,然后num2自增加1變?yōu)?。
那么如果出現(xiàn)這樣的情況我們怎么處理呢?
c=num1+++num2;
到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據(jù)編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以后的編程當中,應該盡量避免出現(xiàn)上面復雜的情況。六、復合賦值運算符
在賦值運算符當中,還有一類C/C++獨有的復合賦值運算符。它們實際上是一種縮寫形式,使得對變量的改變更為簡潔。
Total=Total+3;
乍一看這行代碼,似乎有問題,這是不可能成立的。其實還是老樣子,'='是賦值不是等于。它的意思是本身的值加3,然后在賦值給本身。為了簡化,上面的代碼也可以寫成:
Total+=3;
復合賦值運算符有下列這些:
符號
功能
加法賦值
減法賦值
乘法賦值
除法賦值
模運算賦值
<<=
左移賦值
>>=
右移賦值
&=
位邏輯與賦值
位邏輯或賦值
位邏輯異或賦值
上面的十個復合賦值運算符中,后面五個我們到以后位運算時再說明。
那么看了上面的復合賦值運算符,有人就會問,到底Total=Total+3;與Total+=3;有沒有區(qū)別?答案是有的,對于A=A+1,表達式A被計算了兩次,對于復合運算符A+=1,表達式A僅計算了一次。一般的來說,這種區(qū)別對于程序的運行沒有多大影響,但是當表達式作為函數(shù)的返回值時,函數(shù)就被調用了兩次(以后再說明),而且如果使用普通的賦值運算符,也會加大程序的開銷,使效率降低。七、條件運算符
條件運算符(?:)是C語言中唯一的一個三目運算符,它是對第一個表達式作真/假檢測,然后根據(jù)結果返回兩外兩個表達式中的一個。
<表達式1>?<表達式2>:<表達式3>
在運算中,首先對第一個表達式進行檢驗,如果為真,則返回表達式2的值;如果為假,則返回表達式3的值。
例如:
a=(b>0)?b:-b;
當b>0時,a=b;當b不大于0時,a=-b;這就是條件表達式。其實上面的意思就是把b的絕對值賦值給a。八、逗號運算符
在C語言中,多個表達式可以用逗號分開,其中用逗號分開的表達式的值分別結算,但整個表達式的值是最后一個表達式的值。
假設b=2,c=7,d=5,
a1=(++b,c--,d+3);
a2=++b,c--,d+3;
對于第一行代碼,有三個表達式,用逗號分開,所以最終的值應該是最后一個表達式的值,也就是d+3,為8,所以a=8。對于第二行代碼,那么也是有三個表達式,這時的三個表達式為a2=++b、c--、d+3,(這是因為賦值運算符比逗號運算符優(yōu)先級高)所以最終表達式的值雖然也為8,但a2=3。
還有其他的如位邏輯運算符,位移運算符等等,我們等到講位運算時再說明。九、優(yōu)先級和結合性
從上面的逗號運算符那個例子可以看出,這些運算符計算時都有一定的順序,就好象先要算乘除后算加減一樣。優(yōu)先級和結合性是運算符兩個重要的特性,結合性又稱為計算順序,它決定組成表達式的各個部分是否參與計算以及什么時候計算。
下面是C語言中所使用的運算符的優(yōu)先級和結合性:
優(yōu)先級
運算符
結合性
(最高)
->
自左向右
&
sizeof
自右向左
自左向右
自左向右
<<
>>
自左向右
<
<=
>
>=
自左向右
自左向右
&
自左向右
自左向右
自左向右
&&
自左向右
自左向右
自右向左
&=
<<=
>>=
自右向左
(最低)
自左向右
在該表中,還有一些運算符我們沒有介紹,如指針運算符、sizeof運算符、數(shù)組運算符[]等等,這些在以后的學習中會陸續(xù)說明的。
C語言教程(2)-數(shù)據(jù)類型、運算符、表達式
C語言教程(2)-數(shù)據(jù)類型、運算符、表達式C語言的數(shù)據(jù)類型希望對學習C語言的朋友有所幫助,我們已經看到程序中使用的各種變量都應預先加以說明,即先說明,后使用。對變量的說明可以包括三個方面:·數(shù)據(jù)類型·存儲類型·作用域 在本課中,我們只介紹數(shù)據(jù)類型說明。其它說明在以后各章中陸續(xù)介紹。所謂數(shù)據(jù)類型是按被說明量的性質,表示形式,占據(jù)存儲空間的多少,構造特點來劃分的。在C語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型,構造數(shù)據(jù)類型,指針類型,空類型四大類。
1.基本數(shù)據(jù)類型
基本數(shù)據(jù)類型最主要的特點是,其值不可以再分解為其它類型。也就是說,基本數(shù)據(jù)類型是自我說明的。
2.構造數(shù)據(jù)類型構造數(shù)據(jù)類型
是根據(jù)已定義的一個或多個數(shù)據(jù)類型用構造的方法來定義的。也就是說,一個構造類型的值可以分解成若干個“成員”或“元素”。每個“成員”都是一個基本數(shù)據(jù)類型或又是一個構造類型。在C語言中,構造類型有以下幾種:
·數(shù)組類型·結構類型·聯(lián)合類型
電腦知識愛好者
3.指針類型
指針是一種特殊的,同時又是具有重要作用的數(shù)據(jù)類型。其值用來表示某個量在內存儲器中的地址。雖然指針變量的取值類似于整型量,但這是兩個類型完全不同的量,因此不能混為一談。4.空類型在調用函數(shù)值時,通常應向調用者返回一個函數(shù)值。這個返回的函數(shù)值是具有一定的數(shù)據(jù)類型的,應在函數(shù)定義及函數(shù)說明中給以說明,例如在例題中給出的max函數(shù)定義中,函數(shù)頭為:
int
max(int
a,int
b);其中“int
”類型說明符即表示該函數(shù)的返回值為整型量。又如在例題中,使用了庫函數(shù)
sin,由于系統(tǒng)規(guī)定其函數(shù)返回值為雙精度浮點型,因此在賦值語句s=sin
(x);中,s
也必須是雙精度浮點型,以便與sin函數(shù)的返回值一致。所以在說明部分,把s說明為雙精度浮點型。但是,也有一類函數(shù),調用后并不需要向調用者返回函數(shù)值,
這種函數(shù)可以定義為“空類型”。其類型說明符為void。在第五章函數(shù)中還要詳細介紹。在本章中,我們先介紹基本數(shù)據(jù)類型中的整型、浮點型和字符型。其余類型在以后各章中陸續(xù)介紹。
c語言教程(一)C語言概論
c語言教程(一)C語言概論從今天開始電腦知識愛好者網(wǎng)站將開展c語言教程系列文章,請多多提意見和問題C語言的發(fā)展過程
。谜Z言是在70年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發(fā)表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的“THE
C
PROGRAMMING
LANGUAGE”一書。通常簡稱為《K&R》,也有人稱之為《K&R》標準。但是,在《K&R》中并沒有定義一個完整的標準C語言,后來由美國國家標準學會在此基礎上制定了一個C
語言標準,于一九八三年發(fā)表。通常稱之為ANSI
C。
當代最優(yōu)秀的程序設計語言
早期的C語言主要是用于UNIX系統(tǒng)。由于C語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了八十年代,C開始進入其它操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優(yōu)秀的程序設計語言之一。
電腦知識愛好者
C語言 指針類 設有如下定義
a
p是指針變量,p的值應該是地址,不是變量的值
正確的方法應該是*p=1;
b
類似a
正確的方法應該是**q=2;
c
p是指針變量,他的值是一個地址,*q是指針變量
正確的方法應該是*q=p;
*p=&n;p是指向地址的指針
A錯
**q=&p;q是指向指針的指針
C錯
B錯
*p=&n
*p=5
取地址n賦值給指針P
5是取的地址n
D對
C語言 FOR 語句
共循環(huán)3次
第一次,p
指向
a[0],輸出結果是ABC
p
ABC
第二次,p
指向
a[1],
輸出結果是BC
p
ABC
第三次,p
指向
a[2],
輸出結果是C
p
ABC
這里要理解這個指針指向字符數(shù)組后,就是這個字符數(shù)組的首地址。
輸出字符串的時候,變量可以直接寫字符串得首地址。
由于地址改變,所以,輸出的字符串也改變。
數(shù)組在必須顯式指出數(shù)組的大小。
但是在定義數(shù)組的同時,又初始化了該數(shù)組,可以不用指定大小,系統(tǒng)會根據(jù)數(shù)組中元素的個數(shù),自動分配內存空間。
共循環(huán)3次
第一次,p
指向
a[0],輸出結果是ABC
p
ABC
第二次,p
指向
a[1],
輸出結果是BC
p
BC
第三次,p
指向
a[2],
輸出結果是C
p
C
【如何學好語言的學習方法】相關文章:
學好語文的學習方法10-09
如何學好語文11-13
如何學好物理11-15
學好數(shù)學的學習方法10-09
學好語文學習方法10-10
如何學好英語作文12-28
高中如何學好英語11-15
如何學好初中數(shù)學11-15
如何學好英語的英語作文01-20
如何學好高中的數(shù)學11-15