参考国二《C语言程序设计2020年版》教材自学笔记
声明:该笔记仅为个人笔记,通过教材的自主学习从而进行选取干货部分摘录和个人见解分析,如有不足请多指教,该笔记不做商用化!个人笔记会同步CSDN博客和B站。
第二章(上)
2.1 简单C语言程序的构成和格式
实例举例如下:
#include<stdio.h> /*该行是命令行*/
main() /*main是主函数名,后跟的一对空圆括号不能省略。它们构成的“main()”是主函数的起始行,也是C程序执行的起始行。*/
{
double a , b , area; /*该处是定义部分*/
a = 1.2; /*从“a=1.2;”到“printf...;”是程序的执行部分*/
b = 3.6;
area = a * b;
printf(" a = %f , b = %f , area = %f \n",a ,b ,area); /*printf该句的作用是把各值输出到屏幕*/
}
① 一个C程序中可以包含任意多个不同名的函数,但只能有一个主函数,一个C程序总是从主函数开始执行。
② 在函数的起始行后面用一对花括号 “{}”括起来的部分称为“函数体”。“函数体”内通常为定义(说明)部分和执行语句部分。
③ 执行部分的语句称为“可执行语句”,必须放在定义部分之后。
④ 定义语句用**“;”结束。
⑤ C程序的每一条执行语句都必须用“;”结束,“;”是C语句的一部分,不是语句之间的分隔符。
⑥ 添加注释,其内容要在“/”和“/”之间,两个符号必须成对出现,注释内不能再套注释,注释在程序的运行中不起作用,会被编译程序忽略。
⑦ 命令行必须用“#”开头,行尾不能加“;”,它不是C程序中的语句。“stdio.h”**是系统提供的头文件,该文件中包含着有关输入输出函数的说明信息。在程序中调用不同的标准库函数,应当包含相应的文件,以使程序含有所调用标准库函数的说明信息。
2.2 标识符、常量和变量
2.2.1 标识符
① 标识符分为以下三类:关键字、预定义标识符、用户标识符。
(1)关键字:C语言预先规定了一批标识符,如变量类型的标识符等,已经拥有固定意义了。
(2)预定义标识符:C语言预先定义并具有特定含义的标识符,如库函数的名字和预编译处理命令等(printf、define等)。
(3)用户标识符:又称自定义标识符。
② 合法标识符的命名规则:标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。
③ 在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。
④ 如果用户标识符与关键字相同,系统将给出出错信息;如果用户标识符与预定义标识符相同,系统并不报错,只是该预定义标识符将失去原定含义,以用户确认的含义替代,这样有可能会引发一些运行时的错误。
2.2.2 常量
① 常量是在程序运行过程中,其值不能被改变的量。
② 常量分为很多种类型,比如其中的整型常量可以进一步分为短整型常量、长整形常量等。
③ 整形常量和实型常量又称**“数值型常量”**,他们有正值和负值的区分。基本整形常量只用数字表示,无小数点;实型常量必须用带小数点的数表示。
④ 例如“A”“d”是字符型常量。例如“NCRE”“Beijing”是字符串常量。
2.2.3 符号常量
实例举例如下:
#define PI 314159 /*定义符号名PI为3.14159*/
① 用一个符号名来代表一个常量,称为符号常量。这个符号名必须在程序中进行特别的“指定”(在此举例为以上实例),并符合标识符的命名规则。
② 在对程序进行编译时,凡是出现PI的地方,编译程序就会用3.14159来替换。
③ 为使醒目,这种符号名通常使用大写字母表示。
④ 用define进行定义时,必须用**“#”作为一行的开头,在“#define”**命令行的最后不得加分号。
2.2.4 变量
① 变量是指在程序运行过程中其值可以改变的量。
② 程序中,变量a就是指用a命名的若干个存储单元,用户对变量a进行的操作就是对该存储单元进行的操作。
③ 给变量a赋值,实质上就是把数据存入该变量所代表的存储单元中。
2.3 整型数据
2.3.1 整型常量
① 十进制基本常量用一串连续数字表示(直白的说就是日常的数字使用,但不能有特殊前缀,比如说八进制和十六进制那样的特殊前缀)
② 八进制也是用一串连续的数字表示,但其开头必须是数字**“0”,八进制数必须符合合法的表示方法。
③ 十六进制数用数字0和字母x(或大写X)开头,十六进制数必须符合合法的表示方法,其中“a、b、c、d、e、f”**既可以小写也可以大写。
2.3.2 整型变量
① 整型变量可以分为基本型、短整型、长整型、无符号型。
② 基本型的整型变量用类型名关键字“int”进行定义。
例如:
int k ; /*定义k为整型变量*/
③ 在一个定义语句中也可以同时定义多个变量,变量之间用逗号隔开。
例如:
int i , j , k ; /*定义i、j、k为整型变量*/
④ 不同的编译系统为“int”变量开辟的内存单元大小不同。VC(当下NCRE·C二级考试用的上级考试软件为VC2010)为“int”变量开辟的4个字节(32个二进制单位),并按整型数的存储方式存放数据,允许存放的数值范围是:-2147483648—2147483647。整型变量只能存放整型数值。
⑤ 如③中实例,编译程序仅为“i、j、k”开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值是无意义的,称变量值“无定义”。
⑥ 可以在定义变量的同时给变量赋初值,也称“变量初始化”。
例如:
int i = 1 , j = 0 , k = 2 ;
2.3.3 整型数据的分类
① “int”类型通常称为基本整型。整型数据还有:短整型(short int)、长整型(int或long int)、无符号型(unsigned)。若不指定变量为无符号型,则变量隐含为有符号型(signed)。
② VC中可以在整形常量的后面加一个字母l(L的小写)或L,这些常量在内存中占4个字节。
③ 无论是短整型数还是长整型数,都被识别为有符号整数。
④ 无符号整数在数的末尾应该加上字母后缀u或U,如果是长整型无符号 整形常量,则可以加后缀lu或LU。
⑤ 短整型无符号常量的取值应在0——65535范围内。
⑥ 长整型无符号常量的取值应在0——4294967295范围内。
⑦ 无符号常量不能表示成小于0的负数。如:-200U是不合法的。
↑VC中定义的整型数所占字节数和数值范围,其中“[ ]”内可省略↑
2.3.4 整数在内存中的存储形式
① 计算机中,内存储器的最小存储单位称为**“位(bit)”。由于只能存放0或1,因此被称为二进制位。
② 大多数计算机把8个二进制位组成一个“字节(byte)”,并给每个字节分配一个地址。
③ 若干个字节组成一个“字(word)”**,用一个“字(word)”来存放一条机器指令或一个数据。
④ 若一台计算机以四个字节(32个二进制位)来存放一条机器指令,则称此计算机的字长为32位。
⑤ 一个字节中最右边一位称为最低位,最左边一位称为最高位。对于一个有符号整数,其中最高位(最左边一位)用来存放该整数的符号,称为“符号位”。若是正整数,最高位放置0;若是负整数,最高位放置1(即“0正 负1”)。
⑥ 正整数的存储形式称为:用“原码”形式存放。因此用两个字节存放“short”类型的最大正整数为:0111 1111 1111 1111,其值为32767。
⑦ 负整数在内存中是以“补码”形式存放的。步骤为:
(1)取一个原码,求这个原码的反码:把原码除符号位之外的二进制码全部取相反数值(即原本为0现取成1,原本为1现取成0),得到的这个码称为反码。
(2)把所得的反码加1,即得到原码的补码。
⑧ 把内存中以补码形式存放的二进制码转化成十进制的负整数,步骤为:
(1)先将除符号位之外的各位全部取反。
(2)将所得的二进制数转换成十进制数。
(3)将所得数减1。
⑨ 用两个字节存放一个整数时,若说明为无符号整数,则最高位不再用来存放整数的符号。
文章末尾,祝参加全国计算机等级考试(NCRE)二级的各位朋友能够顺利过关!!!