主页 分类 关于

C语 顺序结构程序设计

C语学习笔记

C语言概述

表达式语句

  • 表达式后面加一个分号, 就构成了一个表达式语句

函数调用语句

  • 函数调用语句由一个函数加一个分号构成

复合语句

  • 程序中用花括号 {} 将多个语句组合在一起, 称为复合语句, 又称为语句块(Block)

空语句

  • 只有一个分号 ( ; )的语句称为空语句经常被用作循环体

控制语句

  • 控制程序执行顺序, 实现基本结构的语句

    • if-else: 条件语句

    • switch: 多分支选择语句

    • for: 循环语句

    • while: 循环语句

    • do-while: 循环语句

    • continue: 结束本次循环语句

    • break: 终止执行循环语句或switch语句

    • goto: 转向语句

    • return: 函数返回值语句

程序的三种基本结构

  • 顺序结构

graph TB A[" A "]-->B[" B "]
  • 选择结构

单分支选择结构

graph TB A([" 起始框 "])-->P{" P "} P{" P "}-->C[" 真 "] C[" 真 "]-->E[" 结果 A "] P{" P "}-->D[" 假 "]

双分支选择结构

graph TB A([" 起始框 "])-->P{" P "} P{" P "}-->C[" 真 "] C[" 真 "]-->E[" 结果 A "] P{" P "}-->D[" 假 "] D[" 假 "]-->F[" 结果 B "]

多分支选择结构

graph TB A([" 起始框 "])-->P{" P "} P{" P "}--值1-->B[" 语句1 "] P{" P "}--值2-->C[" 语句2 "] P{" P "}--值n-->D[" 语句n "] P{" P "}--值n+1-->E[" 语句n+1 "] B[" 语句1 "]-->F[" 结果 "] C[" 语句2 "]-->F[" 结果 "] D[" 语句n "]-->F[" 结果 "] E[" 语句n+1 "]-->F[" 结果 "]
  • 循环结构

当型循环结构

graph TB P{" P "}-->C[" 不成立 "] A([" 起始框 "])-->P{" P "} P{" P "}-->B[" 成立 "] B[" 成立 "]-->D[" A "] D[" A "]-->P{" P "}

直到循环结构

graph TB A([" 起始框 "])-->D[" A "] D[" A "]-->P{" P "} P{" P "}-->B[" 成立 "] B[" 成立 "]-->A([" 起始框 "]) P{" P "}-->C[" 不成立 "]

赋值语句

  • C语言中的赋值号 “ = “ 是一个运算符, 而在其它大多数高级语言中, 赋值号不是运算符
  • 要区别赋值表达式和赋值语句

赋值语句其基本形式:

变量 = 表达式;

格式输入与输出

printf()函数(格式输入函数)

printf("格式控制", 输出列表)

printf()函数格式说明


格式说明 功 能 实例 输出结果 说 明
%d
%i
输出带符号的十进制整数 int x = -1;
printf(“%d”,x);
-1
%u 输出无符号的十进制整数 int x = 153;
printf(“%u”,x);
153
%x
%X
输出不带前导符 0X 或 0x 的无符号十六进制整数 int x = 2000;
printf(“%X”,x);
7D0 %x 表示符号 af 以小写形式表示
%X 表示符号 A
F 以大写形式表示
%o 输出无符号形式的八进制整数 int x = 2000;
printf(“%o”,x);
3720 不带前导符0
%f 输出小数形式的 单 双 精度实数 float x = 123.456;
printf(“%f”,x);
123.456000 默认6为小数
%e
%E
输出科学计数法形式的实数 float x = 123.456;
printf(“%e”,x);
1.23456e+02 尾部部分6位数字(包括1位整数位, 1位小数点)
%c 输出单个字符 char x = ‘a’;
printf(“%c”,x);
a
%s 输出字符串 char x[8] = “abcdfg\0”;
printf(“%s”,x);
abcdfg 必须以\0结束或给定长度

  • 格式控制: 格式控制也称 “控制字符串”, 是由双引号括起来的字符串, 用于指定输出的格式 它由格式说明, 控制字符和普通字符三部分组成

    1. 格式说明: 由 “%” 字符开始, 在 “%” 后面跟有各种格式的字符, 以说明输出数据的类型, 形式, 长度, 小数位等格式

    2. 控制字符: 控制字符用于控制设备的动作

    3. 普通字符: 除格式说明和控制字符之外, 其它字符均属于普通字符, 打印时按原样输出 例如常见的双引号内的逗号, 空格和普通字母等

  • 输出列表: 需要输出的数据项由若干表达式组成, 表达式之间逗号分隔 需注意以下两点

    • 表达式可以由变量构成, 也可以由常量构成

    • 表达式之间的逗号不是逗号表达式, 而是确实计算顺序自右向左进行的

  • 附加说明符: 在格式说明中, 为了满足用户的高级需求, 还可在%与格式字符间插入几种附件说明, 其组成为 “% 附件说明字符格式符”

附加说明字符 意义
1 用于长整型, 可以加在格式符 d, o, x, u 的前面
m(正整数) 数据输出的最小宽度, 当数据实际宽度超过 m 时, 则按实际宽度输出; 如实际宽度短于 m 时, 则输出时前面补0或空格
.n(正整数) 对实数表示输出 n 位小数, 对字符串表示从左截取的字符个数
- 输出的字符或数字在域内向左对齐, 默认右对齐
+ 输出的数字前带有正负号
0 在实际前多余空格处补0
# 用在格式字符 o 或 x 前, 输出八进制或十六进制数时带前缀 0 或 0x

scanf()函数(格式输入函数)


scanf("格式控制", 地址列表)

scanf函数的格式字符及作用


格式字符 作用
%d
%i
输出带符号的十进制整数
%u 输出无符号的十进制整数
%x
%X
输出无符号十六进制整数(不区分大小写)
%o 输出无符号形式的八进制整数
%f 输出实数, 可以用小数形式或指数形式输入
%e
%E
%g
%G
与 %f 作用相同, %e, %f, %g 可以互相替换使用
%c 输出单个字符
%s 输出字符串, 将字符串送到一个字符数组中, 在输入时以非空字符开始, 遇到 回车 或 空格字符 结束

scanf函数的附加格式字符及作用


格式修饰符 作用
L
l
用在格式字符 d, o, x, u之间, 表示输入长整型数据
用在 f 或 e 之前, 表示输入 double型数据
h 用在格式字符 d, I, o, x 之前, 表示输入短整型数据
m 指定输入数据所占宽度, 不能用来指定实数型宽度, 应为正整数
* 表示该输入项在读入后不赋值给相应的变量

  • 格式控制: 格式控制是由双引号括起来的字符串, 与 printf 函数中的 “格式控制” 字符串含义相同, 其中的格式说明, 也与 printf 函数的格式说明相似, 以 “ % “ 字符开始, 以一个格式字符结束, 中间可以插入附件说明字符, 在格式控制字符串中若有普通字符, 则输入时原因输入

  • 地址列表: 变量地址列表是用逗号分隔的若干接收输入数据的变量地址, 变量地址由地址运算符 “ & “ 后跟变量名组成, 变量地址间用逗号 “ , “ 分隔

  • 使用 scanf() 函数时应注意的问题

  1. scanf()函数地址列表中的各个参量都是变量地址, 而不是变量名

  2. 如果在 “格式控制” 字符串中除格式说明以外还有其它字符, 则输入数据时在对应位置应输入与这些字符相同的字符

  3. 对于实型数据, 输入时不能规定其精度

  4. 在用 “ %c “ 格式输入字符时, 空格符和转义字符都将作为有效的字符输入

  5. 在输入数据时, 若遇到下列情况, 则认为输入数据结束

    • 遇空格, 按 Enter 键 或 Tab 键
    • 遇宽度限制
    • 遇非法输入
  6. 当使用多个是 scanf() 函数连续给多个字符变量赋值 每次输入都必须按 Enter 键

  7. 对应 unsiged 型变量所需的数据, 可以用 “ %u, %d “ 或 “ %o, %x” 格式输入

  8. 在格式控制符中加入星号时, scanf()函数将读取对应数值, 但不赋给相应变量


putchar()函数(字符输出函数)


putchar(字符形或整形的常量, 变量, 表达式); // 整形则输出 ASCII 码值对应的字符

  • 注意: 使用 putchar() 函数时必须要用文件包含命令 #include<stdio.h>

getchar() 函数(字符输入函数)


getchar(字符); // 其函数的返回值是从输入设备输入的一个字符

  • 使用 getchar() 函数时需要注意以下问题

    • getchar() 函数没有参数
    • getchar() 函数只能接受一个字符(包括控制字符)
    • 使用 getchar() 函数前, 需加上文件包含命令 #include<stdio.h>
    • getchar() 函数接到的字符可以赋给一个字符型变量或整型变量, 也可以作为表达式的一部分











作者: 我叫史迪奇
本文来自于: https://sdq3.link/C-Sequence-Structure.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议