學習基礎和c語言基礎調查
《作中學》讀後感與技能學習心得
讀後感
Don't watch the clock. Do what it does. Keep going.html
不要只看時鐘,要效仿時鐘,一直前行。java
——山姆·勒文森算法
讀完老師的博客,實在是欽佩老師的毅力和行動力。減肥、背單詞、學五筆這些事情我也都曾嘗試過,但結果都是無疾而終,如果執行時能有如老師通常的毅力,想必如今也能有所收穫。因而可知,學習過程當中的毅力是多麼的重要,想要達到質的飛躍,量變的積累是必不可少的,有熱情和想法只是開始,實際的執行纔是達成目標的關鍵。編程
邁出 「溫馨區」,只在 「學習區」 學習,注意按部就班,不能進入 「恐慌區」 。心理學家把人的知識和技能分爲層層嵌套的三個圓形區域:最內一層是「溫馨區」,是咱們已經熟練掌握的各類技能;最外一層是「恐慌區」,是咱們暫時沒法學會的技能,兩者中間則是「學習區」。 只有在學習區裏面練習,一我的纔可能進步。 有效的練習任務必須精確的在受訓者的「學習區」內進行,具備高度的針對性。數組
這段話讓我想起蔡康永老師說過的「若是隻看合乎本身口味的書,那你永遠只能知道你已經知道」,在學習時咱們只有離開「溫馨區」,進入「學習區」才能掌握更多的技能。網絡
技能學習心得
- 小時候上過挺多興趣班,但被問到有什麼技能是超過90%的人的時候卻捉襟見肘,感受並無什麼特別突出的技能。主要緣由得歸結於我學東西一般都是三分鐘熱度虎頭蛇尾,但好在還有同樣舞蹈算是我比較拿得出手的技能。
- 成功的經驗中最重要的就是堅持,曾經看到一句話大體的意思是「大部分人都到不了拼天賦的程度,努力就夠用了」。這句話很符合我學習舞蹈的過程,用舞蹈老師的話說我是屬於硬的那種,所以在軟開度的訓練上吃很大的虧,但長期的練習下來,雖然和專業舞者相比有很大差距,但也足以應對一些舞臺表演。
學跳舞和學Java的相通之處有不少,例如都須要課後花時間練習,光靠上課的時間是遠遠不夠的,更重要的是你課後時間和精力的投入。還有很重要的一點是都須要你本身的思考和理解,舞蹈的動做不能僅是機械的記憶,你得賦予它感情才能使整個做品變得生動,Java的學習更是如此,算法的用法是多變,只有理解透徹了才能靈活使用。函數
c語言學習基礎的調查
1.你是怎麼學習C語言的?(做業,實驗,教材,其餘),與你的高超技能相比,C語言的學習有什麼經驗和教訓?
- c語言主要是經過教材和做業來學習的,教材和老師課上的講解是我學習知識點的渠道,平時的練習在鞏固知識點和應用方面具備較大做用。c語言學習到目前爲止最大的教訓就是要及時溫故,無論你當時學得如何,這麼長時間以來如果沒有再適當鞏固,所學的知識點便遺忘了不少,使用起來也就至關吃力。
2.目前爲止估算本身寫過多少行C代碼?理解的狀況如何?量變引發質變,如何平衡質和量?
- 對本身寫過多少行代碼真的沒有什麼概念,估摸着應該能有三千行。理解的狀況只能說是很基礎,寫過的代碼裏也沒有什麼高難度的語句,都是一些很基礎的算法拼接而成,解題時大體能有本身的邏輯圖,但和別人的相比起來每每顯得有些拖沓。
- 量變引發質變,首先這裏的量得有是功效的,其次我認爲兩者轉變過程當中很重要的一點就是「悟」,即和每一個人的悟性高低是有關係的。在該方面悟性高的人相對而言更容易完成量的積累,從而達到質的轉變,悟性低一點的人則須要花更多的時間和精力在量的積累上,但量變必定會引發質變,就如一萬小時定律,只要付出足夠多的努力,就必定能夠完成從平凡到卓越的轉變。
3.學過了C語言,你分的清數組指針,指針數組;函數指針,指針函數這些概念嗎?
- 數組指針即本質是指針,指向數組;指針數組即本質是數組,數組的每個元素都是指針。
函數指針即本質是指針,指向函數;指針函數即本質是函數,但函數返回值是一個指針。
4.學過了C語言,你明白文件和流的區別和聯繫嗎?如何區分文本文件和二進制文件?如何編程操做這兩種文件?學習
慚愧地說並不清楚,下面這些是我查詢資料後的理解。編碼
- 文件是一些具備永久存儲及特定順序的字節組成的一個有序的,具備名稱的集合,流是提供一種向後備存儲器寫入字節和從後備存儲器讀取字節的方式。文件是抽象的流的一種具體化。
- 文本文件是基於字符編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等,二進制文件則是基於值編碼的文件。在對一個文件操做時,就是要注意用相應的方式打開。
參考連接:文件和流的區別、文本文件和二進制文件比較
5.學過了C語言,你知道什麼叫面向過程程序設計嗎?它解決問題的方法是什麼?.net
- 面向過程是一種以過程爲中心的編程思想,就把問題分解成一環環有關聯的步驟,而後按順序依次解決。
6.在C語言裏面,什麼是模塊?你寫過多個源文件的程序嗎?
- 我理解的模塊就是把複雜的問題拆解成的一個個環節,例如函數就是一個基本的模塊。本身並無寫過多個源文件的程序。
7.學過了C語言,你知道什麼是「高內聚,低耦合」嗎?這個原則如何應用到高質量程序設計中?
- 這些名詞上課時聽老師講過,高內聚是說模塊內部要高度聚合,低耦合是說模塊與模塊之間的藕合度要儘可能低。在程序設計中,就是要作到模塊間的藉口清晰、明確,模塊內部密封性強。
參考連接 淺談高內聚低耦合
8.學過了C語言,你如何把數組A的內容複製到數組B中?如何查找整數數組A中有沒有數字5?如何對整數數組A進行排序(從小到大,從大到小)?寫出相應的程序。
#include <stdio.h>
#include <stdlib.h>
#define N 100
void find (int a[N],int n)//查找整數數組a中有沒有整數5
{
int i;
int flag=0;
for(i=0;i<n;i++)
{
if(a[i]=='5')
flag=1;
}
if(flag==1)
printf("數組A中存在整數5\n");
else
printf("數組A中不存在整數5\n");
}
void inturn (int a[N],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<n-1;i++)
{
printf("%d",a[i]);//從小到大排序
}
printf("\n");
for(i=n-1;i>=0;i--)
{
printf("%d",a[i]);//從大到小排序
}
printf ("\n");
}
int main()
{
int a[N],b[N];
int i,n;
printf("輸入個數:\n");
scanf ("%d",&n);
printf("輸入數組a:\n");
if(n<1||n>100)
printf("error!\n");
else
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
b[i]=a[i];
printf("%d",b[i]);//數組內容複製
}
printf("\n");
find(a,n);
inturn(a,n);
}
return 0;
}
9.寫一個程序,統計本身C語言共寫了多少行代碼。
- 反編譯出的.java是否和編譯器中的.java文件徹底一致?如果不一致,又該如何還原代碼?
- 數組爲何是引用型變量?除了8種基本數據類型,其餘是否都屬於引用數據類型?
- PPT中關於instanceof運算符的描述,是說判斷左面是不是右面的類或子類建立的對象,具體是怎麼應用的?
- 實體對象做爲參數時是值傳遞仍是引用傳遞?
- 子類和父類的面向對象之間有什麼聯繫?可否互相轉化?
- 接口與類的區別和聯繫是什麼?
- 匿名類是一個沒有類名的子類,那要使用匿名類建立對象時的構建方法是什麼?
- String類和StringBuffer之間存在聯繫,那麼它們是否能夠互相轉換?能夠的話又該如何轉化?
- JFrame構建方法?如何判斷各類事件的類別?
- 各類流之間可否並行處理?
- JDBC中有哪些重要的藉口?
- 如何解決線程的中斷問題?
- 如何使用網絡套接字?
- 圖形布爾運算的規則是什麼?
鏈表的使用和C語言有哪些差異和聯繫?
學習展望
- 經過學習Java但願本身能加強邏輯性,現實一點則是但願在例如在大創、畢業設計等須要使用的時候可以經過本身的能力解決面臨的問題。
- 首先得要求本身邁出「溫馨區」,在 「學習區」裏學習,不是重複使用本身會的簡單算法,而是不斷學習更多更簡便的方法,激發本身的思考。其次,進行大量的有針對性的練習,加深對知識點的理解和使用。以及按期反饋、交流,和別人探討本身的理解,相互促進,引發思想火花的碰撞。
- 想要實現目標最根本的途徑就是實踐,光說不練假把式,本身動手寫程序去解決問題,在嘗試過程當中不斷思考、改進,能力天然也就提升了。