20165211 學習基礎和C語言調查

20165211 學習基礎和C語言調查

理論脫離實踐是最大的不幸。——達芬奇html

達芬奇,是我眼裏最有嫌疑的穿越者。java

繪畫、天文、雕塑、音樂、發明、建築,數學、生理、物理、天文、地質……我很難想象有一我的能在這麼多的領域都取得堪稱你們的成就。從他的這句話中,彷佛能讓咱們一窺他成功的祕訣。編程

在閱讀了婁老師的博客後,我對於以後的學習也有了一些的感觸,就在這裏記錄一下吧。小程序

在婁老師的博客作中學中,老師與咱們分享了學習的經驗方法,並向咱們推薦了一些學習的資料和途徑,並和咱們分享了練五筆減肥打乒乓球背單詞的經驗。在這些過程當中,注重方法,作好規劃,注重堅持。數組

我主要的感悟是,一是要有足夠科學的方法,婁老師所強調的作中學,強調了,學習須要的是理論,思考,實踐,總結的結合。二是要作一個自制的人,這裏的自制不限於自個人剋制,更多地是在於自個人管理,剋制惡習的同時,要能主動地去完成本身的目標,因此,在這中間,我認爲制定本身的目標,並對本身進行自我和外界的監督極爲重要。網絡


你有什麼技能比大多數人(超過90%)更好

這個問題,其實我是有一些慚愧的,父母一直奉行着放養原則,並不強迫我去參加一些興趣班,補習班之類的,而我對於本身感興趣的事物大可能是自學,要達到比90%的人要好,我確定是沒有這個自信的。仔細想了以後,本身能寫的大概就是自學能力和耐心能寫吧。多線程

就自學能力來講,我以爲本身應該能夠算是比大多數人要好一點,小時候對奧數比較感興趣,奧數班也是我爲數很少的報的興趣班,在那裏的一些思惟方式對於以後一些知識的理解助力。以後在高中也報了很多的競賽,高二時未選生物,生物也算是基本自學,也有一些成績。還有本身感興趣的事物,也基本是自學。還有耐心,最明顯的表現大概就是,我對於一些細小的工做會更加的感興趣。編程語言


針對這個技能的獲取你有什麼成功的經驗?

總結一下,我以爲經驗主要是有如下幾點吧:函數

  1. 興趣的指引,能夠做爲本身學習的最初動力。
  2. 在有興趣的同時,要有即刻去作的行動能力
  3. 要作好規劃管理,爲本身制定好計劃
  4. 要有足夠的自制能力,在最初的熱情褪去的時候,要有堅持執行本身計劃的自制力。
  5. 都對本身實行自個人監督外界的監督

與老師博客中的學習經驗有什麼共通之處?

共同之處的話,我以爲主要在於。規劃,自制和合適的監督這三點。學習

我以爲這三點,規劃在於在學習之初的指導做用,還有對本身的一個指望,是學習開始一個必要的階段。自制,則是可以堅持的關鍵,也是整個學習過程的關鍵,否則,三天打魚,兩天曬網,只在初期努力就只能在得到很淺的知識,並不能對本身有什麼提高。合適的監督則是一個輔助的機制,減小本身的惰性心理,預防放棄也是不可小視的。


有關C語言學習的調查

你是怎麼學習C語言的?(做業,實驗,教材,其餘),與你的高超技能相比,C語言的學習有什麼經驗和教訓?

在C語言的學習過程當中,在大一上學期就已經有所接觸,並且我認爲我主要的知識也是在大一上完成了基本的瞭解,下學期主要着重於積累和練習。我以爲主要的學習過程爲:自學,聽講,練習,複習,鞏固。

相比於以前提到的技能,我以爲主要的區別就在於,C語言,我是出於一種必要技能的須要來學習的,並非出於我的最初的興趣。而且,由於在下學期又進行了二次的學習,算是學習了兩次吧。

我以爲在C語言的學習過程當中,主要的經驗教訓在於,在學習以後,不能只能依靠練習來進行復習,畢竟,咱們所接觸的那些練習和題目,都是在咱們能力範圍內的,而C語言,有不少實際上是咱們上課程上接觸不到的,對於編程語言的學習,若是隻限於課程範圍內,那麼就永遠只能掌握很小的一部分,咱們要在掌握的基礎上,不斷擴展,才能真正的掌握知識。

目前爲止估算本身寫過多少行C代碼?理解的狀況如何?量變引發質變,如何平衡質和量?

我以爲本身寫的代碼,大概有3000到4000行。就本身所掌握的來講,這3000~4000行代碼,有很大一部分是一些內容的變形,重複。就這些小部分的知識,我以爲掌握是沒有問題的。可是很無奈的是,C語言的內容並非只有這些,有不少知識,我至今仍是隻知其一;不知其二,甚至根本不瞭解。

我以爲在學習中質變和量變有兩種,一是對一個知識點或對某一個知識塊的瞭解和練習的量變達到一個對這一個知識的質變的點,也就是徹底的掌握和延伸。二是這樣的知識點或知識塊的積累的量變,而且,達到了這樣的知識塊的鏈接,則達到了整個學科的理解的質變。簡單來講,就是量變引發部分的質變,再到總體的質變。咱們不能停留於一個個部分的質變,而要不斷去追求總體的質變。

學過了C語言,你分的清數組指針,指針數組;函數指針,指針函數這些概念嗎?

  1. 數組指針:指向數組地址的指針,本質是指針
  2. 指針數組:元素是指針的數組,本質是數組,例如int *p[3]
  3. 函數指針:指向函數的指針變量,用途爲調用函數和作函數的參數
  4. 指針函數:返回值是指針的函數,本質是函數

對於這個問題,我還有有點懵的,去找了一些博客做爲參考的資料的。

學過了C語言,你明白文件和流的區別和聯繫嗎?如何區分文本文件和二進制文件?如何編程操做這兩種文件?

並不清楚,如下是我查閱資料所得:

  • 文件是計算機管理數據的基本單位,同時也是應用程序保存和讀取數據的一個重要場所。每一個文件都有文件名、文件所在路徑、建立時間及訪問僅限等屬性。
  • 流是字節序列的抽象概念,例如文件、輸入/輸出設備、內部進程通訊管道等。流提供一種向後備存儲器寫入字節和從後備存儲器讀取字節的方式。除了和磁盤文件直接相關的文件流之外,流還有多種類型。流能夠分佈在網絡中、內存中或者是磁帶中。
  • Windows 平臺中,程序中是 "\n",對應的文件內容是 "\r\n";而二進制文件的寫入和讀取按其原樣。例:定義 fp 是 Windows 平臺中以文本文件形式打開的文件指針,則 fprintf(fp, "\n"); 運行後,文件中多了 "\r\n"。
  • 文件的操做
文件的打開操做 fopen 打開文件
文件的關閉操做 fclose 關閉文件
文件的讀寫操做 fgetc 從文件中讀取一個字符
fputc 寫一個字符到文件中去
fgets 從文件中讀取一個字符串
fputs 寫一個字符串到文件中去
fprintf 往文件中寫格式化數據
fscanf 格式化讀取文件中數據
fread 以二進制形式讀取文件中的數據
fwrite 以二進制形式寫數據到文件中去
getw 以二進制形式讀取一個整數
putw 以二進制形式存貯一個整數

學過了C語言,你知道什麼叫面向過程程序設計嗎?它解決問題的方法是什麼?

C語言是一種面向過程的程序設計,這是一種以過程爲中心的編程思想。

解決問題的方法爲:分析出解決問題所須要的步驟,而後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就能夠了。

在C語言裏面,什麼是模塊?你寫過多個源文件的程序嗎?

查閱瞭如下資料,emmmm...仍是有一種只知其一;不知其二的感受啊,感受到本身對C語言的瞭解仍是停留在很表層的階段,多個源文件的程序也沒有寫過。

以獨立性、低耦合性,逐層分解」的基本思想描述(分解)系統,首先以數據流圖爲基礎導出系統模塊(功能)結構圖,直到每一模塊都是功能單一的模塊系統模塊(功能)結構圖
結構化設計方法、「自頂向下、公共模塊做爲模塊劃分的原則,再將各大模塊繼續劃分爲較小的模塊、高內聚性。

學過了C語言,你知道什麼是「高內聚,低耦合」嗎?這個原則如何應用到高質量程序設計中?

在學習過程當中,常常聽到這個原則,可是沒有詳細的瞭解過,又只能找度娘了......

怎樣理解高內聚低耦合

image

內聚是從功能角度來度量模塊內的聯繫,一個好的內聚模塊應當剛好作一件事。它描述的是模塊內的功能聯繫;

耦合是軟件結構中各模塊之間相互鏈接的一種度量,耦合強弱取決於模塊間接口的複雜程度、進入或訪問一個模塊的點以及經過接口的數據。

就我我的的理解就是,在系統之中,單個模塊要使他儘量的聯繫緊密,可是模塊之間,儘量的使其獨立存在,減小相互之間的影響。

學過了C語言,你如何把數組A的內容複製到數組B中?如何查找整數數組A中有沒有數字5?如何對整數數組A進行排序(從小到大,從大到小)?寫出相應的程序。

我將全部的功能都放在了下面這個程序裏了。

#include <stdio.h>
#include <stdlib.h>
#define N 100
int main()
{
    int a[N],b[N],n,i,j,temp;
    printf("請輸入數組中數的個數:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        b[i]=a[i];           //數組複製
    }
    for(i=0;i<n;i++)
    {
        if(a[i]==5)
        {
            printf("數組中有5");
            exit(0);
        }
    }
    printf("數組中沒有5");    //查找數組中的5
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]<a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }                         //從大到小排序
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }                         //從大到小排序
    return 0;
}

寫一個程序,統計本身C語言共寫了多少行代碼。

這個程序,真的是沒什麼頭緒,個人文件操做,真是的,一團糟,當時也只是作了一點點的瞭解(有種後悔莫及的感受......)

目前思路大概是,導入文件,統計換行符,判斷註釋及空行。可是,文件操做真的是一團亂麻,因此如今先寫了一個統計行數的程序。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char a;
    int l=0;
    do
    {
        a=getchar(); 
        if (a=='@') break;
        if (a=='\n') l++;
    }while(1);
    printf("共有%d行。\n",l); 
}

還有文件的操做部分和對於註釋空格的判斷,打算不斷地學習完善,爭取能儘快寫出來!

下面是一些找到的博客資料,做爲完善的參考:

用C語言編寫一個程序,統計一個文本文件的行數。

寫一個程序,統計本身C語言共寫了多少行代碼。

你知道什麼是斷點嗎?給出本身調試程序的例子。

斷點是一種調試方法,即在調試中設置斷點,下一次讓程序自動運行到斷點位置,即可在上次設置斷點的位置斷下來,能夠提升調試的效率。


參考怎樣快速閱讀一本書,快速閱讀一下雲班課中有PPT,每章提出一個問題

  1. JAVA的平臺無關性是怎樣實現的?
  2. 字符串長度較長時用並置符號鏈接,那麼咱們通常劃分字符串長度的標準是什麼?
  3. instanceof運算符的具體使用方法及使用場合?
  4. 類和C語言中的結構體是否能夠類比,兩者之間的主要區別是什麼?
  5. 子類繼承父類的方法有哪些?有什麼不一樣之處?
  6. 接口是怎樣克服Java單繼承的缺點的?
  7. 內部類,匿名類,異常類的定義,及在Java語言中如何使用?
  8. String類及StringBuffer類之間的不一樣和聯繫,以及各類經常使用實用類的使用場合。
  9. 窗口的含義,做用及使用方法。
  10. File類的各類方法的使用是否能夠比較C語言中的文件操做進行類比比較理解?
  11. 預處理語句的做用及具體的使用方法。
  12. 線程的定義以及多線程的概念。
  13. URL類是指什麼,有何特色?
  14. 繪製這些基本圖形,以及對基本圖形的變形的具體操做是怎樣實現的?可否實現簡單的繪畫功能?
  15. 怎樣具體瞭解堆棧及相關概念?

對比C語言的學習,你對《Java程序設計》的學習有什麼具體目標?如何經過刻意訓練提升程序設計能力和培養計算思惟?如何經過「作中學」實現你的目標?

個人目標主要就是可以真正的學到知識,能獨立的編寫完成本身的小程序。在簡單看了一遍PPT以後,我幾乎有一種頭昏腦漲的感受,各類概念,名詞,在腦子裏亂飛。

在即將到來的Java學習中,我對本身的最低要求是要可以真正的理解掌握新的知識。在作完C語言基礎的調查以後,我深深地感受到,以前的C語言學習和成績是有很大水分的,有一些概念真的是一律不知。在此基礎上,還須要作知識的延伸,理解掌握這門課。

相關文章
相關標籤/搜索