zoukankan      html  css  js  c++  java
  • 【C语言探索之旅】 第二部分第十课:练习题和习作




    内容简单介绍


    1、课程大纲

    2、第二部分第十一课:  练习题和习作

    3、第三部分第一课预告:  安装SDL



    课程大纲


    我们的课程分为四大部分。每个部分结束后都会有练习题,并会发布答案。还会带大家用C语言编写三个游戏。


    C语言编程基础知识


    • 什么是编程?

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

    • 你的第一个程序

    • 变量的世界

    • 运算那点事

    • 条件表达式

    • 循环语句

    • 实战:第一个C语言小游戏

    • 函数

    • 练习题

    • 习作:完好第一个C语言小游戏


    C语言高级技术


    • 模块化编程

    • 进击的指针,C语言王牌

    • 数组

    • 字符串

    • 预处理

    • 创建你自己的变量类型

    • 文件读写

    • 动态分配

    • 实战:“悬挂小人”游戏

    • 练习题

    • 习作:用自己的语言解释指针


    用基于C语言的SDL库开发2D游戏


    • 安装SDL

    • 创建窗体和画布

    • 显示图像

    • 事件处理

    • 实战:“超级玛丽推箱子”游戏

    • 掌握时间的使用

    • 用SDL_ttf编辑文字

    • 用FMOD控制声音

    • 实战:可视化的声音谱线

    • 练习题


    数据结构


    • 链表

    • 堆。栈和队列

    • 哈希表

    • 练习题




    第二部分第十一课:练习题和习作


    这些练习题是帮助大家巩固知识的。事实上不难,特别对于有编程经验的人来说。可是我们的教程主要面向的是刚開始学习的人。

    不看答案来完毕这15道题目吧。都是单选题。


    练习题


    1. 什么是全局变量?


      A. 能够在随处被訪问的变量

      B. 变量类型随意的变量

      C. 声明在main函数里的变量


    2. 当我们引入标准库的头文件,使用类似例如以下的哪一种方式?


      A. #include <time.h>

      B.  #include "time.h"

      C. #include {time.h}

      D. #include [time.h]


    3. C语言的编译按例如以下那种顺序进行?(这里事实上还省略了一步:汇编(用到汇编器,就不赘述了))


      A. 预处理 -> 编译 -> 链接

      B.  编译 -> 链接 -> 预处理

      C. 链接 -> 预处理 -> 编译

      D. 预处理 -> 链接 -> 编译


    4. 假设我写 &toto。我得到的是什么?


      A. toto的地址

      B.  toto的值

      C. toto指向的变量的值


    5. 我们用什么值来初始化指针?


      A. NOTHING

      B. 1

      C. NULL

      D. MAIN

      E. 0_ADDRESS


    6. 有代码例如以下:


      int number = 8;

      int *pointer = &number;


      如果number位于内存地址5000处,而pointer这个指针位于内存地址2500处。那么如果在接下来的程序中打印 *pointer 的值,是什么呢?


      A. 5000

      B. 2500

      C. 8

      D. 无可预知


    7. 数组的下标从几開始?


      A. 0

      B. 1

      C. -1


    8. 以下哪行代码是用于创建有10个double变量的数组?


      A. double *array[10];

      B. double array{10};

      C. double array[10];

      D. double array[9];


    9. 下面程序有一个错误。是哪一个?


      int main(int argc, char *argv[])

      {

       char city[100];

       printf("请问您住在哪个城市 ? ");

       scanf("%s", &city);

       printf("您住在 %s, 这个城市我非常熟悉 !", city);

       return 0;

      }


      A. 第二个printf中的city前少了&号

      B. 在city数组的定义中,city前少了*号

      C. 在scanf的city前多了&号

    10. 哪一个预处理命令表明 #if的结束?


      A. #elif

      B. #endif

      C. #ifdef

      D. #ifndef


    11. 结构体里面能够包括数组吗?


      A. 能够

      B.  不能够

      C. 能够,但仅当数组都是同一种类型时


    12. 为什么通常我们更喜欢用一个函数来初始化结构体?


      A. 一旦结构体做了改动,我们不须要在程序中重做此结构体的全部初始化

      B. 对电脑来说,这样速度更快

      C. 这能够把我的代码变成C++形式的


    13. 在打开一个文件后总是应该做什么事情?


      A. 关闭文件

      B. 測试文件指针的有效性

      C. 清空文件内容

      D. 把光标放在文件首位置


    14. 例如以下代码有什么作用?


      malloc(sizeof(int) * 25);


      A. 在内存中申请一个25字节的int型变量

      B. 在内存中申请一个int型数组。数组包括25个元素

      C. 在内存中申请一个25字节的float型变量

      D. 在内存中申请一个float型数组,数组包括25个元素


    15. 什么是缓冲区溢出?


      A. 存储的字符串超出了缓冲区的最大容量

      B. 在读缓冲区时进入了死循环

      C. 当我们丢失一个指向字符串的指针时造成的内存泄露




    练习题答案


    1. A

    2. A

    3. A

    4. A

    5. C

    6. C

    7. A

    8. C

    9. C

    10. B

    11. A

    12. A

    13. B

    14. B

    15. A




    习作

    《用自己的语言解释指针》


    总是小编说,可能有点唠叨。这回换听官们说说呗。


    指针是C语言的精华。也是C语言之所以非常灵活强大且具有陷阱的原因。假设学习C语言,不理解指针,那就没掌握精髓。


    所以在本次的“习作”中。我们要求大家用自己的语言(当然是中文啊。你不要给我用英语或其它语言... 哈哈)来解释指针,看看大家理解得怎样。


    假设记不太清楚了,请大家复习我们之前关于指针的那一课:《指针。C语言的王牌》。


    将您的解释存放在WORD文档。或TXT文件。或PDF文件中。发送到小编的邮箱(见下方)。

    不要一上来就长篇大论,先捋一捋一些指针的基本概念会更好。


    我会回复的。


    即使你不发送给我,也请自己多看看指针的知识点,能够阅读《C和指针》,《C专家编程》,《C语言深度解剖》等书。




    第三部分第一课预告:


    今天的课就到这里,一起加油吧。

    下一次我们学习: 安装SDL



    作者: 谢恩铭

    邮箱: enmingx@gmail.com

    QQ : 379641629

    微信:frogoscar

    工作:嵌入式软件project师

    居住地:法国南部

    创办的【程序猿联盟】微信公众号:ProgrammerLeague

  • 相关阅读:
    【VUE】父子组件通信
    【mysql】密码重设
    Joomla 3.2.0
    浅谈内网渗透
    使用Fiddler的X5S插件查找XSS漏洞
    Asp文件锁定脚本
    php内网探测脚本&简单代理访问
    Linux关闭休眠和屏保模式
    不重启修改计算机名【批处理】
    mimikatz不反弹读取密码
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7372742.html
Copyright © 2011-2022 走看看