1. 程式人生 > >20165231 預備作業二:學習基礎和C語言基礎調查

20165231 預備作業二:學習基礎和C語言基礎調查

oid clu 百度知道 保持 運行 建議 內聚 理解 加減乘除

微信文章感想

讀了婁老師微信公眾號中的文章,老師給我們的啟示首先就是要堅持,萬事開頭難,但是只要肯堅持就一定會有所成就,不管是學習還是生活方面。其中最有觸動的就是減肥了,是我三四年來一直難以完成的目標。如果可以再立個flag,2018我要瘦。

老師在文章中提到我們以後必備的技能——五筆輸入和英語單詞量。一個是作為單位職員必要的技能,信息化辦公打字速度快就決定工作效率比別人高,領導當然喜歡一個辦事效率高的人。五筆輸入從小就是看著就切換的,完全不懂其用法,小學大力提倡學習漢語拼音所以最最習慣的還是拼音輸入,為了效率我覺得還是可以去嘗試一下五筆輸入法;再有一個就是英語單詞的積累量,作為與計算機有關專業的學生,擁有海量的單詞積累非常有用。畢竟計算機是美國人發明的,操作系統,處理器,內存等等也用的美國人的,核心技術以及重要文獻大多都是英文寫的,程序語言大多基於英文來開發,學好英文有了大量單詞積累了不至於看到一篇文獻成了“睜眼瞎”。

個人技能

如果你有類似的技能獲取的成功經驗(學習,棋類,球類,樂器,藝術,遊戲,......)

如果遊戲也算是的話我覺得大多數男生都具備這個技能吧。但是對於我來說我的遊戲技能不算是比大多人好,遊泳我很確信應該是我很拿手的技能。畢竟就有相當一些人還不會遊泳,我在起跑線上就贏了。對於遊泳的經驗,我覺得就是喜歡,多遊多練習。小學時課業輕松,夏天周末或者暑假外公基本上晴天就會帶著我去遊泳館去,一是避暑,二是鍛煉身體吧,三是我們家鄉雨季多發大水,會遊泳也是個保命技能吧。我學會遊泳沒有刻意去請教練或者跟教學班,自己去大池子裏帶浮力板自然而然就會。但是會了並不代表就優秀,在我學會遊泳以後我就會和一些遊得不錯的同齡人或者大人交流切磋玩耍,自然而然就越來越好了。在我初中時參加遊泳比賽獲得丙組50米冠軍,並以47秒50米的成績刷新紀錄。成功的經驗大概就是得喜愛,然後才能多做多練。不喜歡逼著來也不會有太多效果。

與老師博客中經驗共通之處就是,貴在堅持。還是那句萬事開頭難,我學遊泳是在大泳池裏學的,就靠一漂浮版,腳也觸不到地,嗆水,淹翻無數次。不經歷一些困難磨難,就學會那還有什麽意思呢。、

C語言學習調查

  • 大一時人比較松懈學得並不好,絕大多數就是看看課本然後去平臺刷題,前期刷的不多,大多數題都是後期為了湊平時分刷完了所有非常簡單和簡單題,所以基礎感覺很是薄弱。與我遊泳技能比不值一提。我自己也不知道寫過多少代碼,期末刷進平臺前十。讓我看代碼應該看得懂,寫的話可能我邏輯不嚴密會導致錯誤百出。

    量變是質變的必要準備,質變是量變的必然結果。

質變不僅可以完成量變,而且為新的量變開辟道路

——《馬克思主義基本原理概論》

想要有個好的質變那就先得好好準備量變。

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

    學完C語言,再經過大二上學期半年的洗禮,C語言感覺忘得差不多了函數、數組、指針還有些印象,能知道大致幹啥。

數組指針:重點在指針,表示它是一個指針,它指向的是一個數組。

指針函數:重點在函數,表示它是一個函數,它的返回值是指針。

函數指針:重點在指針,表示它是一個指針,它指向的是一個函數。

指針數組:重點在數組,表示它是一個數組,它包含的元素是指針。

  • 學完C語言,明白文件和流的區別和聯系嗎?如何區分文本文件和二進制文件?如何編程操作這兩種文件?

    文件和流,文本文件和二進制文件等等概念已經模糊了,於是我去百度了一下

    文件是計算機管理數據的基本單位,同時也是應用程序保存和讀取數據的一個重要場所。

流是字節序列的抽象概念,例如文件、輸入/輸出設備、內部進程通信管道等。流提供一種向後備存儲器寫入字節和從後備存儲器讀取字節的方式。

文本文件是基於字符編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。
二進制文件是基於值編碼的文件,你可以根據具體應用,指定某個值是什麽意思(這樣一個過程,可以看作是自定義編碼)。在C語言中,文本文件操作都是由庫函數來完成的。二進制文件一共要用到三個函數,fopen,fread,fwrite。二進制讀寫的順序是用fopen以二進制方式打開讀寫文件,然後使用fread和fwrite兩個函數將數據寫入二進制文件。

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

    “面向過程”是一種以過程為中心的編程思想,就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。

    面向過程其實是最為實際的一種思考方式,就是算面向對象的方法也是含有面向過程的思想.可以說面向過程是一種基礎的方法.它考慮的是實際的實現.一般的面向過程是從上往下步步求精.所以面向過程最重要的是模塊化的思想方法.對比面向對象,面向對象的方法主要是把事物給對象化,對象包括屬性與行為.當程序規模不是很大時,面向過程的方法還會體現出一種優勢,因為程序的流程很清楚,按著模塊與函數的方法可以很好的組織.比如拿學生早上起來的事情來說說這種面向過程吧.粗略的可以將過程擬為: (1)起床 (2)穿衣 (3)洗臉刷牙 (4)去學校 ,而這4步就是一步一步的完成,它的順序很重要,你只須一個一個的實現就行了.

——源於百度知道

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

    模塊化就是在設計一個較大的程序時,往往把它分成若幹個程序模塊,每一個模塊由一個函數實現一個特定的功能。一個C語言程序可由若幹個其他函數構成,通過函數調用實現其程序功能。由於C語言缺乏有難度的練習,我做過的模塊化的程序就是四則運算計算器了,將加減乘除各寫為一個函數,主函數按需求輸入指定命令調用實現加減乘除功能,缺點是無法同時運算,每次運算只能算一次然後需要重新指定算法。

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

    內聚是從功能角度來度量模塊內的聯系,一個好的內聚模塊應當恰好做一件事;耦合是軟件結構中各模塊之間相互連接的一種度量,耦合強弱取決於模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數據。

高內聚,低耦合,是軟件工程中的概念,是判斷設計好壞的標準,主要是面向對象的設計,主要是看類的內聚性是否高,耦合度是否低。

軟件架構設計的目的簡單說就是在保持軟件內在聯系的前提下,分解軟件系統,降低軟件系統開發的復雜性,而分解軟件系統的基本方法無外乎分層和分割。耦合是影響軟件復雜程度和設計質量的一個重要因素,為提高模塊的獨立性,應建立模塊間盡可能松散的系統,在設計上我們應采用以下原則:若模塊間必須存在耦合,應盡量使用數據耦合,少用控制耦合,慎用或有控制地使用公共耦合,並限制公共耦合的範圍,盡量避免內容耦合。在模塊劃分時,要遵循“一個模塊,一個功能”的原則,盡可能使模塊達到功能內聚。

——《百度百科》

- 數組A內容復制到數組B中

#include <stdio.h>
int main()
{
    int a[10],b[10],n;
    int i = 0,j=0;
    
    printf("輸入個數:\n");
    scanf("%d",&n);
    printf("輸入值:\n");
    for(i = 0;i<n;i++){
        printf("%d\n",&a[i]);
    }
    for(j=0;j<n;j++){
        b[j]=a[j];
    }
    
    return 0;
}
  • 整數數組A中有沒有數字5?

#include <stdio.h>
void main()
{
    int x,i,find=0;
    int a[10]={6,8,2,9,3,4,5,10,7};
    printf("輸入要查找的數x: ");
    scanf("%d",&x);
    for(i=0;i<10;i++)
        if(x==a[i])
        {find=1;break;
        }
        if(find==1)
            printf("%d是數組元素\n",x);
        else
            printf("沒有找到%d",x);

輸入5,顯示:5是數組元素。

  • 對整數數組A進行排序

    從小到大
#include <stdio.h>
#define N 5
main()
{
 int i,j,t,a[N];
 for(i=0;i<N;i++)
 { printf("Enter No.%2d:",i+1);
   scanf("%d",&a[i]);
 }
 for(i=0;i<N-1;i++)
   for(j=0;j<N-i-1;j++)
     if(a[j]>a[j+1])
     { t=a[j];
       a[j]=a[j+1];
       a[j+1]=t;
     }
 for(i=0;i<N;i++)
   printf("%d",a[i]);
}

從大到小

#include <stdio.h>
#define N 10
main()
{
    int a[N];
    int i,j,k,t;
    for(i=0;i<9;i++)
    {       k=i;
            for(j=i+1;j<10;j++)
                if(a[j]>a[k])    k=j; 
            if(k!=i) 
            {
                t=a[k]; 
                a[k]=a[i]; 
                a[i]=t;
            }
    }
    for(i=0;i<9;i++)
            printf("%d ",a[i]);
}
  • 寫一個程序,統計自己C語言共寫了多少行代碼

    老師,我並不知道怎麽用程序統計自己以前C語言寫了多少代碼,之前的計算都是估算。如果下學期的Java程序可以設計出這樣的程序,我願意嘗試一下。

  • 你知道什麽是斷點嗎?給出自己調試程序的例子

    分解質因數程序

技術分享圖片

經過這一總結感覺自己遺忘的太多,假期需要補習一番了。

章節提問

1、Java程序編寫是在文本編輯器編寫,命令運行,那怎麽知道該程序的錯誤以及錯誤位置?

2、C語言的數據類型和數組與Java中的是否互通?

3、instanceof 運算符的運用有沒有特殊的要求?一般用於什麽情況?

4、方法與對象有沒有什麽聯系?import 語句可以用於除了引入包中類以外的情況嗎?

5、子類繼承用於什麽情況?面向抽象編程程序上有什麽特別之處?

6、面向接口編程程序上有什麽特別之處?

7、內部類、匿名類和異常類聲明方法是否相同?

8、各種常用實用類該怎麽理解?使用上有什麽異同?

9、GUI程序適用於安卓系統上嗎?

10、Java裏的流與C語言中的流一樣嗎?

11、JDBC數據庫操作是否是建立服務器的基礎?

12、Java多線程是指多個任務同時進行還是一個任務分不同模塊同時進行?

13、Java 遠程調用如何操作實現?

14、Java繪制鐘表如何讓它和現實時間走得一樣?

15、Java中遍歷鏈表與C語言是否類似?

學習目標

首先,我應該端正學習態度,明確學習是為了自己的未來,明確自己最終想要的結果。其次,學習計算機這種尖端的科學技術,就應該有持之以恒的決心和毅力。認真聽好每一次課,疑問和缺漏及時查補,堅持每天練習Java代碼,做好每一次作業,在做好基本知識情況下積極做拓展,多了解一些知識。期望在《Java程序設計》學習結束後能夠寫出自己設計的能在安卓手機上運行的小程序。

老師在“做中學”公眾號中發表的文章都是一些對生活學習未來很有幫助的經驗或者建議。仔細閱讀對自我的提升有很大的幫助。

20165231 預備作業二:學習基礎和C語言基礎調查