• C语言学习笔记(五)顺序程序设计


    1语句概述

    1.1普通表达式语句:表达式后加分号就是一个表达式语句,语句与表达式不同,是无值的,而表达式是有值的。

    1.2流程控制语句:流程控制语句主要用来控制程序执行走向,以实现程序的各种结构方式,它有特定的关键字等,主要分为分支和循环两种。

    分支流程控制语句:ifswitch

    循环流程控制语句:forwhiledo while

    1.3跳转语句:跳转语句的作用主要是让程序从正常执行的走向中跳转到其它部分,常见跳转语句如下

    间断语句:breakcontinue

    转向语句:goto

    Return语句:return

    1.4复合语句:由一些语句组成,放在一个大括号中形成一个整体,句型如下:

    {

    语句1

    语句2

    ......

    语句n

    }

    C语言语法规定,复合语句作为一条语句来处理。

    例子代码:

    #include "stdio.h"
    main(){
      int a=11,b=21,c=31;
      printf("a=%d\tb=%d\tc=%d\n",a,b,c);
      { int b=22;                 /*复合语句开始*/
        float c=3.3;
        printf("a=%d\tb=%d\tc=%f\n",a,b,c);
        a=b;
      }                         /*复合语句结束*/
      printf("a=%d\tb=%d\tc=%d\n",a,b,c);
    }

    输出结果如下:

    a=11 b=21 c=31

    a=11 b=22 c=3.300000

    a=22 b=21 c=31

    上面的代码可以和下面的代码对比运行:

    #include "stdio.h"
    main(){
      int a=11,b=21,c=31;
      printf("a=%d\tb=%d\tc=%d\n",a,b,c);
      { int a=1;
    int b=22;                 /*复合语句开始*/
        float c=3.3;
        printf("a=%d\tb=%d\tc=%f\n",a,b,c);
        a=b;
      }                         /*复合语句结束*/
      printf("a=%d\tb=%d\tc=%d\n",a,b,c);
    }

    程序运行结果:

    a=11 b=21 c=31

    a=1 b=22 c=3.300000

    a=11 b=21 c=31

    可以看到,在复合语句中声明的变量只在复合语句中起作用。

    1.5空语句:空语句一般指只有一个分号占位,一般用在程序设计初期,表示待编写的函数或代码。

    1.6各种语句整体介绍:

    #include "stdio.h"
    main(){
      int a=10,b=20,c;                 /* 声明语句 */
      if(b>a)                         /*控制语句  */
      {;                              /* 复合语句  */
       c=a+b; ;                       /* 表达式语句  */
       printf("%d",c);                  /*函数调用语句  */
        }
      else
      ;                               /* 空语句 */
    }

    2库函数的调用与输入输出的关系

    2.1标准的库函数是存放在函数库中的,因此使用时必须要告知计算机,说明函数库属于哪个库,此过程为函数的声明,例如:

    #include "math.h"  /*标准数学函数的声明*/

    Main(){

    ...

    y=sin(x); /*库函数的调用*/

    ...

    }

    IncludeC语言中的特定字,是包含的意思,包含的文件一般为.h,称头文件。

    2.2C语言中提供了一些输入输出的标准库函数,例如printfscanf,使用时必须将函数库的头文件stdio.h包含进程序中。

    3格式化输出

    3.1printf函数:它的作用是向终端输出数据。

    函数格式:printf("格式控制语句",输出项1,输出项2,......);

    例如:printf("%f",j); 输出浮点类型的变量j%f为控制符。

    常见的格式控制符:

    %d--十进制整型,%o---八进制无符号整型,%f输出实数,%s--字符串,%c--输出单个字符等。

    4字符输出

    4.1字符输出可以利用putchar函数,在stdio.h中已经定义。

    例子代码:

    #include "stdio.h"
    main(){
      char a,b,c;
      a='C';
      b='A';
      c='T';
      putchar(a);
      putchar(b);
      putchar(c);
      putchar('\n');
      putchar('\101');
      putchar('B');
      putchar('c');
    }

    注:该函数不能输出两个或两个以上的字符数据。

    5格式化输入

    5.1scanf函数:作用是从键盘获取数据,格式化后再赋值给变量。

    调用形式:scanf(格式控制语句,输入项);

    6字符输入

    6.1getch()getche()函数:功能都是读入一个字符。

    两者的区别是:getch()函数不将读入的字符回显到屏幕上,getche()却显示。

    例子代码:

    #include<stdio.h>
    main()
    {
      char c,ch;
      c=getch();                 /*从键盘上读入一个字符不回显送给字符变量c*/
      ch=getche();               /*从键盘上带回显的读入一个字符送给字符变量ch*/
      putchar(c);                /*输出该字符*/
      putchar(ch);
    }

    6.2getchar()函数:作用是从终端输入一个字符。getchar函数将空格符、制表符、和换行符都作为有效字符录入。

    例子代码:

    #include "stdio.h"
    main()
    { char c1,c2;
      c1=getchar();
      c2=getchar();
      putchar(c1);
      putchar(c2);
    }

    7顺序程序设计

    例一:计算一元二次方程的根。

    代码:

    #include "math.h"
    main()
    {
      double a,b,c;                   /*声明系数*/
      double x1,x2,p;
      printf("pleaseinputa,b,c:");
      scanf("%lf%lf%lf",&a,&b,&c);      /*输入系数*/
      printf("\n");
      p=b*b-4*a*c;                   /*p存放判别式的值*/
      x1=(-b+sqrt(p))/(2*a);            /*计算方程的根*/
      x2=(-b-sqrt(p))/(2*a);
      printf("x1=%f,x2=%f\n",x1,x2);    /*输出结果*/
    }

    例二:两位整数倒序。

    代码:

    #include <stdio.h>
    main()
    {
      int m,n;
      printf("inputm(10-99):");
      scanf("%d",&m);
      printf("\n");
      n=m%10;
      m=n*10+m/10;
      printf("m=%d\n",m);
    }


  • 相关阅读:
    Spring AOP @Before @Around @After 等 advice 的执行顺序
    web服务启动spring自动执行ApplicationListener的用法
    Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
    ApplicationContextAware使用理解
    查询oracle比较慢的session和sql
    使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
    C#控制台程序中处理2个关闭事件的代码实例
    mysql优化----第一篇:综述
    HMM 隐马尔科夫模型
    EM 期望最大化算法
  • 原文地址:https://www.cnblogs.com/SunnyYue/p/3970282.html
Copyright © 2020-2023  润新知