4.C语言之程序结构


4.1.程序结构概述
(1)C语言中共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构。
(2)顺序结构:按照实物本身特性,必须一步接着一步顺序完成。
(3)选择结构:到某个节点后,会根据一次判断结构来决定之后走哪一个分支。
(4)循环结构:关键在于根据判断结果决定循环体执行多少次。循环体是一段代码,是循环结构中的主体部分。
(5)顺序结构不需要判断,因为下一句指令就是要执行的;选择结构和循环结构都需要进行判断,然后根据判断结果决定怎么办。
(6)逻辑有一种类型,叫bool类型,该类型只有两个值,逻辑真和逻辑假。C语言中通过判断运算符可以写出判断表达式,判断表达式的最终的值就是bool类型,该判断表达式的bool值就决定了选择结构如何选择、循环结构如何循环。


4.2.选择结构详解
(1)C语言中的选择结构有if else和switch case两种。
(2)if else选择结构:涉及到if、else、else if三个关键字。
这里写图片描述

这里写图片描述
(3)switch case选择结构:涉及到switch、case、break、default四个关键字。
这里写图片描述
(4)if else和switch case比较:
if else适用于条件判断比较复杂但分支数较少的情况,switch case适用于条件判断较简单但分支数较多的情况;if case可实现所有的选择结构,switch case只能实现部分选择结构;在适合使用switch case的情况下优先使用switch case,否则就不得不使用if else。


4.3.循环结构详解
(1)C语言中的循环结构有for循环、while循环、do while循环三种。
(2)for循环:涉及到for关键字。
这里写图片描述
(3)while循环:涉及到while关键字。
这里写图片描述
(4)do while循环:涉及到do关键字。
这里写图片描述
(4)循环结构中最基本的要素为循环控制变量初始化、循环终止条件、循环控制变量增量、循环体;while循环是先判断后执行,do while循环是先执行后判断。


4.4.基础知识
(1)当我们定义了一个局部变量,但没有初始化的时候,该局部变量的值的随机不可预料的。
(2)理解和记忆是相互促进的,如果看不懂,就去记忆,记住了自然就明白了;如果记不住,就去理解,理解了自然就记住了。


4.5.练习题目
(1)给三个数,打印出其中最大的数。
(2)规则:90分及以上为优,80分及以上为良,60分及以上为及格,以下为不及格,然后输入一个学生分数,然后printf打印“you” “liang” “jige” “bujige”。
(3)计算100以内所有奇数的和。
(4)算一下10!(10*9*8*7*····1)。
(5)打印一张ASCII码表(提示:数字用%d,字符用%c打印)。


4.if
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:演示if else if程序结构的基本使用。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int a = 333, b = 33, max = 0;

    if (a > b)
    {
        max = a;
        printf("ture.\n");
    }
    else if (a == b)
    {
        max = a;
        printf("a==b.\n");
    }
    else
    {
        max = b;
        printf("false.\n");
    }
    printf("max=%d.\n", max);

    return 0;
}

4.switch
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:演示switch case程序结构的基本使用。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int num = 3;

    switch (num)
    {
        case 1: printf("A\n"); break;
        case 2: printf("B\n"); break;
        case 3: printf("C\n"); break;
        case 4: printf("D\n"); break;
        case 5: printf("E\n"); break;
        default: break;
    }

    return 0;
}

4.for
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:演示for程序结构的基本使用。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int i, sum;                 // 变量i和变量sum的值随机不确定。

    for (i=0, sum=0; i<10; i++) // 共执行10次循环体
    {
        printf("i = %d.\n", i);
        sum += i;
    }

    return 0;
}

4.while
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:演示while程序结构的基本使用。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int i = 1, sum = 0;

    while (i < 100)
    {
        printf("i = %d.\n", i);
        sum += i;
        i += 2;
    }
    printf("sum = %d.\n", sum);

    return 0;
}

4.dowhile
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:演示do while程序结构的基本使用。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int i = 1, sum = 0;

    do 
    {
        printf("i = %d.\n", i);
        sum += i;
        i += 2;
    }while (i < 100); // 特别注意这里需要加上分号
    printf("sum = %d.\n", sum);

    return 0;
}

4.test1
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:给三个数,打印其中最大的数。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int a = 5, b = 3, c = 8, max = 0;

    if (a >= b) // 先比较两个数,然后把较大的数与剩下的数比较
    {
        // a和b中,a较大
        if (a >= c)
        {
            max = a;
        }
        else 
        {
            max = c;
        }
    }
    else
    {
        // a和b中,b较大
        if (b >= c)
        {
            max = b;
        }
        else 
        {
            max = c;
        }
    }
    printf("a = %d b = %d c = %d max = %d.\n", a, b, c, max);

    return 0;
}

4.test2
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:规则:90分及以上为优,80分及以上为良,60分及以上为及格,以下为不及格。
 *       然后输入一个学生分数,然后printf打印“you” “liang” “jige” “bujige”。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int grade = 78;

    if (grade >= 90)
    {
        printf("you\n");
    }
    else if (grade >= 80)
    {
        printf("liang\n");
    }
    else if (grade >= 60)
    {
        printf("jige\n");
    }
    else
    {
        printf("bujige\n");
    }

    return 0;
}

4.test3
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:计算100以内所有奇数的和。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int i, sum;

    for (i=1, sum=0; i<100; i+=2)
    {
        printf("i = %d.\n", i);
        sum += i;
    }
    printf("sum = %d.\n", sum);

    return 0;
}

4.test4
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:算一下10!(10*9*8*7···1)。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int i, val;

    for (i=1, val=1; i<11; i++)
    {
        printf("i = %d.\n", i);
        val *= i;
    }
    printf("val = %d.\n", val);

    return 0;
}

4.test5
/*
 * 公司:XXXX
 * 作者:Rston
 * 博客:http://blog.csdn.net/rston
 * GitHub:https://github.com/rston
 * 项目:结构化程序设计
 * 功能:打印一张ASCII码表(提示:数字用%d,字符用%c打印)。
 */
#include <stdio.h>

int main(int argc, char **argv)
{
    int i;

    printf("----ASCII----\n");
    for (i=0; i<128; i++)               // ASCII数值0到127分别对应的字符
    {
        printf("\t%d \t%c\n", i, i);    // \t制表符用于格式对齐
    }
    printf("----ASCII----\n");

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值