第1章-导言-1.1~1.5知识点

  第1章是导言部分,内容相对简单,可以快速阅读一遍,并适当做一些练习,等学完后面章节再回头做剩余的练习。下面将简单记录几个重要的知识点:

1.1-1.3

(1)【P2】C语言程序都是由函数和变量组成的,函数中包含一些语句statement,用以执行一些操作;变量则是用于存储操作过程中需要使用的值;

(2)【P5】提到了程序的规范性写法,需要注意的是

①Tab对应的是四个空格(而不是我以为的三个);

②操作符两边加空格与操作数隔离开来(我一直不加空格);

(3)【P6】printf的格式化输出用法可详见P135,这里知道%6.1f是按照浮点数打印,至少6个字符宽,小数点后面有1位小数就可以;

1.4-1.5

(1)【P9】一般在程序内部中不直接使用300、20等数字,因为会导致阅读困难,另外一个阅读者可能并不理解数字的含义,可以通过#define宏定义来声明,这样也方便修改。注意宏定义时的变量需要大写,并且不带分号。

(2)【P9】这里了解一下文本模型:文本流是由多行字符构成的字符序列,而每行字符则由0个或多个字符组成,行末是一个换行符,标准库负责使每个输入/输出流都遵守这一模型。

字符在机器内部是以位模式存储的,一般用char类型,但是为了存放文件结束符EOF,一般将接受字符的变量声明为int类型。下面简单说明一下EOF:

EOF是end of file的缩写,表示"文字流"(stream)的结尾,它不是特殊字符,而是一个定义在头文件stdio.h的常量,#define EOF (-1),一般等于-1。以EOF作为文件结束标志的文件,必须是文本文件,由于数据在文本中都是以字符的ASCII代码值(范围是0~127)的形式存放,不可能出现-1,因此可以用EOF作为文件结束标志。

注意这里所说的"文字流",可以是文件(file),也可以是标准输入(stdin)。标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。在windows系统中,按下Ctrl+Z和回车键来模拟EOF条件,UNIX和Linux用户应按Ctrl+D来模拟。

EOF虽然是文件结束符,但并不是在任何情况下输入Ctrl+Z都能够实现文件结束的功能,只有在下列的条件下,才作为文件结束符。

①遇到getcahr函数执行时,要输入第一个字符时就直接输入Ctrl+Z,就可以跳出getchar(),去执行程序的其他部分;

②在前面输入的字符为换行符时,接着输入Ctrl+Z;

③在前面有字符输入且不为换行符时,要连着输入两次Ctrl+Z,这时第二次输入的Ctrl+Z起到文件结束符的功能。

(3)【P12】若是int类型范围太小的话,可以使用long类型(最少是32位,由机器本身决定,有时会和int大小相同,若使用printf的话需要修改转换说明为%ld),也可以使用更大的double;

(4)【P13】注意字符常量(用单引号)与字符串常量(用双引号)的区别。字符常量的值等于该字符在机器字符集中对应的数值,在表达式中只是一个整型数(跟所选用的机器字符集有关,不要以为只有ASCII字符集);

(5)【P14】1.5.4节的例程感觉相当精彩,亮点是使用state来判断读出的字符是否在单词里面,开始初始化state为OUT,然后c=getchar()读入一个字符,不是空格/制表符/换行符之类字符的话就执行else if(state==OUT)将state设置为IN,一直到下一个空格/制表符/换行符(说明该单词结束)为止;

还要注意nl=nw=nc=0;赋值语句是从右到左执行的,而if(c==’ ’||c==’\n’||c==’\t’)是从左到右,只要有一个条件满足就不会执行后面的语句判断。

时间: 2024-10-13 06:36:50

第1章-导言-1.1~1.5知识点的相关文章

第一章导言的笔记与思考

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket ~:较重要 ~~:重要 1.1 hello,world ~初学人来说还是一大障碍,手写编写程序文本,然后成功的进行编译,并加载.运行,然后输出到某个地方. #include<stdio.h> int main() { printf("hello,world\n"); return 0; } 思考:renturn 0; 为啥呢? return -1; return 1000;可以

第一章 导言

字符型实际上就是int型,保存的方式是将字符的ASCII码.char类型实际就是short型. ''单引号包括的是一个字符,""双引号包括的是一个字符串. 整形数之间相除,这个操作将执行舍位,例如:5/9,应该约等于0.5555,但由于舍位,最终的值为0.如果需要保留小数位,先将操作数转换为浮点型的数,例如:5.0/9.0. 字符串是以字符数组的形式来储存.例如:char strings[20]. getchar.sanf,都是从输入缓冲区中读取数据.如果缓冲区的数据有剩余数据,那么再

《C程序设计语言(第2版&#183;新版)》第1章 导言

实例和基本概念介绍. 1.1 入门 例1:打印hello world (UNIX:建立hello.c:通过命令cc hello.c编译得到可执行文件a.out:执行a.out即可打印出.不同OS编译.加载.运行规则有所不同.) 每个程序必须在某个位置包含一个main函数:每个程序都从main的起点开始执行:main(ps:可有两个参数argc,argv)(ps:?C的main 输出可无int,C++必须int,也可能跟编译器有关):可函数调用(库函数或自编函数) "hello world\n&q

第1章-导言-习题1.13-1.23

1-13 先放上自己写的程序,不论是打印水平方向的直方图还是垂直方向的直方图,前提都是先得到单词的长度,然后将该长度在数组nlenth[]对应的元素加1,也就说统计不同长度出现的次数. 1 #include<stdio.h> 2 3 #define IN 1 4 #define OUT 0 5 #define MAXSIZE 10 6 7 /* 16/06/09 打印输入中单词长度的直方图 */ 8 main() 9 { 10 char state = OUT; 11 char c,i; 12

第1章-导言-习题1.8-1.12

前面习题比较简单,根据教材就可以做出来,下面记录从习题1.8开始. 1.8 1 #include<stdio.h> 2 3 /* 16/6/8 count blanks,tabs,and newlines*/ 4 main() 5 { 6 int c, num_blank, num_tab, num_new; 7 8 num_blank = num_tab = num_new = 0; 9 while ((c = getchar()) != EOF) { 10 if (c == ' ') nu

程序设计基础 第五章 选择结构的程序设计(知识点)

第五章  选择结构的程序设计 第一部分: 总结 1根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构 2C语言的选择语句包括if 和switch语句 3使用break语句,可以中断switch语句的执行. 4使用goto 语句,可以将程序执行流程无条件专项. 第二部分: 分别简述 5.1用if语句设计选择结构程序 5.1.1  简单的if语句 使用条件:满足条件就执行,不满足就不执行. 格式: If(表达式){语句1} 5.1.2    if_else语句 格式: If(表达

《C++编程思想》 第九章 命 名 控 制 (知识点+习题+解答)

一.相关知识点         那些通常放在头文件里的名字,像常量.内联函数(inline function),在缺省情况下都是内部连接的(当然常量只有在C + +中缺省情况下是内部连接的,在 C中它缺省为外部连接).注意连接只引用那些在连接/装载期间有地址的成员,因此类声明和局部变量并没有连接. 名字空间的产生与一个类的产生非常相似: namespace MyLib{ //Declarations } 这就产生了一个新的名字空间,其中包含了各种声明.namespace与class.struct

Python基础教程(第二章 列表和元组)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5293195.html______ Created on Xu Hoo 本章将引入一个新的概念:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence),序列中的每个元素被分配一个序号——即

[深入理解Android卷一全文-第三章]深入理解init

因为<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容. 第3章  深入理解init 本章主要内容 ·  深入分析init. 本章涉及的源代码文件名称及位置 以下是本章分析的源代码文件名称及其位置. ·  init.c system/core/init/init.c ·  parser.c system/core/init/parser.c ·  builtins.