3.1 顺序程序设计举例

略,自己看资料理解

VisualC__6.0编译系统.png

3.2 数据的表现形式及其运算

程序中最基本的成分:数据成分,运算成分,控制成分,传输成分

3.2.1 常量和变量

在计算机高级语言中,数据有两种表现形式:常量和变量

1. 常量

概念:程序运行过程中不能被改变的量

常量类型:

  1. 整形常量

  2. 实型常量:1>十进制小数形式;2>指数形式

  3. 字符常量:普通字符常量(用单撇号括起来的);转义字符(以\开头的字符序列,如:\n)

    ASCII码的字符表示都可以通过该字符的八进制的进行转义

    转义字符及其作用.png

  4. 字符串常量:用双撇号将若干个字符括起来

  5. 符号常量

    概念:使用# define指令,指定一个符号名称代表一个常量

    如: #define PI 3.1416

    要求:1>含义清楚,即见名知义;2>多处使用到同一个常量是,能做到”一改全改”.

    注意:

    ​ 要区分符号常量和变量

    ​ 符号常量不占内存只是一个临时符号,预编译后这个符号就不存在了,所以不能对符号常量赋新值

2. 变量

变量代表一个有名字的具有特定属性的一个存储单元,它用来存放数据(变量的值)

变量先声明,后使用.

变量的样子.png

变量名实际上是一个以名字为代表的一个存储地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取值。

3. 常变量

由const进行修饰

如:const float pi =3.1415926

符号常量和常变量的异同

​ 常变量:具有变量的基本属性:有类型,占存储单元.不能改变值,可以在程序中被引用.

​ 具有符号常量的优点,使用方便

​ 符号常量:没有占存储单元

​ 在预编译时进行字符串替换

4. 标识符

只能由字母,数字,下划线组成,且第一个字符必须为字母或下划线

严格区分大小写

3.2.2 数据类型

在数学中,数值是抽象的

在计算机,数据是存放在存储单元中的,它是具体存在的,存放数据范围是有限的

单精度是小数点后6位

数据类型.png

  • 基本类型和枚举类型变量的值都是数值.统称算术类型

  • 算术类型和指针类型统称为纯量类型(标量类型):变量值是以数字表示的,枚举类型是程序中用户定义的整数类型.

  • 枚举类型是程序中用户定义的整数内容(枚举类型的值只能是整数类型)

  • 数组类型和结构体类型统称为组合类型,共用体类型不属于组合类型因为在同一时间内只能有一个成员具有值.

  • 函数类型:用于定义函数,描述函数的接口,包括(函数返回值的数据类型和参数的类型)

3.2.3 整形数据

1.基本整形(int型)

编译系统分配给int型数据2个字节或4个字节(由具体的C编译系统决定)

Visual C++为每个整形分配四个字节

存储单元的存放方式:用整数的补码进行存放

正整数的补码就是原码

负数的补码是正整数的原码按位取反,进行加一

补码原码反码.png

十进制转二进制:

十进制转二进制.jpg

2. 短整型

Visual C++ 分配2个字节

3. 长整形

Visual C++ 分配4个字节

整形常见的存储空间和值的范围.png

注意:

​ 只有整形包括字符型数据可以加signed或unsigned,实型数据不能加

​ 无符号整形数据用”%u”格式进行输出,%u表示用无符号十进制数的格式输出

3.2.4 字符型数据

1. 字符与字符代码

在程序中,只能使用系统字符集中的字符,目前大多数采用ASCII字符集.

常用的ASCII码.png

2. 字符变量

关键字:char 如:

char a = ‘b’

这个声明变量并且赋值的意思是将字符 b 对应的ASCII码赋值给变量名为a这个字符变量

输出时可以选择十进制输出,或选择字符形式输出

“%d”:十进制输出

“%c”:字符形式输出

Q:字符类型也属于整形,是否也可以使用signed和unsigned修饰符?

A:

  • 可以

  • 第一位(8位二进制表示的数),表示符号位:数据范围就是:0-127(相当于使用了signed进行修饰)

  • 第一位不表示符号位,数据表示可以从0-255(使用了unsigned进行修饰)

3.2.5 浮点型数据

在C语言中实数以指数形式存储,如图

实数的构成.png

比如:3.1416 可以表示为3.14159x10^0 0.314159x10^1

移动小数点位置的同时改变指数的值,就可以保证它的值不会变

小数部分占的位数越多,表示精度大

指数部分占的位数越多,表示范围越大

浮点数类型有:float double

实型数据的有关情况.png

注意:C编译系统把浮点型常量按双精度处理。

3.2.6 怎样确定常量的类型

整形常量:不带小数点的数值是整形常量。

浮点型常量:凡是以小数形式出现的实数。

区分类型和变量:

类型:是变量的一个属性,代表的是一类型的数据。比如: 大学生

变量:占用存储单元,是具体存在的实体。如 大学生 我

大学生是抽象的 而我是具体的

3.2.7 运算符和表达式

1.基本的算术运算符

常用的算术预算符.png

2.自增、自减运算符

注意:自增、自减运算符只能用于变量,不能用于常量或表达式

3.算术表达式和运算符的优先级与结合性

算术运算符中的数如果只能float,那将数值转为float,进行计算,如果有double 就转为double进行计算,float和double都有,就转为double进行计算

C预算符1.png

C语言运算符2.png

3.3 C语句

一个函数包含声明部分和执行部分,执行部分由C语句组成

C语言程序构成.png

C语句分类:

  1. 控制语句

    条件语句

    循环语句

    continue 结束本次循环语句

    break 终止执行switch或循环语句

    switch 多分支选择语句

    return 函数返回语句

    goto 转向语句,在结构化过程中基本不适用goto语句

  2. 函数调用语句: 由一个函数调用和一个分号组成 如 printf();

  3. 表达式语句 如a=3;

  4. 空语句 ;

  5. 复合语句 也称语句块(代码块)形如:{ a=3;b=4;}

    注意:复合语句中最后的分号不能忽略不写

3.3.2 最基本的语句-赋值语句

  1. 赋值运算符

  2. 复合的赋值运算符

  3. 赋值表达式

  4. 赋值过程中的类型转换

    浮点类型->整形 小数部分舍弃

    整形->浮点类型 小数部分补零

3.4 数据的输入输出

3.4.2 有关数据输入输出的概念

  1. 输入输出是针对计算机而言的

  2. C语言本身不提供输入输出语句,输入输出操作由C标准函数库实现的。

    C提供的标准函数以库的形式在C的编译系统中提供,不是C语言文本的组成部分。

  3. 在使用系统库函数是,要在文件的开头用预处理命令#include 把有关头文件放在本程序中

    #include<stdio.h> stdio.h是包含了标准的I/O库有关的变量定义和宏定义以及对函数的声明

3.4.3 使用printf函数输出数据

printf函数的一般格式:

printf(格式控制,输出列表);

printf(“%d”,c);

格式字符 说明
%d 输出一个有符号的十进制
%c 输出一个字符
%s 输出一个字符串
%f 输出浮点数 %7.2f代表数据宽度为7,其中包括2位小数 %-25.3f 代表输出数据向左对齐(当位数不足25时)%25.3f 输出数据左边以空格填充(当位数不足25位时)
%e 以指数形式输出实数 VisualC++小数位默认占6位

printf输出数据格式.png

3.4.4 用scanf函数输入数据

scanf函数的一般形式(语法)

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

如scanf(“%d%f”,&a,&b);

注意

  1. 格式控制后面应当是变量地址,而不是变量名

  2. 格式控制字符串中除了格式声明以外还有其他字符,则在输入数据时在对应位置输入与这些字符相同的字符。

    如:scanf(“a=%d,b=%c”,&a,&b); 则输入a=10,b=’c’

  3. 在使用“%c”格式声明时,空格字符和‘’转义字符 ‘’都作为有效字符。

  4. 在输入数值数据时,如输入空格、回车、Tab键,或遇非法字符,认为该数据结束。

3.4.5 字符数据的输入输出

  1. 用putchar()函数输出一个字符

    语法:putchar(c); 输出变量c

  2. 用getchar()函数输入一个字符

    语法:getchar() 注:此函数没有参数