13013-高级语言程序设计
江苏省高等教育自学考试【13013-高级语言程序设计】学习笔记
| 课程代号 | 课程名称 | 教材代号 | 教材名称 | 作者 | 出版社 | 版次 |
|---|---|---|---|---|---|---|
| 13013 | 高级语言程序设计 | 130131 | 高级语言程序设计(附大纲) | 郑岩 | 机械工业出版社 | 2017 年 |
计算机语言
了解计算机语言的发展
1946年世界上第一台电子计算机诞生了。- Intel 公司的创始人之一 Gordon Moore 于
1965年提出著名的摩尔定律。
冯·诺伊曼体系结构
冯·诺伊曼体系结构的特点可以概括如下:
- 指令和数据采用二进制表示。
- 指令和数据存储在存储器中。
- 计算机由输入设备、输出设备、存储器、运算部件和控制部件五大部分组成。
电子计算机四个发展时代
- 第一代:20世纪50年代,主要采用
真空电子管制造计算机。 - 第二代:20世纪50年代末期,出现了以
晶体管为主要元件的第二代计算机。 - 第三代计算机的特点是采用
集成电路技术,在一片硅晶片上集成数目众多的晶体管。 - 第四代:随着
大规模集成电路和微处理器的出现,计算机进入第四代。所谓微处理器就是一片集成电路芯片,计算机的控制和运算功能都在这一芯片上实现。
了解高级语言的概念和特点。机器语言。汇编语言。高级语言
机器语言是用二进制代码表示的能被计算机识别和执行的指令集合。- 为了克服机器语言的不足,人们利用助记符代替机器语言,因此产生了
汇编语言。 - 汇编语言的特点:汇编语言在一定程度上
克服了机器语言难以编写和阅读的缺点,同时具有占用存储空间较少,执行效率高的优点。 机器语言和汇编语言都是面向机器的语言,也称为低级语言。- 高级语言
描述算法很方便,而且不依赖于具体的机型,能够不需修改而在任何计算机上运行,具有良好的可移植性、便于编程,但是执行效率低。 - 使用
高级语言编写的程序称为源程序,源程序无法在计算机上直接运行,必须将其翻译为二进制程序后才能执行。 翻译程序通常有两种工作方式,即编译方式和解释方式。编译方式是将源程序全部翻译为二进制程序后再执行,在此完成翻译工作的程序称为编译程序,编译后的二进制程序称为目标程序; - 世界上第一个高级语言是
FORTRAN,后来陆续出现很多种高级语言,目前广泛应用的高级语言有 C/C++、Java 和 C#等。 - 编译程序将
高级语言编写的程序转换为目标程序。
程序和程序设计方法
了解程序的概念。算法。算法描述方法。自然语言。N-S流程图。伪代码。程序。了解程序设计的方法。结构化程序设计方法。面向对象程序设计方法。
- 计算机可以解决多种信息处理的问题,但人们必须事先用计算机能够理解的语言(即程序设计语言)详细描述解决问题的步骤,即首先进行
程序设计。 算法设计是使用计算机解决问题的过程中一个极为重要的环节。解决问题的步骤序列就是算法。- 为了获得易读、易懂、易修改和扩充的算法,人们经过长期的实践认为必须采取以下三种措施:
利用自顶向下的方法设计算法。只利用顺序、选择和循环三种基本结构构造算法。具有优美的算法表达风格。
- 描述算法可以使用多种方法。常用的算法描述方法是
自然语言、传统流程图、N-S流程图、伪代码和计算机语言等。 自然语言是人们日常使用的语言,可以是汉语、英语或其他语言。- 已经证明使用以下三种基本结构能够表示一个良好算法。
顺序结构,顺序结构是最简单的一种基本结构。选择结构,又称分支结构循环结构,又称重复结构,即反复执行某一部分的操作,可细分为两种:当型循环和直到型循环。
- N-S流程图如同一个多层的盒子,因此又称为
盒图。 伪代码是用介于自然语言和计算机语言之间的文字和符号描述算法。- 所谓程序是利用计算机语言将所要解决问题中的数据以及处理问题的方法和步骤进行完整而准确地描述,这一描述的过程称为“
程序设计”。 - 计算机程序(Program,简称程序)是指根据算法描述,用计算机语言表示的能被计算机识别和执行的
指令集合。 - 用三种基本结构组成的程序必然是结构化的程序,这种程序便于
编写、阅读、修改和维护。 - 随着计算机技术的发展,开始出现了专门用于指导和规范程序设计的思想和方法,最主要的程序设计方法有两种,即
结构化程序设计方法和面向对象程序设计方法。 - 结构化程序设计又称为
面向过程的程序设计,是由荷兰计算机科学家E.WDijkstra于1965年提出。模块化是结构化程序设计方法的核心思想,即将待开发的程序划分为若干个相互独立的模块,每个模块完成特定的功能,这样就可以使程序员完成每个模块的工作变得单纯和明确,适合于设计大规模的复杂程序。 - 程序员在接到程序设计的任务后,将需要解决的问题先进行整体规划,形成一个笼统和抽象的方案框架,称之为“
顶层设计”。 - 1967年,挪威计算中心的 Kristen Nygaard 和 Ole Johan Dahl开发了
Simula 67语言,被认为是第一个面向对象的语言。 面向对象的核心思想是将程序或者软件看成是一个由对象组成的集合。
C语言基本词法
C语言发展(非考核要求)。C语言特点(非考核要求)。
- C语言于
20世纪60年代初提出。 - 1983年,美国国家标准化协会(American National Standards Institute,ANSI)根据C语言问世以来的各种版本,对C语言发展和扩充制定了第一个C语言标准草案,称为
83 ANSIC。 - C语言的主要特点可以概括如下:
- 结构化语言。C语言具有良好的结构化的控制语句、顺序结构的语句、选择结构的语句和循环结构的语句,C语言的
函数是程序的基本模块,便于实现程序的模块化。 - 运算能力强大。
- 数据类型丰富。C 语言提供了编程所需的各种数据类型,主要包括
整型、实型、字符型、数组型、结构体类型、指针型和空类型等。 - 具有预处理能力。
- 可移植性好。
- 程序执行效率高。C语言的编译系统采用了优化策略,由源程序生成目标代码的效率一般仅比汇编语言低
10%~20%,C程序的执行效率高。 - 程序设计自由度大
- 结构化语言。C语言具有良好的结构化的控制语句、顺序结构的语句、选择结构的语句和循环结构的语句,C语言的
- 由于C语言允许直接对计算机硬件进行操作,既具有
高级语言的功能,又具有低级语言的功能,所以也被称为“中级语言”,可用来编写系统软件。 - C语言的运算能力很强大,提供了
30多种运算符,C语言把括号、赋值、强制类型转换等都按照运算符来处理,使表达式的种类多样化。 - 几乎在所有的计算机系统中都可以使用C语言,这体现了C语言的
可移植性好。 - 当程序编写完毕后,为了确保程序正确,必须在计算机上进行运行和调试。
- C语言的每个语句都以
分号;结束。
-
以下对C语言的叙述不正确的是(D)。
- A. C语言具有高级语言的功能
- B. C语言具有低级语言的功能
- C. 可以用来编写系统软件
- D. 程序设计自由度不大
-
以下不属于C语言特点的是(C)。
- A. 结构化语言
- B. 具有预处理能力
- C. 数据类型单一
- D. 程序执行效率高
了解C语言的字符集
字符是组成语言最基本的元素。C语言中允许出现的所有字符的集合称为C语言的字符集,由字母、数字、空格、标点和特殊字符组成。C语言的字符集就是ASCI字符集- ASCI 字符集中有一些字符是可以显示在显示器上的,称为可显示字符,例如字母和数字符号都是可显示字符。
所有非字母、非数字的可显示字符如表所示。
| 符号 | 说明 | 符号 | 说明 | 符号 | 说明 |
|---|---|---|---|---|---|
~ |
波浪号 | ) |
右圆括号 | : |
冒号 |
` |
重音号 | _ |
下划线 | ; |
分号 |
! |
惊叹号 | + |
加号 | ' |
单引号 |
@ |
圈号 | - |
减号 | < |
小于号 |
# |
井号 | = |
等号 | > |
大于号 |
$ |
美元号 | | |
或符号 | , |
逗号 |
% |
百分号 | \ |
反斜杠 | . |
小数点 |
^ |
异或号 | { |
左花括号 | ? |
问号 |
& |
与符号 | } |
右花括号 | / |
正斜杠 |
* |
星号 | [ |
左方括号 | 空格符号 | |
( |
左圆括号 | ] |
右方括号 |
掌握C语言的转义字符
ASCII 字符集中还有一些字符不能显示在显示器上,称为不可显示字符,例如回车换行符、制表符。转义字符是由反斜杠\后面跟单个字符或若干个字符组成。
以下不是可显示字符的是(C)。
- A. 百分号
- B. 星号
- C. 回车换行符
- D. 正斜杠
了解C语言的标识符构成规则
C语言规定,用户标识符仅由大小写英文字母、数字和下画线组成,且第一个字符不能是数字。
| 正确示例 | 错误示例 |
|---|---|
P1 |
1a、2a_(以数字开头) |
m |
x-2(含有非字母、数字、下画线的字符 -) |
x1 |
y*z(含有非字母、数字、下画线的字符 *) |
x_1 |
z?(含有非字母、数字、下画线的字符 ?) |
_x1 |
-3x(以减号开头) |
_x_1 |
了解C语言的关键字及其含义
- C语言中具有特殊含义的单词称为
关键字,又称保留字,主要用于构成语句。C语言规定的具有特定意义的字符串,叫做关键字。 - C语言共有 32 个关键字,所有的关键字均由
小写字母组成。 - C语言的关键字中“sizeof”的意思是
计算字节数。 - C语言的分隔符包括
逗号和空格两种。
| 关键字 | 含义 | 关键字 | 含义 | 关键字 | 含义 |
|---|---|---|---|---|---|
auto |
自动 | extern |
外部 | sizeof |
计算字节数 |
break |
终止 | float |
浮点 | static |
静态 |
case |
情况 | for |
对于 | struct |
结构 |
char |
字符 | goto |
转向 | switch |
开关 |
continue |
继续 | int |
整 | typedef |
类型定义 |
const |
常量 | if |
如果 | union |
共用 |
default |
默认 | long |
长 | unsigned |
无符号 |
do |
做 | register |
寄存器 | void |
空 |
double |
双 | return |
返回 | volatile |
可变的 |
else |
否则 | short |
短 | while |
当 |
enum |
枚举 | signed |
有符号 |
下列为C语言保留字的是(B)
- A. Auto
- B. break
- C. main
- D. then
C语言基本语句分类
了解C语言的语句分类、了解C语言各类语句的基本功能
数据定义语句。用于定义C程序中使用的各种能存放数据的对象的名称和属性。赋值语句。形如变量=表达式;的语句,其功能是计算表达式的值并赋予变量。形如“变量=表达式;”的语句,被称为赋值语句。- 函数调用语句
- 表达式语句
- 流程控制语句
- 选择控制语句:
if语句和switch 语句。流程控制语句中的选择控制语句包括if语句和switch 语句。 - 循环控制语句:
while 语句、do-while 语句和for 语句。流程控制语句中,循环控制语句包括do-while语句、for语句和while 语句。 - 转移语句:goto语句、break语句、continue 语句和return 语句。
- 选择控制语句:
- 复合语句。把多个语句
用一对花括号{}括起来组成的一个语句称为复合语句。 - 空语句
C程序基本组成
理解C程序的基本组成
- 每个C程序由一个或多个函数组成。每个C程序有且仅有一个主函数,
除主函数外,可以没有其他函数,也可以有一个或多个其他函数。 函数是C程序的基本单位,每个函数(包括主函数)是由函数首部和函数体两部分组成。其中,函数名后面的一对圆括号()中写出函数要用到的形式参数,当没有形式参数时写void;一对花括号{}是函数体的界定符,其中的内容称为函数体。函数首部 返回值类型 函数名(类型 形式参数名, ...)
函数体 {
数据定义部分
实现函数功能的语句序列
}- C语言本身没有输入/输出语句,而是通过调用库函数
scanf()、printf()、getchar()和putchar()实现的。 - C程序的执行总是从
主函数开始,并在主函数结束。 - C程序中可以有预处理命令(例如include命令),通常预处理命令应放在程序的
最前面。 - C程序是由语句组成的,通常包括一个或多个函数,其中有且只有一个函数称为
主函数,其函数名为main。每个C程序有且仅有一个主函数。 - 函数体的界定符是
一对花括号{}。 - 函数名后面的
一对圆括号()中要写出函数要用到的形式参数。 - 当函数用到的形式参数没有时,写
void。 - 主函数和其他函数的位置是任意的,其他函数总是通过函数调用语句被执行。
字符是组成语言最基本的元素。
了解书写C程序的基本规则
- C程序的任意位置都可以加注释/…/,注释可有多行,但不可嵌套。另外,C程序中还可以进行单行注释,即在某行需要注释的地方加
//即可。 - C程序中可以有预处理命令,通常预处理命令应放在程序的
最前面。
C程序开发环境
掌握VC启动和退出的操作方法。掌握VC环境下创建、编辑修改和保存C源程序的操作方法。掌握VC环境下编译、链接和生成可执行程序的操作方法。掌握VC环境下运行可执行程序和查看运行结果的操作方法。
- 编辑:进入C语言编译系统,建立源程序文件,扩展名为
c或cpp编辑并修改、保存源程序。 - C程序在计算机上的编辑是指进入C语言编译系统,建立源程序文件,扩展名为
c或cpp,编辑并修改、保存源程序。 - 链接:经过编译生成的目标程序还无法在计算机上直接运行,因为源程序中输入输出以及常用的函数运算是直接调用函数库中的库函数,因此必须把库函数的处理过程链接到经编译生成的目标程序中,生成可执行文件,其扩展名为
exe。 - “Step Over”和“Step Into”都是单步调试程序,二者的区别在于遇到函数调用时,
Step Into进入函数内部逐步执行,而Step Over并不进入函数内部执行。 - C程序在编译源程序时,在主菜单栏中选择“Build”菜单项,在弹出的子菜单中选择
Compilehello.c命令执行。 - C程序在链接成功之后即可运行程序。在主菜单栏中选择“Build”菜单项,在弹出的子菜单中选择
Execute Hello World.exe命令执行。 - 在MicrosoftVisual C++6.0环境下调试C程序的主要过程包括设置断点、
调试界面和单步调试。 - 调试C程序时,首先需要判断程序可能从哪条语句开始出现错误,将光标移动到该语句所在行,然后单击“Insert/Remove Breakpoint”按钮或按
F9键,此时若在语句行左侧出现一个红点,则表示断点设置成功。 - 经过编译生成的目标程序还无法在计算机上直接运行,必须把库函数的处理过程链接到经编译生成的目标程序中,生成可执行文件,其扩展名为
exe。 - C程序在进行运行时,编译程序将源程序转换为二进制形式的目标程序,其扩展名为
obj。编译程序将源程序转换为二进制形式的目标程序,其扩展名为obj。
数据类型的概念及其分类
了解数据类型的概念。了解C语言中数据类型的分类。
数据既是程序加工和处理的对象,也是程序加工和处理的结果。- 基本类型包括
整型、实型(又称浮点型)、字符型和枚举型四种。 - 构造类型是由基本数据类型按一定规则组合而成的复杂数据类型,包括
数组型、结构体类型和共用体类型,数组型是由相同类型的数据组合而成的,结构体类型是由不同类型的数据组合而成的。 空类型是从语法完整性角度给出的数据类型,表示不需要数据值,因而没有类型。
| 数据类型 | 基本类型 | 整型 | 有符号整型 | 有符号基本整型(简称整型) |
| 有符号短整型(简称短整型) | ||||
| 有符号长整型(简称长整型) | ||||
| 无符号整型 | 无符号基本整型 | |||
| 无符号短整型 | ||||
| 无符号长整型 | ||||
| 实型(浮点型) | 单精度实型 | |||
| 双精度实型 | ||||
| 字符型 | ||||
| 枚举型 | ||||
| 构造类型 | 数组型 | |||
| 结构体类型 | ||||
| 共用体类型 | ||||
| 指针类型 | ||||
| 空类型 | ||||
整型、实型、字符型、字符串常量的书写方法
- 常量又称为
常数,是在程序运行过程中其值不能改变的数据。例如-128、0和12345等均为常量。 - 常量可以有不同的类型,C语言规定常量包括
整型常量、实型常量、字符型常量、字符串常量和符号常量。
掌握长、短整型常量的书写方法。
- 整型常量通常称为整数,不带有小数部分,包括正整数、负整数和0。
- 长整型常量一般占用内存的
4字节。
C语言中,整型常量有三种书写形式,即:
八进制整型常量,必须以0开头,即以0作为八进制整数的前缀,是由数字0~7组成的数字串。例如0123和0400,它们分别表示十进制的整数83和256。十进制整型常量,即通常的整数,没有前缀,是由数字0~9组成的数字串,是C语言中用得最多的一种形式。例如12和30等。十六进制整型常量,必须以0X或0x开头,即以0X或0x作为十六进制整数的前缀,是由字符 0~9、a~f或 A~F组成的字符串。例如 0X123和-0xld,它们分别表示十进制的整数 291和-29。
掌握单精度和双精度实型常量的书写方法。
- 实型常量又称为
浮点型常量或实数,实型常量只使用十进制。C 语言的实型常量有两种书写形式 - 十进制小数形式,由整数部分、小数点和小数部分组成,其中小数点必须有,整数部分和小数部分可以省略其中一个,正、负通过前面的“+ ”(可以省略)和“-”区分。例如0.123、123.和-.123均为合法的十进制小数形式的实型常量。
- 指数形式(用 E 或 e 表示),指数形式由尾数部分、阶码标志(小写字母
e或大写字母E)和指数部分组成,其一般形式为aEb或aeb,其中尾数部分a的位数决定了数值的精度,指数部分b的位数决定了可表示的数值范围。a和b均有正负之分,且b必须为整数,其表示的数值为:。例如,3.45e-2、.52378e4、-628E-3均为合法的指数形式的实型常量,它们对应的数值分别是0.0345、5237.8、-0.628。 - 实型常量无论是十进制小数形式还是指数形式,有效数字是
7位。 - 实型常量在PC中占用4 字节,无论是十进制小数形式还是指数形式,有效数字是
7位。
掌握字符型常量的书写方法。
字符常量包括普通字符常量和转义字符常量两种。
普通字符常量是用一对单引号括起来的单个字符,例如 'a'、'?' 均为普通字符常量。此外,C 语言还允许使用一种特殊形式的字符常量,即以反斜杠 \ 开头的转义字符,它只代表某一特定的 ASCII 码字符。
| 转义字符 | 含义 | 转义字符 | 含义 |
|---|---|---|---|
\n |
回车换行 | \t |
横向跳到下一个制表位置 |
\v |
垂直制表 | \b |
左退一格 |
\r |
回车 | \f |
换页 |
\0 |
空字符 | \\ |
反斜杠 |
\' |
单引号 | \" |
双引号 |
\ddd |
1~3 位八进制数所代表的字符,例如 \103 代表字符 'C' |
\xhh 或 \Xhh |
1~2 位十六进制数所代表的字符,例如 \x46 代表字符 'F' |
需要注意的是,C 语言中空字符和空格符号不同。空字符用转义字符 \0 表示,其值是 0;空格符号是 ASCII 字符集中的一个可显示字符,其 ASCII 值是 32,在屏幕上显示为空格。
掌握字符串常量的书写方法。
字符串常量又称为“字符串”,是用双引号括起来的零个或多个字符的序列。字符串中字符的个数称为字符串长度。若字符串长度为 0(即一个字符都没有的字符串)称为空串,表示为 ""(一对紧邻的双引号)。例如 "How do you do."、"Good morning" 等都是字符串常量,其长度分别为 14 和 12(空格也是一个字符)。
如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符,其中每个转义字符只作为一个字符,例如 "\\How do you do.\\" 和 "\101\x44" 的长度分别是 16 和 2,分别表示 \How do you do.\ 和 AD 两个字符串。需要注意的是,双引号是作为字符串的标志,所以在字符串中使用双引号时必须用转义字符 \",例如 5 个字符组成的字符串 xyz" 应写成 \"xyz\"。
编译时自动在字符串的末尾处加一个转义字符 \0 作为字符串的结束标志,即长度为 n 个字符的字符串占用 n+1 字节。需要注意的是在 C 程序中书写字符串常量时,不必加结束标志字符 \0。
C 语言规定字符串中的字母是区分大小写的,所以 "a" 和 "A" 是不同的字符串。
例如,字符串 "China" 在内存中的实际存储如下:
| C | h | i | n | a | \0 |
|---|
最后一个字符 \0 是系统自动加的,该字符串占用内存 6 字节而非 5 字节。
字符常量与字符串常量是不同的,其区别在于:
定界符不同,字符常量使用单引号,而字符串常量使用双引号。长度不同,字符常量的长度固定为 1;而字符串常量的长度,可以是 0,也可以是某个整数。存储要求不同,字符常量存储的是字符的 ASCII 码值,在内存中只占用 1 字节;而字符串常量,除了要存储有效的字符外,还要存储一个字符串结束标志\0。
符号常量的使用
掌握符号常量的定义方法。能够在程序中正确使用符号常量。
其定义的一般格式如下:
常量可以是任意类型。#define是一个编译预处理命令,称为宏定义命令。符号常量一般采用大写字母表示,而变量一般采用小写字母表示。符号常量的定义一般放在程序的开头,每个定义必须独占一行,因为不是语句,所以后面没有分号;。C 编译程序在编译之前将所有的符号常量自动替换为相应的常量。
整型、实型、字符型变量的定义和初始化方法
- 变量是在程序运行过程中,其值可以改变的数据。变量具有三种属性:
变量名、变量值、变量类型。
掌握整型(整型、短整型、长整型、无符号基本整型、无符号短整型、无符号长整型)变量的定义和初始化方法。
根据占用内存字节数的不同,整型变量分为四种:
- 基本整型,
int - 短整型,
short[int] - 长整型,
long[int] - 无符号整形,又分为无符号基本整型
unsigned [int]、无符号短整形unigned short、无符号长整型unsigned long
在 16 位编译器中,一般一个 int 型变量占用 2字节,且 long 型(4 字节)≥ int 型(2 字节)≥ short 型(2 字节);而在 32 位编译器中,一个 int 型变量占用 4 字节,long 型变量占用 4 字节,short 型变量占用 2 字节。可以用 sizeof(类型标识符) 测量某一类型所占用的内存字节数。
掌握实型(单精度实型、双精度实型)变量的定义和初始化方法。
实型变量分为两种:
- 单精度实型,
float,占用内存4字节,保留6 ~ 7 位有效数字。 - 双精度实型,
double,占用内存8字节,保留15 ~ 16位有效数字。
float a; |
掌握字符型变量的定义和初始化方法。
字符型变量,char ,存放的是字符的ASCII码值(无符号整数),占用内存1字节。
需要注意的是,字符串只能是常量,C 语言中没有字符串变量,而是用字符数组存放字符串变量。
| 数据类型 | 数据类型符 | 占用字节数/字节 | 数值范围 |
|---|---|---|---|
| 基本整型 | int |
2(或 4) | 同短整型(或长整型) |
| 短整型 | short [int] |
2 | |
| 长整型 | long [int] |
4 | |
| 无符号基本整型 | unsigned [int] |
2(或 4) | 同无符号短整型(或无符号长整型) |
| 无符号短整型 | unsigned short |
2 | |
| 无符号长整型 | unsigned long |
4 | |
| 单精度实型 | float |
4 | |
| 双精度实型 | double |
8 | |
| 字符型 | char |
1 |
// 定义有符号整型变量 |
有名常量的定义和初始化方法
了解有名常量的特点。掌握有名常量的定义和初始化方法。
C 语言中,如果定义了变量并赋予其初值,但不希望在程序中对其值进行修改,则可以将该变量定义为有名常量。有名常量定义语句的一般格式如下:
const 数据类型符 变量名=初值1[,变量名2=初值2,...]; |
有名常量的值是通过赋初值的方式获得,不能通过赋值的方式获得,而且赋予初值后,在程序中将不再改变其值。有名常量主要用于程序运行过程中,其值不允许改变的量。有名常量定义后,若在程序中改变其值,将会出错。
基本类型数据在内存的存放方式
了解整型(整型、短整型、长整型、无符号基本整型、无符号短整型、无符号长整型)数据在内存的存放方式。了解实型数据在内存的存放方式。了解字符型数据在内存的存放方式。了解字符串常量在内存的存放方式。
基本运算符的运算规则、优先级和结合性
- 自增和自减运算符的运算对象必须是
变量,不能是表达式。
| 运算符 | 运算符分类 | |
|---|---|---|
| 基本运算符 | 算术运算符 | +(加)、-(减)、*、/、%、+(取正)、-(取负) |
| 自增、自减运算符 | ++、-- | |
| 关系运算符 | >、>=、<、<=、==、!= | |
| 位运算符 | 位逻辑运算符~、&、|、^ 位移位运算符<<、>> |
|
| 逻辑运算符 | &&、||、! | |
| 赋值运算符 | 基本赋值运算符 = 复合赋值运算符 +=、-=、*=、/=、%=、&=、|=、^=、>>=、<<= |
|
| 条件运算符 | ? : | |
| 逗号运算符 | , | |
| 数据长度运算符 | sizeof | |
| 专用运算符 | 强制类型转换运算符 | ( ) |
| 成员运算符 | ->、. | |
| 下标运算符 | [ ] | |
| 指针运算符 | &、* |
- C语言的运算符必须有运算对象。按照参与运算的运算对象的数目,运算符可分为
单目运算符、双目运算符和三目运算符。 若单目运算符位于运算对象的前面,则称为前缀单目运算符;若单目运算符位于运算对象的后面,则称为后缀单目运算符。 双目运算符均位于两个运算对象的中间。 三目运算符在C 语言中只有一个,即条件运算符,组成该运算符的两个符号夹在三个运算对象之间。
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | () 、 [] 、 -> 、 . | 从左至右 |
| 2 | ! 、 ~ 、 ++ 、 -- 、 *(取内容) 、 &(取地址) 、 +(取正) 、 -(取负) 、 sizeof | 从右至左 |
| 3 | *(乘) / % | 从左至右 |
| 4 | +(加) 、 -(减) | |
| 5 | << 、 >> | |
| 6 | < <= 、 > >= | |
| 7 | == != | |
| 8 | &(位逻辑与) | |
| 9 | ^ | |
| 10 | | | |
| 11 | && | |
| 12 | || | |
| 13 | ?: | 从右至左 |
| 14 | = 、 += 、 -= 、 *= 、 /= 、 %= 、 &= 、 ^= 、 |= 、 >>= 、 <<= | |
| 15 | , | 从左至右 |
下列运算符中,优先级最高的是(A)
- A. []
- B. ++
- C. %
- D. &&
掌握算术运算符的运算对象、运算规则、优先级和结合性。
- 单目运算符
+、-的优先级相同,结合性是从右至左。 - 双目运算符
*、/、%的优先级相同,结合性是从左至右。 - 双目运算符
+、-的优先级相同,结合性是从左至右。 - 单目算术运算符优先于双目算术运算符。
*、/、%优先于+、-。- C 语言的算术运算符包括
+、-、*、/、%、+(取正)和-(取负)。
掌握关系运算符的运算对象、运算规则、优先级和结合性。
- 关系运算符包括
>、>=、<、<=、==和!=六种,它们都是双目运算符。本质上,关系运算符是比较运算,即将两个数据进行比较,判断两个数据是否符合给定的关系。例如a > b中的>表示一种大于的关系运算。如果a的值是 5,b的值是 3,则大于关系>运算的结果为“真”,即关系成立;如果a的值是 2,b的值是 3,则大于关系>运算的结果为“假”,即关系不成立。 - 如果关系运算的结果是逻辑值“真”(即关系成立),用整数
1表示;如果关系运算的结果是逻辑值“假”(即关系不成立),用整数0表示。 - 算术运算符优先于关系运算符。
>、>=、<、<=优先于==、!=。>、>=、<、<=的优先级相同,结合性是从左至右。==、!=的优先级相同,结合性是从左至右。- 关系运算符也可以比较两个字符型数据的大小,比较字符型数据时是按照该字符对应的 ASCII 码值的大小进行比较,本质上是整数的比较。
- 需要注意的是,C 语言中“等于”这一关系运算符是双等号
==,而不是单等号=(赋值运算符)。
以下对关系运算符的优先级描述不正确的是(C)。
- A. 算术运算符优先于关系运算符
- B. ==、!=的优先级相同,结合性是从左至右
- C. ==优先于<
- D. >、>=、<、<=的优先级相同
以下不属于关系运算符的是(D)。
- A. >
- B. >=
- C. <
- D. +
掌握逻辑运算符的运算对象、运算规则、优先级和结合性。
- 逻辑运算符的运算对象类型
可以是数值型或字符型。 - 单目逻辑运算符
!的结合性是从右到左。单目逻辑运算符!和单目算术运算符的优先级相同,结合性均是从右至左。 - 双目逻辑运算符
&&和||的结合性是从左到右。
掌握赋值运算符的运算对象、运算规则、优先级和结合性。
- 复合赋值运算符是在赋值运算符的
前面再加一个双目运算符构成的,它是双目运算符。 - 赋值运算符的左边必须是
变量。
掌握逗号运算符的运算对象、运算规则、优先级和结合性。
- 逗号运算符的优先级是最低的。
- 逗号运算符常用于
for循环语句中。 - 逗号运算符又称顺序求值运算符,它是双目运算符,运算对象是表达式,常用于for循环语句中。
掌握条件运算符的运算对象、运算规则、优先级和结合性。
- C语言中唯一的一个三目运算符是
条件运算符。
掌握位运算符的运算对象、运算规则、优先级和结合性。
- 计算机的内存是由许多称为字节的单元组成的,1字节由
8个二进制位(bit)组成。 - 位运算是按二进制位进行的运算,运算对象只能是
整形数据。运算结果仍为整型。
掌握长度运算符的运算对象、运算规则、优先级和结合性。
表达式的构成和运算规则
- 设
int a=0,b=5,c;,执行语句c=(a==b)||++a;后c的值是1。分析:(a==b) 即 0==5,结果为假(0),++a 使 a 变为 1,且值为 1,因此 c = 1。 - 设
int a=10,b=20,c=1,d=2;,执行语句if(a < b && c >d && ( c = 10) || c == 100 ) d = 200;后,c和d的值分别是1和2。- 先计算 a < b:10 < 20 为真(1)。
- 继续计算 c > d:1 > 2 为假(0)。
- 由于 && 的短路特性,当左边为假时,不再计算右边的 (c = 10),所以 c 保持原值 1,赋值操作未执行。
- 此时第一个 && 整体结果为假,继续计算 || 的右边:c == 100,即 1 == 100 为假。
- 整个 if 条件为假,因此不执行 d = 200,d 仍为初始值 2。
- 所以最终结果:c = 1,d = 2。
- 设
int a=2,b=3,c=4;,则表达式a > b && b < c || b的值是1。- a > b:2 > 3 为 假(0)
- b < c:3 < 4 为 真(1)
- (a > b) && (b < c):0 && 1 结果为 0
- 此时表达式简化为 0 || b,即 0 || 3
- 因为 b = 3 是非零值(代表真),所以 0 || 3 的结果为 真(1)。
熟练掌握算术表达式的构成和运算规则。熟练掌握关系表达式的构成和运算规则。熟练掌握逻辑表达式的构成和运算规则。熟练掌握赋值表达式的构成和运算规则。熟练掌握逗号表达式的构成和运算规则。熟练掌握条件表达式的构成和运算规则。熟练掌握位运算表达式的构成和运算规则。
- 数学表达式x >y >z对应的C语言表达式是
(x>y)(y>z)。
变量赋值和表达式计算时的数据类型转换规则
理解不同数据类型的数据和变量在赋值时的“就左不就右”的自动数据类型转换规则。理解不同数据类型的数据在参与表达式计算时的“就高不就低”的自动数据类型转换规则。了解强制数据类型转换方法。
- 先将运算结果的数据类型自动转换为左边变量的数据类型,然后再赋予该变量。这是
赋值类型转换。 - 参与运算的各个数据都转换成数据长度较长的数据类型,然后计算,结果的类型就是数据长度较长的数据类型。这是
自动类型转换。
结构化程序的设计方法和三种基本结构
了解结构化程序的设计方法。了解顺序结构的特点。了解三种选择结构的特点。了解三种循环结构的特点。
赋值语句、函数调用语句、表达式语句、复合语句的使用
掌握赋值语句的格式和基本功能。掌握函数调用语句的格式,能正确调用库函数。掌握表达式语句的格式和基本功能。掌握复合语句的格式和基本功能。熟练掌握使用赋值语句、表达式语句解决简单计算问题的方法。
字符输入/输出函数的使用
熟练掌握字符输入/输出函数的调用方法和功能。能使用字符输入/输出函数解决程序中字符的输入/输出。
格式输入/输出函数的使用
掌握格式输入/输出函数中格式说明符的含义。熟练掌握格式输入/输出函数的调用方法和功能。能使用格式输入/输出函数解决程序中基本类型数据的输入/输出。
三条选择语句和三种选择结构的程序设计
能正确使用if语句实现单分支选择结构的程序设计。能正确使用if-else语句实现双分支选择结构的程序设计。能正确使用switch语句实现特定的多分支选择结构的程序设计。能正确使用嵌套的if-else语句实现任意的多分支选择结构的程序设计。
三条循环语句和三种循环结构的程序设计
能正确使用while语句实现循环结构的程序设计。能正确使用do-while语句实现循环结构的程序设计。能正确使用for语句实现循环结构的程序设计。掌握break和continue语句的功能和使用方法。
利用循环嵌套实现二重循环结构的方法
掌握二重循环结构的设计方法。能设计二重循环结构的程序。
一维数组的定义、初始化和数组元素的引用方法
熟练掌握一维数组的定义和初始化方法。熟练掌握一维数组元素的下标引用方法。掌握利用次数型单重循环处理一维数组元素的方法。
二维数组的定义、初始化和数组元素的引用方法
掌握二维数组的定义和初始化方法。掌握二维数组元素的下标引用方法。掌握利用次数型二重循环处理二维数组元素的方法。
字符数组的定义、初始化和数组元素的引用方法
熟练掌握字符数组的定义和初始化方法。熟练掌握字符数组元素的下标引用方法。
字符数组中存放的字符串的输入/输出和处理方法
理解单个字符串在一维字符数组中的存放形式。熟练掌握在一维字符数组中存放的字符串的输入/输出方法。掌握多个字符串在二维字符数组中的存放方式。掌握在二维字符数组中存放的字符串的输入/输出方法。
处理字符串的常用库函数及其使用
能用gets()函数和puts()函数实现字符串的输入/输出。掌握字符串连接strcat(),字符串比较strcmp()和字符串复制strcpy()函数的使用方法。掌握字符串长度测试strlen()函数的使用方法。
模块化程序设计方法
了解模块化程序设计的方法和特点。了解C语言中如何实现模块化程序设计。
函数的定义和调用
掌握函数的一般结构和定义方法。掌握函数的一般调用方法。能在程序中实现自定义函数的定义和调用。
- 函数声明不包含(C)。
- A. 函数名
- B. 形参类型
- C. 函数体
- D. 返回值类型
- 解析:函数声明只是把函数名、返回值类型、形参名、形参类型等通知编译程序,以便在调用该函数时系统据此对照检查,它没有函数体。
- 下列关于函数声明的描述不正确的是(B)。
- A. 若主调函数与被调函数在同一个编译单元,则可以不声明其函数原型
- B. 函数首部末尾加分号
- C. 函数声明是一条语句,末尾加分号
- D. 函数声明应与函数定义时的函数首部一致
- 解析:函数首部不是语句,所以末尾不加分号。
- 在调用函数时出现传递到被调函数中的数据不合逻辑,是由于
实参和形参的顺序不一致。 - 下列关于有/无返回值函数的描述不正确的是(D)。
- A. 有返回值函数的数据类型符可以选取任意的数据类型符
- B. 无返回值函数的数据类型符只能是void
- C. 有返回值函数的函数体中必须有语句return(表达式);
- D. 无返回值函数的函数体中的语句return;必须省略
- 解析:无返回值函数的函数体中的语句return;可以有也可以省略。
- 当形式参数是数组时,一维数组的长度和二维数组的
行长度可以省略。 - 下列关于函数的描述不正确的是(C)。
- A. 任何函数(包括主函数)都是由函数首部和函数体两部分组成
- B. 通常,函数体用一对花括号括起来。
- C. 函数定义时,函数名后面紧跟实际参数表
- D. 函数名也是一个标识符,且在同一个编译单元中不能重名
- 解析:函数定义时,函数名后面紧跟形式参数表,而在函数调用时,函数名后面紧跟实际参数表。
- 下列函数定义错误的是(D)
- A. void print(void){printf(“*****”);}
- B. void print_2(void){printf(“aaa”);}
- C. double add(double x, double y){double z; z=x+y; return(z);}
- D. double add(double m, double n);(double z; z=m+n; return(z):}
- 解析:函数首部末尾不能加分号。
- 下列关于C语言函数的分类不正确的是(B)。
- A. 从函数有无返回值的角度,函数分为有返回值函数和无返回值函数
- B. 从函数定义的角度,函数分为外部函数和内部函数
- C. 从函数有无参数的角度,函数分为有参函数和无参函数
- D. 从函数定义的角度,分为库函数和用户函数
- 解析:从函数作用范围的角度,函数分为外部函数和内部函数。外部函数是可以被任何编译单元调用的;内部函数只能在本编译单元被调用。
- 下列关于C语言函数的特点描述正确的是(C)。
- A. 一个C程序可以有多个主函数
- B. C程序总是从第一个函数开始执行
- C. 函数之间不能嵌套定义
- D. 函数之间不能互相调用
- 解析:函数之间没有从属关系,互相独立,不能嵌套定义。一个C程序只能有一个main函数作为程序入口,不能有多个主函数。C程序总是从main函数开始执行。函数之间可以互相调用。
- 下列关于C语言函数的特点描述不正确的(D)。
- A. 一个C程序由一个或多个函数组成
- B. 一个C程序必须有且只能有一个main函数
- C. C程序的执行从主函数开始,从主函数结束
- D. 主函数可以调用其他函数,其他函数也可以调用主函数
- 解析:主函数可以调用其他函数,但其他函数不能调用主函数。主函数由操作系统调用,其他函数之间可以互相调用。
- 下列关于函数的概念描述不正确的是(C)。
- A. 建立函数称为函数定义
- B. 使用函数称为函数调用
- C. 调用其他函数的函数称为被调函数
- D. 每个函数所完成的特定任务称为函数功能
- 解析:调用其他函数的函数称为主调函数,被调用的函数称为被调函数。
- 在C语言中,下列错误的说法是(C)
- A. 函数可以递归调用
- B. 不允许在函数中再定义函数
- C. 递归程序不可能用非递归算法实现
- D. 于continue语句,可以通过改变程序的结构而不使用它
- 解析:在递归函数中,递归程序可以用非递归算法实现。
- 函数中定义的变量,其作用域是
本函数。 - 下列说法不正确的是(D)
- A. 主函数中定义的内部变量,只能在主函数中使用,其他函数不能使用
- B. 形参变量也是内部变量,仅限于函数内使用
- C. 在同一源文件中,允许外部变量和内部变量重名
- D. 外部变量的作用域是所定义的函数或复合句
- 解析:外部变量的作用域是从定义点到本文件结束。
- 外部型变量是专门用于
多个编译单元之间传递数据的。 - 在函数中定义的局部变量,若未指定存储类别,则其隐含的存储类别是
auto。当省略auto时,C语言默认为auto型,即定义变量时不特别声明存储类型的都默认为自动型。 - 在一个文件的不同函数中不能重名的是
函数名。“函数名"是一个标识符,在同一个编译单元中的函数不能重名。 - (1)编写一个计算摄氏©到华氏(F)转换的函数。函数头是:float temp(float c) (2)编写主函数从键盘输入摄氏温度的值,调用上述函数输出摄氏及华氏温度的值(小数点后保留两位)。
float temp(float c) {
float t;
t = 9.0 / 5.0 * c + 32;
return t;
}
int main(void) {
float C, F;
scanf("%f",&C);
F = temp(C);
printf("C=%6.2f,F=%6.2f\n",C,F);
return 0;
} - 下列程序段中的变量f是局部
静态变量。 int c(int n) { static int f=1; f=f*n; return f; } - 若函数的形式参数和实际参数均为数组类型,则函数调用时参数的传递方式是
地址传递方式。数组名作为函数参数时,既可以作为形参,也可以作为实参。数组名作为函数参数时,要求形参和相应的实参必须是同类的数组(或指向数组的指针变量)。如果形参是数组名,则传递方式成为"地址传递方式”。 - 设int f(int x,int y){return (x*y);},则调用函数f时,实参和形参之间的传递方式是
值传递。- 值传递的方式是在形参和实参之间传递数据的一种方式,值传递方式传递的是参数值。int f(int x,int y){(return(xy);)的返回值是return(xy);所以实参和形参之间的传递方式是值传递。
- 判断:所有库函数都要求在本文件开头用文件包含命令#include或#include“文件名.h”包含被调函数的信息。答:错
- 函数的嵌套调用是指在调用函数时,被调函数又调用了其他函数或其自身。
- 判断:用extern将全局变量的作用域限制在本文件。答:错。解析:用static将全局变量的作用域限制在本文件。
- 对于占用字节数比较多的变量,如long、float和double型的变量一般不能定义为寄存器型变量。
- 判断:定义静态型变量时如果没有初始化,则编译系统自动赋值0。答:错。解析:定义静态型变量时如果没有初始化,则编译系统自动赋值0(整型和实型)或’\0’(字符型)。
- 判断:定义变量时不特别声明存储类型的都默认为静态型变量。答:错。解析:当省略auto时,C语言默认为auto型,即定义变量时不特别声明存储类型的都默认为自动型
- 函数首部中需要有“数据类型符”,说明该函数返回值的数据类型。
- 数组名作为函数形参时,接收实参数组的首地址。
- 判断:数组名作为函数参数时,既可以作为形参,也可以作为实参。如果实参是数组名,则传递方式称为“地址传递方式”。答:错。解析:数组名作为函数参数时,既可以作为形参,也可以作为实参。如果形参是数组名,则传递方式称为"地址传递方式”。
- 数组名作为形参时,实参向形参传递的是实参数组的首地址。
- 判断:“函数名”是一个标识符,在同一个编译单元中的函数可以重名。答:错。解析:“函数名”是一个标识符,在同一个编译单元中的函数不能重名。
- 用户使用的存储空间分为
程序区、静态存储区和动态存储区。 - 从系统为变量分配内存单元(或寄存器)开始到系统收回内存单元(或寄存器)的期间称为
变量的生存期。 - 在调用一个函数的过程中又直接或间接地调用其自身,称为
递归调用。 静态存储方式是在编译时由系统分配固定的存储空间,直到程序运行结束后才释放所占用的存储空间。- 数组名作为形参时,实参向形参传递的是实参数组的
首地址,实参数组和形参数组的各元素按照存储结构一一对应共享存储空间。 - 数组作为函数参数有两种形式,一种是把数组元素作为函数的
实参使用;另一种是把数组名作为函数的形参和实参使用。 - 在值传递方式中,实参对形参的数据传递是
单向。 - C语言规定在函数之间传递数据包括
值传递、地址传递、返回值和全局变量传递四种方式。 - 仅允许在其一端进行数据的插入和删除操作的数据结构称为
堆栈(Stack)。 - 如果函数无返回值,数据类型符应使用
void。 用户函数是用户根据需要自行定义的完成特定功能的一段程序。- 定义变量时不特别声明存储类型的都默认为
自动型变量。 - 根据变量在内存中存储区域的不同,C语言的变量分为
自动型变量、寄存器型变量、外部型变量和静态型变量四种。 - 数组名作为形参时,实参向形参传递的是实参数组的
首地址。 - 值传递方式中实参对形参的数据传递是
单向的。 值传递是在形参和实参之间传递数据的一种方式。- 函数调用时参数传递方式除地址传递外,还有
值传递。 - 当有多个实参时,实参之间用
逗号分隔。 - 可以将被调函数中获得的值返回给主调函数的语句是
return。 - C语言中,所有函数(包括主函数)都是
平行的。 - 若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是
3个。 - 在一个函数的函数体内不能再定义另一个函数,即不允许函数的
嵌套定义。 - 一个C语言程序的执行起点是
主函数。
函数调用时的数据传递方式
掌握函数调用时参数的值传递方式。掌握函数调用时参数的地址传递方式。掌握函数调用时的返回值传递方式。能利用全局变量在函数间传递数据。
- 下列关于利用返回值的数据传递方式描述不正确的是(A)。
- A. 是在形参和实参之间进行数据传递
- B. 是通过函数调用直接返回一个值到主调函数
- C. 函数首部中需要有"数据类型符",说明该函数返回值的数据类型
- D. 函数体中需要有语句"return(表达式);”
- 解析:利用返回值的数据传递方式是通过函数调用直接返回一个值到主调函数。
- 下列关于数组作为函数参数的数据传递方式描述不正确的是(D)。
- A. 当一维数组名作为形参时可以指定数组的长度
- B. 当一维数组名作为形参时可以不指定数组的长度,而只在数组名后面跟一对空的方括号
- C. 当多维数组名作为实参和形参时,形参数组可以省略第一维的长度说明
- D. 当多维数组名作为实参和形参时,形参数组可以省略第二维的长度说明
- 下列关于数组作为函数参数的数据传递方式描述正确的是(B)
- A. 数组名作为函数参数时,只能作为形参,不能作为实参
- B. 数组名作为函数参数时,要求形参和相应的实参必须是同类型的数组
- C. 按地址传递方式,形参和实参的地址不同
- D. 按地址传递方式,系统会为形参数组分配另外的内存
- 如果形参是数组名,则传递方式为
地址传递方式。 - 下列关于数组作为函数参数的数据传递方式描述中,不正确的是(C)
- A. 数组元素只能用做函数实参
- B. 在调用函数时,把数组元素的值传递给形参,实现单向的值传递方式
- C. 数组元素作为实参时,要求数组的类型和函数形参的类型一致,并且函数的形参也是下标变量
- D. 普通变量或下标变量作为函数参数时,形参变量和实参变量由编译程序分配不同的内存单元
- 解析:数组元素作为实参时,只要数组的类型和函数形参的类型一致即可,并不要求函数的形参也是下标变量。
- 下列关于值传递方式描述不正确的是©。
- A. 值传递方式传递的是参数值
- B. 形参变量只在该函数内有效
- C. 可以把被调函数的形参值反向传递给主调函数的实参
- D. 形参和实参可以重名
- 解析:实参对形参的数据传递是单向的,即只能从主调函数将实参值传递给被调函数的形参,而不能把被调函数的形参值反向传递给主调函数的实参。
值传递方式能够确保不管在被调函数中怎样操作或改变形参的内容,但主调函数中的实参并未发生变化。- 函数调用时,C语言对值传递方式的
形参变量分配内存单元,然后将实参的值保存到相应的内存单元,完成值传递。 - 调用函数时的实参
可以是常量、变量、表达式。 - 判断是否是值传递方式的唯一方法是看函数
定义时的形参是不是变量形式。 - 利用定义函数时设置的形参来传递数据的是
值传递方式。 - 利用调用函数时给出的实参来传递数据的是
地址传递方式。 - 下列关于堆栈的说明不正确的是(C)。
- A. push表示入栈,pop表示出栈
- B. push是在栈顶插入一个元素
- C. pop是在栈底删除一个元素
- D. 堆栈的核心思想是"先进后出”
- 解析:pop是在栈顶删除一个元素
变量的存储类型及其定义方法
掌握变量存储类型的概念。掌握不同存储类型变量的存储分配方式和使用特点。掌握变量存储类型的定义方法。
- 用关键字
static将全局变量的作用域限制在本文件。 - 用关键字
extern将全局变量的作用域扩展到其他文件。 - 下列关于变量的存储类型描述不正确的是(B)。
- A. 自动型变量的作用域和生存期都局限于定义它的个体内
- B. 静态型变量在程序运行期间始终存在,且在其作用域以外也可以使用
- C. 寄存器型变量一般是在函数中定义的,退出函数后则释放所占用的CPU寄存器
- D. 外部型变量是专门用于在多个编译单元之间传递数据的
- 解析:静态型变量在程序运行期间始终存在,但在其作用域以外不能使用。
- C语言中,定义变量时不特别声明存储类型的都默认为
自动型变量。 - 定义变量时若声明存储类型为auto,则所定义的变量为
自动型变量。 外部型变量和静态型变量属于静态存储方式。- 自动型变量和
寄存器型变量属于动态存储方式。 - C语言中变量的存储类型分为自动型(auto)、寄存器型(register)、外部型(extern)和静态型(static)四种。
变量的生存期和作用域
理解局部变量和全局变量的概念和定义方法。了解通过变量的定义可以确定其生存期。了解通过变量的定义可以确定其作用域。
- 生存期只覆盖了某个函数(或复合语句)的变量称为
局部变量。 - 生存期覆盖了定义点到整个程序结束的变量称为
全局变量。
函数的嵌套调用和递归调用
掌握函数嵌套调用的方法和特点。掌握递归函数的定义和设计方法。
常用库函数的使用
熟练掌握常用的数学处理函数的功能和调用方法。熟练掌握常用的类型转换函数的功能和调用方法。熟练掌握常用的字符处理函数的功能和调用方法。熟练掌握其他的常用库函数的功能和调用方法。
- ceil(5.4)结果是
6.0。ceil(5.9)结果是6.0。ceil(-2.3)结果是-2.0。- double ceil(double x)返回大于或等于x的最小整数对应的双精度实数。
- floor(-2.1)结果是
-3.0。floor(-2.3)结果是-3.0,floor(5.9)结果是5.0。- double floor(double x) 返回小于或等于x的最大整数对应的双精度实数。
- 计算整型绝对值函数abs函数包含在头文件
math.h中。 - 字符串转换成整数函数atoi函数包含在头文件
stdlib.h中。 - tolower函数是
将大写字母转换为小写字母函数。 - isdigit(‘b’)的结果是
0。isdigit(50)结果是非0 (50对应的字符是2 ) 。- int isdigit(int x) 判断是否数字字符函数,若x中存放的字符是数字字符,则返回非0 (真);否则,返回0 (假)。
- 判断是否大写字母函数是
isupper。- isupper(‘G’)结果是非 0,isupper(98)结果是0 (98对应的字符是’b’) 。int isupper(int x)判断是否大写字母函,若x中存放的字符是大写字母,则返回非0 (真);否则,返回0 (假)。
地址、指针和指针变量的概念
理解地址和指针的关系。了解指针变量的概念和作用。
指针变量的定义、初始化、赋值和一般使用方法
掌握指针变量的定义和初始化方法。掌握指针变量的赋值和一般使用方法。掌握取地址运算符
&和指针运算符*的使用方法。
指针变量的使用方法
掌握指向变量的指针变量的使用方法。能使用指向一维数组元素的指针变量引用数组元素。能使用指向二维数组元素的指针变量引用数组元素。掌握指向字符串的指针变量的使用方法。
指针型函数的定义和调用
掌握指针型函数的定义方法。掌握指针型函数的调用方法。
指针数组的定义、初始化和引用
了解指针数组的定义和初始化方法。掌握指针数组元素的使用方法。
结构体类型的定义方法
了解结构体类型的特点和应用。掌握结构体类型的定义方法。
结构体类型变量的定义和成员引用方法
掌握结构体类型变量的定义和初始化方法。 掌握结构体类型变量成员的引用方法。掌握结构体类型嵌套的概念和使用。
结构体类型数组的定义和数组元素成员的引用方法
掌握结构体类型数组的定义和初始化方法。能正确引用结构体类型数组元素的成员。
结构体类型指针变量的定义和使用
掌握结构体类型指针变量的定义和初始化方法。能利用结构体类型指针变量引用结构体类型数据的成员。能在函数间传递结构体类型数据。
自定义类型的定义和使用
了解自定义类型的定义方法。能将基本数据类型定义为自定义类型。能利用自定义类型定义变量、数组和结构体类型等。
宏定义命令的使用
掌握宏定义的方法。能在程序中正确使用宏名。
文件包含命令的使用
了解文件包含命令的功能。了解文件包含命令的使用方法。
条件编译命令的使用
了解条件编译命令的功能。了解条件编译命令的使用方法。
文件的概念
掌握文件名的组成规则。了解文件的分类及其特点。
缓冲文件系统中“文件型指针”的概念
了解文件型指针的概念和作用。掌握文件型指针的定义方法。了解标准输入/输出设备的文件型指针。
缓冲文件系统中文件操作的各种库函数的使用
掌握文件打开和关闭函数的使用方法。掌握文件尾测试函数的使用方法。掌握文件读/写中字符读/写函数的使用方法。掌握文件读/写中字符串读/写函数的使用方法。掌握文件读/写中数据块读/写函数的使用方法。掌握文件读/写中格式化读/写函数的使用方法。掌握文件指针复位函数和文件随机定位函数的使用方法。




