C语言二级辅导资料.docx
- 文档编号:23377743
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:117
- 大小:105.82KB
C语言二级辅导资料.docx
《C语言二级辅导资料.docx》由会员分享,可在线阅读,更多相关《C语言二级辅导资料.docx(117页珍藏版)》请在冰豆网上搜索。
C语言二级辅导资料
目录
C程序设计大纲2
《C语言程序设计》基本知识点5
第一章C语言基本知识5
第二章数据类型基本知识7
第三章选择结构知识点9
第四章循环结构知识点10
第五章数组知识点11
第六章函数知识点12
第七章编译预处理知识点13
第八章指针知识点14
第九章结构体知识点15
第十章位运算知识点16
第十一章文件知识点16
模拟练习一19
模拟练习二25
上机(历年)测试全真题集31
2008年春浙江省高校计算机等级考试试卷(二级C)45
2008年秋浙江省高校计算机等级考试试卷(二级C)49
2009年春浙江省高校计算机等级考试试卷(二级C)53
2009年秋浙江省高等学校计算机等级考试(二级C)60
2010年春浙江省高等学校计算机等级考试(二级C)66
C程序设计大纲
浙江省高校非计算机专业学生计算机
基础知识和应用能力等级考试大纲(二级)
基本要求
1.熟练掌握C语言的基本知识;
2.具备基本的C程序设计能力,能熟练地阅读、理解和编制简短的C程序;
3.了解面向对象程序设计的基本概念。
基本内容
一、数据的定义
数据的定义包括数据类型和存储类别。
1、基本类型
基本类型指整型、实型和字符型。
(1)常量
熟练掌握各种表示形式的整数、实数、和字符(串)常量,符号常量的定义和使用。
包括整数的十进制、八进制和十六进制的表示形式、长整型常量的表示形式,实数的浮点表示法和科学记数法,字符的转义序列,常用符号常量的含义(如NULL、EOF等)
(2)变量
熟练掌握变量的定义和初始化。
2、构造类型
构造类型包括数组和结构。
(1)数组
熟练掌握一维和二维数组的定义和初始化,数组元素的引用。
包括一维字符数组和字符串,二维字符数组和字符串数组。
(2)结构
熟练掌握结构类型的定义,结构变量的定义和初始化,结构变量成员的引用。
3、指针
(1)熟练掌握指针和地址的概念
(2)熟练掌握指针变量的定义和初始化
(3)熟练掌握通过指针引用指向实体
4、构造类型和指针类型的混合定义及应用
(1)熟练掌握指针、数组和地址间的关系
(2)熟练掌握指针数组
(3)熟练掌握结构数组
(4)熟练掌握结构指针
(5)掌握结构中含指针或数组
(6)掌握嵌套结构
(7)掌握指向指针的指针(二级)
(8)单向链表
掌握单向链表的建立和遍历
了解插入和删除单向链表中的一个节点
5、空类型
掌握空类型的定义和使用
6、变量的存储类别、作用域和生存期
(1)掌握变量的存储类别
auto自动型、static静态型、extern外部参照型
(2)掌握全局变量和局部变量
注意区分:
自动局部变量和静态局部变量、全局变量和静态全局变量、外部变量
二、运算及流程控制
1、基本运算
熟练掌握运算符的功能
熟练掌握运算符的优先级、结合性和目数
熟练掌握隐式类型转换和强制类型转换
2、表达式
熟练掌握各类表达式的组成规则和计算过程
3、语句
(1)熟练掌握表达式语句、空语句、复合语句;
(2)熟练掌握简单控制语句(break、continue、return);
(3)熟练掌握选择控制语句(if、switch)
(4)熟练掌握重复控制语句(for、while、do—while);
三、程序结构和函数
1、程序结构
熟练掌握main函数与其他函数之间的关系
包括标准库函数和自定义函数
2、函数的定义
(1)熟练掌握函数定义的ANSIC格式
(2)熟练掌握函数的参数(形式参数和实在参数)及参数传递
包括指针作为函数的参数
(3)熟练掌握函数的返回值
包括指针作为函数的返回值
3、函数的调用
(1)函数调用的一般格式
熟练掌握通过函数名调用函数,了解通过函数指针调用函数
(2)掌握函数的嵌套调用和递归调用
(3)熟练掌握标准库函数的调用
常用数学函数:
cos、sqrt、pow、exp、fabs、log、log10等
常用字符函数:
isalnum、isalpha、isdigit、islower、toupper等
常用字符串函数:
strcpy、strcmp、strcat、strlen等
四、数据的输入和输出
1、文件
熟练掌握文件的基本概念
2、标准文件的输入和输出
熟练掌握常用输入输出函数:
scanf、printf、getchar、putchar、gets、puts等
3、缓冲文件系统(文本文件)
(1)熟练掌握文件的打开和关闭
常用函数:
fopen和fclose
(2)熟练掌握文件的基本读写操作
常用函数:
fscanf、fprintf、fgetc、fputc、fgets、fputs等
(3)熟练掌握文件的状态检测
常用函数:
feof等
五、编译预处理
1、熟练掌握编译预处理的基本概念
2、掌握宏定义
3、掌握文件包含
六、面向对象程序设计初步
1、掌握类、对象和面向对象程序设计的基本概念
2、了解类的定义
包括类的成员函数和数据成员
七、常用算法
以下算法针对本大纲中列出的各种数据结构
1、分类(排序)算法
冒泡、选择、插入
2、检索(查找)算法
(1)无序数据序列的查找(见遍历算法)
(2)有序数据序列的查找:
二分法
3、遍历算法
(1)一维数组和二维数组的遍历
(2)单向链表的遍历
(3)文件的遍历
4、其它基本算法
《C语言程序设计》基本知识点
第一章C语言基本知识
1.C源程序的框架
C源程序的功能千变万化,但总体框架是不变的,主要有:
编译预处理、主函数main()、自定义函数等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字必须为main。
2.C语言源程序的书写规则
(1)C源程序是由一个主函数和若干个其它函数组成的。
(2)函数名后必须有小括号,函数体放在大括号内。
(3)C程序必须用小写字母书写。
(4)每句的末尾加分号。
(5)可以一行多句。
(6)可以一句多行。
(7)可以在程序的任何位置加注释。
3.语句种类
语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的语句基本可以分为三大类。
表达式语句
简单语句
空语句
C语言的语句复合语句
控制语句
(1)流程控制语句
C语言提供有9条流程控制语句,流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:
顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。
其中后两种结构要用特定的流程控制语句实现。
(2)表达式语句
表达式语句即表达式后跟一分号";"构成的语句。
其形式是:
表达式;,分号是语句结束符,是一个语句必不可少的成分。
表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。
最常见的表达式语句是赋值语句。
(3)函数调用语句
函数调用语句实际上也是一种表达式语句,形式为:
在一次函数调用的小括号后面加上一个分号。
(4)空语句
空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。
(5)复合语句
复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。
注意复合语句中最后一个语句末尾的分号不能少。
复合语句右大括号后面没有分号。
4.运算符
用来表示数据各种操作的符号称为运算符。
运算符实际上代表了一种类型数据的运算规则。
不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。
根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。
根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。
(1)算术运算符
C语言的算术运算符有:
+、-、*、/、%
注意:
/运算符当其二个运算对象都为整型时,运算结果会取整。
例如:
2/4结果为0而不是0.5;%运算符要求其二个运算对象必须为整型,否则为非法。
(2)关系运算符
C语言的关系运算符有:
>、<、==、>=、<=、!
=
注意:
==运算符与赋值运算符=的区别。
(3)逻辑运算符
C语言的逻辑运算符有:
&&、||、!
注意:
当表达式1&&表达式2时,若表达式1结果为0,则表达式2不运算。
当表达式1||表达式2时,若表达式1结果为1,则表达式2不运算。
(4)赋值运算符
C语言的赋值运算符是:
=
注意:
赋值运算符=的左边必须是变量;复合赋值运算符即其它运算符与赋值结合构成的运算符,如+=、-=、*=等,注意复合赋值运算符的等价形式,如x+=3等价于x=x+3
(5)自增、自减运算符
C语言的自增、自减运算符有:
++、--
注意:
自增、自减运算符属于单目运算符,其只能用于一个变量。
例如,intx=2;++x;而++(x+1)的形式是不合法的。
自增、自减运算符前置于变量时,即先进行自增、自减运算,再使用变量;而自增、自减运算符后置于变量时,即先使用变量,再进行自增、自减运算。
5.表达式
表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。
一个常量,一个变量或一个函数都可以看成是一个表达式。
表达式的种类有:
算术表达式、关系表达式、逻辑表达式、赋值表达式、位表达式、强制类型转换表达式、逗号表达式(顺序表达式)、条件表达式等。
6.数据的输入/输出
C语言本身没有输人/输出语句,数据的输入/输出是通过调用库函数来实现的。
编程时最常用的数据输入/输出函数是:
scanf函数和printf函数。
(1)scanf函数
函数功能:
可按规定的输入格式实现数据的输入
函数调用形式:
scanf(“输入格式控制串”,地址列表);
输入格式控制串:
由要原样输入字符和输入数据格式说明组成。
①原样输入字符:
如果格式控制中加入了格式说明以外的其它字符,则在输入数据时这些字符也要同样的输入。
例如:
scanf(“%d,%d”,&x,&y);输入格式控制串中加入的逗号在输入数据时也要输入。
注意:
使用scanf函数输入数据时,在输入格式控制串中尽量少用原样输入字符。
②输入数据格式说明:
规定了数据输入的格式,以%开头,格式字符结尾
;其一般形式为:
%*ml<格式字符>
其中,附加说明符*和m的作用说明如下:
*:
抑制字符,可抑制数据缓冲区中的一个数据项
m:
数据项分隔宽度
l:
数据精度
格式字符:
常用的有d、f、c、s
(2)printf函数
函数功能:
可以按规定的格式输出多项数据
函数调用一般形式:
printf(“输出格式控制串”,表达式列表);
输出格式控制串:
由要原样输出字符和输出数据格式说明组成。
①原样输出字符:
如果输出格式控制串中加入了输出数据格式说明以外的其它字符,则在输出数据时这些字符会原样输出。
例如,intm=5;printf(“m=%d”,m);输出结果为:
m=5,即输出格式控制串中加入的“m=”在输出数据时会原样输出输入。
②输出数据格式说明:
规定了数据输出的格式,以%开头,格式字符结尾
;其一般形式为:
%#±0m.nl<格式字符>
其中,附加说明符-、+、#、0四种及m和.n的作用说明如下:
- 结果左对齐,右边填空格
+ 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
# 对c,s,d,u类无影响;对o类,在输出时加前缀。
对x类,在输出时加前缀0x;
0当右对齐时,输出数据宽度小于定义总宽度时前面补0
m定义数据输出的最小宽度;用十进制整数来表示输出的最少位数。
若实际位数多于定
义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
n定义精度,精度格式符以“.”开头,后跟十进制整数。
本项的意义是:
如果输出为数值,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分(四舍五入)。
格式字符:
常用的有d、f、o、x、c、s
第二章数据类型基本知识
划分数据类型的意义是编译系统对每个不同类型的数据在内存中分配的字节数不同,不同类型的数据可以按规定参加不同类型的运算。
1.C语言的数据类型
C语言的数据类型有:
整型、字符型、实型单精度型、双精度型、构造类型数组类型、结构体类型、共用体类型、枚举类型、指针类型、空类型;其中整型、实型、字符型是C语言中的基本类型。
2.常量与变量
(1)常量——在程序执行期间其值不变的量。
它不能被赋值。
C语言中使用的常量可分为数值常量、字符常量、字符串常量、符号常量等多种。
下表对各种常量及其形式进行了说明。
C语言的常量
数值常量
整型常量
十进制形式
由正负号(+或-)后跟0-9组成的数字串,如-23
八进制形式
由正负号后跟0-7组成的数字串,开头数据必须是0,如-0123,-0563
十六进制形式
由正负号后跟0x开头的0-9及A-F组成的数字字母串,A-F可用小写或大写,如0x3a,-0x6F
实型常量
小数形式
由正负号(+或-)后跟整数部分,小数点和小数部分组成,正号可省略,但小数点不可省,否则实型变为整型了。
整数部分和小数部分可以缺少一个,但不能同时缺少,如123..4560.0.0等都是实型常量。
指数形式
在整数或小数形式后面加上一个E或e,后跟整数,e或E表示底数为10,其后整数表示幂次。
通常对特别大或特别小的实型常量用指数形式比较方便。
e或E的两边都要有数字,指数部分必须是整数,如1234e8、.23e-9、0.23e-3都是合法的指数形式,但e-5、3.14E、E20、e5.6等都不是合法的指数形式。
字符常量
可显示字符常量
(普通字符常量)
用一对单引号括起来的单个字符表示。
如’f’、’2’
不可显示字符常量
(转义字符常量)
主要是指控制字符、有特殊含义与用途的字符,例如,换行符、换页符、退格符、单引号、双引号、反斜杠等,这些字符常量常用转义字符常量形式表示,转义字符常量以“\”开头,表示将“\”后面的字符转换成另外的含义,也需要一对单引号括起来,如’\n’表示换行符,利用转义字符’\ddd’、’\xhh’可以表示任何ASCII码字符
字符串常量
是用一对双引号括起来的零个或多个字符序列,例如“hello”,“A”、“”等,当字符串常量中为零个字符时被称为空串,字符串中的字符个数即字符串的长度,字符串常量存储时,系统自动在该字符串的末尾加上一个字符串结束标志,即转义字符‘\0’,字符串常量存放时占用一批连续的存储单元,所占字节数为字符串长度加1,且字符串常量中每个字符及末尾的转义字符‘\0’都是以其ASCII码值的二进制形式存储的。
符号常量
是用符号表示的常量,当在程序中使用这种常量时,可以使用其符号。
符号常量需要定义过才能使用。
定义格式:
#define标识符字符串(此定义称为“宏定义”)
注意:
①字符常量在内存中占1个字节,字符在内存中存储形式是字符的ASCII码,因此在C语言中也将字符常量视为1个字节的整数。
②C语言中没有专门的字符串类型变量,如果想将一个字符串存放在变量中,可以使用字符数组,即用一个字符数组来存放一个字符串,数组中每个元素存放一个字符。
③符号常量为了和一般变量名相区别,尽量用大写字母表示。
④标准C允许常量后使用后缀。
常量后才加L(或l)或F(或f)后缀表示长整型常量或单精度实型常量。
如356f,即为单精度实型常量。
注意,C对实型常量是作为双精度处理的。
(2)变量——在程序运行期间其值可以改变的量。
各种数据类型变量的定义方法
定义形式:
数据类型变量名1,变量名2,......变量名n;
3.各种类型数据的混合运算
当表达式中参加的各项数据类型不一致时,各类数据运算前会自动转换成同一类型。
自动转换的一般规则是:
(1)当表达式中有float或double型时,表达式结果为double型
(2)当表达式中无float或double型时,若有long型,则表达式结果为long型,其余情况表达式结果均为int型。
4.强制类型转换
当我们需要对数据进行类型转换,而机器又不能自动完成时,就要用强制类型变换,形式为:
(数据类型符)(被转换对象)。
第三章选择结构知识点
C语言中实现选择结构的控制语句有两种:
两分支选择语句if-else语句和多分支选择语句switch语句。
1.if-else语句的三种形式:
(1)if-else语句省略else分支的形式:
if(表达式)语句;
(2)if-else语句完整形式:
if(表达式)
语句1;
else
语句2;
(3)if-else语句的嵌套形式
if(表达式1)
语句1;
else
if(表达式2)
语句2;
else
if(表达式3)
语句3;
...
elseif(表达式n)
语句n;
注意:
①当语句1或语句2不是单条语句而是多条语句时,需要用花括号括起来,这种用花括号括起来的多条语句称为“复合语句”。
②在if嵌套形式中,else的配对原则是就近配对,因此当if和else的数目不一样时,使用花括号将if和配对的else括起来来确定配对关系,以满足规定的程序逻辑,避免犯逻辑错误。
③用if-else语句的嵌套形式可以实现多分支的条件判断选择结构,但这种实现形式有时会造成程序结构过于复杂。
2.多分支语句switch
(1)switch语句的一般形式:
switch(表达式)
{casee1:
语句1;break;
casee2:
语句2;break;
casee3:
语句3;break;
......
caseen:
语句n;break;
default:
语句n+1;
}
(2)switch语句的执行过程:
当表达式的值等于e1时,执行语句1;
当表达式的值等于e2时,执行语句2;
......
当表达式的值等于en时,执行语句n;
当表达式的值与常量e1、e2......en谁都不等时,就执行default后的语句
注意:
①switch后面的表达式一般是整型或字符型表达式(若是实型系统会自动按类型转换原则转换为整型)
②case子句中的常量表达式e1、e2......en通常为整型或字符型常量。
③语句1、语句2......语句n可以是简单语句或复合语句(复合语句可不加花括号).
④调换case子句或default子句的次序,结果不受影响,但应尽量把使用概率大的case子句放在前面,可提高程序运行速度。
⑤若干个case子句可共用一组执行语句。
第四章循环结构知识点
循环就是在程序执行过程中,反复多次的执行同一段程序。
C语言中有三种循环语句来实现程序的循环结构。
1.while循环语句
(1)语句形式为:
while(表达式)
{
循环体
};
(2)语句执行过程:
先计算表达式的值,当表达式的值非0时就执行循环体,之后再判断表达式的值,且重复以上过程;当表达式的值为0时就结束循环。
2.do--while循环语句
(1)语句形式为:
do
{循环体}while(表达式);
(2)语句执行过程:
先执行循环体一次,再判断表达式的值,当表达式的值非0时就再执行循环体,之后再判断表达式的值,且重复以上过程;当表达式的值为0时就结束循环。
3.for循环语句
(1)语句形式为:
for(表达式1;表达式2;表达式3)
{循环体}
(2)语句执行过程:
①先计算表达式1,②再判断表达式2的值是否非0,若非0则执行循环体,之后再计算表达式3的值,且重复以上②所有过程;当表达式2的值为0时就结束循环。
4.三种循环语句的比较
(1)三种循环语句都可实现程序的循环结构,编程时可任选其一。
(2)使用while和do--while循环时,要提前给循环变量赋初值。
而for循环是在表达式1中赋初值的。
(3)while循环和for循环都是先判断条件后执行循环体,有可能一次也不执行循环体,do--while循环是先执行循环体,后判断条件,即循环体至少也得执行一次。
for循环不限于计数循环,其循环条件可以是逻辑表达式和字符表达式等。
5.循环嵌套
三种循环控制语句可以互相嵌套,即在一个循环体内部又可以出现另一循环,这种嵌套在理论上来说可以是无限的。
注意必须是一个循环完整的套住另一个循环,即循环结构可嵌套,但不可交叉。
6.break语句
break语句只能出现在三种循环语句和switch多分支语句中,其作用是用来中断这四种语句的执行。
当程序执行到break语句时,会跳出break语句所在的循环或switch分支,而直接执行紧跟在它们后面的语句。
7.continue语句
continue语句只能出现在三种循环语句中,当程序执行到continue语句时,其作用是提前结束本次循环,自动跳过循环体中后半部剩余的语句的执行,而直接回到循环条件判断。
根据判断的结果决定是否继续执行下次循环。
8.goto语句
goto语句是一种非结构化语句,其作用是使程序的执行无条件的转移到某一处。
使用格式为:
goto标号;利用goto语句与if条件语句配合,也可以实现条件循环。
C语句允许在任何语句前添加标号,作为跳转目标,标号的构成是标识符后面加一个":
"。
第五章数组知识点
数组就是同类型的一批数据的集合,数组中各元素共用一个数组名,区分各元素的办法是用下标。
1.一维数组
定义形式为:
类型说明符数组名[数组长度];
(1)数组名要符合标识符的命名规则。
(2)数组名后的括号必须是方括号,不能是圆括号。
(3)数组长度必须是正整数,可以是个表达式,但不能有变量,C语言不支持动态数组。
(4)数组长度表示数组中元素的个数
(5)数组元素的下标从0开始数,所以最大下标是数组的长度减1。
(6)一维数组元素常用的引用形式有二种:
1下标引用法,引用形式为:
数组名[下标]
2地址引用法,引用形式为:
*(数组名+偏移量)
2.多维数组(以二维为例)
定义形式为:
类型说明符数组名[第一维长度][第二维长度];
(1)数组名要符合标识符的命名规则。
(2)数组名后的括号必须是两个方括号,定义时不能写成inta[3,4];。
(3)数组长度必须是整型常量表达式。
(4)第一维长度表示数组行数,第二维长度表示数组列数。
(5)每个数组元素都有两个下标,第一维表示该元素所在的行,第二维表示该元素所在的列,每一维的下标都从0开始数。
(6)二维数组的引用:
二维数组不能整体引用,要引用数组的单个元素,引用形式为:
数组名[下标][下标],引用数组元素和普通变量的使用无任何区别。
3.字符数组
C语言中没有字符串变量,字符串是靠字符数组实现的,所谓字符数组就是元素的数据类型为字符型的数组。
(1)字符数组的定义形式:
cha
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 二级 辅导资料