C语言程序设计A

周哲泓、文晟、马万仑

目录

  • 1 绪论
    • 1.1 为什么学习C语言
    • 1.2 C语言概述
    • 1.3 基本语法单位
    • 1.4 C语言基本程序结构
    • 1.5 Visual C++6.0介绍
    • 1.6 测试
  • 2 数据类型
    • 2.1 基本数据类型
      • 2.1.1 整型
      • 2.1.2 浮点型
    • 2.2 常量
    • 2.3 变量
    • 2.4 运算符与表达式
      • 2.4.1 算术运算符和算术表达式
      • 2.4.2 赋值运算符和赋值表达式
      • 2.4.3 关系运算符和关系表达式
      • 2.4.4 逻辑运算符和逻辑表达式
      • 2.4.5 位运算符和位表达式
      • 2.4.6 条件运算符和条件表达式
      • 2.4.7 逗号运算符和逗号表达式
      • 2.4.8 其他运算符
    • 2.5 数据的输入输出
    • 2.6 章节测试
  • 3 选择结构程序设计
    • 3.1 章节介绍
    • 3.2 关系运算符和关系表达式
    • 3.3 逻辑运算符和逻辑表达式
    • 3.4 if分支语句
    • 3.5 条件运算符和条件表达式
    • 3.6 switch多路开关语句
    • 3.7 实验方法
    • 3.8 本章小结
    • 3.9 选择结构程序设计电子课件
    • 3.10 选择结构程序设计视频推荐
    • 3.11 章节测试
  • 4 循环结构程序设计
    • 4.1 章节介绍
    • 4.2 while和do...while循环语句
    • 4.3 for 循环语句
    • 4.4 break和continue语句
    • 4.5 goto语句
    • 4.6 嵌套循环结构
    • 4.7 实验方法
    • 4.8 本章小结
    • 4.9 电子课件
    • 4.10 推荐视频
    • 4.11 章节测试
  • 5 数组
    • 5.1 一维数组
    • 5.2 二维数组
    • 5.3 字符数组与字符串
    • 5.4 章节测试
    • 5.5 实验方法
    • 5.6 电子课件
    • 5.7 推荐视频
  • 6 函数
    • 6.1 函数概述
    • 6.2 函数的定义
    • 6.3 函数的参数和返回值
    • 6.4 函数的调用
    • 6.5 函数的嵌套和递归调用
    • 6.6 数组作为函数的参数
    • 6.7 局部变量和全局变量
    • 6.8 变量的存储类别
    • 6.9 内部函数和外部函数
    • 6.10 实验
    • 6.11 电子课件
    • 6.12 章节测试
  • 7 编译预处理
    • 7.1 宏定义
      • 7.1.1 不带参数的宏定义
      • 7.1.2 带参数的宏定义
    • 7.2 “文件包含”处理
    • 7.3 条件编译
    • 7.4 推荐视频
    • 7.5 电子课件
  • 8 指针
    • 8.1 指针的基本概念
      • 8.1.1 变量的地址
      • 8.1.2 指针变量的定义
      • 8.1.3 指针变量的引用
    • 8.2 指针与一维数组
      • 8.2.1 指向一维数组的指针变量
      • 8.2.2 通过指针引用一维数组元素
      • 8.2.3 指针使用的几个细节
    • 8.3 指针与字符串
      • 8.3.1 使用指针处理字符串
      • 8.3.2 字符型指针变量作函数参数
      • 8.3.3 字符指针变量与字符数组的区别
    • 8.4 指针与二维数组
      • 8.4.1 二维数组的指针
      • 8.4.2 行指针变量
      • 8.4.3 二维数组的指针作函数参数
    • 8.5 指针数组与多级指针
      • 8.5.1 指针数组
      • 8.5.2 多级指针的概念
    • 8.6 指针与函数
      • 8.6.1 指针变量作为函数的参数
      • 8.6.2 函数的指针
      • 8.6.3 返回指针值的函数
    • 8.7 main函数的参数
      • 8.7.1 main函数参数的概念
      • 8.7.2 main函数参数的处理
    • 8.8 程序设计举例
    • 8.9 实验
    • 8.10 电子课件
    • 8.11 参考视频
基本语法单位

                                                基本语法单位

从上面示例中可以看出,C语言除了具有严格的语法规则外,还规定了其基本的语法单位。本节扼要介绍C语言程序中使用的字符、标识符、关键字、运算符、分隔符、常量和变量等。

1.字符集

字符是高级语言程序中的最小单位,是构成其他语法单位的基础。C语言规定了程序中可以使用的合法字符,这些合法字符的集合称为C字符集。编写任何C语言程序都不能使用字符集之外的非法字符。目前国际上C语言的字符集广泛采用ASCII码字符集。

C语言字符集由下列字符组成:

(1) 字母和数字。

  小写字母 a,b,c,d,…,y,z。

  大写字母 A,B,C,D,…,Y,Z。

  数  字 0,1,2,3,4,5,6,7,8,9

(2) 不可打印的字符。

  空格符、回车符、换行符、控制符。

(3) 空字符。

  指ASCII码值为0的NULL字符,该字符在C语言中的特殊作用之一是作为字符串的结束符。

(4) 标点和特殊字符如表1.3.1所示。


表1.3.1 标点和特殊字符

img46

2.标识符

标识符是编程者在程序中给所使用的常量、变量、函数、语句标号和类型定义等命名的字符串。C语言规定标识符只能由字母、下划线和数字组成,且第一个字符必须是字母或下划线。

下面是合法标识符的例子:

a str2 addl00 student Line area class5 TABLE

下面是一些非法标识符:

3th 以数字开头

=xyz 头个字符不是字母或下划线

"m+n" 有既非字母又非数字的符号

person name 标识符中不能出现空格

int 与关键字同名

使用标识符时,除注意其合法性外,要求命名应尽量有意义,以便“见名知义”,便于阅读理解,如用result表示计算结果,用first-value表示第一个数据等。

不同的C编译程序对标识符所用字符个数有不同的规定,ANSI C可识别标识符的前31个字符,但有的C编译程序只识别前8个字符。在这种编译程序中,finaldatal与finaldata2被认为是同一个标识符,应特别注意。此外,编译程序对标识符的大小写字母是要加以区分的,如name和NAme、NAME是三个不同的标识符。

3.关键字

关键字是指在C语言中编译器已预先定义的具有特定含义的标识符。关键字也称为保留字。所谓保留,即在C语言程序中不允许编程者将编译器已使用的关键字重新命名另作他用。常用的关键字有如下几类:

(1)标识类型的关键字

  int char float double long short

  unsigned struct union enum auto

  extern static register typedef void

(2)标识控制流的关键字

  goto return break continue if else

  do while switch case default

(3)标识预处理的关键字

  define include undef ifdef ifndef

  endif

(4)其他关键字

  sizeof asm fortran ada pascal

4.运算符和分隔符

运算符是用来表示某种运算的特殊符号,多数运算符由一个字符组成,也有的运算符由多个字符组成。C语言有丰富的运算符,后面章节将进行专门介绍。下面是C语言中常用的运算符:

()) [ ] -〉 · ! /\ ~ ++ − −

(类型) sizeof * / %+−

〈〈 〉〉 〈= 〉= == !=

& ^ | && || ?:= ,+= −=

*= /= %= 〉〉= 〈〈= &= ^= |=

值得注意的是,上述某些运算符有双重含义,使用时要根据上下文关联而定。比如“%”作为运算符表示取模数(余数)运算,而在输入输出函数中作为“格式控制”的组成符号。又如“,”既可以作为逗号运算符,也可作为分隔符。使用这些运算符应分清场合,注意区别,不要混淆。

分隔符是用来分隔变量、数据和表达式等多个单词的符号,C语言的分隔符主要指空格、制表和换行符等。

5.常量和变量

用C语言进行程序设计时,必然要使用不同的符号表示所需要的各种数据,这些符号就构成了程序的常量和变量。

常量是指在程序执行中其值不会改变的量。C语言中常量分为数字常量和字符常量两类,如:286,0,−15.3,3.14,−960.8,'a','M',"China"等。

变量是指在程序执行中其值可改变的量。C语言规定,各种数据类型的变量,使用前必须先定义,即说明变量的名称和数据类型。任何一个未经定义的变量都会被编译程序认为是非法变量,由此将引起编译错误。