概述
——————————C部分——————————
C1 C语言程序的结构
计算机是一种具有内部存储能力、由程序自动控制的电子设备。
人类用程序设计语言(C语言等高级语言,此处以C为例)编写出.c
格式的源程序后,再经过编译器使用编译程序编译成二进制形式的机器指令(或.obj
格式的目标程序),计算机就会按照目标程序中的指令顺序自动工作。
然后,连接程序(Link)将目标程序与C语言提供的各种库函数连接起来,最终生成可运行的.exe
格式的可执行文件。
通常,人们把每个可进行单独编译的源文件叫做一个编译单位。
程序设计的步骤:确定数据结构、确定算法、编码/编程、在计算机上调试程序、整理并撰写文档资料。
算法是为解决某个特定问题而采取的一系列步骤,它具有步骤有穷性、确定性、可行性、有输出性。
伪代码是一种近似于高级语言但又不受语法约束的一种语言描述形式,欧美喜欢用。
我国喜欢用的是流程图,它具有圆角起止框、矩形处理框、平行四边形输入输出框、菱形判断框、流程线、连接点(就像负反馈那种)、注释等元素和顺序、选择、循环等结构。
这三种基本结构可以组成解决任何复杂问题的算法,由它们组成的程序/算法称为结构化程序/算法。
此外还有一种N-S流程图,它有点像scratch那种用表达式拼凑成的图块。
在需要计算机处理复杂任务时,可以将其分解为若干个子任务,每个子任务又可以分为只完成一项简单功能的小任务。
将多个小模块组合起来实现复杂的功能的自顶向下、逐步细化的程序设计方法被称为“模块化程序设计”,这些小模块也称为模块化结构。
C语言就是一种结构化程序设计语言,它没有子程序的概念,其函数可以完成子程序的所有功能。
C语言也允许对函数单独进行编译,从而实现模块化,而且它还具有丰富的数据类型。
——C语言程序的组成部分为:
首先是导入.h格式的头文件,如#include<stdio.h>
。
然后是宏定义,如#define PI 3.114514
。宏定义的变量最好大写。
之后是一些函数和对象的定义。
最后是必运行的主函数,即int main(){……return 0;}
。这里的0一般它return不return都行。
再之后可能还有函数定义。
其中不乏有//注释
或/*注释*/
等形式的注释。
C2 数据类型及其运算
变量、函数等的标识符只能由数字、字母和下划线组成,且首字符不能为数字,大小写有区分,标识符不能过长。它包含不能更改的关键字、可以重载的预定义标识符和用户标识符。
不能更改的量为常量,如长/短整形常量(int)、实型常量(float/double)、字符常量(char)、字符串常量(char[])。
yz可以宏定义出符号常量,如上文中的PI
。
可以更改的量为变量,也有这几种,但必须先声明/定义再使用。
C语言中定义的变量代表内存中的一个存储单元。
用sizeof(数据类型)
可以求某种数据类型的字节长度。
整型常量可加二进制的0b/0B
、8进制的0
或16进制的0x/0X
前缀,16进制整数中的A~F也不分大小写。在C语言中,非十进制数只能是正整数。整型变量定义如int a1,a14=5,a=14
,其它类型变量同理。
整型量默认为4字节的有符号长整型量(signed long int),而短整型占2字节,地址量占8字节。
在常量后面加U/u代表无符号型,加L/l代表长型。
有符号型常量的第一位为符号位,且以补码形式储存。
正数的补码等于其原码,负数则先将原码的数值位取反得到反码,然后再+1(即绝对值-1)得到补码。
实型常量则必有小数点,如1.0
,用带E/e的科学记数法表示数必为实型量。
单精度实型常量(float)为4字节长,双精度实型常量(double)为8字节长。
数字之间的基本运算符有+加、-减、*乘、/除、%余,但C语言中两个整型量相除得到的是整商,且整型量之间才能求余数。
整型与实型相计算时,整型会被转换成实型。
小数点前/后内容省略代表为0,但不能前后都省略,光剩个小数点。
在ASCII码中,'0'
=48,'A'
=65,'a'
=97,同一个字母的小写的ASCII码比其大写多32。
C语言中,'1'
是字符/char,"114514"
是字符串/char[],它们的一个字符都只占一个字节。
调用C语言提供的对字符进行处理的库函数时,要#include <ctype.h>
。
字符(串)中,转义符n
为换行,t
为制表符,'``\
等为不转义。