C语言程序设计核心详解 第四章&&第五章 选择结构程序设计&&循环结构程序设计

简介: 本章节介绍了C语言中的选择结构,包括关系表达式、逻辑表达式及其运算符的优先级,并通过示例详细解释了 `if` 语句的不同形式和 `switch` 语句的使用方法。此外,还概述了循环结构,包括 `while`、`do-while` 和 `for` 循环,并解释了 `break` 和 `continue` 控制语句的功能。最后,提供了两道例题以加深理解。

@[toc]

第四章 选择结构

1.定义:从main()开始,由上往下有哪些语句执行,哪些语句不执行

1.两类表达式

1.1 关系运算符及关系表达式(得到的值要么是1,要么是0)

< <= > >= == !=

< <= > >= 是6级
== != 是7级
同级顺序是自左往右

例题:

4>5     0
5==5    0
7=7     非法,赋值运算符左边必须为变量
5>4>3   0  5>411>30,所以是0

1.2 逻辑运算符与逻辑表达式

&& || !(单目)

单目是2级,&&是11级 ,||是12级

(1)在c语言中逻辑表达式的值只有1或0两种值。其中,1表示“真”,0表示“假”
(2)&&是全真为1,有0为0,||是有1为1,全0为0 ,!是1变0,0变1

例题:

a++>5 
++a>5
5||5
4<3 && 9
0&&7
5>4>3&&3

2.if语句

格式1:

if(表达式)
    语句序列1=>if子句
后继语句

格式2:

if(表达式)
    语句序列1else
    语句序列2

格式3:if语句的嵌套

if(表达式1if(表达式2)
        语句序列11else 
        语句序列12else
        语句序列2

3.switch语句

switch语句值得注意的点有很多,要小心谨慎。

switch(表达式)
{
   
   
case 常量表达式1:子句1
case 常量表达式2:子句2
...............
case 常量表达式n:子句n
default: 子句n+1
}

注意点:

  1. 【default: 子句n+1】该条语句可以有,也可以省略
  2. case后只能接常量整型或字符型,不能有变量和逗号表达式
  3. 各case后常量不能出现相同的值
  4. 只有每一个case常量表达式都不符合,才会跳转执行default
  5. 在子句不执行break语句的情况下,符合常量表达式1,会把子句1到n,以及default内子句n+1

来看几个列子:深刻理解switch语句
不带break:

#include<stdio.h>
int main()
{
   
   
    int x;
    scanf("%d",&x);
    switch(x)
{
   
   
    case 1:printf("语句1\n");
    case 2:printf("语句2\n");
    case 3:printf("语句3\n");
    default:printf("语句default\n");
}      
}

带break:

#include<stdio.h>
int main()
{
   
   
    int x;
    scanf("%d",&x);
    switch(x)
{
   
   
    case 1:printf("语句1\n");break;
    case 2:printf("语句2\n");break;
    case 3:printf("语句3\n");break;
    default:printf("语句default\n");
}     
}

image.png

运算符先后顺序大总结

第一级:()
第二级:单目
第三级-第十二级:双目

双目运算符:按顺序分,算术,关系,逻辑三类运算符

第十三级:三目
第十四级:=
第十五级:,

单目运算符就是一个符号的,双目就是两个符号的

第五章 循环结构

定义:从main()开始,从上向下,使得某些语句重复执行。
循环结构的程序:在顺序结构中加入循环控制语句。

1.循环控制语句(4类)

1.1 while语句(当型循环)

第一类:

while(表达式)
{
   
   
    循环体语句序列;
}

先执行表达式,再执行循环体语句
执行完循环体语句,再回到表达式,判断是否继续进入循环
while执行一条语句或一条复合语句

1.2 do-while语句(直到型循环)

第二类:

do
{
   
   
    循环体语句序列;
}while(表达式)

先执行循环体语句,然后进入表达式,判断是否进行下一次循环
do-while也是就近控制一条或花括号的复合语句

1.3 for语句

第三类:

for(表达式1 ;表达式2 ;表达式3)
{
   
   
     循环体语句序列;
}

表达式1是初始化,表达式2是判断,表达式3是增减语句
for循环流程描述:

表达式1,是初始化,就执行一次,然后从表达式1到表达式2,判断表达式2
执行循环体语句
执行表达式3,回到表达式2判断,判断决定结束循环或进入到循环体语句

1.4 if(){} else{} goto配合使用

第四类(几乎不用):
if(){} else{} goto配合使用

2.两个控制语句---break continue

格式:break
功能:终止退出
范围:循环体中和switch体

匹配最近的循环体

格式:continue
功能:结束一次循环继续
范围:循环体中

匹配最近的循环体

3. 例题

1.下面程序的运行结构是()

# include<stdio.h>
int main()
{
   
   
     int num=0;
     while(num<=2)
     {
   
   
         num++;
         printf("%d\n",num);
     }
}

运行结果:

1
2
3

2.设整型变量x的当前值为3,执行以下循环语句后,输出的结果是()

# include<stdio.h>
int main()
{
   
   
    int x=3;`1
    do
        printf("%d\t",x-=2);
    while(!(--x));
}

运行结果:

1    -2
相关文章
|
26天前
|
存储 算法 C语言
数据结构基础详解(C语言): 二叉树的遍历_线索二叉树_树的存储结构_树与森林详解
本文从二叉树遍历入手,详细介绍了先序、中序和后序遍历方法,并探讨了如何构建二叉树及线索二叉树的概念。接着,文章讲解了树和森林的存储结构,特别是如何将树与森林转换为二叉树形式,以便利用二叉树的遍历方法。最后,讨论了树和森林的遍历算法,包括先根、后根和层次遍历。通过这些内容,读者可以全面了解二叉树及其相关概念。
|
26天前
|
存储 C语言
C语言程序设计核心详解 第十章:位运算和c语言文件操作详解_文件操作函数
本文详细介绍了C语言中的位运算和文件操作。位运算包括按位与、或、异或、取反、左移和右移等六种运算符及其复合赋值运算符,每种运算符的功能和应用场景都有具体说明。文件操作部分则涵盖了文件的概念、分类、文件类型指针、文件的打开与关闭、读写操作及当前读写位置的调整等内容,提供了丰富的示例帮助理解。通过对本文的学习,读者可以全面掌握C语言中的位运算和文件处理技术。
|
26天前
|
存储 C语言
C语言程序设计核心详解 第七章 函数和预编译命令
本章介绍C语言中的函数定义与使用,以及预编译命令。主要内容包括函数的定义格式、调用方式和示例分析。C程序结构分为`main()`单框架或多子函数框架。函数不能嵌套定义但可互相调用。变量具有类型、作用范围和存储类别三种属性,其中作用范围分为局部和全局。预编译命令包括文件包含和宏定义,宏定义分为无参和带参两种形式。此外,还介绍了变量的存储类别及其特点。通过实例详细解析了函数调用过程及宏定义的应用。
|
26天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
26天前
|
存储 机器学习/深度学习 C语言
数据结构基础详解(C语言): 树与二叉树的基本类型与存储结构详解
本文介绍了树和二叉树的基本概念及性质。树是由节点组成的层次结构,其中节点的度为其分支数量,树的度为树中最大节点度数。二叉树是一种特殊的树,其节点最多有两个子节点,具有多种性质,如叶子节点数与度为2的节点数之间的关系。此外,还介绍了二叉树的不同形态,包括满二叉树、完全二叉树、二叉排序树和平衡二叉树,并探讨了二叉树的顺序存储和链式存储结构。
|
26天前
|
存储 C语言
C语言程序设计核心详解 第九章 结构体与链表概要详解
本文档详细介绍了C语言中的结构体与链表。首先,讲解了结构体的定义、初始化及使用方法,并演示了如何通过不同方式定义结构体变量。接着,介绍了指向结构体的指针及其应用,包括结构体变量和结构体数组的指针操作。随后,概述了链表的概念与定义,解释了链表的基本操作如动态分配、插入和删除。最后,简述了共用体类型及其变量定义与引用方法。通过本文档,读者可以全面了解结构体与链表的基础知识及实际应用技巧。
|
C语言
《C语言程序设计》一 第 1 章 程序设计概述
本节书摘来自华章出版社《C语言程序设计》一 书中的第1章,第1.1节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1148 0
|
C语言
《C语言程序设计与实践(第2版)》——第1章 C语言与程序设计概述 1.1初见C语言程序
我国古代数学家张邱建在其编写的《算经》里提出了历史上著名的“百钱买百鸡”问题:今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁、母、雏各几何?对于这个问题,很多读者在小学或初中的竞赛中可能都见到过,而且通常都采用不定方程求解。
1127 0
|
23天前
|
存储 Serverless C语言
【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数
本文介绍了C语言中的`gets`和`puts`函数,`gets`用于从标准输入读取字符串直至换行符,并自动添加字符串结束标志`\0`。`puts`则用于向标准输出打印字符串并自动换行。此外,文章还详细讲解了`str`系列字符串操作函数,包括统计字符串长度的`strlen`、复制字符串的`strcpy`、比较字符串的`strcmp`以及拼接字符串的`strcat`。通过示例代码展示了这些函数的具体应用及注意事项。
|
1月前
|
Linux C语言
C语言 多进程编程(三)信号处理方式和自定义处理函数
本文详细介绍了Linux系统中进程间通信的关键机制——信号。首先解释了信号作为一种异步通知机制的特点及其主要来源,接着列举了常见的信号类型及其定义。文章进一步探讨了信号的处理流程和Linux中处理信号的方式,包括忽略信号、捕捉信号以及执行默认操作。此外,通过具体示例演示了如何创建子进程并通过信号进行控制。最后,讲解了如何通过`signal`函数自定义信号处理函数,并提供了完整的示例代码,展示了父子进程之间通过信号进行通信的过程。
下一篇
无影云桌面