• 逻辑语句和函数


    一、printf函数

    1.在使用peintf函数前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据,其中使用格式是 printf(“字符串”) ;或者 printf(“字符串”, 格式符参数);

    2.常用的格式符及其含义如图所示

    3.格式符还可以添加输出宽度

    二、scanf函数

    1.在使用scanf函数前必须加入#include <stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量。

    2.使用格式:scanf("<格式化字符串>",<地址表>);

    三、基本语句

    C语言的基本语句有循环语句(do while、while、for),条件语句(if 、if-else、switch),goto语句。

    四、基本运算

    1.算术运算符

    • +  加法运算符
    • -  减法运算符,或负值运算符
    • *  乘法运算符
    • /  除法运算符
    • %  模运算符,或称取余运算符,要求%两侧均为整型

    2.关系运算符

    • <   小于运算符
    • <=  小于等于运算符
    • >   大于运算符
    • >=  大于等于运算符
    • ==  等于运算符
    • !=  不等于运算符

    逻辑运算的结果只有两个:成立就为"真",返回1;不成立就为"假",返回0

    注意:C语言中没有boolean类型

    3.逻辑运算符有:

    • &&  逻辑与运算符
    • ||  逻辑或运算符
    • !   逻辑非运算符

    逻辑运算的结果也只有两个:成立就为"真",返回1;不成立就为"假",返回0

    4.赋值运算符有简单的赋值运算符 = ;以及复合赋值运算符

    • +=  加赋值运算符。如a += 3+1,等价于 a = a +(3+1)
    • -=  减赋值运算符。如a -= 3+1,等价于 a = a -(3+1)
    • *=  乘赋值运算符。如a *= 3+1,等价于 a = a *(3+1)
    • /=  除赋值运算符。如a /= 3+1,等价于 a = a /(3+1)
    • %=  取余赋值运算符。如a %= 3+1,等价于 a = a %(3+1)

    5.自增运算符和自减运算符

    • ++  自增运算符。如a++,++a,都等价于a = a+1
    • --  自减运算符。如a--,--a,都等价于a = a-1

    6.逗号运算符和逗号表达式一般形式为:表达式1, 表达式2, … …, 表达式n

    7.条件运算符和条件表达式,其实就是三目运算符,一般形式为:表达式1 ? 表达式2 : 表达式3

    8.sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。

    五、流程结构

    C语言提供3种流程结构,不同的流程结构可以实现不同的运行流程。这3种流程结构分别是:

    • 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
    • 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
    • 循环结构:在给定条件成立的情况下,反复执行某一段代码。

    六、顺序结构

    顺序结构是3种结构中最简单的,也是默认的流程结构:程序中的语句是按照书写顺序执行的。

    七、选择结构-if语句

    1.结构形式1

    1 if ( 条件 )
    2 {
    3     语句1;
    4     语句2;
    5     ....
    6 }

    如果if右边小括号()中的条件成立,也就是为“真”时,就会执行第2~6行大括号{}中的语句;如果条件为假,就不执行大括号{}中的语句。这里的if是关键字。

    2.结构形式2

    if还可以跟关键字else一起使用

    复制代码
    1 if ( 条件 )
    2 {
    3     语句1;
    4 }
    5 else
    6 {
    7     语句2;
    8 }
    复制代码

    如果条件成立,就会执行if后面大括号{}中的语句;如果条件不成立,就会执行else后面大括号{}中的语句。

    3.结构形式3

    if和else还有一种比较复杂的用法

    复制代码
     1 if ( 条件1 )
     2 {
     3     语句1;
     4 }
     5 else if ( 条件2 )
     6 {
     7     语句2;
     8 }
     9 else if ( 条件3 )
    10 {
    11     语句3;
    12 }
    13 ...
    14 else
    15 {
    16     其他语句;
    17 }
    复制代码
    • 如果条件1成立,就执行条件1后面大括号{}中的内容:第2~4行
    • 如果条件1不成立,条件2成立,就执行条件2后面大括号{}中的内容:第6~8行
    • 如果条件1、条件2都不成立,条件3成立,就执行条件3后面大括号{}中的内容:第10~12行
    • 第13行的...表示可以有无限个else if
    • 如果所有的条件都不成立,就会执行else后面大括号{}中的内容:第15~17行

     

    八、选择结构-switch语句

    1.结构形式

    复制代码
     1 switch(整型表达式)
     2 {
     3     case 数值1:
     4         语句1;
     5         break;
     6     case 数值2:
     7         语句2;
     8         break;
     9     ... ...
    10     case 数值n:
    11         语句n;
    12         break;
    13     default :
    14         语句n+1;
    15         break;
    16 }
    复制代码
    • 当整型表达式的值等于“数值1”时,就会执行“语句1”,后面的break表示退出整个switch语句,也就是直接跳到第16行代码;
    • 当整形表达式的值等于“数值2”时,就会执行“语句2”;后面的以此类推。如果在数值1~数值n中,没有一个值等于整型表达式的值,那么就会执行default中的语句n+1。
    • 由于所有的case后面都有个break,因此执行完任意一个case中的语句后,都会直接退出switch语句

    2.break关键字的作用是退出整个switch语句。默认的格式中,每个case后面都有个break,因此执行完case中的语句后,就会退出switch语句。

     

    九、循环结构-while循环

    1.结构形式

    1 while ( 条件 )
    2 {
    3     语句1;
    4     语句2;
    5     ....
    6 }
    • 如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环
    • while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行

    3.注意如果写成下面这样,也会让程序进入“死循环”

    复制代码
    1 int count = 0;
    2 
    3 while ( count < 10 );
    4 {
    5     printf("Hello World
    ");
    6     
    7     count++;
    8 }
    复制代码
    • 注意第3行,while后面不小心加了个分号; ,一个分号表示一条空语句。
    • 可以看出:while循环只会影响到第3行的空语句,而第4~8行的代码块是不受while循环影响的
    • 由于count是0,那么count<10一直都是成立的,程序将会一直重复执行第3行的空语句,陷入死循环。

    十、循环结构-do while循环

    结构形式如下:

    1 do {
    2     语句1;
    3     语句2;
    4     ...
    5 } while (条件);
    • 注意第5行,后面是加上一个分号;的
    • 当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环
    • do-while循环的特点:不管while中的条件是否成立,循环体中的语句至少会被执行一遍
    • 其实do while循环的用法跟while循环是差不多的,这里就不举例子了。

    十一、循环结构-for循环

    结构形式

    1 for (语句1; 条件; 语句2) {
    2     语句3;
    3     语句4;
    4     ...
    5 }
    • for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1
    • 接着判断条件,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容)
    • 循环体执行完毕后,接下来会执行语句2,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环

    十二、break和continue

    1.break,它的作用是跳出switch语句。它也可以用在循环结构中,这时候它的作用是跳出整个循环语句。

    2.continue,它的作用是跳过这一次循环,直接进入下一次循环。

    十三、函数基本概念

    1.任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。能。

    2.为了方便调用和区分这些函数,我们需要为每一个函数都起一个唯一的名称,函数的命名必须按照标识符命名规则。利用函数名就可以调用到对应的函数。

    十四、函数的定义

    1.任何一个函数在使用之前都必须进行定义

    2.函数的定义格式如下:

    1 返回值类型  函数名(形式参数列表)
    2 {
    3     函数体
    4 }

    十五、形式参数和实际参数

    1.基本概念

    1> 形式参数:在定义函数时,函数名后面的小括号()中定义的变量称为形式参数,简称形参

    2> 实际参数:在调用函数时传入的值称为实际参数,简称实参

    2.调用函数时传递的实参个数 必须和 函数的形参个数必须保持一致

    3.当使用基本数据类型(char、int、float等)作为实参时,实参和形参之间只是值传递,修改形参的值并不影响到实参

    4.函数可以没有形参

    十六、返回值类型

    1.返回值就是函数调用完后,返回给函数调用者的结果,用return关键字进行返回。定义函数时,要指明函数的返回值类型

    2.一个函数可以没有返回值,如果没有返回值,应该用void表示返回值类型

    3.如果一个函数没有返回值,最后面的return语句可以省略

    4.如果一个函数没有明确写出返回值类型,那么代表这个函数的返回值类型是int

    十七、return

    1.return语句可以在函数内部返回一个值给函数调用者

    2.一个函数内部可以多次使用return语句,使用了return语句后,函数就会马上停止执行,return语句后面的代码就不再被执行

     

    十八、函数定义的注意

    1.函数名不能重复

    2.每一个函数都应该独立定义,不能嵌套定义

    十九、一维数组

    1.一维数组的定义的形式为:类型  数组名[元素个数];

    2.一维数组的初始化形式是:类型  数组名[元素个数] = {元素1, 元素2, ...};

    十九、二维数组

    1.二维数组的定义形式:类型  数组名[行数][列数];

    2.二维数组的初始化:数据类型 数组名[行数][列数]= {{一维元素}, {一维元素}, {...}};

    二十、字符串简介

    字符串可以看做是一个特殊的字符数组,为了跟普通的字符数组区分开来,应该在字符串的尾部添加了一个结束标志''。''是一个ASCII码值为0的字符,是一个空操作符,表示什么也不干。所以采用字符数组存放字符串,赋值时应包含结束标志'',如图所示。

    二十三、字符串的输出

    我们可以使用stdio.h中两个函数来输出字符串,分别是printf和puts函数

     

    二十四、字符串的输入

    在stdio.h中有2个函数可以用来接收用户输入的字符串,分别是scanf和gets函数

     

    二十五、字符串数组

    1.字符串数组简介用来存放字符量的数组称为字符数组。其定义的一般形式是:char 数组名[数据长度];

    2.可以把字符串数组看作是一维数组,它的元素是字符串。

  • 相关阅读:
    LeetCode15 3Sum
    LeetCode10 Regular Expression Matching
    LeetCode20 Valid Parentheses
    LeetCode21 Merge Two Sorted Lists
    LeetCode13 Roman to Integer
    LeetCode12 Integer to Roman
    LeetCode11 Container With Most Water
    LeetCode19 Remove Nth Node From End of List
    LeetCode14 Longest Common Prefix
    LeetCode9 Palindrome Number
  • 原文地址:https://www.cnblogs.com/xiaoma-qi/p/5541545.html
Copyright © 2020-2023  润新知