1. 程式人生 > >20165210 學習基礎和C語言基礎調查

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

內聚 div 數組的指針 item 是我 作業 .cn ref 進程

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

一、技能學習過程和心得

讀了婁老師《做中學》自己還是深有感受的,對於運動、音樂、棋牌都會一點,我覺得做中學可以概括為三點:做,學,學做結合,所謂的做就是實踐,反復的去練習,而學就是學習,但這不是單純的學習,而是在學習中思考,最後的學做是把思考的東西和學習的東西運用到實踐上。

在我小學的時候,我曾經學過一段時間的二胡,但是“超過90%以上”的人那應該是沒有,但是學習的過程和心得想和大家分享一下,因為我的母親特別喜愛民族樂器,所以我也就從小學開始就接觸民族樂器,二胡呀,葫蘆絲呀等等,二胡是學的最長的也是最有感觸的,一開始沒有指法的練習,只有一些拉弓練習,學起來也比較枯燥,也沒什麽心情練,有時候去有時候不去,不好好練的結果就是跟不上老師的節奏了,這是意識到了應該認真對待了,那時候每天上午去學,下午也去學,晚上回家也要練上一陣,手指練出了手繭,形成肌肉記憶,一開始練習的都是一些基礎的東西,後來就要學習一些技巧,這也就要開始思考了,在練習中需要總結如何運用簡便的指法和如何用簡便的換指方法,在練習中慢慢的做到熟練,在考試中就能遊刃有余。

體育運動的初學者練習時候都需要重復動作,比如「學習打乒乓球時」要練習揮拍,揮拍成千上萬遍之後動作就會定型,也就是教練常說的「肌肉有了記憶能力」,以後實戰中可以不假思索地做出來。

練習還是必要的,在上中學之後,由於學業的原因,我沒能堅持下來學習二胡,這也是我很後悔的一件事,但這件事始終提醒著我,做什麽事都要去勤加練習,這樣在實戰中才能不假思索地做出來。

二、C語言基礎調查

  1. 你是怎麽學習C語言的?(作業,實驗,教材,其他),與你的高超技能相比,C語言的學習有什麽經驗和教訓?
  • 因為基礎很差,所以在學習C語言的前一個假期就開始上網上了解,但並不是很懂,後來有了教材和老師的講解,慢慢的開始入門了,後來有了作業系統,多加練習,就懂得越來越多,C語言的學習一定要勤加練習,多做題,不會的就要去查,就要去問。
  1. 目前為止估算自己寫過多少行C代碼?理解的情況如何?量變引起質變,如何平衡質和量?
  • 大概寫了3000多行的代碼,一半以上都能夠理解,在練習的過程中一定要把握量,量多不一定好,做多了但是沒有理解也是無用的,不僅要練,還要在練中學,才能掌握。
  1. 學過了C語言,你分的清數組指針,指針數組;函數指針,指針函數這些概念嗎?((x[4])())[4]這個聲明中的x是什麽東東?
  • 數組指針:

    指向數組的指針:int (*p)[10];
  • 指針數組:

    每個元素都是指針:int *p[10];
  • 函數指針:

    指向函數的指針變量:int (*p)[int x];
  • 指針函數:

    返回類型是指針的函數:int *p[int x];
  1. 學過了C語言,你明白文件和流的區別和聯系嗎?如何區分文本文件和二進制文件?如何編程操作這兩種文件?
  • 沒接觸過,但是只有文件的一點印象,我上網查了一些資料,區分文本文件和二進制文件
  1. 學過了C語言,你知道什麽叫面向過程程序設計嗎?它解決問題的方法是什麽?
  • 面向過程註重的是過程而不管他對象是什麽。
  1. 在C語言裏面,什麽是模塊?你寫過多個源文件的程序嗎?
  • 我覺得模塊也是文件,目前沒寫過。
  1. 學過了C語言,你知道什麽是“高內聚,低耦合”嗎?這個原則如何應用到高質量程序設計中?
  • 不太清楚,我上網查了一下,高內聚低耦合。
  1. 學過了C語言,你如何把數組A的內容復制到數組B中?如何查找整數數組A中有沒有數字5?如何對整數數組A進行排序(從小到大,從大到小)?寫出相應的程序。
  • 數組A的內容復制到數組B:
#include <stdio.h>
#define n 7
int main()
{
    int a[n]={3,9,9,0,0,5,6},b[n];
    int i;
    for(i=0;i<n;i++)
    {
        b[i]=a[i];
        printf("%d",b[i]);
    }
    return 0;
}
  • 查找整數數組A中有沒有數字5:
#include<stdio.h>
int main()
{
    int a[8]={2,3,6,5,8,9,7,4};
    int i;
    for(i=0;i<8;i++)
    {
        if(a[i]==5)
        {
            printf("have five\n");
            break;
        }
    }
    return 0;
}
  • 對數組A進行排序:
#include<stdio.h>
int main()
{
int a[10],i,j,t;
printf("請輸入10個整數:\n");
for(i=0;i<10;i++)
{
    scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
    for(j=0;j<9-i;j++)
    {
       if(a[j]>a[j+1])
       {
           t=a[j]; a[j]=a[j+1]; a[j+1]=t;
       }

    }

}
printf("排序以後的數:\n");
for(i=0;i<10;i++)
{
    printf("%d ",a[i]);
}
 return 0;
}
  1. 寫一個程序,統計自己C語言共寫了多少行代碼?
  • 因為學藝不精,百度去研究了一下,計算代碼
#include<stdio.h>
#include<Windows.h>
#include<string.h>
int main()
{ 
    char filepath[1000], batpath[1010]; //the absolute path of a file folder and a .bat file.
    gets(filepath);//input absolute path of a file folder
    strcpy(batpath, filepath);
    strcat(batpath, "\\Text1.bat");
    FILE *fp;
    fp = fopen(batpath, "w");
    fputs("DIR *.c /B>list.txt", fp);
    fclose(fp);
    system(batpath); 
    /*~~~the end of creating file name list~~~*/
    
    /*~~~the beginning of get .c file name from list~~~*/
    static int count = 0; 
    FILE *fp1, *fp2;
    fp1 = fopen("list.txt", "r");
    char s[100];
    char singleline[1000];
    while(fgets(s, 100, fp1))//get one line from list, each line refers to a .c file name
    {
        int len = strlen(s);
        if(s[len-1] == ‘\n‘) s[len-1] = ‘\0‘;
        printf("%s: ", s);  
        fp2 = fopen(s, "r");
        
        /*~~~the beginning of counting lines of code~~~*/
        
        while(fgets(singleline, 1000, fp2))//open the correct file, according to the file name
        {
            count++;
        }   
        printf("%d\n", count);
        fclose(fp2);
    }
    printf("\n");
    fclose(fp1);
    
    system("pause");
    return 0;
}  

參考:ZCplayground
但是其中還有挺多的代碼不太明了,希望繼續努力。

  1. 你知道什麽是斷點嗎?給出自己調試程序的例子。
  • 在一次調試中設置斷點,下一次只需讓程序自動運行到設置斷點位置,便可在上次設置斷點的位置中斷下來,極大的方便了操作,同時節省了時間。

    Java各章問題

  1. Java字節碼與Java虛擬機和Java運行時是什麽關系?
  2. 兩種浮點類型的區別?
  3. return和break、continue區別?
  4. class文件對象到底指什麽?
  5. abstract和class有什麽區別?
  6. 接口是不是類?
  7. 外嵌類的成員變量僅在內部類有效嗎?
  8. StringTokenizer類是String類的分類嗎?
  9. 窗口也是一個容器類嗎?
  10. 輸入輸出流有什麽相互聯系嗎?
  11. 關閉連接會影響API數據庫嗎?
  12. 什麽時候用進程什麽時候用線程?
  13. 如何尋找套接字的對象?
  14. 繪制圖像是否包括加載圖像?
  15. 集合框架中的泛型有什麽優點?

對比C語言的學習,你對《Java程序設計》的學習有什麽具體目標?如何通過刻意訓練提高程序設計能力和培養計算思維?如何通過“做中學”實現你的目標?
堅持每天都去練習代碼,一定要把練習的代碼弄懂,多上網上查找一些資料,希望能通過學習Java,能夠掌握這門語言,端正態度,多想多思考,多實踐多練習。

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