第三章基本语句与顺序结构程序设计

一.语言程序的基本语句

      表达式语句、函数调用语句、控制语句、复合语句、空语句。

      复合语句:一般的认为是将多条语句复合成一条语句去逐语句执行

      1. 增强可读性
      2. 控制语句想控制多行语句时 就得加{}
      3. 在以后 我们认为{} 代表作用域({}中的内容作用于哪一个区域)

二.数据的输入输出

    C语言中数据的输入、输出是由函数来实现的。

      格式输入输出函数 printf( )scanf( ) 

      字符输入输出函数 putchar( )getchar( )

  1.缓冲区

      缓冲区:用于临时存储数据的区域  由系统控制(键盘缓冲区)

       当我们执行一个复杂的程序时, 可能会有多个输入 且不是同时输入的,程序在编译时,就会了解一共需要输入多少个数据  当程序段执行到输入时  就会从键盘缓冲区拿数据  且是一一对应的去拿  而不是边输入边执行  所有的输入内容都会记录在缓冲区中   运行前分配  程序运行结果或者全部读取后释放(只要缓冲区内有数据,缓冲区就不会被释放) 程序会先从缓冲区去读取内容  如果缓冲区数据不够用  就会使控制台停下来 等待用户继续输入  如果够用 就会一直执行下去 控制台不会阻塞  回车代表给缓冲区送入数据程序开始读取缓冲区内记录的内容。

      所有从控制台读取到的数据 都是字符串。

  2.格式输出函数: printf( )函数    

      头文件:stdio.h

      功能:将字符串中的内容打印到控制台中

      格式: printf(“格式控制字符串”[ , 输出表列] );

      格式控制: 由双引号括起来的字符串, 用于指定输出格式。   

        普通字符: 按原样输出的字符

        格式说明: 用来指定需输出数据的输出格式 形式: %[ 修饰符 ]格式字符

        输出表列: 需要输出的数据列表,彼此间用逗号分隔, 可以是任意合法的表达式。

    2.1.用于输出的修饰符

                      

     2.2.用于输出的格式字符

                      

       

        注意:输出表列可以是任何可以计算出结果数据

              但是格式符与类型必须一致 %d %c0-127)

              当格式说明个数<输出项时,多余的输出项不予输出。

              当格式说明个数>输出项时,输出不定值

      d格式符

        作用: 输出一个带符号的十进制整数(正数不输出符号)

         格式: ① %d ② %md ③ %ld 其中:

            %d—按整型数据的实际长度输出;

            m—字段宽度;(大于字符长度时:正数有对齐补空格,负数左对齐补空格。小于字符长度时,按字符本身输出)

            %ld—输出长整型数据

            %hd—输出短整型数据

      c 格式符

        作用: 用来输出一个字符

        一个整数,如果在0~127之间,也可用字符形式输出,系统会将该整数转换成对应的ASCII码字符

      s 格式符

        作用: 用来输出一个字符串

        格式: ① %s ② %ms ③ %m.ns 其中:

             m—输出的字符串占m列;

              n—输出字符串中左端n个字符

      f 格式符

        作用: 以小数形式输出单、双精度实数。

         格式: ① %f ② %m.nf 其中:

          %f—整数部分全部输出, 隐含输出6位小数。

          m—字段宽度(整数、小数位数、数符、小数点)

          n —小数位数的个数, 如: %12.4f

      s 格式符

        作用: 以标准化的指数形式输出实数(小数点前必须有而且只能有一位为非0数字)。

        格式: ① %e ② %m.ne

          %e —默认输出6位小数

          m—字段宽度(指数部分占5列)

          n —小数部分的位数

      我们往变量中赋值的方式:

      1. 程序内直接赋值    a=7;
      2. 从控制台读取  scanf
      3. 从文件读取  fscanf
      4. 从已有的变量中读取 sscanf

    八进制 十六进制数字没有负数 %o %x 来输出整型数  默认输出的是无符号数

    除 X, E, G 格式符外, 其他格式符必须用小写字母。

   3.格式输出函数: printf( )函数 

        功能:按格式控制所规定的格式, 从指定的输入设备(一般为键盘)上把数据输入到指定的变量中。

        格式: scanf(“格式控制”,地址表列 );

          格式控制: 普通字符: 需原样输入的字符, 通常不使用。

                     格式说明: 用于指定需输入数据的输入格式

                     形式: %[ 修饰符 ] 格式字符

              地址表列: 给出各变量的地址 “

                         地址是由“&”运算得到的

                             “&”是取地址运算符, 得到变量在内存中的地址。单目运算符,右结合性。

          

      当格式符的个数少于参数列表个数时,多余的将忽略。
       当格式符的个数多于参数列表的个数时候,将输出不确定的值。

     3.1修饰符

 

                               

    3.2格式符

                               

     3.3格式输出使用与注意

      (1)输入数据时采用的分隔符应与格式控制中的分隔符一致。格式控制中无普通字符时,   输入数值型数据可用空格、Tab键、回车键作分隔符。

        (2) 输入数据时不可规定精度,  但可指定宽度。

         (3)输入格式符带有*,表示该数据不赋值。

         (4)用C格式符输入字符时,任意字符均为有效字符

        (5)无符号数可用 %d、%o、%x 格式输入

        (6)在下列情况下可认为数据输入结束: (1)遇空格、回车、 Tab键;

                          (2)遇宽度结束;

                          (3)非法输入。

 

遇到空格、回车键、TAB键读取结束

遇到异常字符结束

指定宽度结束

%s

yes

no

yes

%d%o%x%u%f

yes

yes

yes

%c

no

no

yes

  4 字符输入、输出函数

    字符输入函数

      格式: putchar( c );

      功能: 向终端输出一个字符

      说明: C为参数, 可以是字符型变量、整型变量、字符型常量、表达式或转义字符, 但只能是单个字符而不能是字符串。

      例如:

        #include <stdio .h>

        void main( )

        {

          char a =’O’ ;

          int b=75;

          putchar( a );

          putchar( b );

        }

    字符输入函数  

      格式: getchar( );

      功能: 从键盘读入一个字符 char ch = getchar( );

      说明: 只能读取一个字符 该字符可赋给字符变量、整型变量或作为表达式的一部分。

      例如:

        #include <stdio .h>

        void main( )

        {

           char c ;

          c=getchar( );

          putchar(c);

        }

 三.数组

  1.基本概念

    是一组  数目固定 类型相同 连续存放的 有序集合!

      数目固定: 定义时 决定分配多少个元素

      类型相同: 数组中的元素类型相同

      连续存放: 在内存中 连续存储

    格式:  类型说明符  数组名 [常量表达式];

      数组名 代表数组的整个空间   sizeof(数组名)==整个数组分配的字节数

           数组名即数组的首地址,是一个常量  数组中的每一个元素都是变量

       使用下标运算符 [ ] 来获取数组的元素  优先级:1级

       数组n个元素  a[0]表示第一个元素  a[n-1]代表最后一个元素 否则超范围 逻辑错误

      初始化   int a[10] = {0};

      赋初值  1.全赋值为0  {0}

          2.部分初值 {1,2,3,4} 其余默认为0

          3 .赋全部初值 {1,2,3,4,5,6,7,8,9,10}

        初始化时  [ ] 必须是一个常量 代表开辟了这么多个元素的数组

      初始化后  [ i]内的常量、变量、表达式 代表是的下标获取第i个元素

      因为定义数组时  数目是固定的 一般的我们会多开一些空间

      整型数组没有办法计算其中有多少个有效的元素  0也是有效数据

      字符数组可用 strlen(数组名)来计算    代表字符串的结束

  数组的常用操作   

  1. 逆序   将元素逆序    5 4 3 2 1      1 2 3 4 5

    2.两数交换  可以定义一个中间变量

    

 

遇到空格、回车键、TAB键读取结束

遇到异常字符结束

指定宽度结束

%s

yes

no

yes

%d%o%x%u%f

yes

yes

yes

%c

no

no

yes

原文地址:https://www.cnblogs.com/hyt19911004/p/12318930.html