欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言学习

程序员文章站 2022-07-15 09:05:47
...

基本数据类型、运算符及表达式

基本数据类型

  • 基本类型
    • 整型
    • 实型
    • 字符型
    • 枚举型
  • 构造类型
    • 数组类型
    • 结构体类型
    • 共用体类型
  • 指针类型
  • 空类型

常量

  1. 整型常量:十进制(不能以0开头)八进制(0开头)十六进制(0x 0X开头)
  2. 实型常量:十进制小数or指数形式
  3. 符号常量:标识形式 PI
  4. 字符型常量:字符常量‘\’转义字符标识 字符串常量“ ”

变量

变量名 变量类型 变量值(初始化)

运算符及其表达式

  1. 运算符(单目、双目、三目)目➡️对象

    • 优先性
    • 结合性 单目三目 赋值—右结合 双目—左结合
    • 表达式
  2. 算术运算符与算术表达式

    • 基本算术运算符
    • 自增自减运算符:++ –
    • 算术表达式
  3. 赋值运算符与赋值表达式

    • 赋值运算符(=)
    • 赋值表达式(=)
    • 类型转换(以=左边数据类型为准)
    • 复合的赋值运算符(-= **+= ** *= **%=)
  4. 逗号运算符和逗号表达式:用逗号连接多个表达式

  5. 不同类型数据间的混合运算与数据转换

    • 自动类型转换:从低到高自动转换

    • 强制类型转换:(类型名)(表达式)

      算法和基本程序设计

    算法

    1. 算法概念
      • 有穷性 确定性 可行性 有输入 有输出
    2. 算法的评价标准
      • 正确性 可读性 健壮性(对非法输入的抵抗能力)高效率和低存储量的需求
    3. 算法的表示
      • 流程图
      • N-S结构流程图

    结构化程序设计的方法

    1. 自顶向下:先全局后细节(自顶向下,逐步细化)
    2. 模块化:将大任务分成较小的部分 模块内部联系要紧密,关联程度要高 模块之间的接口要简单 模块间数据传递要少
    3. 限制使用goto语句:清晰第一,效率第二

    程序的基本结构

    1. 顺序结构
    2. 选择结构
    3. 循环结构
      • 当型循环:先判断条件再执行程序➡️假时输出
      • 直到型循环:先执行程序再判断条件⤴️

    顺序结构程序设计

    1. 表达式语句:即 ;
    2. 空语句:直接由;构成
    3. 函数调用语句
    4. 复合语句:即{}
    5. 控制语句:条件判断语句(if、switch)循环语句(for、while、do-while)转移语句(goto、continue、break、return)

    数据的输入和输出

    1. 数据的输入与输出

      • I/O函数 即stdio.h
    2. 字符数据的输入与输出

      • 字符输出函数putchar() 输入没有“” 而是(‘/n’)a='c’putchar(a)

      • 字符输入函数getchar(输一个字符按一个回车) getch(一次输入)不将输入的字符回显 getche(一次输入) 输入不是getchar(“ ”)而是 getchar(‘/n’) a='c';getchar(a)

      • 字符串的输入输出函数:gets() puts() 没有 (“”)

        可以字符串数据包括(字符串常量、字符指针、字符数组)

    3. 格式的输入与输出

      • scanf()格式穿原样输入格式说明d(十进制)、o(八进制)、x(十六进制)、c(字符)、s(字符串)、f(实数小数形式或指数形式)、e(=f)附加格式说明符l(长整型)、h(短整型)、n(域宽 正整数 指明截取位数)、*****(跳过scanf("%2d% *3d%d",&a,&b123456 a=12,b=6
      • printf() 格式说明d/i(带符号的十进制整数)、o(八进制无符号)、e/E(标准指数形式输出 e小写or大写)、x(十六进制无符号小写or大写ABCD)、u(无符号十进制)、c(字符)、s(字符串)、f(小数默认小数点后6为)、g(自动选择f or e 不输出无意义的0) 附加格式说明符l(长整型or长双精度)、m(域宽 十进制)、n(附加域宽 指定小数部分 十进制)、-(数据左对齐)、+(输出+号)、#(作为o ox的前缀输出结果前加前导符0 0x)

选择分支结构程序设计

关系运算

  1. 关系运算符

    大于 小于 等于 小于等于 大于等于 不等于

  2. 关系表达式

    • 逻辑值是 0 or 1
    • 字符数据可以转换成ASCII码
    • 区别于数学表达式
    • =vs==

逻辑运算

  1. 逻辑运算符 && || ! 自左至右 得出结果后不用继续算
  2. 逻辑表达式 结果只有两种真或假

二路分支-if语句

  1. 简单if语句 记得加{}
  2. if-else语句
  3. if-else-if
  4. if语句的嵌套

条件运算符与表达式

  1. 表达式1?表达式2:表达式3
  2. 单目>双目>三目>赋值>逗号

多路分支-switch语句

switch(表达式)
{
case 常量1:语句1;break;
case 常量2:语句2;break;
case 常量3:语句3;break;
default:语句n+1;break;
}
  1. switch语句的嵌套

    循环结构程序设计

    while语句

    1. while(条件表达式){循环体语句}

    do-while语句

    1. do {循环体语句} while 条件表达式

    for语句

    1. for(循环控制变量赋初值;循环控制变量<=终值;循环控制变量增值)

      循环体语句

    goto语句

    1. 跳转语句

    循环的嵌套

    1. for循环

      for( ; ; )
      {
          ...
      	for( ; ; )
      	{...}
      	...
      }
      
    2. do-while循环

      do
      {
      	...
      	do
      	{...}
      	while();
      	...
      }
      while();
      
    3. while循环多层嵌套

      while()
      {
      	...
      	while()
      	{...}
      	...
      }
      
    4. 不同类型的循环的相互嵌套

      while()
      {
      	...
      	for( ; ; )
      	{
      		...
      		do
      		{...}while();
      		...
      	}
      	...
      }
      

    break和continue语句

    1. continue语句(只在循环体中)

      • 对于while do-while:跳过循环体中continue后面的 去判断下次的条件
      • 对于for语句:是跳过continue后面的 去执行语句3
    2. break语句(只在switch语句或循环体中)

      • 结束整个循环不在判断条件成立与否

}

}
```

break和continue语句

  1. continue语句(只在循环体中)

    • 对于while do-while:跳过循环体中continue后面的 去判断下次的条件
    • 对于for语句:是跳过continue后面的 去执行语句3
  2. break语句(只在switch语句或循环体中)

    • 结束整个循环不在判断条件成立与否

    • 只能跳出一层循环体