-seventy-
Welcome to my blog space.

输入与输出

/* 
    注意事项:
        1.输入的格式非常重要!
        2.输出的时候可能会发生——数据的溢出
*/

# include <stdio.h>
int main(){
    int a,b;
    scanf("%d,%d", &a, &b);    // 输入的时候,一定要按照左边代码的输入格式
    printf("Hello World!  a = %d  and  b = %d.\n", a, b);    // 输出
    return 0;
}

 格式化输出

/*

      %a(%A)        [浮点数]、[十六进制数字] 和 [p - 记数法(C99)]
      %c            字符
      %d            有符号十进制整数
      %f            浮点数(包括float和doulbe)
      %e(%E)        浮点数指数输出[e(E)记数法]
      %g(%G)        浮点数不显无意义的零"0"
      %i            有符号十进制整数(与%d相同)
      %u            无符号十进制整数
      %o            八进制整数(e.g.    0112)
      %x(%X)        十六进制整数(e.g.    0x1213)
      %p            指针
      %s            字符串
      %%            "%"

*/

运算符、表达式、语句

/* 
    <运算符>

    1.算术运算符
        加减乘除: + - * /
        求余数:%
        自增自减:++ --


    2.关系运算符
        大于 >        大于等于 >=
        小于 <        小于等于 <=
        等于 =


    3.逻辑运算符
        逻辑与 &&
        逻辑或 ||
        逻辑非 !


    4.条件运算符
        条件?操作1:操作2(如果条件为真,执行操作1,如果条件为假,执行操作2)
        例如: x > y ? x : y
        补充:可以嵌套使用


    5.位运算符(计算机中的数据按补码形式存储,因此在进行位运算时,直接操作的是补码)
        按位与 &        同1为1
        按位或 |        有1为1
        按位非 ~        取反
        按位异或 ^        同则为0,异则为1(同性相斥,异性相吸)
        左移 <<            向左移动,低位补零
        右移 >>            向右移动,高位补符号位

        ---例如:3 & 5 = 1        -3 & 5 = 5


        -----原码、反码、补码的知识:

            正数的二进制xxx码:
                原码、反码、补码都相同

            负数的二进制xxx码:
                原码 -> 反码:    原码的“符号位”不变,其他的“位”全部取反。
                反码 -> 补码:    反码 + 1 即可得到补码


    6.赋值运算符
        1.简单赋值            =
        2.复合算术赋值        +=  -=  *=  %=
        3.复合位运算赋值    &=  |=  ^=  >>=  <<=


    7.逗号运算符(英文输入法的逗号)
        ---起连接作用
        第一部分, 第二部分, ……, 第n部分
        上面的所有内容是依次运算,但最终取值为:第n部分的值


    8.指针运算符
    ---用于指针运算
        1.取内容        *
        2.取(首)地址    &


    9.求字节运算符
        用于计算所占的字节数
        sizeof()


    10.其他运算符
        ()        强调优先级 或 强制转换类型--------如:int n = (int) 3.14
        []        下标
        + -        数学规则    如:+8、-9
        ::        范围解析
        ->        成员运算符




    <表达式>
        一种有值的语法结构
        由运算符将变量,常量函数调用返回值结合而成
        例如:a + b




    <语句>
        当程序运行时,执行某个动作的语法结构
        它改变变量的值,产生输出或处理输入
        以分号“;”结尾,(注意是英文输入法)

        空语句            只有一个分号的语句,什么也不做
        表达式语句        在表达式的后面加个分号
        语句块            {  z = a + b;  z = z + 1; }
        控制语句        循环语句、条件语句、转移语句

*/

if 语句

int main()
{
    int a = 2;

    if (a > 1)
    {
        printf("a > 1");
    }
    else if (a = 1)
    {
        printf("a = 1");
    }
    else
    {
        printf("a < 1");
    }

    return 0;
}

switch 语句

int main()
{
    switch (2 * 0)
    {
    case 0:
        printf("This is a case 0.\n");    // 结果:执行case 0的代码,如果不加上 break 将继续向下执行
        break;

    case 1:
        printf("This is a case 1.\n");
        break;

    case 2:
        printf("This is a case 2.\n");
        switch (0 / 1)    // switch 语句可以嵌套使用
        {
        case 0:
            printf("aaa");
            break;
        case 1:
            printf("bbb");
            break;
        default:
            printf("ccc");
            break;
        }
        break;

    default:
        printf("This is a default.\n");
        break;
    }

    return 0;
}

for 循环

int main()
{
    for (int i = 0; i < 10; i++)
    {
        printf("第%d次循环\n", i);
    }

    return 0;
}

while 循环

int main()
{    
    int i = 0;
    while (i < 10)
    {
        printf("第%d次循环\n", i++);
    }

    return 0;
}

do...while 循环

int main()
{    
    int i = 1;

    do
    {
        printf("现在do第%d次\n", i++);

    } while (i < 10);

    return 0;
}

break continue 语句

int main()
{    
    for (int i = 0; i < 10; i++)
    {
        if (i == 2)
        {
            continue;
        }
        printf("第%d次循环\n", i);
        if (i == 6)
        {
            break;
        }
    }

    return 0;
}

goto 语句

/*
    1.作用:无条件转移
    2.建议:谨慎使用!!如果用的不好可能会破坏程序的逻辑性和安全性!!
        很多书籍上在提及goto语句时都会提醒读者并不推荐使用它。
        但我们还是推荐读者可以合理的使用goto语句。
        下面为了学习使用goto,我们可以通过goto语句来实现一个“类while语句”的循环功能:
*/
int main()
{
    int day = 1;
    loop:
    if (day <= 28)
    {
        printf("now is day %d\n", day++);
            goto loop;
    }
    return 0;
}
/*
    上面程序就是利用了goto和if语句来实现了循环功能,
    它与while实现的循环功能一样,
    其中loop为我们定义的一个label(标签)。
*/

 

posted on 2023-07-11 21:27  -seventy-  阅读(17)  评论(0)    收藏  举报