20165210 學習基礎和C語言基礎調查
20165210 學習基礎和C語言基礎調查
一、技能學習過程和心得
讀了婁老師《做中學》自己還是深有感受的,對於運動、音樂、棋牌都會一點,我覺得做中學可以概括為三點:做,學,學做結合,所謂的做就是實踐,反復的去練習,而學就是學習,但這不是單純的學習,而是在學習中思考,最後的學做是把思考的東西和學習的東西運用到實踐上。
在我小學的時候,我曾經學過一段時間的二胡,但是“超過90%以上”的人那應該是沒有,但是學習的過程和心得想和大家分享一下,因為我的母親特別喜愛民族樂器,所以我也就從小學開始就接觸民族樂器,二胡呀,葫蘆絲呀等等,二胡是學的最長的也是最有感觸的,一開始沒有指法的練習,只有一些拉弓練習,學起來也比較枯燥,也沒什麽心情練,有時候去有時候不去,不好好練的結果就是跟不上老師的節奏了,這是意識到了應該認真對待了,那時候每天上午去學,下午也去學,晚上回家也要練上一陣,手指練出了手繭,形成肌肉記憶,一開始練習的都是一些基礎的東西,後來就要學習一些技巧,這也就要開始思考了,在練習中需要總結如何運用簡便的指法和如何用簡便的換指方法,在練習中慢慢的做到熟練,在考試中就能遊刃有余。
體育運動的初學者練習時候都需要重復動作,比如「學習打乒乓球時」要練習揮拍,揮拍成千上萬遍之後動作就會定型,也就是教練常說的「肌肉有了記憶能力」,以後實戰中可以不假思索地做出來。
練習還是必要的,在上中學之後,由於學業的原因,我沒能堅持下來學習二胡,這也是我很後悔的一件事,但這件事始終提醒著我,做什麽事都要去勤加練習,這樣在實戰中才能不假思索地做出來。
二、C語言基礎調查
- 你是怎麽學習C語言的?(作業,實驗,教材,其他),與你的高超技能相比,C語言的學習有什麽經驗和教訓?
- 因為基礎很差,所以在學習C語言的前一個假期就開始上網上了解,但並不是很懂,後來有了教材和老師的講解,慢慢的開始入門了,後來有了作業系統,多加練習,就懂得越來越多,C語言的學習一定要勤加練習,多做題,不會的就要去查,就要去問。
- 目前為止估算自己寫過多少行C代碼?理解的情況如何?量變引起質變,如何平衡質和量?
- 大概寫了3000多行的代碼,一半以上都能夠理解,在練習的過程中一定要把握量,量多不一定好,做多了但是沒有理解也是無用的,不僅要練,還要在練中學,才能掌握。
- 學過了C語言,你分的清數組指針,指針數組;函數指針,指針函數這些概念嗎?((x[4])())[4]這個聲明中的x是什麽東東?
數組指針:
指向數組的指針:int (*p)[10];
指針數組:
每個元素都是指針:int *p[10];
函數指針:
指向函數的指針變量:int (*p)[int x];
指針函數:
返回類型是指針的函數:int *p[int x];
- 學過了C語言,你明白文件和流的區別和聯系嗎?如何區分文本文件和二進制文件?如何編程操作這兩種文件?
- 沒接觸過,但是只有文件的一點印象,我上網查了一些資料,區分文本文件和二進制文件
- 學過了C語言,你知道什麽叫面向過程程序設計嗎?它解決問題的方法是什麽?
- 面向過程註重的是過程而不管他對象是什麽。
- 在C語言裏面,什麽是模塊?你寫過多個源文件的程序嗎?
- 我覺得模塊也是文件,目前沒寫過。
- 學過了C語言,你知道什麽是“高內聚,低耦合”嗎?這個原則如何應用到高質量程序設計中?
- 不太清楚,我上網查了一下,高內聚低耦合。
- 學過了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;
}
- 寫一個程序,統計自己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
但是其中還有挺多的代碼不太明了,希望繼續努力。
- 你知道什麽是斷點嗎?給出自己調試程序的例子。
在一次調試中設置斷點,下一次只需讓程序自動運行到設置斷點位置,便可在上次設置斷點的位置中斷下來,極大的方便了操作,同時節省了時間。
Java各章問題
- Java字節碼與Java虛擬機和Java運行時是什麽關系?
- 兩種浮點類型的區別?
- return和break、continue區別?
- class文件對象到底指什麽?
- abstract和class有什麽區別?
- 接口是不是類?
- 外嵌類的成員變量僅在內部類有效嗎?
- StringTokenizer類是String類的分類嗎?
- 窗口也是一個容器類嗎?
- 輸入輸出流有什麽相互聯系嗎?
- 關閉連接會影響API數據庫嗎?
- 什麽時候用進程什麽時候用線程?
- 如何尋找套接字的對象?
- 繪制圖像是否包括加載圖像?
- 集合框架中的泛型有什麽優點?
對比C語言的學習,你對《Java程序設計》的學習有什麽具體目標?如何通過刻意訓練提高程序設計能力和培養計算思維?如何通過“做中學”實現你的目標?
堅持每天都去練習代碼,一定要把練習的代碼弄懂,多上網上查找一些資料,希望能通過學習Java,能夠掌握這門語言,端正態度,多想多思考,多實踐多練習。
20165210 學習基礎和C語言基礎調查