多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 【C語言探索之旅】 第一部分第十課:練習題+習作

【C語言探索之旅】 第一部分第十課:練習題+習作

來源:程序員人生   發布時間:2015-01-30 08:17:13 閱讀次數:3204次


內容簡介


1、課程大綱

2、第1部份第10課: 練習題+習作

3、第2部份第1課預告: 模塊化編程


課程大綱


我們的課程分為4大部份,每個部份結束后都會有練習題,并會公布答案。還會帶大家用C語言編寫3個游戲。


C語言編程基礎知識


  • 甚么是編程?

  • 工欲善其事,必先利其器

  • 你的第1個程序

  • 變量的世界

  • 運算那點事

  • 條件表達式

  • 循環語句

  • 實戰:第1個C語言小游戲

  • 函數

  • 練習題

  • 習作:完善第1個C語言小游戲


C語言高級技術


  • 模塊化編程

  • 進擊的指針,C語言王牌

  • 數組

  • 字符串

  • 預處理

  • 創建你自己的變量類型

  • 文件讀寫

  • 動態分配

  • 實戰:“懸掛小人”游戲

  • 安全的文本輸入

  • 練習題

  • 習作:用自己的語言解釋指針


用基于C語言的SDL庫開發2D游戲


  • 安裝SDL

  • 創建窗口和畫布

  • 顯示圖象

  • 事件處理

  • 實戰:“超級瑪麗推箱子”游戲

  • 掌握時間的使用

  • 用SDL_ttf編輯文字

  • 用FMOD控制聲音

  • 實戰:可視化的聲音譜線

  • 練習題


數據結構


  • 鏈表

  • 堆,棧和隊列

  • 哈希表

  • 練習題



第1部份第10課:練習題+習作


第1部份課程已全部結束,在開始第2部份的探索之旅之前,我們必須鞏固好第1部份學到的知識


所以為大家準備了1些練習題: 15道選擇題+1個小小的習作

15道題目(單選)在本課最后有附答案,但是希望大家先做完再對答案。


練習題


  1. 負責將源代碼轉換成2進制碼的程序叫甚么?

    A. 揚聲器

    B. 編譯器

    C. 轉碼器


  2. 下面哪個不是IDE(集成開發環境)?

    A. NotePad++

    B. Visual Studio

    C. Code::Blocks

    D. Xcode


  3. C語言將哪個值視為布爾值的false(假)?

    A. 1

    B. 0

    C. ⑴

    D. ⑵


  4. 下面這段代碼中的 return 0; 意味著甚么?

    #include <stdio.h>

    int main()

    {

    printf("Hello world! ");

    return 0;

    }


    A. 程序沒有履行操作

    B. 程序沒有正常運行

    C. 程序正常運行


  5. 以下哪個是C語言中的換行符?

    A.

    B.

    C. 按1下鍵盤上的回車鍵就夠了


  6. 如果我有1個變量bankAccount(銀行賬戶),類型是long,其值為6500000(土豪啊),那下面的代碼會輸出甚么?

    printf("您的銀行賬戶上有 %ld 元 ", bankAccount);


    A. 您的銀行賬戶上有 %ld 元

    B. 您的銀行賬戶上有 6500000 元

    C. 您的銀行賬戶上有 ld 元, bankAccount


  7. 以下哪種存儲器是在電腦關閉以后不會被清空的?

    A. 寄存器

    B. 高速緩存

    C. 內存

    D. 硬盤


  8. 經過這個操作,result變量的值是多少?

    result = (8 / 3) - 2;


    A. ⑵

    B. 0

    C. 1

    D. 2


  9. 以下switch語句的問題是甚么?

    switch (variable)

    {  

    case 5:    

    printf("Hello");  

    case 12:    

    printf("你好");  

    default:    

    printf("再見");

    }


    A. 少了break語句

    B. 在switch的最后的大括號后面少了1個分號

    C. 對每個case下面的指令需要用1個大括號括起來

    D. default應當寫成case default


  10. 用哪個for循環可以在屏幕上顯示以下信息?

    Line n°1

    Line n°3

    Line n°5

    Line n°7


    A. for (count = 1 ; count < 9 ; count += 2)

    B. for (count = 1 ; count <= 7 ; count++)

    C. for (count = 0 ; count < 9 ; count += 2)

    D. for (count = 1 ; count < 8 ; count++)


  11. 以下代碼會顯示多少次“Hello”?

    int count = 14;

    while (count < 15)

    {  

    printf("Hello ");

    }


    A. 0

    B. 1

    C. 14

    D. 15

    E. 這是1個無窮循環


  12. 在哪一種情況下return語句不是必須的?

    A. 函數沒有參數

    B. 函數的類型是void

    C. 函數需要返回0值


  13. 甚么是函數的參數?

    A. 標明函數的名字

    B. 標明函數的返回值

    C. 我們傳給函數使它用來工作的變量


  14. 以下函數存在甚么問題?

    int square(int number)

    {    

    int result = 0;    

    result = number * number;

    }


    A. 函數沒有返回任何值

    B. 函數運行不了,由于我們在某處忘了1個分號

    C. 完全沒有問題


  15. 在1個程序中可以包括多少個函數?

    A. 只有1個,就是main函數

    B. 最多100個

    C. 最多1024個

    D. 沒有限制



練習題答案

  1. B. 編譯器

  2. A. NotePad++

  3. B. 0

  4. C. 程序正常運行

  5. B.

  6. B. 您的銀行賬戶上有 6500000 元

  7. D. 硬盤

  8. B. 0

  9. A. 少了break語句

  10. A. for (count = 1 ; count < 9 ; count += 2)

  11. E. 這是1個無窮循環

  12. B. 函數的類型是void

  13. C. 我們傳給函數使它用來工作的變量

  14. A. 函數沒有返回任何值

  15. D. 沒有限制


題目都不難,認真溫習1下肯定能得高分,你都答對了嗎?

有甚么疑問可以在公眾號里直接留言發問,或聯系小編,謝謝!



習作: 完善“或多或少”這個小游戲


前面1個我們編寫了第1個C語言小游戲,雖然很簡單,沒有好看的圖形界面(以后會有的,牛奶和面包都會有的),但是也能夠小小自豪1下!

現在我們重新給出它的源代碼:


#include <stdio.h>

#include <stdlib.h>

#include <time.h>


int main (int argc, char** argv)

{

int mysteryNumber = 0, guessNumber = 0;

const int MAX = 100, MIN = 1;

// 生成隨機數

srand(time(NULL));

mysteryNumber = (rand() % (MAX - MIN + 1)) + MIN;

/* 程序的循環部份, 如果用戶沒猜中數字,就1直進行循環 */

do

{

 // 要求用戶輸入所猜數字

 printf("這個數字是甚么 ? ");

 scanf("%d", &guessNumber);

 // 比較用戶輸入的數字和神秘數字

 if (mysteryNumber > guessNumber)

     printf("猜小了 ! ");

 else if (mysteryNumber < guessNumber)

     printf("猜大了 ! ");

 else

     printf ("太棒了,你猜到了這個神秘數字 !! ");

} while (guessNumber != mysteryNumber);


return 0;

}


程序的解釋(從上到下的順序):

  1. 預處理指令:就是開頭的那3行,以#開始,include是英語“包括,引入”的意思。所以表示引入甚么庫。之前我已給大家這部份的代碼了,所以如果你的程序運行起來出錯是在這部份的話,那你也是夠夠的了 :P

  2. 變 量:這個游戲中,不需要太多變量,只有1個用于記錄用戶輸入的數字的變量guessNumber,和1個電腦隨機抽取的數字mysteryNumber。 同時也定義了兩個常量(const變量,其實叫只讀變量比較準確)MAX和MIN,值分別是100和1。這樣定義的好處是,如果你后面要改這兩個數值,會 很方便,直接改這1行的兩個值就行了。如果沒有用MAX和MIN而是在程序里每個地方寫100和1的話,那如果以后要改數值,工作量就大了。

  3. 隨機數:srand和rand那兩行,產生在1和100之間的1個隨機數,值賦給mysteryNumber。

  4. 循 環:我選擇了用do...while循環。理論上1個while循環也能夠做到,但我覺得這里用do...while可能更合邏輯。為何呢?還記得 do...while循環的特點嗎?就是循環體里的指令最少會履行1次,不像while循環可能1次也不履行。這里我們最少要讓用戶輸入1次數字,不可能 用戶1次也不輸入就猜到了數字。

  5. 在每次進入循環體里運行時,我們都要求用戶輸入1個數字,并且把這個數字的值賦給guessNumber變量,接下來就比較guessNumber和mysteryNumber(需要猜的數字)的大小:

    mysteryNumber大于guessNumber,那末輸出“猜小了”,繼續循環

    mysteryNumber小于guessNumber,那末輸出“猜大了”,繼續循環

    mysteryNumber等于guessNumber,也就是else語句的情況,即是說我們猜對了,輸出“太棒了,你猜到了這個神秘數字!”,結束循環


循環也需要1個條件,我們給出的條件是:只要猜的數字和神秘數字不1樣,循環就繼續。


現在這個游戲還是很基礎很簡單的,但是可以有以下的改進方案:

  1. 增加1個記錄步數的計數器,在你猜對的時候輸出:“太棒了,你用**步猜到了這個神秘數字!”

  2. 目 前的程序只進行1輪就結束了,如果玩家不過癮,還想繼續下1輪怎樣辦呢?可以加入1個問題:“你還想繼續玩嗎?”,等待用戶輸入數字來回答。定義1個布爾 值continue來存儲用戶輸入的回答,比如continue的默許值是1,就是用戶默許是繼續玩下1輪的,但如果用戶輸入0,那末程序停止,游戲結束

  3. 增加1個模式:兩人模式。可以你出題我來猜。但是我希望你能夠在程序1開始就讓用戶選擇是玩哪種模式,是經典的人機對戰,還是人人對戰。如果是兩人模式的人人對戰,那末就不是用srand和rand來產生神秘數字了,而是讓玩家1通過scanf來輸入這個數字

  4. 設 置幾個難度級別,讓玩家選擇:低級(1⑴00中的1個數),中級(1⑴000中的1個數),高級(1⑴0000中的1個數)。如果你這樣設計,就需 要改寫MAX值了,而此時MAX就不能再是1個const變量了,必須要把MAX前面的const去掉,MIN的還能保存。


大家可以自己改進和擴充這個小游戲,使之更具可玩性和難度

完善好的源代碼可以用公眾號直接發給小編,或發到小編的聯系方式中,歡迎交換,謝謝!



第2部份第1課預告:


今天的課就到這里,1起加油咯。

第1部份結束了,該開啟第2部份的旅程了!

下1次我們學習第2部份第1課,來認識1下模塊化編程吧!




程序員同盟 微信公眾號*您若覺得本文不錯,點擊畫面右上角《???》按鈕“分享到朋友圈或“發送給朋友

*新朋友請關注「程序員同盟」微信搜公眾號  ProgrammerLeague

小編微信號 frogoscar

小編QQ號:  379641629

小編郵箱:    enmingx@gmail.com

微信和郵箱最經常使用


PS: 有朋友反應看手機真個文章太累,實際上是可以用閱讀器網頁來看的

方法1. 點擊畫面右上角的《???》按鈕,然后選擇“復制鏈接”,再把鏈接黏貼到你的閱讀器里面或用郵件發送給自己,就能夠在電腦的閱讀器里打開了



方法2. 頭條網www.toutiao.com,搜索我的自媒體“程序員同盟”,里面有所有文章,也能夠直接進這個鏈接:http://www.toutiao.com/m3750422747/



新朋友如何查看所有文章:

點擊“查看公眾號”,再點擊“查看歷史消息”





程序員同盟”公眾號專為程序員,App設計師,各位愛好編程和酷愛分享的小火伴們推送各樣編程相干知識,優秀軟件推薦,業界動態等。搜索 ProgrammerLeague 加關注~


延續關注 程序員同盟 微信公眾號,更多有趣,有料,有亮點的內容等著你哦!



點擊下方瀏覽原文查看 Dennis Ritchie編著的《C程序設計語言》第2版中文版PDF 百度云盤下載 (可以在手機上點開文件直接看)
↓↓↓
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产成人精品一区二区三区 | 校园春色自拍偷拍 | 欧美精品黄页免费高清在线 | 2018高清国产一道国产 | 日本私人影院 | 欧美日韩一区二区三区麻豆 | 性做久久久久久久免费看 | 99久久精品费精品国产一区二 | 精品一区二区三区免费视频 | 国产精品一区二区不卡 | japanese日本护士xx亚洲 | 最近中文字幕免费视频 | 亚洲精品天堂 | 久久精品这里是免费国产 | 在线免费视频国产 | 日本www视频 | 日本乱人伦片中文字幕三区 | 欧美三级一区 | 欧美午夜三级我不卡在线观看 | 最近中文字幕高清中文字幕在线看 | 国产精品久久久视频 | 最新日本中文字幕 | 久久精品视频一区 | 性欧美videos另类hd高清 | 国产色妇| xx国产| 亚洲精品性夜夜夜 | 国产成人性色视频 | 色婷婷久久综合中文久久蜜桃 | 成人a毛片高清视频 | 最新福利网站 | 国产亚洲综合一区在线 | 欧美在线观看视频一区 | 最近中文字幕国语免费高清6 | 伊人免费视频网 | 羞羞首页 | 日本成在线人视频免费视频 | 久久国产成人精品国产成人亚洲 | 国产毛片精品 | 国产成人精品综合久久久 | 玖玖精品视频 |