黑马程序员------C 语言学习笔记---程序基本结构

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

第二  程序基本结构

一 分支结构

01 单分支结构

格式:

if(表达式)

{

语句;

}

其中,“表达式”为判断条件,只要表达式的值不为0,就认为条件成立。

02 双分支结构

格式:

if(表达式)

语句1;

else

语句2;

其中,表达式的值不为0,则执行“语句1”,否则执行“语句2”。

// 输入两个整数,按从小到大的顺序输出这两个数

#include <stdio.h>
int main()
{
    int a;
    int b;
    int temp;

    // 提示用户输入两个整数
    printf("请输入两个整数:\n");

    //接受用户输入的两个整数
    scanf("%d%d",&a,&b);

    // 比较输出
    if (a>b)
    {
        temp=b,b=a;
        printf("%d%d\n",temp,a);
    }
    else
    {
        printf("%d%d\n",a,b);
    }

    return 0;
}

03 多分支结构

格式:

if(表达式1)

语句1;

else if(表达式2)

语句2;

……….

else if (表达式 n)

语句n;

else

语句n+1;

其中,按顺序求各个表达式的值,如果某一个表达式的值为真,那么执行其后的相应语句,执行完后整个if语句结束,其余语句不会被执行;如果没有一个语句为真,那么执行最后的else语句。

// 输入三个数x1,x2,x3,按从小到大的顺序输出者三个数

#include <stdio.h>
int main()
{
    // 定义四个变量
    int x1,x2,x3,temp;
    // 提示用户输入三个数
    printf("提示用户输入三个数:\n");
    // 接受用户输入的数据
    scanf("%d%d%d",&x1,&x2,&x3);
    // 比较并输出
    if (x1>x2)
    {
        temp=x1;x1=x2;x2=temp;
    }
    if (x1>x3)
    {
        temp=x1;x1=x3;x3=temp;
    }
    if (x2>x3)
    {
        temp=x2;x2=x3;x3=temp;
    }

    printf("%d,%d,%d\n",x1,x2,x3);

    return 0;
}

04  if语句的嵌套

格式:

if(表达式1)

if(表达式2)语句1;

else 语句2;

else

if(表达式3)语句3;

else 语句4;

其中,注意else与if的配对关系。C语言规定else总是与它前面最近的,且没有与其他else配对的if进行配对。

05 条件运算符

条件运算符“?:”是三目运算符,其功能相当于简单的if-else语句。

格式:

表达式1?表达式2:表达式3

其功能是,先计算“表达式1”的值,若为真就取“表达式2”的值为整个条件表达式的值,若为假,就取“表达式3”的值为整个表达式的值。

注意:

*条件运算符的优先级高于赋值运算符,低于关系运算符和算术运算符

例:max =a>b?a:b  等价 max=((a>b)?a:b)

*条件运算符的结合性为“自右向左”

a>b?a:c>d?a:d 等价 a>b?a:(c>d?a:d)

*表达式2和3不仅可以是数值表达式,还可以是赋值表达式和函数表达式

*表达式类型可以不同,条件表达式值的类型是表达式2和表达式3中类型较高的类型。

x>y?1:1.5 //x>y时返回值是1.0

// 某公园门票的票价为每人10元,一次购票满30张,每张可少收一元,编写一个收费程序
#include <stdio.h>
int main()
{
    int number,sum,money,balance; // 定义变量

    printf("输入人数:\n");
    scanf("%d",&number);

    if (number>=30)
    {
        sum = number*9;
    }
    else if(number*10<270)
    {
        sum = 10*number;
    }
    else
    {
        sum = 270;
    }

    printf("应受门票为%d元\n",sum);

    printf("实际收钱为:\n");

    scanf("%d",&money);

    balance = money-sum;

    printf("balance=%d\n",balance);

    return 0;

06  switch语句

switch的基本格式:

switch()

{

case 常量表达式1:语句组1;【break;】

case 常量表达式2:语句组2;【break;】

………………………….

case 常量表达式 n: 语句组 n;【break;】

[default: 语句组 n +1;]

}

// 输入两个整数,输出较大的那个

#include <stdio.h>
int main()
{
    int a,b;
    printf("请输入两个整数:\n"); // 提示用户输入数据
    scanf("%d%d",&a,&b);  // 接受数据

    // 判断输出
    if (a>b)
    {
        printf("max=%d\n",a);
    }
    else
    {
        printf("max=%d\n",b);
    }

    return 0;

注意:

l switch后面的表达式只能是整型,字符型,枚举型表达式

l 当表达式的值与后面某个case的值相等时,就执行case后面的语句。然后,流程控制转移到下一个case中语句继续执行。如果不想继续执行就执行break语句使流程跳出switch结构,即终止switch语句的执行。

l 如果表达式的值与所有常量表达式都不匹配,就执行default后面的语句

各常量表达式的必须互不相同,否则就会出现矛盾

时间: 2024-10-08 03:19:19

黑马程序员------C 语言学习笔记---程序基本结构的相关文章

黑马程序员------C 语言学习笔记---C语言基本语法成分

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1.1     C语言基本语法成分 #include <stdio.h> int main() { #define PI 3.14 int r; double s; double m; // 提示用户输入半径 pri

黑马程序员------C 语言学习笔记---C语言的基本结构

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 第一 C语言结构基础 1.1     C语言的基本结构 01          #include <stdio.h> :表示文件包含,功能是将头文件stdio.h中的内容包含到程序中. 02          mai

黑马程序员------C 语言学习笔记--- C语言数据类型

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1.1     C语言数据类型 01 整型数据 l 整型常量 十进制数:以非0数字开头.八进制:以数字0开头.十六进制:以0x或者0X开头 l 整型变量 int , long int,  short int, #include

黑马程序员------C 语言学习笔记---C语言的表达式和语句

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1.1     C语言的表达式和语句 由运算符讲常量,变量,和函数调用连接起来的式子称为表达式,常见的形式为赋值语句,函数调用语句,空语句. l 赋值语句:先计算=右边的值然后将其赋值给左边的变量 注意点:变量必须先定义后使用:

24-黑马程序员------OC 语言学习笔记--- autorelease和ARC

  黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- autoreleaseOC提供了autorelease语法,系统可以將很多对象放到一个自动释放池中,在某个时刻统一release一次.这样就不用再次调用release方法.1.autorelease的基本用法:   1>

23-黑马程序员------OC 语言学习笔记---内存管理

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 对于面向对象的变成语言,程序需要不断地创建对象.初始,创建的所有程序通常都有指针指向它,程序可能需要访问这些对象的实例变量或调用这些对象的方法,随着程序的不断执行,程序再次创建了一些新的对象,而那些老的对象已经不会再被调用,也不

28-黑马程序员------OC 语言学习笔记--- Foundation03

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1    NSSet和NSMutableSetNSSet和NSArray一样,也是一个集合,但是集合里的多个对象没有明显的顺序.NSSet不允许包含相同的元素,如果试图把两个相同的元素放在同一个NSSet集合中,则会只保留一个元

11-黑马程序员------C 语言学习笔记---C语言的变量的作用域和储存类型

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 五 变量的作用域和储存类型 01 变量的作用域是指该变量有效地区域,C语言中得变量分为局部变量和全局变量. 02 局部变量: *局部变量的作用域仅限于定义它的代码块内,离开代码块内便失去作用. *形参只有在函数内有效,其也属于局

09-黑马程序员------C 语言学习笔记--- C语言函数

黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 一 函数定义 01 函数分为库函数和自定义函数两种 函数一般格式: 函数返回值类型 函数名(数据类型 参数1, 数据类型 参数2,……..) { 函数体: } *函数若不需要返回值类型,则用void表示 *函数的标志是括号,不管