【C语言探索之旅】 第二部分第十课:练习题和习作
内容简介
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
【C语言探索之旅】 第二部分第十课:练习题和习作的更多相关文章
- 【C语言探索之旅】 第一部分第九课:函数
内容简介 1.课程大纲 2.第一部分第九课:函数 3.第一部分第十课预告: 练习题+习作 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. ...
- 【C语言探索之旅】 开宗明义及第一课:什么是编程?
内容简介 1.课程大纲 2.第一部分第一课:什么是编程? 3.第一部分第二课预告:工欲善其事,必先利其器 课程大纲 不知道为什么,一直对C语言有一种很深厚的“情怀”(类似老罗对锤子手机的那种),说 ...
- 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布
内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做 ...
- 【C语言探索之旅】 第二部分第二课:进击的指针,C语言的王牌!
内容简介 1.课程大纲 2.第二部分第二课: 进击的指针,C语言的王牌 3.第二部分第三课预告: 数组 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言 ...
- 【C语言探索之旅】 第二部分第九课: 实战"悬挂小人"游戏 答案
内容简介 1.课程大纲 2.第二部分第九课: 实战"悬挂小人"游戏 答案 3.第二部分第十课预告: 安全的文本输入 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题, ...
- 【C语言探索之旅】 第二部分第一课:模块化编程
内容简介 1.课程大纲 2.第二部分第一课: 模块化编程 3.第二部分第二课预告: 进击的指针,C语言王牌 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...
- 【C语言探索之旅】 第二部分第八课:动态分配
内容简介 1.课程大纲 2.第二部分第八课: 动态分配 3.第二部分第九课预告: 实战“悬挂小人”游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言 ...
- 【C语言探索之旅】 第二部分第七课:文件读写
内容简介 1.课程大纲 2.第二部分第七课: 文件读写 3.第二部分第八课预告: 动态分配 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏 ...
- 【C语言探索之旅】 第二部分第六课:创建你自己的变量类型
内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告: 文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...
随机推荐
- JavaScript 中的事件类型1(读书笔记思维导图)
Web 浏览器中可能发生的事件有很多类型.如前所述,不同的事件类型具有不同的信息,而“ DOM3级事件”规定了以下几类事件. UI(User Interface,用户界面)事件:当用户与页面上的元素交 ...
- 15个nosql
1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存 储解决方案.当数据量达到50GB以 ...
- 【Gapps】安装GooglePlay引发一系列问题
再次感谢小海的支持,感谢大家的支持! 从安装CM至如今GooglePlay,小海为我提供了非常多方案,能够说是全面支持.仅仅是出于隐私不便公开他的个人信息,仅提供一个他的博客地址http://luha ...
- python socket编程实现的简单tcp迭代server
与c/c++ socket编程对照见http://blog.csdn.net/aspnet_lyc/article/details/38946915 server: import socket POR ...
- Android自己定义组件系列【2】——Scroller类
在上一篇中介绍了View类的scrollTo和scrollBy两个方法,对这两个方法不太了解的朋友能够先看<自己定义View及ViewGroup> scrollTo和scrollBy尽管实 ...
- tolua 有些功能可以用(经过测试)
tolua 提供几个 C++ 与 Lua 进行数据交换的工具函数. ~~ tolua.type 返回一个 C++ 对象的类型描写叙述字符串. local node = display.newNode( ...
- Domain Model(领域模型)
Domain Model(领域模型) 上一篇:<DDD 领域驱动设计-如何 DDD?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply. ...
- [WPF]使用Pack URI路径訪问二进制资源
一.路径格式定义 完整的URI定义为: pack://application,,,[/可选程序集名称;][可选版本;][目录名称/]文件名 缩略后的写法是: [目录名称/]文件名 二.在XAML代码中 ...
- 网络编程——XML与JSON
概述 如上篇博客点击打开链接介绍.互联网公司发布Web服务,于是开发者们就可以将其用到自己的应用中.Web服务的工作方式类似于浏览器,输入请求,按下回车,等待远程计算机响应.当响应返回时,浏览器会使用 ...
- Linking Containers Together
Linking Containers Together In the Using Docker section we touched on connecting to a service runnin ...