一、考试时间:2小时 二、题型及分值
1.单项选择题(20分,每题1分) 2.填空(10分,每空1分) 3.程序改错(10分,每题5分)
4.写出程序的运行结果(20分,每题10分) 5.程序填空(20分,每题10分) 6.编写程序(20分,每题10分)
复习内容
一、各章重要知识点
二、典型算法(第5~8、10、11、13章) 三、上课时所讲例题及所留习题
四、读懂程序,典型算法能够写出程序
各章重要知识点及典型算法
第1章 C语言概述
C程序基本格式和要求
第2章 算法
一、程序的三种基本结构
二、算法的表示方法:自然语言与伪代码、流程图 三、流程图图形符号的基本含义
第3章 数据类型、运算符
一、数据类型分类(P37) 二、常量与变量
三、标识符的命名规则
四、整型、浮点型、字符型 1.常量的表示方法 2.变量的存放字节数 3.变量的定义
4.字符串常量的应用
五、整型与实型、整型与字符型数据之间的混合运算 六、运算符、运算规则、优先级别(P365) 1.算术运算符
2.强制类型转换运算符 3.自增、自减运算符 4.赋值运算符 5.逗号运算符
第4章 顺序程序设计
一、字符数据的输入输出函数 二、格式输入输出函数
1.变量的定义与相应格式符
1
2.输入语句在运行时的输入要求
第5章 选择结构设计
一、关系运算符、逻辑运算符、条件运算符 二、选择结构专用语句 1.if语句 2.switch语句 三、典型算法
交换两个变量的值
第6章 循环控制
一、循环结构专用语句 1.while语句 2.do-while语句 3.for语句
4.break和continue语句 二、典型算法 1.连加、连乘
2.有规律图形的输出 3.数列或级数求和 4.求素数
5.对连续输入的字符或数值进行统计处理
第7章 数组
一、一维数组、二维数组、字符数组 1.定义及下标 2.引用
3.输入与输出
二、字符串处理函数 三、典型算法 1.冒泡排序法 2.选择排序法
第8章 函数
一、函数的定义、调用与返回值 二、实参与形参的含义及应用 三、函数的嵌套调用与递归调用 四、数组做函数参数 五、局部变量与全局变量
六、变量的存储类别(静态变量的应用) 七、典型算法 1.递归调用
2.优化的选择排序法
第9章 预处理命令
一、宏定义的两种形式 二、文件包含命令格式
第10章 指针
一、指向变量的指针 1.定义
2.用指针表示变量的值
2
二、指向数组的指针 1.一维数组
(1)定义(指向数组、指向数组元素)
(2)数组元素的4种表示方法(数组名、指针) 2.二维数组 (1)定义
(2)数组元素的地址表示方法
(3)数组元素值的表示方法(指针、行指针) 三、指向字符串的指针 1.定义
2.字符串的表示方法:字符数组名、指针、常量 3.指针指向字符串首地址、指向其中某个字符 四、指向函数的指针 1.定义
2.调用函数的方法(例题) 五、指向指针的指针 1.定义
2.表示整型数据值
3.对字符串排序(例题)
六、函数返回值为指针类型——定义 七、指针数组——定义 八、指针运算 九、典型算法
各类型指针在函数调用中的应用
第11章 结构体与共用体
一、结构体类型的定义
二、结构体变量及数组的定义 三、结构体成员的引用
1.用结构体变量(或数组) 2.用指针
四、共用体类型及变量的定义与引用 五、枚举类型的定义及枚举值 六、处理动态链表的函数 七、典型算法
链表的建立与输出、删除结点、插入结点
第12章 位运算
位运算符及其运算规则
第13章 文件
一、文件分类
二、文件指针变量的定义
三、文件的打开与关闭函数、文件打开方式 四、文件的4组输入/输出函数 五、文件的定位函数 六、典型算法
文件的4组输入/输出函数的应用
3
各章讲义中的重点知识小结
一、C程序的基本结构
1.C程序是由函数构成的。一个C程序必须且仅包含一个主函数main,同时还可以包含若干个自定义函数。 2.一个函数由两部分组成:
函数首部:包括函数名、函数类型、参数等。
函数体:花括号内的部分。函数体包括两部分: 声明部分、语句部分(执行部分)
注:函数的声明部分和语句部分都可省略。
3.C程序总是从main函数开始执行的,与main函数的位置无关。
4.C程序书写格式自由,一行内可以写几个语句, 一个语句也可以分写在多行上。 5.通常将声明部分和语句部分向右缩进。
6.每个语句和声明的最后必须有一个分号,而函数首部和文件包含命令不能加分号。
7.C语言本身没有输入输出语句。输入和输出的操作是由系统函数scanf和printf等来完成的。 8.可以用/*……*/对程序的任何部分做注释。注释可单独占一行,也可以放在行尾。
二、整型数据
1.整型数据的三种表示方法
十进制 八进制 十六进制 (1)常量: 23 023 0x23 (2)格式符:%d %o %x
2.整型数据的存储:以二进制、补码形式存储(占4个字节) 3.整型变量的定义及格式符
(1)有符号整型变量 定义:int 格式符:%d (2)无符号整型变量 定义:unsigned int 格式符:%u
三、浮点型数据
1.浮点型常量的两种表示方法: 小数 指数
常量:必须有小数点 e前后必须有数字, 且e后面必须为整数 输出:自动保留6位小数 规范化指数形式 2.浮点型数据的存储:占4个字节
3.浮点型变量的分类、定义、有效数字位数及格式符
四、数组
(一)整型或浮点型数组
只能通过循环结构,逐个引用数组元素 1.给数组赋值——即:为每个元素赋值 (1)赋初值: int a[5]={3,7,12,5,9};
(2)用赋值语句(例:元素值分别为2,4,6,8,10) int a[5],i;
for (i=0;i<5;i++) a[i]=2*(i+1);
注:当数组元素的值具有一定的规律时,可以考虑用赋值语句。 (3)用输入语句 int a[5],i;
for (i=0;i<5;i++) scanf(\"%d\
4
2.输出数组——输出每个元素的值 for (i=0;i<5;i++)
printf(\"%5d\(二)字符型数组
既可以通过循环结构,逐个引用数组元素(每个字符);也可以一次引用整个数组(字符串) 1.给数组赋初值
(1)为每个数组元素赋初值
char c[5]={'h','a','p','p','y'}; (2)为整个数组(字符串)赋初值 char c[]=\"happy\";
2.用赋值语句(例:元素值分别是字母a,b,c,d,e) char c[5];int i; for (i=0;i<5;i++) c[i]=97+i;
注:不能用赋值语句给整个数组赋值。 3.输入数组的值
(1)输入每个元素的值 char c[5];int i; for (i=0;i<5;i++) scanf(\"%c\
(2)输入整个数组(字符串)的值 ① scanf(\"%s\ ② gets(c); 4.输出数组的值
(1)输出每个元素的值
for (i=0;i<5;i++) /* 或:c[i]!='\\0' */ printf(\"%c\
(2)输出整个数组(字符串)的值 ① printf(\"%s\ ② puts(c);
5.字符串的表示方法
(1)一维字符数组str[20]:可看做是一个字符串(最大长度20),用str表示 (2)二维字符数组str[3][20]:可看做是3个字符串(每个字符串最大长度20),分别用str[0]、str[1]、str[2]表示
(三)字符串处理函数:复制、比较大小、求长度
五、指针的概念
(一)指针(地址) (二)指向变量的指针
1.p:a的起始地址(p=&a) 2.*p:a的值(*p=a)
(三)指向一维数组的指针 p、a:数组首地址(p=a)
1.p:可指向任一元素(p=&a[i]) a:只能指向第1个元素a[0] 2.指向某个元素
p++、p+i a+i
5
3.数组元素的值:a[i]、p[i]、*(a+i)、*(p+i) (四)指向二维数组的指针 1.二维数组的地址
2.用指针变量表示二维数组元素
(1)指向数组元素的指针变量(i=0~元素个数-1) p=a[0];—— *(p+i)
(2)行指针变量(i=0~行数-1,j=0~列数-1) p=a;—— *(*(p+i)+j) (五)指向字符串的指针
1.p:整个字符串(p=string) 2.*p:字符串中的一个字符
(六)指向函数的指针(P261 例) (七)指针数组
p[i]:表示指向的字符串 (八)指向指针的指针
即:指针变量q指向指针数组 1.指针数组指向字符型 (1)q:字符串的首地址 (2)*q:字符串
2.指针数组指向整型或浮点型 (1)q:指针数组元素的首地址 (2)*q:整型数组元素的首地址 (3)**q:整型数组元素的值
六、变量的指针
(一)指针、指针变量的概念
(二)定义(声明)指针变量: int *p,a;
(三)为指针变量赋值(使指针变量指向普通变量): p=&a; (四)通过指针变量表示它指向的普通变量a的值: *p *p=a;
(五)用指针变量做参数(例10.3、例10.4)
七、指向数组的指针变量(指针变量的定义、赋值与引用):
(一)定义指针变量 int *p,a[10]; (二)为指针变量赋值
1.指向数组:p=a; (p与a的区别) 2.指向数组元素:p=&a[0]; p=&a[3]; p++; p=p+3; (三)通过指针变量引用数组元素 1.表示当前指向的数组元素的值:*p 2.一维数组元素的表示方法(4种):a[i]、*(a+i)、*(p+i)、p[i] 3.用指针变量输入/输出一维数组元素 (1)输入数组元素 ① 用数组下标
for (i=0;i scanf(\"%d\(2)输出数组元素 ① 用数组下标或数组名 for (i=0;i for (p=a,i=0;i int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a[0];pif ((p-a[0])%4==0) printf(\"\\n\"); printf(\"%4d\ } (2)用行指针