• 计算机二级C语言概述 #00


    一、C语言的基本构成和格式

     1 #include “stdio.h”
     2 
     3 main()
     4 
     5 {
     6 
     7    int a,b,sum;/* 定义变量*/
     8 
     9    a=10;     /*把整数10赋值给变量a*/
    10 
    11    b=20;     /*把整数20赋值给变量b*/
    12 
    13    sum=a+b; /*把两数之和赋值给变量 sum*/
    14 
    15    printf(“a=%d,b=%d,sum=%d
    ”,a,b,sum);/*输出计算结果*/
    16 
    17 }
    View Code

    1)C程序由函数组成,一个程序必须且只能有一个主函数(main()),C程序总是从主函数开始执行,在主函数中结束。

    (2)定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有两个部分:定义部分和执行部分。定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。

    (3)C语言中每条语句都以分号“;”结束,分号时C语句的一部分。即使是程序的最后一个语句也不例外。分号是语句结束的标志。

    (4)一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。

      例如:i nt 是错误的,而int正确。

    (5)C语言的注释必须放在“/*”和“*/”之间,“/”和“*”之间不允许有空格。“/*”和“*/”之间不允许再插入“/*”或“*/”。注释可以出现在程序中的任意位置。注释部分不被执行。

    (6)C语言程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。但是过于“自由”的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习惯,是程序便于阅读。

     

    二、标识符

    (1) 标识符只能由字母、数字和下划线组成。

    (2) 标识符的第一个字符必须是字母或下划线。

    (3) 标识符的大小写字母是有区别的,如abc和ABC是两个完全不同的标识符。  

    (3) 标识符的分类:

    关键字:关键字是具有特定的含义的、专门用来说明C语言特定成分的一类标识符。详细的查阅附录二。

    预定义标识符:在C语言中它也有特定的含义。预定义标识符可以用位“用户表标识符”使用,只是这将使这些标识符失去了原来的意义。

    用户标识符:由用户根据需要定义的标识符被成为用户标识符。用户标示符用来给变量、函数、数组或者指针等命名。

     

    三、C语言的数据类型

    3.1  数据可以分为常量和变量。

    常量是指在程序执行中不变的量,常量分为:整型常数、实型常数、字符常量、字符串常量。

    整型数据:进制间的转换

     

    3.11  二、八、十六进制转为十进制

    规则:“按权相加”

     

    3.12  十进制转为二、八、十六进制

    规则:

    整数部分:基数除取余,逆序排列

    小数部分:基数乘取整,顺序排列

     

    3.13  二进制转为八、十六进制

    规则:三(四)合一,按序相拼(整数部分,从右向左取,小数部分从左向右取,位数不足补零)。

     

    3.14  八、十六进制转为二进制

    规则:一分三(四),按序相拼

     

    3.2  整型数据在内存中的存放形式

    1字节=8位,1Byte=8bit

    字长:指CPU能同时处理的二进制位数。由CPU的型号而定。如:16位微机的字长就是16位或2字节。

    1GB=1024MB,1MB=1024KB,1KB=1024B

    B:表示字节,字节是表示存储容量的最小单位。位(bit):是计算机中信息表示的最小单位。

     

    3.21  正整数在内存中用“原码”形式存放(直接转换为二进制即可)。

    如:5

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    1

    二字节能存放的最大数是:32767

    0

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    对带符号数,最高位是符号位,用0表示正,用1表示负。

     

    3.22  负整数在内存中用“补码”形式存放。

    取补码的步骤:

    (1)忽略负号,求出原码。

    (2)将原码按位取反(0 、1 互换)。

    (3)在第二步的基础上加1。

    如:取-5的补码。

    (1)

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    1

    (2)

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    0

    1

    0

    (3)

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    0

    1

    1

    将补码转换成相应的整数的步骤:

    (1)将补码按位取反加1。

    (2)将步骤1得到的二进制数转换成十进制数,然后加上负号即可。

    例如:

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    按位取反加1

    0

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

                                                 +1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    转换成十进制:1×21532768

    加负号:-32768

    几个特殊的带符号整数:

    1000000000000000   -32768

    0111111111111111     32767

    1111111111111111     -1

     

    3.23  无符号整数:只有正整数,没有负整数,最高位不表示符号位,每一位均参与转换。

    二进制

    带符号整数

    无符号整数

    1111111111111111

    -1

    65535

    1000000000000000

    -32768

    32768

    例2-12:若有:int a=-1; unsigned b=65535;则

    printf(“%d,%u,%d,%u”,a,a,b,b);  输出结果是:-1,65535,-1,65535

    数据益出问题:

    例2-13:若有int a=32767;则a=a+1的结果是:

    -32768

    例2-14:若有unsigned b=65536;则b的值是:0

    分析:32767:01111111111111111

                              +1

    100000000000000

    将100000000000000按照带符号数转为十进制为-32768

    65535:1111111111111111

    +1

    11111111

    11111111

    +1

    1

    00000000

    00000000

    65536

    unsigned b=655536;而b属于无符号整型,在内存中只占两字节,所以只能包括16位。

     

     标准C没有具体要求规定各类型数据所占内存的字节数, 现以这次考试标准viusal c++6.0为例,说明各类型变量所占的位数。

    类型

    所占位数

    所占字节数

     

    类型

    所占位数

    所占字节数

    short

    16

    2

    unsigned int 

     32

    4

    int 

    32

    4

    unsigned long

     32

    4

    long

    32

    4

    float

     32

    4

    unsigned short

    16

    2

    double

     64

     8

     

     

    3.3  实型数据(浮点数)

    3.31  实型常量

    (1)小数形式:由数字和小数点组成,必须有小数点,小数点的某一侧可以没有数字。如:.23 ,123.876 ,123.

    (2)指数形式:用“e”或“E”后接一个整数,表示以10为底的幂数。

    注意: “e”或“E”之前之后必须有数字,且之后的数字必须是整数。他们和前后的数字之间不能有空格。

    例如:

    例2-15:下列合法的常量是( )。

    A.-32169    B.0128  C.0XDEFG  D.13E0.5

    例2-16:下列合法的实型常量是(  )。

    (A) 0Xff  (B)124E  (C) 1.23E5.0  (D) 3.E2  (E) 1.25E+2  (F).23e+02  

    3.32  实型变量

    单精度型 float 占 4 字节

    双精度型 double 占 8 字节

    长双精度 long double 占 16字节(较少用)

     

     

    四、表达式与运算符

    4.1  算术运算符及其表达式:+  -  *  /  %

    %:(求余运算)

    注意:

    (1)%两边必须是整型数据。12.0%3 表达式是错误的。

    (2)求余(%)的方法是:忽略符号,求出余数,再将所得余数的符号定为与被除数相同。

     例如:17%3 结果是:2;

                17%-3 结果是:2;

                 -17%3 结果是:-2;

                -17%-3 结果是:-2。

     

    4.2  强制类型转换

    强制类型表达式:(类型名)表达式

    注意:类型名(表达式)这种形式是C++的强制类型表达方式。

    五、赋值运算符及其表达式

    5.1  赋值运算符 =

     格式:变量名=表达式

    功能:将表达式的值赋给左边的变量。

    注:

    (1)赋值运算符左边只能是一个变量,不能是常量,也不能是表达式。

             a+b=3    4=3 是非法的表达式

             a=6  a+(b=3) 都是合法的表达式

             a=b=20  a=(b=10)/(c=2) 都是合法的表达式

    (2)实型数据赋给整型变量时,小数部分被舍去,整型数据赋给实型变量时,系统自动将整型数据转换为实型数据。

    例如:float a; int b;

          表达式a=10%3 的值是1.0

          表达式b=a=10%3的值是1

     

    5.2  复合赋值运算符及其表达式:+= -=  *=  /=  %=  &=  |=  ^=  >>=  <<=

    例如:a+=3 相当于a=a+3,a/=b+4 相当a/=(b+4) 或a=a/(b+4)

    例:若a=12,则执行表达式a+=a-=a+a后a的值是多少?

    分析:a+=a-=(a+a)  /*a的值是12*/

       a+=a-=24    /*a的值是12*/

         a+=a=a-24   /*a的值是12*/

         a+=a=-12    /*a的值是12*/

         a+=-12      /*a的值是-12*/

         a=a+(-12)    /*a的值是-12*/

         a=-24       /*a的值是-24*/

     

    5.3  增、自减运算符及其表达式

    ++   --

    注意:

    (1)只能用于变量,不能用于常量和表达式。

    如:6++ (a+b)-- 都是错误的。

     

    (2)当它们用于变量名前时,表达式的值为变量的值加一或减一。当位于变量名后时,表达式的值为变量原来的值。不论位于变量名前还是变量名后,只要进行了自增、自减运算,变量的值都会在原来的基础上加1或减1。

    如:a=3 则 a++ 表达式的值是3 运算之后变量的值是 4

    a=3 则 ++a 表达式的值是 4之后变量的值是 4

    a=3 则 a-- 表达式的值是3 之后变量的值是 2

    a=3 则 --a 表达式的值是2 之后变量的值是 2

     

    (3)口诀:

       j=i++;这个表达式是先引用后增值。即:先把 i 的初始值给变量 j,然后 i 再自加1。

       j=++i;这歌表达式是先增值后引用。即:i先自加1,然后再将我们自加后的值赋值给变量 j。

       但是记住它们是一起执行的,就是说:例如j=i++先引用后增值实际上是一起执行的,它们之间不存在先后关系,我们只是位了好记才用到了上面的方法。老师在上课的时候先不要说,但是你们必须知道。j=i--,j=--i和上面j=i++,j=++i的方法是一样。

    5.4  逗号运算符及其表达式

    1.格式:表达式1,表达式2,…,表达式n

      注意:1.逗号表达式的值是整个逗号表达式中最后一个表达式的值。

    2.求值顺序是从左到右依次求解。

      例如:a=(3,b=1)的值是1 运算结束后a的值是1, b的值是 1。 

  • 相关阅读:
    使用 star UML制作的图
    评价片段
    项目部分
    用新学的知识 写了一段小代码
    常用系统存储过程
    考试小总结
    分页
    行转列面试题 事例
    子查询
    生成验证码的方法集合(一)
  • 原文地址:https://www.cnblogs.com/khqhbu/p/12862436.html
Copyright © 2020-2023  润新知