c_语法入门_day3

H:/C语言入门/__day_3/01-while.c
#include <stdio.h>

/*
 if (条件)
 {
 
 }
 
 while (条件)
 {
    循环体
 }
 
 运行原理
 1.如果一开始条件就不成立,永远不会执行循环体
 2.如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......
 
 break
 直接结束整个while循环
 
 continue
 结束当前的循环体,进入下一次循环体的执行
 
 */

int main()
{
    // 1.先确定需要重复执行的操作
    
    // 2.再确定约束条件
    
    // 定义一个变量记录做的次数
    int count = 0;
    
    /*
    while (count<50)
    {
        ++count;
        
        if (count%10 != 0)
        {
            printf("做第%d次俯卧撑\n", count);
        }
    }*/
    
    /*
    while (count<50)
    {
        ++count;
        
        if (count%10 == 0)
        {
            // 直接结束这一次循环体,进入下一次循环
            continue;
        }
        
        printf("做第%d次俯卧撑\n", count);
    }*/
    
    while (count < 50)
    {
        ++count;
        
        printf("做第%d次俯卧撑\n", count);
        
        if (count == 20)
        {
            break;
        }
    }
    
    
    return 0;
}

H:/C语言入门/__day_3/02-while练习.c
/*
 提示用户输入一个正整数n,计算1+2+3+…+n的和
 */

#include <stdio.h>

int main()
{
    // 1.提示输入
    printf("请输入一个正整数:\n");
    
    // 2.接收输入
    // 定义变量保存用户输入的整数
    int n;
    scanf("%d", &n);
    
    if (n<=0)
    {
        printf("非法输入\n");
        return 0;
    }
    
    // 3.计算
    // (1 + n) * n / 2;
    // 定义变量保存和
    int sum = 0;
    int number = 0; // 默认被加的数值
    
    while (number < n)
    {
        number++;
        sum += number; // 累加
    }
    
    printf("%d\n", sum);
    
    return 0;
}

H:/C语言入门/__day_3/03-while练习2.c
/*
 提示用户输入一个正整数n,计算1+2+3+…+n的和
 */

#include <stdio.h>

int main()
{
    // 定义变量保存用户输入的整数
    int n = 0; // 一定要初始化
    
    while (n <= 0)
    {
        // 1.提示输入
        printf("请输入一个正整数:\n");
        
        // 2.接收输入
        scanf("%d", &n);
    }
    
    // 3.计算
    // (1 + n) * n / 2;
    // 定义变量保存和
    int sum = 0;
    int number = 0; // 默认被加的数值
    while (number < n)
    {
        number++;
        sum += number; // 累加
    }
    
    printf("%d\n", sum);
    return 0;
}

H:/C语言入门/__day_3/04-while练习3.c
/*
题目:计算1~100中所有3的倍数的个数
*/

#include <stdio.h>

int main()
{
    // 记录3的倍数的个数
    int count = 0;
    
    // 记录当前检查的数值
    int number = 0;
    
    while (number < 100)
    {
        number++;
        
        // 说明number是3的倍数
        if (number%3 == 0)
        {
            count++;
        }
    }
    
    printf("1~100内3的倍数的个数:%d\n", count);
}

H:/C语言入门/__day_3/05-while注意点.c
#include <stdio.h>

int main()
{
    /*
    while (10)
    {
        printf("哈哈哈哈\n");
    }*/
    
    /*
    int a = 10;
    // while (a>0); 死循环
    while (a>0)
    {
        a--;
        printf("哈哈哈\n");
    }*/
    
    // 最简单的死循环
    //while(1);
    
    return 0;
}

H:/C语言入门/__day_3/06-do-while.c
/*
while (条件)
 {
    
 }

do {
 
} while(条件);
 
 while和do-while的区别
 1.很多情况下,while和do while可以互换
 
 2.while特点:如果一开始的条件不成立,永远不会执行循环体
 do while特点:不管一开始的条件是否成立,至少会执行一次循环体
 
 3.最好使用while
*/

#include <stdio.h>

int main()
{
    int i = 0;
    
    /*
    while (i<0)
    {
        i++; // 5
    }*/
    
    do {
        i++; // 5
    } while (i<0);
    
    printf("i=%d\n", i);

    return 0;
}

H:/C语言入门/__day_3/07-for.c
/*
 for (语句1; 条件; 语句2)
 {
    循环体
 }
 
 语句1:初始化语句
 语句2:增量语句(执行完循环体后再执行的语句)
 
 1.for一开始就会执行一次语句1(整个for循环只会执行一次)
 2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
 */

#include <stdio.h>
int main()
{
    /*
     "做俯卧撑"50次
     */
    /*
    int count = 0;
    
    for ( ; count < 50; )
    {
        printf("做俯卧撑\n");
        count++;
    }*/
    
    /*
    for (int count = 0; count < 50; )
    {
        printf("做俯卧撑\n");
        count++;
    }*/
    
    /*
    for (int count = 0; count < 50; count++)
    {
        printf("做俯卧撑\n");
    }*/
    
    /*
    for (int count = 0; count < 50; printf("做俯卧撑\n"),printf("哈哈哈\n"),count++)
    {
        
    }*/
    
    return 0;
}

H:/C语言入门/__day_3/08-for使用注意.c
#include <stdio.h>
int main()
{
    /* 不要随便在for()后面写分号
    for (int i=0; i<5; i++);
    {
        printf("哈哈\n");
    }*/
    
    /* 错误:变量a的作用域不明确
     如果要在循环体中定义新的变量,必须用大括号{}包住
    for (int i=0; i<5; i++)

        int a = 10;
    */
    
    /* 错误
    for (int i = 0; i<10; i++, a++)
    {
        // a只能用在循环体{}中
        int a = 10;
    }*/
    
    /*
    int a = 10;

    for (int i=0, a= 9; i<5; i++)
    {
        //int i = 10;
        int a = 11;
        
        printf("a=%d\n", a);
    }*/
    
    // 最简单的利用for循环实现死循环
    // for(;;);
    
    return 0;
}

H:/C语言入门/__day_3/09-for循环嵌套.c
/*
 好友列表1
    好友1
    好友2
 好友列表2
    好友1
    好友2
 好友列表3
    好友1
    好友2
 */

#include <stdio.h>
int main()
{
    
    for (int i = 1; i<=4; i++)
    {
        //printf("好友列表%d\n", i + 1);
        printf("好友列表%d\n", i);
        
        /*
        printf("    好友1\n");
        printf("    好友2\n");
        printf("    好友3\n");
        printf("    好友4\n");
        printf("    好友5\n");*/
        
        for (int j = 1; j<=7; j++)
        {
            printf("    好友%d\n", j);
        }
    }
    
    return 0;
}

H:/C语言入门/__day_3/10-for循环嵌套练习.c
/*
提示用户输入一个正整数n,如果n=5,就输出下列图形,其他n值以此类推
*****
****
***
**
*
*/

#include <stdio.h>

int main()
{
    // 1.定义一个变量存储用户输入的值
    int n = 0; // 一定要初始化
    
    // 2.判断n值合不合理
    while (n <= 0)
    {
        // 2.1 提示用户输入正整数
        printf("请输入一个正整数:\n");
        
        // 2.2 接收输入的数据
        scanf("%d", &n);
    }
    
    // 3.输出图形
    for (int i = 0; i<n; i++)// 有多少行
    {
        //printf("*****\n");
        for (int j = 0; j<n-i; j++)
        { // 每一行有多少个
            printf("*");
        }
        
        printf("\n");
    }
    
    return 0;
}

H:/C语言入门/__day_3/11-break和continue.c
#include <stdio.h>

/*
 break:
 1.使用场合
 1> switch语句:退出整个switch语句
 2> 循环结构:退出整个循环语句
   * while
   * do while
   * for
 2.注意点
 只对最近的循环结构有效
 
 continue:
 1.使用场合
  循环结构:结束当前这次的循环体,进入下一次循环体
     * while
     * do while
     * for
 2.注意点
  只对最近的循环结构有效
 */

int main()
{
    /*
    for (int i = 0; i<5; i++)
    {
        printf("%d\n", i);
        
        if (i%2)
        { // i为奇数:1、3
            continue;
        }
    }*/
    /*
    for (int i = 0; i<5; i++)
    {
        
        printf("哈哈哈\n");
        
        continue;
        
        printf("哈哈哈23\n");
    }*/
    
    for (int i = 0; i<3; i++)
    {
        for (int j = 0; j<2; j++)
        {
            if (j==1)
            {
                break;
            }
            
            printf("A\n");
        }
        
        break;
        
        printf("B\n");
    }
    
    return 0;
}

H:/C语言入门/__day_3/12-函数.c
#include <stdio.h>

/*
 1.什么情况下定义函数:添加一个常用的新功能
 
 2.函数的定义格式
 返回值类型  函数名(形式参数列表)
 {
    函数体
 }
 
 3.定义函数需要明确的东西
 1> 起一个有意义的函数名
 2> 
 */

int printLine()
{
    printf("-------------\n");
    return 0;
}

int average(int num1, int num2)
{
    return (num1 + num2)/2;
}

int main()
{
    /*
    printLine();
    
    printLine();
    
    printLine();
     */
    
    int a = 10;
    int b = 9;
    
    int c = average(a, b);
    
    printf("c is %d\n", c);
    
    int a1 = 11;
    int b1 = 20;
    
    int d = average(a1, b1);
    printf("d is %d\n", d);
    
    return 0;
}

H:/C语言入门/__day_3/13-函数2.c
#include <stdio.h>
/*
 参数注意点
 1.形式参数:定义函数时函数名后面中的参数,简称形参
 2.实际参数:调用函数式传入的具体数据,简称实参
 3.实参个数必须等于形参个数
 4.函数体内部不能定义和形参一样的变量
 5.如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参的值
 6.一个函数可以没有形参,也可以有无限多个形参
 */

// 形式参数,简称形参
int sum(int num1, int num2)
{
    // 函数体内部不能定义和形参一样的变量
    // int num1;

    num1 = 50;

    return num1 + num2;
}

/*
 return的作用:
 1> 退出函数
 2> 返回一个具体值给函数调用者
 
 返回值注意点
 1> void代表没有返回值
 2> 如果没有明确说明返回值类型,默认是返回int类型
 3> 就算明确声明了返回值类型,也可以不返回任何值
 
 默认情况下,C语言不允许两个函数的名称一样
 */

char test()
{
    return 'A';
}

/*
void test(int a, int b)
{

}*/

void test5()
{
    
}

/* 伪代码
void login(QQ, 密码)
{
    // 1.验证QQ有没有值
    if (QQ没有值) return;
    
    // 2.验证密码有没有值
    if (密码没有值) return;
    
    // 3.把QQ、密码发送到服务器
    
}*/

int test3()
{
    printf("999999999\n");
}

// 如果不明确声明返回值类型,默认就是int类型
test2()
{
    printf("888888888\n");
    return 10;
}

int main()
{
    int c = test2();
    printf("c=%d\n", c);
    
    test3();
    //test();
    
    /*
    int a = 100;
    int b = 27;
    
    // a、b称为函数的实际参数,简称实参
    int c = sum(a, b);
    
    
    printf("a=%d, b=%d, c=%d\n", a, b, c);*/

    return 0;
}

H:/C语言入门/__day_3/14-函数练习.c
/*
 

H:/C语言入门/__day_3/15-函数注意点.c
#include <stdio.h>
/*
 1.默认情况下,不允许有函数的名称一样
 2.函数不能嵌套定义
 3.函数不能重复定义,但是可以重复声明
 4.如果有函数的声明,没有函数的定义
 1> 编译可以通过,因为编译器只会检测语法合不合理,并不会检测函数有没有定义
 2> 链接报错,因为链接的时候会检测函数是否定义
 
 */

// 函数的声明
//void printLine();
//void printLine();
//void printLine();
//void printLine();
//void printLine();
//void printLine();

int main()
{
    void printLine();
    
    printLine();
    return 0;
}

// 函数的定义

void printLine()
{
    printf("--------\n");
}

H:/C语言入门/__day_3/16-总结.c
一、选择结构
1.if
1> 结构
if (条件) {

} else if (条件2) {

} else if (条件3) {

} else {
    
}

2> 特点
* 同一时刻,只有一个大括号里面的代码会被执行

2.switch
1> 结构
switch (数值)
{
    case 数值1:
        break;
    
    case 数值2:
        break;
    
    case 数值3:
        break;
    
    default:
        break;
}
2> 特点
1> 默认情况下,只有一个case后面的代码会被执行
2> 如果一个case后面没有break,而且这个case成立,就会按顺序执行后面所有case中的语句,直到遇到break为止
3> 如果要在case后面定义一个新的变量,必须用大括号{}包住

二、循环结构
1.while
1> 特点:如果一开始条件不成立,永远不会执行循环体
2.do while
1> 特点:不管条件是否成立,至少会执行一次循环体
3.for
4.选择
1> 一般优先使用for循环
2> 然后再考虑while
3> 最后再考虑do while

H:/C语言入门/__day_3/17-include的简单实用.c
/*
 include
 1> 作用:拷贝右边文件的所有内容到#include所在的位置
 2> 自定义的文件用"",系统自带的文件用<>
 3> #include <stdio.h>的目的:拷贝printf函数的声明
 */
#include <stdio.h>

int main()
{
    printf("哈哈哈\n");
    
//#include "haha/abc.txt"
#include "/Users/apple/Desktop/iOS课堂共享/0722课堂共享/0727/代码/include/haha/abc.txt"
    return 0;
}

H:/C语言入门/__day_3/18-编译和链接.c
/*
张三
 编写main函数
 
 链接:把项目中所有相关联的.o目标文件、C语言函数库合并在一起,生成可执行文件

*/
#include <stdio.h>
#include "李四.h"

int main()
{
    int score1 = 100;
    int score2 = 70;
    
    int c = average(score1, score2);
    int d = sum(score1, score2);
    
    printf("平均分是%d\n", c);
    printf("总分是%d\n", d);
    
    // \n是一个转义字符
    // \t tab键
    // \" 一个双引号
    // printf函数返回的字符串常量的字符数,并不是字数
    // 1个汉字占据3个字符
    int e = printf("哈h\"\ta\n");
    
    printf("e=%d\n", e);
    
    return 0;
}

/*
1.函数的定义放.c文件,函数的声明放.h文件
2.如果要使用某个.c文件中定义的函数,只需要#include这个.c文件对应的.h文件
3..h文件的作用:被别人拷贝。编译链接的时候不需要管.h文件
4.cc xx.o xxx.o 将多个目标文件链接在一起
  cc xx.c xxx.c 将多个源文件编译、链接
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值