C语言程序设计

李永宁 李志慧 王荣福 郭艳宏 蔡荣贵 王露 康高厉 夏雨 赵东琛

目录

  • 1 第一章 C语言概述
    • 1.1 教学材料
      • 1.1.1 课程纲要
      • 1.1.2 授课计划
      • 1.1.3 课内实训指导书
      • 1.1.4 教案
    • 1.2 C语言概述
      • 1.2.1 学习目标
      • 1.2.2 学习视频
      • 1.2.3 学习效果检测
      • 1.2.4 练习及作业
    • 1.3 C语言基本程序结构
    • 1.4 C程序的编辑、编译、连接和运行
    • 1.5 PPT
  • 2 第二章 C程序设计基础
    • 2.1 C语言数据类型
      • 2.1.1 数据类型
      • 2.1.2 学习视频
    • 2.2 运算符和表达式
      • 2.2.1 学习视频
    • 2.3 顺序结构程序设计
    • 2.4 数据的输入与输出
    • 2.5 上机实践
    • 2.6 章节测试
  • 3 第三章  选择结构程序设计
    • 3.1 关系运算符和关系表达式
    • 3.2 逻辑运算符和逻辑表达式
    • 3.3 if语句
      • 3.3.1 学习视频
    • 3.4 Switch语句
    • 3.5 上机实践
    • 3.6 PPT
  • 4 第四章   循环结构程序设计
    • 4.1 whiile语句和do while语句
      • 4.1.1 学习视频
    • 4.2 for语句循环结构
    • 4.3 break 、continue语句
    • 4.4 goto语句
    • 4.5 嵌套循环结构
    • 4.6 循环小结
    • 4.7 实训3-循环结构程序设计
    • 4.8 PPT
  • 5 第五章   数组
    • 5.1 一维数组
      • 5.1.1 微课视频-冒泡排序法
    • 5.2 二维数组与字符数组
      • 5.2.1 预习任务
    • 5.3 字符数组与字符串
    • 5.4 项目实训4-数组的应用
    • 5.5 PPT
    • 5.6 数组学习效果检测
  • 6 第六章  函数
    • 6.1 函数概述
      • 6.1.1 预习任务
      • 6.1.2 微课视频
      • 6.1.3 知识点思维导图
      • 6.1.4 课后作业
    • 6.2 函数的参数和返回值
      • 6.2.1 预习效果检测
      • 6.2.2 微课视频
      • 6.2.3 学习效果检测
    • 6.3 函数的调用
    • 6.4 函数的嵌套和递归调用
    • 6.5 数组作为函数的参数
    • 6.6 局部变量和全局变量
    • 6.7 内部函数和外部函数
    • 6.8 项目实训5
    • 6.9 PPT
  • 7 第7章 编译预处理
    • 7.1 宏定义
      • 7.1.1 不带参数的宏定义
      • 7.1.2 带参数的宏定义
    • 7.2 “文件包含”处理
    • 7.3 条 件 编 译
    • 7.4 电子课件
  • 8 第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 PPT
    • 8.11 学习效果检测
  • 9 第9章 结构体与其他数据类型
  • 10 文件
  • 11 24级软件工程、网络工程、物联网工程等专业C语言课程设计
    • 11.1 实训指导书
    • 11.2 项目一 学生信息管理系统.PPT
    • 11.3 项目二 图书管理系统PPT
    • 11.4 实训报告电子版下载
  • 12 21级软件工程-C语言程序设计
    • 12.1 21级软件工程-C语言程序设计-实训预备项目指导书下载
    • 12.2 新建目录
    • 12.3 21级软件工程-C语言程序设计-实训指导书下载
    • 12.4 ​视频:C语言打造学生信息管理系统
    • 12.5 视频:学生成绩管理系统的设计
    • 12.6 视频:指针
    • 12.7 实训报告电子版
运算符和表达式

C语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理。

按其在表达式中的作用,C的运算符可分为算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、逗号运算符以及一些特殊的运算符。

按运算符与运算对象(操作数)的关系可将C的运算符分为单目运算符、双目运算符和三目运算符。

所谓“单目运算符”是指运算符只需要一个操作数,如++、!等;“

双目运算符”是指运算符需要两个操作数,即运算符的左右两侧都需要一个操作数,如+、−、*、/、〉〉等;

“三目运算符”是指运算符需要三个操作数,如条件运算符“?:”,这是C语言特有的。

表达式是用运算符与圆括号将操作数连接起来构成的式子。C语言的操作数包括常量、变量、函数值等。例如:表达式(a+b)*20/sin(π/2)中包括+、*、/ 等运算符,操作数包括常量20、变量a和b以及函数值sin(π/2)。

1. 在C语言中,基本的算术运算符有5个:

  +(加法运算符,或正值运算符,如13+50、+50);

  −(减法运算符,或负值运算符,如50−32、−32);

  * (乘法运算符,如13*8);

  / (除法运算符,如23/4);

  %(取模运算符,或称求余运算符)。

在使用时应注意以下几点:

(1)两个整数相除,结果仍为整数,商向下取整。实际上是整除运算。如20/3的结果为6,5/6的结果为0。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。例如,−5/3,有的机器上得到结果−1,有的机器得到结果−2。多数机器采取“向零取整”的方法,即−5/3=−1,取整后向零靠拢。

如果参加+、−、*、/运算的两个数中有一个数为浮点数,则结果是double型。因为自动转换后所有数都按double型进行运算。

(2)取模运算符%实际上是数学运算中的求余运算符,其两个操作对象都必须是整数。结果的符号与%左边的操作数的符号相同。如20%6的结果为2,−45%8的结果为−5,45%−8的结果为5。

(3)减法运算符还可以作为取负运算。如上面的45%−8中的“−”号就是取负运算。这时它是一个单目运算符。除此之外,其他的运算符在使用时,都需要两个操作数(或运算分量),如a+b、i*j等,所以它们都是双目运算符。


2. C语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级高低次序执行。在C语言中,每个运算符都有一个与之相关的优先级别。如果不同级别的多个运算符同时出现在一个表达式中,那么,具有较高优先级的运算符首先得到计算。即:按优先级从高到低的顺序依次执行。

img100

3. 自增、自减运算符

C语言中提供了两个特殊的运算符:自增运算符“++”和自减运算符“−−”。其作用是使变量的值增1或减1,它们都是单目运算符,可以出现在运算分量的前面或后面。当出现在运算分量的前面时,如++i,−−i,称之为前缀运算符;当出现在运算分量的后面时,如i++,i−−,称之为后缀运算符。

表达式++i和i++的作用都相当于i=i+1,表示将i的内容在原来的基础上加1。

表达式−−i和i−−的作用都相当于i=i−1,表示将i的内容在原来的基础上减1。

需注意以下几点:

(1)自增运算符(++)和自减运算符(−−),只能用于变量,而不能用于常量或表达式。如55++或(i+j)++都是不合法的。

(2)++和−−是单目运算符,其优先级高于基本的算术运算符,与单目运算符−(取负)的优先级相同。其结合方向是“自右至左”。

如果有表达式−j++,j的初值为100,则该表达式应如何计算呢?j的左边是负号运算符,右边是自加运算符。按右结合性,为−(j++)。