Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C Primer Plus(第6版)填空 #12

Open
taichiyi opened this issue Nov 13, 2019 · 0 comments
Open

C Primer Plus(第6版)填空 #12

taichiyi opened this issue Nov 13, 2019 · 0 comments

Comments

@taichiyi
Copy link
Owner

@taichiyi taichiyi commented Nov 13, 2019

C Primer Plus(第6版)填空

第1章 初识 C 语言

1.1 C 语言的起源

__年,贝尔实验室的丹尼斯·里奇(Dennis Ritch)和肯·汤普逊(Ken Thompson)在开发 __ 操作系统时设计了 C 语言。C 语言是在 __ 语言(汤普逊发明)的基础上进行设计。
1972
UNIX
B

1.2 选择 C 语言的理由

高效性:C 语言具有通常是汇编语言才具有的__能力,可以根据具体情况微调程序以获得最大运行__或最有效地使用__。
微调控制
速度
内存
可移植性:无论是使用家庭计算机、专业工作站,还是大型机,都能找到针对特定系统的 C __。
编译器
缺点:享受用 C 语言自由编程的乐趣,就必须承担更多的责任。特别是,C 语言使用_A_,而涉及_A_的编程错误往往难以察觉。
A:指针

1.7 使用 C 语言的7个步骤

使用 C 语言的7个步骤: 第一步: __; 第二步: __; 第三步: __; 第四步: __; 第五步: __; 第六步: __; 第七步: __。
1.定义程序目标
2.设计程序
3.编写代码
4.编译
5.运行程序
6.测试和调试程序
7.维护和修改代码
查找并修复程序错误的过程叫__。
调试

1.8 编程机制

用 C 语言编写程序时,编写的内容被储存在__文件中,该文件被称为__文件(source code file)。大部分 C 系统,都要求文件名以__结尾。文件名中,点号(.)前面的部分称为__名(basename),点号后面的部分称为__名(extension)。
文本
源代码
.c
基本
拓展
典型的 C 实现通过编译和连接__个步骤完成这一过程。编译器把__代码转换成__代码,连接器把__代码和__代码合并,生成可执行文件。C 使用这种分而治之的方法方便对程序进行__化,可以独立编译单独的模块,再用连接器合并已编译的模块。另外,连接器还将你编写的程序和__的库代码合并。
中间
其他
模块
预编译
中间文件有多种形式。最普遍的一种形式是,把源代码转换为__代码,并把结果放在目标[代码]文件中(这里假设源代码只有一个文件)。虽然目标文件中包含机器语言代码,但是并不能直接运行该文件。目标文件中只包含你编写的被编译器翻译成的机器语言代码,这还不是一个完整的程序。
机器语言
目标代码文件缺失__代码(startup code)。启动代码充当着__和__之间的接口。例如,可以在 MS Windows 或 Linux 系统下运行 IBM PC 兼容机。这两中情况使用的硬件相同,所以目标代码相同,但是 Windows 和 Linux 所需的启动代码不同,因为这些系统处理程序的方式不同。
启动
程序
系统
目标代码还缺少__函数。几乎所有的 C 程序都要使用 C 标准库中的函数。目标[代码]文件并不包含printf()函数的代码,它只包含了使用 printf()函数的__。printf()函数真正的代码储存在另一个被称为库的文件中。库文件有许多函数的目标代码。
指令
连接器的作用是,把你编写的__代码、系统的__代码和__代码这 3 部分合并成一个文件,即__文件。对于库代码,连接器只会把程序中要用到的库函数代码提取出来。
目标
标准启动
可执行
GNU 项目始于 __ 年,是一个开发大量免费 UNIX 软件的集合。GNU 编译器集合(也被称为GCC,其中包含 GCC C 编译器)是该项目的产品之一。用命令 __ 便可调用 GCC C编译器。许多使用 gcc 的系统都用 __ 作为 gcc 的别名。
1987
gcc
cc
LLVM 项目是 cc 的另一个替代品。该项目是与编译器相关的开源软件集合。其中的 __ 编译器是用来处理 C 代码的,可以通过命令 __ 调用。
Clang
clang
GNU 和 LLVM 都可以使用-v选择来显示版本信息,因此各个系统都使用 __ 别名来代替 gcc 或 clang 命令。
cc
UNIX 系统内置 Mac OS X,终端工具打开的窗口是让用户在 __ 命令行环境中运行程序。苹果在标准软件包中不提供命令行编译器,但是,如果下载了 Xcode,还是可以下载可选的命令行工具。
UNIX

第2章 C 语言描述

2.2 示例解释

C 语言的6种语句: __、__、__、__、__、__。
标号语句
复合语句
表达式语句
选择语句
迭代语句
跳转语句
__ 是C编译器软件包的标准部分,它提供键盘输入和屏幕输出的支持。
stdio.h
在程序中使用函数叫作__函数。
调用
#include <stdio.h>相当于把stdio.h文件中的__都输入到该行所在位置。
所有内容
#include 这行代码是一条C __命令(preprocessor directive)。通常,C编译器在编译前会对__做一些准备工作,即预处理(preprocessing)。通常,在C程序顶部的信息集合被称为__。
预处理
源代码
头文件
通常,函数名后面的圆括号中包一些传入函数的信息。如果函数没有任何形参,则需要在括号中填写__,__标准及以下允许函数没有定义形参时,可以不用写void。C99和C11要求要传void。
void
C90
/*和*/之间的内容都会被__忽略。
编译器
//形式的注释只对__行有效。
一般而言,所有的C函数都使用__标记函数体的开始和结束。
花括号
main(void) { int num; }这行代码叫作声明(declaration)。该例中声明主要完成了2件事: 1.在__中有一个名为num的变量;2.这个变量的类型为int
函数
int是C语言的一个_A_,_A_是语言定义的单词,不能做其他用途。
关键字(keyword)
num是一个__,也就是一个变量、函数或其他实体的名称。
标识符(identifier)
__把特定标识符与计算器内存中的特定位置联系起来。
声明
以前的C语言,要求把变量声明在__的顶部,其他语句不能在任何声明的__。C99和C11遵循C++的惯例,可以把声明放在块中的任何位置,首次使用变量之前一定要先声明它。
前面
C99和C11允许使用更长的标识符名,但编译器只能识别前__个字符。C90只允许6个字符。
63
操作系统和C库经常使用__字符开头的标识符,因此最好避免在自己的程序中使用这种名称。
一个或两个下划线
在C语言中,__是传递给函数的特定值,__是函数中用于储存值的变量。
实际参数(简称实参)
形式参数(简称形参)
换行符(newline character)是一个_A_。_A_用于代表难以表示或无法输入的字符。如,\t代表Tab键, \b代表Backspace键(退格键)。每个转义序列都以__字符(\)开始。
转义序列(escape sequence)
反斜杠
%d相当于是一个__符,其作用是告诉编译器输入num值的位置和类型
占位
当C函数中没有使用return语句时,则默认返回__。对于某些操作系统(包括Linux和UNIX),return 语句有实际用途,所以建议函数中使用return语句。
0

2.3 简单程序的结构

函数由__和__组成。函数头包括函数名、传入该函数的信息类型和函数的返回类型。通过函数名后的圆括号可识别出函数,圆括号里可能为空,可能有参数。函数体被花括号括起来,由一系列__和__组成。
函数头
函数体
语句
声明

2.4 提高程序可读性的技巧

分号告诉编译器__在哪里结束、__在哪里开始。
一条语句
下一条语句
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.