20165203 學習基礎和C語言基礎調查

1、技能學習經驗及體會

對於課外技能來講,我對不少領域都略知一二,但涉足不深,例如體育領域、攝影領域、繪畫領域、書法領域等等,我所能拿得出手的就是體育領域的乒乓球了。婁老師的做業題目讓個人思緒又回到了本身初學乒乓球時期。我認爲本身的乒乓球學習經歷不管是在身體上仍是精神上都給我不小的幫助,我也很願意和你們分享一下。html

其實個人乒乓球說是「超過90%以上」的人那確定是不可能的,在乒乓球如此盛行的中國,我也只不過是茫茫乒乓球愛好者中的滄海一粟。2008年,當看到北京奧運會的乒乓球比賽轉播時,本身對這個小球產生了濃厚的興趣,何況本身身體柔柔弱弱,爲了使本身能強壯,也爲了豐富了本身的課餘生活,更重要的是知足本身的興趣,我開始了本身的乒乓球經歷。起初,教練讓咱們練習基本功,由於本身乒乓球起步較晚(大概是小學4年級),因此,本身必需要付出更大的努力才行,在假期一天揮拍上萬次,對着鏡子練習是假期常有的事,本身現在還記得在手臂上綁上彈簧繩同時將彈簧繩固定在牆壁上,以此既練習了力量,也加強了肌肉記憶。基本功練了一段時間,教練開始讓咱們分組練習,在練習過程當中教練予以指導,也會指出你的長處和弱點。大量練習中我也發現本身身體條件並非很好,正拍進攻力量不足,但優勢是本身反拍穩定性好,腳步能快速到位,進入狀態較快,一個典型的防守反擊型球手。在接下來的訓練中本身也着重提升本身的防守穩定性,並增強力量訓練,增強進攻能力。慢慢地,本身的打球風格就是攻防兼備,起初經過防守觀察對方的進攻特色,並在防守中經過擊球節奏的變化破壞對方的擊球節奏或是抓住對方回球質量不高的機會絕地反擊。至今不少跟我打過球的同窗都說,乍一看我力量不足,可打球時我很難纏,密不透風的防守,出色的遠臺進攻,並善於觀察球路,思考對策,說我比賽並不只僅用球技,還用智慧。教練的點評也是個人打球穩定,球商較高,善於觀察。後來,到了中學儘管學習任務重了,打球的機會少了不少,但乒乓球依然是個人一大愛好,它讓我強健了體魄,並改掉了不少生活上的壞習慣,同時經過打球結交了不少朋友,豐富了本身的朋友圈。不管到哪兒,乒乓球一直陪伴着我。java

經過乒乓球學習,我也體會到,就像婁老師在本身的乒乓球學習經驗中提到的那樣,本身必定要跟學習區(在此也就是指乒乓球圈子)裏和高手(好比和53班的孫同窗)過招,本身才能進步;而且打球也要常思考,得到有效的反饋;固然還要高度集中注意力。個人乒乓球學習經驗是編程

  • 對本身有充分的瞭解,瞭解本身的長處和短處。
  • 針對本身的短處多加練習,長處繼續發揚。
  • 在與別人打球時必定要觀察對方的長處和特色。這樣作的好處之一是體會打法的多樣化,這纔是乒乓球的魅力所在,還有++取長補短++。
  • 多加練習並思考,在實踐中暴露出來的問題本身的印象會更深,而且有迫切解決它的動力。
  • 每打一次要多加總結本身作的好的地方和出現的問題。
    學習任何東西都有相通之處,就是要思考,還要分層次訓練,將所要學習的內容分紅幾個板塊,一塊一塊地學習,其次,就是要多加練習,有了大量的練習量,量變才能引發質變。還有,練習也不是盲目的,要++有針對的練習++,針對本身要提高的地方着重練習,這樣才能提高練習的效果。最後,練習要有反饋,要有總結,總結本身在每次練習中學到的東西,這樣才能學有收穫。

2、C語言學習調查

1.你是怎麼學習C語言的?(做業,實驗,教材,其餘),與你的高超技能相比,C語言的學習有什麼經驗和教訓?
  • 我學習C語言靠老師講課自學兩部分。起初接觸C語言時,由於本身在計算機方面涉足不深,不少名詞都不太熟悉,聽老師講課時也很吃力。因而,本身就在課下時本身閱讀學習教材,同時,結合了一下網課——騰訊課堂中的C語言編程,本身不懂的名詞就在百度上查找,每學完一章節要總結一下本身學的東西,而後天天在做業系統上練習幾道題,不懂的就找同窗一塊兒來探討。可是,本身在學習C語言的過程當中,始終未佔據主動地位,課上效率極低,課下練習不夠,一直停留在做業系統上的題型解決就能夠的層面,不曾深刻探究C語言的用途。與乒乓球相比,本身沒有及時總結每次練習時的經驗教訓,也沒有根據本身的特色制定適合本身的學習計劃。其實,本身沒有根據C語言自身的特色制定適合的學習計劃,本身在學習時,總覺得本身瞭解了書本知識就會了,忽略了學習編程語言須要在作中學,並在課下加大練習。相信有了C語言的教訓以後,Java學習時能深入體會到作中學,取得理想的效果。
2.目前爲止估算本身寫過多少行C代碼?理解的狀況如何?量變引發質變,如何平衡質和量?
  • 目前爲止本身也就寫了2000大幾不到3000行的代碼,寫代碼的高峯期彙集於大一下學習C語言的時期和大一的暑假準備計算機二級考試時期。本身由於沒有及時複習,只是明白當時寫的代碼,通過這麼長時間,早已忘的一乾二淨。本身也深知,本身的天資並不聰慧,要想到達本身想要的高度,必須在一開始就把基礎打牢,要想讓本身的水平長時間維持在本身想要的水平線上,就必須保持練習,常常接觸,那樣本身才不會對它陌生。數組

  • 量變引發質變是亙古不變的真理。對於量和質,我認爲每一個人特色不一樣,平衡關係天然是不一樣的。如何要用比例去衡量它的話,拿我自身來講,量和質的關係大概爲3:1或4:1,要想取得理想的效果,大量的努力是必須的。因此,具體到程序學習上來講,大量基礎知識點和基本練習便是量,具體到更復雜,用途更高級的程序便是質。大量的練習是本身到達更高臺階的墊腳石。編程語言

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

-** 指針數組**:首先它是一個數組,數組的元素都是指針,數組佔多少個字節由數組自己決定。它是「儲存指針的數組」的簡稱。模塊化

  • 數組指針:首先它是一個指針,它指向一個數組。在32 位系統下永遠是佔4 個字節,至於它指向的數組佔多少字節,不知道。它是「指向數組的指針」的簡稱。函數

  • 詳細見指針數組&數組指針工具

  • 指針函數是指帶指針的函數,即本質是一個函數。
  • 函數指針是指向函數的指針變量,即本質是一個指針變量。
  • 具體見指針函數&函數指針學習

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

很差意思,沒有接觸過。不過,我查到了相關資料測試

  • 文件的一種,或者說是的派生,主要指存放於硬存儲器的二進制序列。(結合
    文件&流
  • 文本文件和二進制文件,該博客中詳細介紹了這兩種文件,以及編程操做這兩種文件的區別。
5.學過了C語言,你知道什麼叫面向過程程序設計嗎?它解決問題的方法是什麼?

面向過程是一種以++過程++爲中心的編程思想,是以什麼正在發生爲主要目標進行編程。通常的面向過程是從上往下步步求精,因此面向過程最重要的是模塊化的思想方法。好比拿學生早上起來這件事說明面向過程,粗略的能夠將過程擬爲:(1)起牀(2)穿衣(3)洗臉刷牙(4)去學校,而這4步就是一步一步地完成,它的順序很重要,你只須要一個一個地實現就好了。

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

我認爲,C語言中的模塊就是將程序根據功能分紅幾個部分,而後再一塊一起的調用,函數的利用就是一個很好的例子。遺憾,沒有寫過多個源文件的程序。

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

學藝不精,不過,我查到了一些資料,從資料的介紹來看,「高內聚,低耦合」的意思爲加強模塊內部代碼的功能,減小模塊間數據接口的複雜程度。由於多模塊程序我只編過函數程序,對於這樣的程序個人理解大概是加強函數內部代碼的相關性,減小函數接口的複雜程度。

8.學過了C語言,你如何把數組A的內容複製到數組B中?如何查找整數數組A中有沒有數字5?如何對整數數組A進行排序(從小到大,從大到小)?寫出相應的程序。
#include <stdio.h>
#include <stdlib.h>
#define N 100
void find5(int a[], int n);
void max(int a[], int n);
void min(int a[], int n);
int main()
{
    int a[N],b[N];
    int i,n;
    printf("How many numbers do you want to put in?\n");
    scanf("%d",&n);
    if(n>100)
    {
        printf("Too many!\n");
    }
    else
    {
        printf("Please input some number in a:\n");
        for(i=0; i<n; i++)
        {
            scanf("%d", &a[i]);//輸入整數到數組a
        }
        for(i=0; i<n; i++)
        {
            b[i] = a[i];//將數組a中的數複製到數組b中
            printf("%d\n",b[i]);//輸出數組b中的數
        }
        find5(a, n);//查找數組a中是否有5
        max(a,n);//從大到小排序
        min(a,n);//從小到大排序
    }
}
void find5(int a[], int n)//查找數組a中是否有5
{
    int  i;
    for(i=0; i<n;)
    {
        if(a[i]==5)
        {
            printf("Yes.\n");
            break;
        }
        else
        {
           i++;
        }
    }
    if(i==n)
    {
        printf("No.\n");
    }
}
void max(int a[], int n)//從大到小排序
{
    int i,j,temp;
    for(i=0; a[i] != NULL; i++)
    {
        for(j=i+1; a[j] != NULL;j++)
        {
            if(a[j]>a[i])
            {
                temp = a[j];
                a[j] = a[i];
                a[i] = temp;
            }
        }
    }
    printf("從大到小爲:\n");
    for(i=0; i<n; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
}
void min(int a[], int n)//從小到大排序
{
    int i,j,temp;
    for(i=0; a[i] != NULL; i++)
    {
        for(j=i+1; a[j] != NULL;j++)
        {
            if(a[j]<a[i])
            {
                temp = a[j];
                a[j] = a[i];
                a[i] = temp;
            }
        }
    }
    printf("從小到大爲:\n");
    for(i=0; i<n; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
}

在上述程序中,我將老師給出的問題整合到一個程序裏。

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

很差意思,太複雜的程序不太會寫。可是,上一題的程序是我寫的,而且修飾了一下,可是排序法用的是較簡單的選擇法排序,並且上述程序有不少不太好的地方,學藝不精,敬請見諒。上一題是一次很是有意義的練習,此次練習讓我回憶起C語言不少知識。

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

斷點就是程序中斷的地方。在某行代碼處設置斷點後,調試程序時,程序運行到該行代碼時會自動中止,而後就能夠在這進行逐步調試。

大一時,程序中設置循環時,若是出問題能夠用用斷點調試找出問題的緣由。

11.對比C語言的學習,你對《Java程序設計》的學習有什麼具體目標?如何經過刻意訓練提升程序設計能力和培養計算思惟?如何經過「作中學」實現你的目標?
  • 經過對比C語言的學習,我認爲對Java的學習要對本身有更高的要求,不能僅僅停留在解決基本問題上,要有更深一層次的理解,掌握它的思惟設計方法,同時本身能夠嘗試解決更復雜的問題。要說具體的目標,最近的固然是在測試或考試中取得好成績,進一步,但願本身的Java學習能夠在下學期的大創中很好地幫助本身,更進一步,但願Java學習能夠在本身從此的學習、工做和生活中成爲本身一個很好的工具。

  • 平時能夠對於具體的問題,多加練習,從每次練習中總結經驗和方法。要想提升能力和培養計算思惟,大量的練習和總結是必要的。
  • 就像婁老師在作中學說的那樣,實踐是必須的,可是實踐的過程當中必需要思考;還要刻意訓練;而且,還要有反饋。因此,大量的練習Java編程是必要的,而且在每次練習中要思考,並有所收穫,而後針對本身的強項多發揚,弱點多多鞏固練習,而且,時常和老師同窗們多多交流,最後,本身能夠嘗試探索並解決更深一步的問題。相信經過本身的努力,必定能夠取得理想的效果,實現本身的目標。

相關文章
相關標籤/搜索