C语言的基础语句对阅读理解和自己敲写程序有至关重要的作用。这个我身有体会,开始学习C语言时,我预习时它们就像刚开始学英语一样它认识我,我不认识他。所以说我总结自己的学习经验,为大家整理了C语言基础知识整理,希望对大家有帮助。

       

目录

1.  算法结构

2  结构化程序设计方法

3.  数据类型


1.  算法结构

几乎所有编程语言,包括C语言,都会有三种基本的程序结构:顺序结构、选择结构和循环结构。

1.1 顺序结构:

顺序结构就是一条一条地从上到下执行语句,所有的语句都会被执行到,执行过的语句不会再次执行。
例如,求1+2+3+4的和,就可以一个数一个数地依次累加。

1.2 选择结构:

选择结构就是根据条件来判断执行哪些语句,如果给定的条件成立,就执行相应的语句,如果不成立,就执行另外一些语句。

例如,根据用户输入的年龄来输出不同的内容:

输入年龄小于18还未成年,需要努力读书
大于等于18,小于等于30珍惜青春,不荒废青春
大于30,小于65工作时注重自己的身体,撑起自己的家。
大于等于65退休享受生活

用户输入年龄,程序会做出判断,根据不同的年龄输出不同的内容。这四个输出语句,只有一个被执行,其他三个跳过,不执行。

1.3 循环结构:

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。

循环结构就是在达到指定条件前,重复执行某些语句。
例如,我们用双重循环结构来输出九九乘法表:

#include <stdio.h>
int main()
{
    int i, j;
    for(i=1; i<=9; i++)
 {
    for(j=1; j<=i; j++)
   {
    printf("%-3d ", i*j);  // -3d 表示输出整数,宽度为3(占3个字符),左对齐
   }
    printf("\n");
 }
    return 0;
}

感兴趣的读者可以直接敲敲代码玩玩。

循环结构又分为while型、until型、for循环语句;程序流程图。

常见的两种循环结构

当型循环:先判断所给条件p是否成立,若p成立,则执行A(步骤);再判断条件p是否成立;若p成立,则又执行A,若此反复,直到某一次条件p不成立时为止。

直到型循环:先执行A,再判断所给条件p是否成立,若p不成立,则再执行A,如此反复,直到p成立,该循环过程结束。

2  结构化程序设计方法

结构化程序设计方法是按照模块划分原则以提高程序可读性和易维护性、可调性和可扩充性为目标的一种程序设计方法。

(1)自顶向下;    (2)逐步细化;    (3)模块设计;    (4)结构化编码;

3.  数据类型

3.1 常量与变量

在C语言中,常量和变量都是可以用来存储和表示数据的,常量值在程序执行的过程中是不可变的,而变量是可变的。

int a;
int a=1;

定义了一个整型变量a,另一个1赋值给a。(注意,C语言中的等号表示赋值,作用是把一个常量赋值给一个变量,这样变量就获得了一个临时的固定值。)
为什么说是临时的呢?因为在把另一个常量2赋值给a的时候,a的值就变为了2,不再1了。

3.2 C语言数值类型

3.2.1整型

整型数据的一般分类如下:

  • 基本型:int,在内存中占2个字节。
  • 短整型:short int或short。所占字节和取值范围均与基本型相同。
  • 长整型:long int或long,在内存中占4个字节。
  • 无符号型:unsigned。

无符号型又可与上述三种类型匹配而构成:

  • 无符号基本型:unsigned int或unsigned。
  • 无符号短整型:unsigned short。
  • 无符号长整型:unsigned long。
类型说明符数的范围字节数
int-32768~327672
unsigned int0~655352
short int-32768~327672
unsigned short0~655352
long int-2147483648~21474836474
unsigned long0~42949672954

例如:几个整型变量定义。

int a,b,c;  // a,b,c为整型变量
long x,y;  // x,y为长整型变量
unsigned p,q;  // p,q为无符号整型变量

3.2.2浮点型

实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。

C语言中说的浮点型就是带小数点的数,也就是小数。长双精度型一般用不上。

3.3  进制数

(1)二进制数

二进制数只有0,1。

(2)十进制数
十进制数没有前缀。其数码为0~9。
以下是合法的十进制数:237、-568、65535、1627;
以下是不合法的十进制数:023 (不能有前导0)、23D (含有非十进制数码)。
(3)八进制数
八进制数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
以下是合法的八进制数:015(十进制为13)、0101(十进制为65);
以下是不合法的八进制数:256(无前缀0)、03B2(包含了非八进制数码)、-0127(出现了负号)。

(4)十六进制数
十六进制数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下是合法的十六进制数:0X2A(十进制为42)、0XA0 (十进制为160);
以下是不合法的十六进制数:2A (无前缀0X)、0X3G (含有非十六进制数码)。

进制转换:通常采用8421码(转换方发这里篇幅不够展示如有需要我会出一篇讲进制转换)

3.4 字符型数据

在C语言中,字符型数据有以下特点:

  • 字符型数据只能用单引号括起来,不能用双引号或其它括号。
  • 字符型数据只能是单个字符,不能是字符串。
  • 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如'5'和5 是不同的。'5'是字符型数据,不能参与运算。

3.5 字符串

字符串是由一对双引号括起的字符序列。例如: "CHINA" , “C program” , "$12.5" 等都是合法的字符串。字符串和字符不同,它们之间主要有以下区别:

  • 字符由单引号括起来,字符串由双引号括起来。
  • 字符只能是单个字符,字符串则可以含一个或多个字符。
  • 可以把一个字符型数据赋予一个字符变量,但不能把一个字符串赋予一个字符变量。在C语言中没有相应的字符串变量,也就是说不存在这样的关键字,将一个变量声明为字符串。但是可以用一个字符数组来存放一个字符串,这将在数组一章内予以介绍。
  • 字符占一个字节的内存空间。字符串占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" (ASCII码为0)。
     

 例如,字符串 "C program" 在内存中所占的字节为:


字符'a'和字符串"a"虽然都只有一个字符,但在内存中的情况是不同的。

3.6 运算符

1、算术运算符(+ - * / %)结合方向自左向右
2、关系运算符(> < =="">= <= !="">)
3、逻辑运算符(! && ||)
4、位运算符(<>> ~ | ^ &)
5、赋值运算符(=及符号扩展赋值运算符)
6、条件运算符(? : )
7、逗号运算符( , )
8、指针运算符(* &)
9、求字节运算符(sizeof)
10、强制类型转换运算符((类型))
11、分量运算符( . ->)
12、下标运算符([])
13、其他


 

更多推荐

51单片机(c语言基础)