内容简单介绍
1、课程大纲
2、第二部分第十一课: 练习题和习作
3、第三部分第一课预告: 安装SDL
课程大纲
我们的课程分为四大部分。每个部分结束后都会有练习题,并会发布答案。还会带大家用C语言编写三个游戏。
C语言编程基础知识
-
什么是编程?
-
工欲善其事,必先利其器
-
你的第一个程序
-
变量的世界
-
运算那点事
-
条件表达式
-
循环语句
-
实战:第一个C语言小游戏
-
函数
-
练习题
-
习作:完好第一个C语言小游戏
C语言高级技术
-
模块化编程
-
进击的指针,C语言王牌
-
数组
-
字符串
-
预处理
-
创建你自己的变量类型
-
文件读写
-
动态分配
-
实战:“悬挂小人”游戏
-
练习题
-
习作:用自己的语言解释指针
用基于C语言的SDL库开发2D游戏
-
安装SDL
-
创建窗体和画布
-
显示图像
-
事件处理
-
实战:“超级玛丽推箱子”游戏
-
掌握时间的使用
-
用SDL_ttf编辑文字
-
用FMOD控制声音
-
实战:可视化的声音谱线
-
练习题
数据结构
-
链表
-
堆。栈和队列
-
哈希表
-
练习题
第二部分第十一课:练习题和习作
这些练习题是帮助大家巩固知识的。事实上不难,特别对于有编程经验的人来说。可是我们的教程主要面向的是刚開始学习的人。
不看答案来完毕这15道题目吧。都是单选题。
练习题
-
什么是全局变量?
A. 能够在随处被訪问的变量
B. 变量类型随意的变量
C. 声明在main函数里的变量
-
当我们引入标准库的头文件,使用类似例如以下的哪一种方式?
A. #include <time.h>
B. #include "time.h"
C. #include {time.h}
D. #include [time.h]
-
C语言的编译按例如以下那种顺序进行?(这里事实上还省略了一步:汇编(用到汇编器,就不赘述了))
A. 预处理 -> 编译 -> 链接
B. 编译 -> 链接 -> 预处理
C. 链接 -> 预处理 -> 编译
D. 预处理 -> 链接 -> 编译
-
假设我写 &toto。我得到的是什么?
A. toto的地址
B. toto的值
C. toto指向的变量的值
-
我们用什么值来初始化指针?
A. NOTHING
B. 1
C. NULL
D. MAIN
E. 0_ADDRESS
-
有代码例如以下:
int number = 8;
int *pointer = &number;
如果number位于内存地址5000处,而pointer这个指针位于内存地址2500处。那么如果在接下来的程序中打印 *pointer 的值,是什么呢?
A. 5000
B. 2500
C. 8
D. 无可预知
-
数组的下标从几開始?
A. 0
B. 1
C. -1
-
以下哪行代码是用于创建有10个double变量的数组?
A. double *array[10];
B. double array{10};
C. double array[10];
D. double array[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前多了&号
-
哪一个预处理命令表明 #if的结束?
A. #elif
B. #endif
C. #ifdef
D. #ifndef
-
结构体里面能够包括数组吗?
A. 能够
B. 不能够
C. 能够,但仅当数组都是同一种类型时
-
为什么通常我们更喜欢用一个函数来初始化结构体?
A. 一旦结构体做了改动,我们不须要在程序中重做此结构体的全部初始化
B. 对电脑来说,这样速度更快
C. 这能够把我的代码变成C++形式的
-
在打开一个文件后总是应该做什么事情?
A. 关闭文件
B. 測试文件指针的有效性
C. 清空文件内容
D. 把光标放在文件首位置
-
例如以下代码有什么作用?
malloc(sizeof(int) * 25);
A. 在内存中申请一个25字节的int型变量
B. 在内存中申请一个int型数组。数组包括25个元素
C. 在内存中申请一个25字节的float型变量
D. 在内存中申请一个float型数组,数组包括25个元素
-
什么是缓冲区溢出?
A. 存储的字符串超出了缓冲区的最大容量
B. 在读缓冲区时进入了死循环
C. 当我们丢失一个指向字符串的指针时造成的内存泄露
练习题答案
-
A
-
A
-
A
-
A
-
C
-
C
-
A
-
C
-
C
-
B
-
A
-
A
-
B
-
B
-
A
习作
《用自己的语言解释指针》
总是小编说,可能有点唠叨。这回换听官们说说呗。
指针是C语言的精华。也是C语言之所以非常灵活强大且具有陷阱的原因。假设学习C语言,不理解指针,那就没掌握精髓。
所以在本次的“习作”中。我们要求大家用自己的语言(当然是中文啊。你不要给我用英语或其它语言... 哈哈)来解释指针,看看大家理解得怎样。
假设记不太清楚了,请大家复习我们之前关于指针的那一课:《指针。C语言的王牌》。
将您的解释存放在WORD文档。或TXT文件。或PDF文件中。发送到小编的邮箱(见下方)。
不要一上来就长篇大论,先捋一捋一些指针的基本概念会更好。
我会回复的。
即使你不发送给我,也请自己多看看指针的知识点,能够阅读《C和指针》,《C专家编程》,《C语言深度解剖》等书。
第三部分第一课预告:
今天的课就到这里,一起加油吧。
下一次我们学习: 安装SDL
作者: 谢恩铭
邮箱: enmingx@gmail.com
QQ : 379641629
微信:frogoscar
工作:嵌入式软件project师
居住地:法国南部
创办的【程序猿联盟】微信公众号:ProgrammerLeague