目录

  • 1 计算机概述
    • 1.1 计算机简介
    • 1.2 计算机系统
    • 1.3 数值在计算机中的表示
  • 2 C语言概述
    • 2.1 C语言发展及特点
    • 2.2 C语言程序的运行步骤和开发环境
    • 2.3 简单的C语言程序
  • 3 C语言基础
    • 3.1 变量、常量及数据类型
    • 3.2 运算符和表达式
    • 3.3 输入、输出
  • 4 选择结构
    • 4.1 计算机编程和算法
    • 4.2 if语句
    • 4.3 if嵌套和if多分支
    • 4.4 switch语句
  • 5 循环结构
    • 5.1 while语句和do...while语句
    • 5.2 for语句
    • 5.3 break语句和continue语句
    • 5.4 goto语句构成的循环
    • 5.5 嵌套循环结构
    • 5.6 程序设计举例
  • 6 函数
    • 6.1 函数的定义与调用
    • 6.2 函数的嵌套调用和递归调用
    • 6.3 作用域和生命周期
    • 6.4 章节小结与测试
  • 7 数组
    • 7.1 一维数组及应用
    • 7.2 二维数组及应用
    • 7.3 字符数组
    • 7.4 数组作为函数参数
    • 7.5 章节小结与测试
  • 8 指针
    • 8.1 指针变量
    • 8.2 指针与数组
    • 8.3 指针的多种形态
  • 9 字符串
    • 9.1 字符串概念及输入输出
    • 9.2 字符串函数
    • 9.3 指针与字符串
    • 9.4 章节小结与测试
  • 10 编译预处理
    • 10.1 宏定义
    • 10.2 文件包含
    • 10.3 条件编译
  • 11 结构体、共用体和用户定义类型
    • 11.1 结构体类型变量
    • 11.2 结构体类型数组与指针
    • 11.3 结构体与函数
    • 11.4 用指针处理链表
    • 11.5 共用体
  • 12 位运算
    • 12.1 位运算的概念和运算规则
  • 13 文件
    • 13.1 C文件概述
    • 13.2 文件的打开与关闭
    • 13.3 文件读写
    • 13.4 位置指针的定位
变量、常量及数据类型

学习目标:

理解变量的概念及变量定义、赋值

掌握变量的命名规则

理解常量和符号常量

掌握C语言的数据类型

掌握不同数据类型间的转换与运算

重点:

 理解变量的概念及变量定义、赋值

掌握变量的命名规则

掌握C语言的数据类型

难点:

掌握不同数据类型间的转换与运算

掌握不同数据类型表达的值范围和精度

 

引言:

理解最简单的C语言程序

掌握运行C程序的步骤与方法

掌握怎样表示一个算法

理解结构化程序设计方法

  

一、变量

1、变量的基本概念

Ø 程序运行时,其值能被改变的量称为变量。 

Ø 每个变量都有一个名字,通过变量的名字可以访问到变量的存储空间并获得变量的数值。 

Ø C语言程序中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。 

Ø 变量是程序中数据的临时存放场所,可以用以保存程序运行时用户输入的数据和运算结果等。 

2变量定义

    int m , n , sum ;

1行定义了3个用于存放整数的整型变量。int表示整型数据类型。

C语言中,变量的必须遵循先定义,后使用的原则。

变量定义的格式:

数据类型变量1[,变量2,…,变量n];

每个变量必须有一个类型,如整型、字符型等,它指明给这个变量分配多大的存储空间;

每个变量还必须有一个名字,如xy等,它指明是哪个变量。

变量的命名规则

C语言规定:

标识符只能由字母、数字、下划线组成,并且只能由字母、下划线开头,不能是关键字。 如:abca12x是合法的标识符,abc$12ax+yint不是合法的标识符。

3变量赋值

    m = 32 ;

    n = 64 ;

2行为变量赋值。 将“=”右边的常量值赋给左边的变量。

实际上,变量在定义后其值是不确定的,因此在使用前应该先赋值,然后使用。变量的首次赋值可以称为变量的初始化。

变量的初始化,还可以在定义的同时进行初始化。

4运算并保存结果

    sum = m + n ;

1行为计算m+n的值赋值给变量sum

5显示结果

    printf( "sum=%d\n" , sum ) ;

1行在屏幕上显示运算结果。

格式控制符说明.    普通字符说明.

 

二、常量

1在程序运行时,其值不能被改变的量叫常量。

C语言中也可以用一个标识符代表一个常量,这种标识符称为符号常量,即标识符形式的常量,一般用大写字母。

例如,用PI表示3.14159

【例3.2符号常量的使用。

#include <stdio.h>

#define PRICE 30

int main( )

{

int num , total ;

num = 10;

total = num * PRICE ;

printf( "total=%d\n" , total ) ;

return 0 ;

}

说明:程序中用#define PRICE 30”命令行定义PRICE代表常量30,此后凡在此源程序中出现的PRICE在预编译阶段均被30替换。 

使用符号常量的优点: 

含义清楚。 

需要改变一个常量的值时能做到一改全改 

      注意:#define”是预处理命令,不要以;”号结束。

 

三、数据类型

1 整型

1整型常量   补充十进制与八进制、十六进制转换知识

    C语言中整常数可用以下三种形式表示。

十进制整数。十进制整型常量直接用数字表示,例如:51000-10等。

八进制整数。以0开头的数是八进制数。例如:050100等。

十六进制整数。以0x0X开头的数是十六进制数。例如:0x50x1A0 等。

2整型变量 

整型变量的定义: int   long

    C语言规定在程序中所有用到的变量都必须在程序中指定其类型,即定义

        int a , b ;  /* 指定变量ab为整型 */

        unsigned short c , d ;  /* 指定变量cd为无符号短整型 */

        1ong e , f ;  /*指定变量ef为长整型 */

注意:变量的定义,一般是放在一个函数的开头部分。 

2浮点型

1实型常量

实型常量即实数,在C语言中又称浮点数,实型常量有两种表达形式:

Ø 1)十进制数形式:由数字和小数点组成。 

Ø 例如:3.149.8.135等。注意:小数形式表示的实型常量必须要有小数点。

Ø 2)指数形式:尾数Ee)整型指数。 

Ø 例如:3.0E+5123e3等。 

Ø 注意:字母E(或e)之前是十进制数形式的实数,之后是整数,二者都不可缺少。 

Ø 例如:e52.1e2.7e等都不是合法的指数形式。 

2实型变量

C语言中实型变量分为单精度(float型)和双精度(double型)两类,每一个实型变量都应在使用前加以定义。 

        float x , y ;  /* 指定xy为单精度实数 */

        double z ;  /* 指定z为双精度实数 */ 

3字符型

1字符常量   补充ASCII码表知识

Ø C语言中的字符常量是用单引号括起来的一个字符 

Ø 例如,'A''b''''+''? ''$' 等都是字符常量。 

Ø 字符常量实质上就是字符对应的ASCII码的值。 

Ø 例如,'A'实际上就是65

Ø 转义字符,就是以一个\”开头的字符序列,例如,前面已经遇到过的,在printf()函数中的'\n',它代表一个换行符。反斜杠引导的字符称为转义字符,其意思是将反斜杠(\)后面的字符变成另外的意思。如果字符常量是反斜杠或单引号本身,必须使用转义字符:'\\''\'’表示。

2字符变量   补充ASCII码表知识(大小写字符转换)

Ø 字符型变量用来存储字符常量。 

Ø 将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值存储到内存单元中。

Ø 字符变量的定义形式如下:

Ø         char c1,c2;

Ø         它表示c1c2为字符型变量,分别可以用于存放一个字符,因此可以用下面语句对c1c2赋值:

Ø         c1='a';

Ø         c2='b';

Ø 一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。 

Ø 字符数据在内存中是以ASCII码的值来存储的,它的存储形式与整数的存储形式相类似。 

C语言中,字符型数据和整型数据之间可以相互通用。

【例3.6】字符变量分别以字符形式和整数形式输出。

#include <stdio.h>

int main( )

{

char ch1 , ch2 ;

ch1 = 'a' ;

ch2 = 'b' ;

printf( "ch1 = %c , ch2 = %c\n" , ch1 , ch2 ) ;

printf( "ch1 = %d , ch2 = %d\n" , ch1 , ch2) ;

return 0 ;

}

Ø 字符数据与整型数据可以互相赋值。

Ø 例如:

Ø         int i ;  char c ;

Ø         i = 'a' ;  c = 97 ;

Ø         上述赋值是合法的。如果将i的值输出得到97,如按字符形式输出c可得字符'a' 

Ø C程序允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。

3字符串常量    与字符常量的区别

Ø 字符串常量是用一对双引号括起来的若干字符序列。

Ø 字符串中字符的个数称为字符串长度 与存储长度区别。

Ø 例如,"How do you do. ""Good morning. "等,都是字符串常量,其长度分别为1413(空格也是一个字符)。 

Ø 长度为0的字符串(即一个字符都没有的字符串)称为空串。

Ø 如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。

Ø 例如:

Ø          字符串C:\windows对应的字符串常量表示为"C:\\windows"

Ø          字符串I say:"Goodbye!"对应的字符串常量表示为"I say:\"Goodbye!\" "

Ø 不要将字符常量与字符串常量混淆,二者是完全不同的概念。字符常量使用单引号,而字符串常量使用双引号。'a'是字符常量,"a"是字符串常量,两者不同。假设c被指定为字符变量:

Ø         char c ;

Ø         c = 'a' ;        是正确的。而

Ø         c = "a" ;        是错误的。

Ø C语言中,每一个字符串的结尾包含一个字符串结束标志,以便系统据此判断字符串是否结束。C语言以字符'\0'作为字符串结束标志。'\0'是一个ASCII码值为0的字符。 

Ø 空串""实际在内存中占有一个字节,即包含一个字符'\0'

4、类型转换

强制类型转换

        C语言提供了强制类型转换运算符来实现强制类型转换。

Ø 语法格式:

Ø         (类型)表达式

Ø 例如:        (int)3.5

5sizeof运算符

sizeofC语言的一种单目运算符,sizeof运算符以字节形式给出了其操作数的存储空间大小。可以利用sizeof运算符判断数据类型的字节长度。

使用方法:

        sizeof(类型说明符);

 

四、应用举例

1.3.1计算两数之和。


2.3.2符号常量的使用。


3.3.3八进制与十六进制数。


4.3.4整型变量的定义与使用。


5.3.5转义字符的应用。


6.3.6字符变量分别以字符形式和整数形式输出。


7.3.7字符数据的算术运算。


 

讨论题:

1)例3.6和例3.7里都涉及ASCII码值,问:Aa对应的ASCII码值分别是多少?