首页 > 代码库 > 实验7总结

实验7总结

一、知识点:

1.数据的基本类型:

 (1)整型

  • 短整型(short)
  • 整型(int)
  • 长整形(long)

 (2)浮点型

  • 单精度浮点型(float)
  • 双精度浮点型(double)

(3)字符型

  •  数据的基本表现形式为常量和变量

2.常量和变量

(1)常量:

  • 符号常量
  • 整型常量
  • 实型常量
  • 字符型常量
  • 常量的类型通常由书写格式决定。 例如:123(整型) 4.56(实型) ‘A’(字符型)。
  • 符号常量:用一个标识符代表一个字符常量。
  • 标识符:标识对象名字的有效字符序列称为标识符。
  • 标识对象名字的有效字符序列称为标识符。
  • 系统预定义的标识符,如printf, main, sin。
  • 用户标识符,如用户自己定义的符号常量、变量、函数名等。
  • 标识符只能由字母、数字和下划线组成,且第一个字符不能为数字。

(2)变量:

  • 变量的定义和使用

3.整型数据的输入输出

  • printf (格式控制, 输出参数1, ... , 输出参数n);
  • scanf (格式控制, 输入参数1, ... , 输入参数n);

  • 格式控制说明  %…

                           十进制     八进制      十六进制

int                          %d           %o              %x

long                       %ld          %lo             %lx

  • 输出格式控制说明中,可以加宽度限定词,指定整

    型数据的输出宽度,例如:%md,指定了数据的输出

    宽度(包括符号位),若数据的符号位小于m,则左

    端补空格,若大于m,按实际位数输出。

4.实型常量(实数、浮点数)

  • 实数的表示
  • 浮点表示法:由正、负号、0-9和小数点组成,必须有小数点,且小数点的前、后至少一边要有数字。

    例:0.123    123.4    12.      .12

  • 科学计数法:由正、负号、0-9和字母e或E组成,e之前要有数据,之后的指数只能是整数。例:6.026E-3     1.2e+10    1E-5       

       E5,1.2E3.0    (不合法)

  • 实数的类型
    double

5.实型数据的输入和输出

  • 输入  scanf()
  • float:%f 或%e

     以小数或指数形式输入一个单精度浮点数

  • double: %lf或%le

    以小数或指数形式输入一个双精度浮点数

  • 输出   printf()

    float 和double使用相同的格式控制说明

  • %f, %lf

    以小数形式输出浮点数,保留6位小数

  • %e
    以指数形式输出
  • scanf() 和 printf()  

     %c

    char ch;

    scanf("%c", &ch);

    printf("%c", ch);

  • getchar() 和 putchar()

    char ch;

    ch = getchar( );

    putchar(ch);

    输入输出一个字符

6.类型转换

 不同类型数据的混合运算,先转换为同一类型,再运算。

  (1)自动类型转换(赋值运算)

  变量 = 表达式

  • 计算赋值运算符右侧表达式的值
  • 将赋值运算符右侧表达式的值赋给左侧的变量
  • 将赋值运算符右侧表达式的类型自动转换成赋值号左侧变量的类型

  (2)强制类型转换

  强制类型转换一般形式:

  (类型名)  表达式

7.表达式

  • 算术表达式:单目: +  -  ++  --

                              双目: +  -  *  /  %

  • 赋值表达式:简单赋值 =  
           复合赋值( +=  -=  *=  /=  %=   !=)
  • 关系表达式:>  >=   <   <=   ==   !=
  • 逻辑表达式:! &&   ||
  • 条件表达式?:
  • 逗号表达式 ,
  • 其他运算 : sizeof

8.++,--运算符

自增、自减运算符使变量的值增1或减1。有4种形式:i++、++i、i--、--i 。

i++(i--)和++i(--i)的区别:

执行完自增(减)运算后i的值都加(减)1,

但表达式的值不同:i++(i--)的值为原值,

         ++i(--i)的值为增(减)1后的值。

注意:

(1)自增运算符(++),自减运算符(--),只能用于变量,而不能用于常量或表达式。
(2)++和--的结合方向是“自右至左”。
9.条件表达式

exp1 ? exp2 : exp3

10.逗号表达式

表达式1, 表达式2,  ……, 表达式n

先计算表达式1,然后计算表达式2,……,最后计

算表达式n的值,并将表达式n的值作为逗号表达式

的值.

11.其他运算

长度运算符 sizeof

单目运算符,计算变量或数据类型的字节长度

12.数组

一、一维数组的定义

⒈  定义方式:
  类型名  数组名[整型常量表达式];

  例:int  a[10];

⒉  说明:

        ①  数组名的命名规则和变量名相同,遵循标识符命名规则    

        ②  数组名后的常量表达式用[ ]括起来。

        ③  常量表达式表示元素的个数,即数组长度。

              例: a[10]表示数组a中包括10个元素,分别为

                       a[0]~a[9]     

二、一维数组元素的引用

  数组必须先定义,然后使用。C语言规定只能逐个引用数组元素而不能一次引用整个数组。

        引用形式为:

    数组名[下标] 

三、一维数组的初始化

         可以用赋值语句或输入语句使数组中的元素得到值,这个过程是在程序运行期间执行的。同时也可以使数组在程序运行之前初始化,即在编译期间使之得到初值。

对数组元素的初始化可以用以下方法实现:

⒈  在定义数组时,对数组元素赋以初值。

          如:int   a[10]={0,1,2,3,4,5,6,7,8,9};

⒉  可以只给一部分元素赋值。

          如:int   a[10]={0,1,2,3,4}; 

      表示只给前5个元素赋初值,后5个元素自动赋以0值。

⒊  对static数组不赋初值,系统会对所有元素自动赋以0值。

      即, 如果想使数组a中全部元素值为0,可以这样定义数组: 

                   static  int   a[5];

⒋  在对全部数组元素赋初值时,可以不指定数组长度。

              int a[5]={1,2,3,4,5}; 

              int a[  ]={1,2,3,4,5};

四、二维数组的定义

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

       例:float  a[3][4],b[5][10]; 

说明:

  ①  可以把二维数组看作是一种特殊的一维数组。

            a[0]       →      a[0][0]   a[0][1]   a[0][2]   a[0][3]  

            a[1]       →      a[1][0]   a[1][1]   a[1][2]   a[1][3]

            a[2]       →      a[2][0]   a[2][1]   a[2][2]   a[2][3]

   ②  二维数组在内存中按行存放。

   ③  多维数组定义方式与二维数组类似

                int    x[3][4][2];

                float   y[4][2][3];

五、二维数组的引用

    引用形式为: 数组名[下标][下标]

        注:下标可以是整型表达式,但应在已定义的数组大小的      

                范围内。

六、二维数组的初始化

 ⒈  分行给二维数组赋初值。如:

        int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

⒉  可以将所有数据写在花括弧内,按数组排列的顺序对各元素赋初值。

    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}

⒊  可以对部分元素赋初值,不赋的为0。如:

   int a[3][4]={{1},{5},{9}}

   int a[3][4]={{1},{0,6},{0,0,11}};

⒋  如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

           int  a[3][3]={1,0,3,4,0,0,0,8,0}

           int  a[ ][3]={1,0,3,4,0,0,0,8,0} 

           int  a[ ][3]={{1,0,3},{4,0,0},{0,8,0}}

二、实验中遇到的问题及解决方法:

本次实验主要是将上次实验内容编写成菜单,需要将之前的代码主体部分复制就行,可总是出现错误。

解决方法:将函数主体部分复制到case中,在最上面声明函数,最下面定义函数。

三、实验心得体会:

仿照老师在课上的编写菜单过程编写本次作业,原本觉得会比较简单,可实际操作起来发现还是有疏漏的地方

实验7总结