c_语法入门_day2

H:/C语言入门/__day_2/01-变量的内存分析.c
#include <stdio.h>

/*
 1.内存寻址由大到小,优先分配内存地址比较大的字节给变量
 
 2.变量越先定义,内存地址就越大
 
 3.取得变量的地址:&变量名
 
 4.输出地址:%p
 
 5.一个变量一定先进行初始化,才能使用
 */

int main()
{
    // 内存寻址由大到小
    int a = 10;
    
    int b = 20;
    
    int c;
    
    // &是一个地址运算符,取得变量的地址
    // %p用来输出地址
    // 0x7fff56f09bc8
    printf("a的地址是:%p\n", &a);
    // 0x7fff56f09bc4
    printf("b的地址是:%p\n", &b);
    // 0x7fff56f09bc0
    printf("c的地址是:%p\n", &c);
    
    //由于变量c没有经过初始化,所以直接拿来使用是不对的
    //int d = c  + 1;
    
    
    printf("c的值是%d\n", c);
    
    return 0;
}

H:/C语言入门/__day_2/02-scanf函数的基本使用.c
#include <stdio.h>

int main()
{
    // 定义一个变量,用来保存用户输入的整数
    int number;
    
    // scanf函数只接受变量的地址
    // scanf函数是一个阻塞式的函数,等待用户输入
    // 用户输入完毕后,就会将用户输入的值赋值给number变量
    // 函数调用完毕
    scanf("%d", &number);
    
    printf("用户输入的值是%d\n", number);
    
    return 0;
}

H:/C语言入门/__day_2/03-scanf小练习.c
/*
 提示用户输入两个整数,计算并且输出两个整数的和
*/

#include <stdio.h>

int main()
{
    // 1.定义2个变量,保存用户输入的整数
    int num1, num2;
    
    // 2.提示用户输入第1个整数
    printf("请输入第1个整数:\n");
    
    // 3.接收用户输入的第1个整数
    scanf("%d", &num1);
    
    // 4.提示用户输入第2个整数
    printf("请输入第2个整数:\n");
    
    // 5.接收用户输入的第2个整数
    scanf("%d", &num2);
    
    // 6.计算和,并且输出
    int sum = num1 + num2;
    printf("%d+%d=%d\n", num1, num2, sum);
    
    //printf("num1=%d, num2=%d\n", num1, num2);
    return 0;
}

H:/C语言入门/__day_2/04-scanf的其他用法和注意.c
#include <stdio.h>

int main()
{
    /* 1.输入字符
    char myc;
    
    scanf("%c", &myc);
    
    printf("输入的字符是%c\n", myc);
     */
    
    /* 2.一次性输入多个数值,并且以某些符号隔开
    int num1, num2;
     
    scanf("%d#%d", &num1, &num2);
    
    printf("num1=%d, num2=%d\n", num1, num2);
    */
    
    /*
    3.如果scanf参数中以空格隔开,实际输入可以以空格、tab、回车作为分隔符
    int num1, num2;
    scanf("%d %d", &num1, &num2);
    printf("num1=%d, num2=%d\n", num1, num2);
     */
    
    /*
    4.scanf中不能写\n
    int a;
    scanf("%d\n", &a); // 错误写法
    printf("a的值是%d\n", a);
     */
    
    return 0;
}

H:/C语言入门/__day_2/05-算数运算符.c
#include <stdio.h>

int main()
{
    /*1.算数运算符的基本使用
    int a = 10 + 1 + 2 - 3 + 5;
    
    int b = -10;
    
    int c = 10 * b;
    
    int d = 10 / 2;
    
    // 取余运算(模运算)
    // %两边都是整数
    // %取余结果的正负性只跟%左边的数值有关
    int e = 10 % -3;
    printf("%d\n", e);
    */
    
    /*
    // 自动类型转换(double->int)
    int a = 10.8;
    
    // 强制类型转换(double->int)
    int b = (int) 10.5;
    printf("%d\n", a);
     */
    
    // 自动类型提升(int->double)
    double c = 10.6 + 6;

    double d = 1 / 3;
    
    double e = (double)3/2;
    
    printf("e的值是%f\n", e);
    
    
    return 0;
}

H:/C语言入门/__day_2/06-算数运算符练习.c
#include <stdio.h>
/*
 提示用户输入一个时间的秒数,比如500秒就输入500,然后输出对应的分钟和秒,比如500s就是8分钟20秒
 */
int main()
{
    /*
    // 将c的值固定在10以内
    int a = 96546546;
    
    int c = a % 10;
    */
    
    // 1.提示用户输入时间
    printf("请输入一个时间值(秒):\n");
    
    // 2.接收用户输入的时间
    int time;
    scanf("%d", &time);
    
    // 3.转换成对应的分钟和秒
    int minute = time / 60; // 分钟
    int second = time % 60; // 秒
    
    printf("%d秒 = %d分钟%d秒\n", time, minute, second);
    
    return 0;
}

H:/C语言入门/__day_2/07-赋值运算符.c
#include <stdio.h>

int main()
{
    int a = 10;
    
    // a = a + 5;
    
    // 复合赋值运算符
    a += 5; // a = a + 5;
    
    a *= 5; // a = a * 5;
    
    a += 5 + 6 + 4; // a = a + (5 + 6 + 4);
    
    /*
     1.
     */
    a = 5 + 6 * 5 + 8;
    
    printf("a的值是%d\n", a);
    
    
    return 0;
}

H:/C语言入门/__day_2/08-自增自减.c
#include <stdio.h>

int main()
{
    /*
    int a = 10;
    
    a = a + 1; // 11
    
    a += 1; // 12
    
    a++; // 13
    
    ++a; // 14
    
    a--; // a -= 1;  a = a - 1;   13
    */
    // printf("a的值是%d\n", a);
    
    int b;
    int a = 10;
    // b = 10 + 12;
    //b = (a++) + (++a);
    
    // b = 11 + 11;
    b = (++a) + (a++);
    // a -> 11
    
    
    // a : 12
    printf("b=%d, a=%d\n", b, a);
    
    return 0;
}

H:/C语言入门/__day_2/09-sizeof.c
#include <stdio.h>

int main()
{
    //int size = sizeof(10);
    //int size = sizeof 10.9;
    
    int a = 10;
    
    //int size = sizeof(a);
    //int size = sizeof a;
    
    int size = sizeof(char);
    // int size = sizeof char; // 错误的
    
    printf("size=%d\n", size);
    
    return 0;
}

H:/C语言入门/__day_2/10-关系运算.c
#include <stdio.h>

int main()
{
    /*
    int a = 10;
    
    int b = 11;
    
    // 条件成立就返回1,真
    // 条件不成立就返回0,假
    int result = b >= a;
    
    printf("%d\n", result);
     */
    
    //int a = 2>3==1;
    //int a = 3+4 > 8-2;
    
    int a =  5 != 4 + 2 * 7 > 3 == 10;
    
    printf("%d\n", a);
    
    return 0;
}

H:/C语言入门/__day_2/11-逻辑运算.c
#include <stdio.h>

int main()
{
    //逻辑与 条件1 && 条件2
    
    // int a  =  10>3 && 7<6;
    
    //int a = 0 && 10;
    
    //printf("a=%d\n", a);
    
    /*
    int a = 10;
    int b = 10;
    
    //int c = (a>5) && (++b>=11);
    
    int c = (a<5) && (++b>=11);
    
    // a = 10
    // b = 10
    // c = 0
    printf("a=%d, b=%d, c=%d\n", a, b, c);*/
    
    
    // 逻辑或 条件1 || 条件2
    
    //int a = 0 || 11;
    /*
    int a = 10;
    int b = 10;
    
    int c = (a<5) || (b++ - 10);
    
    // a = 10
    // b = 11
    // c = 0
    printf("a=%d, b=%d, c=%d\n", a, b, c);*/
    
    // 逻辑非 !条件
    // 如果条件成立,就返回0;如果条件不成立,就返回1
    
    //int a = !(10>8);
    
    //int a = !-10;
    
    //int a = !10>8;
    
    /*
    int a = !!10;
    
    printf("a=%d\n", a);
    */
    
    
    
    
    
    
    
    return 0;
}

H:/C语言入门/__day_2/12-三目运算符.c
// 三目运算符  条件 ? 数值1 : 数值2

//int a = !100 ? 9 : 89;

//printf("a=%d\n", a);


#include <stdio.h>

int main()
{
    /* 计算2个整数之间的最大值
    int a = 10;
    
    int b = 99;
    
    int c = a>b ? a : b;
     
     printf("c is %d\n", c);
    */
    
    // 计算3个整数之间的最大值
    int a = 10;
    int b = 999999;
    int c = 1000;
    
     // 求出a、b的最大值
    int abMax = (a > b) ? a : b;
    // 求出最终的最大值
    int d = (abMax > c) ? abMax : c;
    
    //int d = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
    
    printf("d is %d\n", d);
    return 0;
}

H:/C语言入门/__day_2/13-if.c
/*
 1.if的第1种结构
 if(条件)
 {
    语句1;
    语句2;
    ......
 }
 
 2.if的第2种结构
 if(条件1)
 {
     语句1;
     语句2;
     ......
 } 
 else
 {
    
 }
 
 3.if的第3种结构
 if(条件1)
 {
     语句1;
     语句2;
     ......
 }
 else if(条件2)
 {
 
 }
 else if(条件3)
 {
 
 }
 else if(条件4)
 {
 
 }
 else 
 {
 
 }
 
 4.if的第4种结构
 if (条件)
   语句1;
*/

#include <stdio.h>

int main()
{
    /*
    // 人数
    int count = 40;
    
    if ( count >= 50 )
    {
        printf("开班!!!\n");
        printf("准备机器!!!\n");
    }
    else
    {
        printf("不开班!!!\n");
        printf("不准备机器!!!\n");
    }*/
    
    /*
    int a = 6;
    
    if (a++ > 10) // a == 7
    {
        printf("A\n");
    }
    else if (a++ > 5) // a == 8
    {
        printf("B\n");
    }
    else if (a++ > 3) 
    {
        printf("C\n");
    }
    else
    {
        printf("D\n");
    }
    
    printf("a的值是%d\n", a);
     */
    
    int a = -10;
    
    if (a>1)
        printf("A\n");
    
    printf("B\n");
    
    return 0;
}

H:/C语言入门/__day_2/14-if使用注意.c
#include <stdio.h>

int main()
{
    /*
    if (0)
    {
        printf("A\n");
    }
    else
    {
        printf("B\n");
    }*/
    
    /*
    int a = 1044343;
    
    比较大小时,常量值放左边,变量放右边
    //if (a = 0)
    if (0 == a)
    {
        printf("a等于0\n");
    }
    else
    {
        printf("a不等于0\n");
    }*/
    
    /*
    int a = 10;
    
     // 注意赋值运算符,不要写成两个=
    a = 15;
    
    printf("%d\n", a);
     */
    
    /* if语句后面不要写;
    if ( 5>6 );
    {
        printf("A\n");
    }*/
    
    
    /*
    if (10 > 6)
    {
        int a = 5;
    }
    
    printf("%d\n", a);
     */
    
    // 下面的代码是错误的:作用域不明确
    if (10 > 6)
        int a = 5;
    // 如果要在if后面的语句中定义新的变量,必须用大括号{}
    //printf("%d\n", a);
    
    /*
     书写格式
    int a = 10;
    if (a>10) {
    
    } else if (a>5) {
    
    } else {
    
    }
    
    if ()
    {
    
    }
    else if ()
    {
    
    }
    else
    {
    
    }*/
    
    return 0;
}

H:/C语言入门/__day_2/15-if练习.c
/*
 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
 A:90~100
 B:80~89
 C:70~79
 D:60~69
 E:0~60
*/

#include <stdio.h>

int main()
{
    // 1.提示输入
    printf("请输入分数值:\n");
    
    // 2.接收输入
    int score;
    scanf("%d", &score);
    
    // 3.判断等级 (性能最高)
    if (score>=90 && score<=100) { // [90, 100]
        printf("A\n");
    } else if (score>=80) { // [80, 89]
        printf("B\n");
    } else if (score>=70) { // [70, 79]
        printf("C\n");
    } else if (score>=60) { // [60, 69]
        printf("D\n");
    } else { // (-∞, 59]
        printf("E\n");
    }
    
    /* 性能中等
    if (score>=90 && score<=100) { // [90, 100]
        printf("A\n");
    } else if (score>=80 && score<=89) { // [80, 89]
        printf("B\n");
    } else if (score>=70 && score<=79) { // [70, 79]
        printf("C\n");
    } else if (score>=60 && score<=69) { // [60, 69]
        printf("D\n");
    } else { // (-∞, 59]
        printf("E\n");
    }*/
    
    /* 性能最差
    if (score>=90 && score<=100) { // [90, 100]
        printf("A\n");
    }
    
    if (score>=80 && score<=89) { // [80, 89]
        printf("B\n");
    }
    
    if (score>=70 && score<=79) { // [70, 79]
        printf("C\n");
    }
    
    if (score>=60 && score<=69) { // [60, 69]
        printf("D\n");
    }
    
    if (score<=59) { // (-∞, 59]
        printf("E\n");
    }*/
    return 0;
}

H:/C语言入门/__day_2/16-switch.c
#include <stdio.h>

/*
 if (条件)
 {
 
 }
 
 
 switch (数值)
 {
    case 数值1:
        语句1;
        break;
 
    case 数值2:
        语句2;
        break;
 
    default :
        语句3;
        break;
 }
 */

int main()
{
    //int a = 10;
    // break:退出整个switch语句
    // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
    /*
    int b = 10;
    
    switch (a)
    {
        case 10:
            printf("A\n");
            b++;
        case 5:
            printf("B\n");
            b++;
        case 0:
            printf("C\n");
            b++;
            break;
        default:
            printf("D\n");
            break;
    }
    
    printf("b的值是%d\n", b);*/
    
    char c = '+';
    int a = 10;
    int b = 20;
    // 如果要在case后面定义新的变量,必须用大括号{}包住
    switch (c) {
        case '+':
        {
            int sum = a + b;
            printf("和是%d\n", sum);
            break;
        }
            
        case '-':
        {
            int minus = a - b;
            printf("差是%d\n", minus);
            break;
        }
    }
    
    return 0;
}

H:/C语言入门/__day_2/17-switch练习.c
 /*
 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
 A:90~100 score/10 == 9、10
 B:80~89  score/10 == 8
 C:70~79  score/10 == 7
 D:60~69  score/10 == 6
 E:0~60   
 */

#include <stdio.h>

int main()
{
    int score = 100;
    
    switch (score/10) {
        case 10: // 100
        case 9: // 90+
            printf("A\n");
            break;
        case 8: // 80+
            printf("B\n");
            break;
        case 7: // 70+
            printf("C\n");
            break;
        case 6: // 60+
            printf("D\n");
            break;
        default:
            printf("E\n");
            break;
    }
    
    
    
    /*
     if和switch
     1> if语句能完成的功能,switch并不一定能完成
     int a = 10;
     if (a>100)
     {
     
     }
     
     2> 在有些情况下,if语句和switch语句可以互换
     
     3> switch能完成的功能,if语句都能完成
     */
    
    return 0;
}

你可能感兴趣的:(c,入门)