5002+C++语言程序设计.docx
- 文档编号:29356449
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:37
- 大小:46.82KB
5002+C++语言程序设计.docx
《5002+C++语言程序设计.docx》由会员分享,可在线阅读,更多相关《5002+C++语言程序设计.docx(37页珍藏版)》请在冰豆网上搜索。
5002+C++语言程序设计
2010年秋期成人教育(专科)
《C++语言程序设计》期末复习指导
2010年12月修订
第一部分课程考核说明
1.考核目的
通过本次考试,了解学生对本课程的基本内容、重点和难点的掌握程度,以及运用本课程的基本知识、基本方法和基本理论分析和解决实际问题的能力。
同时还考察学生在平时的学习中是否注意了理解和记忆相结合,理解和运用相结合。
2.考核方式
本课程期末考试为闭卷笔试,考试时间为90分钟。
3.适用范围、教材
本复习指导适用于成人教育专科计算机应用、软件开发与应用(信息系统开发)、机械制造、机电工程等专业的课程《C++语言程序设计》。
本课程考试命题依据的教材采用中央广播电视大学出版社出版、李宁编著的《C++语言程序设计》(2000年7月第1版),实验教材是中央广播电视大学出版社出版、李宁、徐孝凯、张纪勇等编写的《C++程序设计实验》(2000年7月第1版)。
4.命题依据
本课程的命题依据是《C++语言程序设计》课程教学大纲、教材、实施意见。
5.考试要求
考试主要是考核学生对基本理论和基本问题的理解和应用能力。
在能力层次上,从了解、掌握、重点掌握3个角度要求。
主要考核学生对C++语言的基本语法规则和基本概念、能够阅读和分析用C++语言编写的程序,即能够写出程序的运行结果或指出程序的功能、能够根据解决特定问题的要求利用C++语言编写出程序的能力。
6.试题类型及结构
考题类型及分数比重大致为:
填空(30%);选择题(20%);判断题(20%);程序阅读题(20%);编程题(10%)。
第二部分期末复习指导
第一章C+十语言概述
一、重点掌握
1.程序、程序文件和函数的概念及其相互之间的关系。
2.函数的定义格式和作用,主函数的特殊地位和作用。
每个函数包含函数头和函数体两个部分,函数体就是由一对花括号括起来的复合语句,函数头就是函数体之前的部分。
3.C++基本语句和复合语句的语法格式。
每条基本语句以分号作为结束符,每个复合语句是用一对花括号括起来的语句序列,其中的每一条语句仍可以是复合语句。
4.利用标准输出流对象cout和插入操作符<<向标准输出设备——显示器屏幕输出表达式的值,利用标准输入流对象cin和提取操作符>>从键盘向内存变量输入值。
注意:
当从键盘输入多个数据时,各数据之间只能用空格或回车符作为分隔符,当向屏幕输出每个数据时,将紧接着上一次显示位置之后显示出来。
5.对于C++源程序文件名、编译后生成的目标文件名和连接后生成的可执行文件名,其系统给定的扩展名分别是什么?
C++系统的编译程序和连接程序分别实现什么功能?
二、一般掌握
1.程序中两种注释标记的写法和作用。
2.#include命令的作用,C++系统编译程序对其处理的过程;头文件的文件名格式、在程序中的使用方法和作用。
第二章基本数据类型和表达式
一、重点掌握
1.C++数据类型的分类:
整型类(字符、布尔、枚举等类型归于此类)、实型类、指针类、数组类(字符串归于此类)、复合类(包括结构、联合和类类型)等。
2.各种整数类型的关键字表示,存储空间的大小和值域范围。
若不特别指明,均认为int类型的大小为4个字节,即每个整型数据占有4个字节的存储空间。
3.整型变量的定义和初始化,十进制整型常量的表示。
4.字符类型的关键字表示,存储空间的大小和值域范围。
字符型常量的表示,回车、换行、单引号、双引号、反斜线、空字符(即ASCⅡ代码为0的字符)等特殊字符的表示。
5.字符型变量的定义和初始化,字符型与整型的关系。
6.枚举的概念,枚举类型的定义,枚举变量的定义和初始化,枚举常量与整型常量的对应关系。
7.各种实数类型的关键字表示,存储空间的大小和有效位数。
8.单精度和双精度实数的定点表示和浮点(科学)表示,实型变量的定义和初始化。
9.加、减、乘、除、取余、赋值、增1、减1、取数据存储长度等算术运算符的表示、含义、运算对象个数和运算优先级。
10.关系运算符的定义和关系表达式的计算,逻辑运算符的定义与逻辑表达式的计算,系统给定的逻辑(布尔)类型的定义,逻辑常量false和true与整型常量的对应关系,逻辑变量的定义和使用,求任意表达式对应逻辑值的方法。
11.typedef语句格式及功能。
二、一般掌握
1.整型常量的八进制和十六进制表示。
2.符号常量和常值变量的定义和初始化,它们之间的区别。
3.位操作符、复合赋值操作符的含义与使用。
4.不同数据类型之间的强制转换。
5.相反条件、等价条件、永真条件的含义,条件操作符和逗号操作符的含义及运算过程。
第三章C+十程序的流程控制
一、重点掌握
1.程序或程序模块的三种基本结构,每种结构的执行过程。
2.简单if语句、带else子句的if语句、多分支结构的if语句的定义格式、执行过程和在处理问题中的具体应用。
3.if语句与switch语句之间的功能比较,if语句与switch语句之间的转换,但有时if语句无法或很难转换为Switch语句。
4.for循环、while循环和do…while循环的定义格式、执行过程和在处理问题中的具体应用。
5.三种循环结构之间的比较及其相互转换。
6.Break语句在switch语句和各种循环语句中的作用,continue语句在各种循环语句中的作用。
二、一般掌握
1.switch让出语句的定义格式、执行过程和在处理问题中的具体应用。
2.goto语句和return语句的定义格式和功能。
第四章数组
一、重点掌握
1.一维数组的含义、定义格式及初始化格式。
2.数组长度、数组元素、元素下标的含义,访问数组元素的语法格式,下标运算符的操作对象和操作结果。
3.数组元素的下标变化范围,数组元素所占存储空间大小和整个数组所占存储空间大小的计算,各元素对应存储空间的排列情况,每个元素的存储地址的计算。
4.利用一维数组存储数据,按元素值的升序或降序排列,按给定条件或功能对数组元素依次进行访问和处理。
5.二数组的含义、定义格式及初始化格式。
6.二维数组的行数和列数的概念,数组长度(即所含元素个数)的计算。
7.访问二维数组元素的语法格式,每个下标运算符的操作对象和操作结果。
第一个下标运算符的操作结果为对应的一维数组,第二个下标运算符的操作结果为该一维数组中的对应元素。
8.二维数组中的所有元素在存储空间中的排列情况,每个元素的存储地址的计算。
9.利用二维数组存储矩阵数据,接给定条件或功能对数组元素依次进行访问和处理。
10.字符串常量的定义格式,字符串的存储格式。
11.一维字符数组、二维字符数组与字符串之间的关系,一维字符数组与二维字符数组的初始化。
二、一般掌握
1.strlen,strcpy,strcmp,strcat等字符串函数的声明格式及功能,利用提取和插入操作符输入和输出字符串的语法格式。
2.利用typedef语句定义数组类型。
第五章C++函数
一、重点掌握
1.函数的声明格式与定义格式。
一个函数的返回值类型又称为函数类型,它可以为已经存在的任何一种类型或引用,函数名可以为任何一个合法的标识符,形式参数表包含有对每个形参变量的说明,函数体是一个复合语句。
2.函数调用表达式的语法格式及执行过程。
函数调用中的实在参数表包含有若干个表达式,其个数通常与对应的形参表中的报参个数相同。
函数调用时,首先把实在参数表中每个实参的但对应传送给形参表中的每个形参变量,接着执行其函数体,当函数体执行结束或执行了return语句后就返回到调用表达式的位置,在原函数中继续向下执行。
3.当函数调用不返回值(即被调用的函数为void类型)时,调用表达式只能作为单独的语句出现,否则,当函数调用返回一个值时。
调用表达式既可以单独作为一条语句地现,也可以作为表达式中的一个数据项出现。
4.函数定义中的形参变量是作用于该函数的局部变量,当函数被调用时才临时为它分配存储空间。
当函数执行结束后将自动由系统回收掉。
5.一个函数只有先被声明或定义后,才能被调用。
函数声明语句与函数定义中的函数头基本相同,所不同的是:
声明语句必须以分号结束,形参表中可以为任意形参名或者根本不给出。
6.形参为一维数组或二维数组时的说明格式以及对应实参的语法规则。
函数调用中的把实参数组传送给形参数组的操作只是传送实参数组所对应的存储空间的首地址,因此,形参数组和实参数组对应的是同一块数组空间,访问任一数组中的元素都是在这块数组空间上进行的,或者说,访问形参数组中的元素也就是访问实参数组中的元素。
7.变量的作用域的概念和含义。
在函数外部定义的常量(包括符号常量和常值变量)或变量具有全局作用域,若全局变量没有被显式初始化,则将被系统隐含初始化为O。
若在定义变量(包括定义常值变量在内)的语句或定义的函数之前加上static关键字,则它们只能为本程序文件所使用,否则能够为整个程序中的所有文件所使用。
在函数中任一个花括号内定义的变量称为局部变量,其作用域认定义位置起到对应的右花括号位置,当离开其作用域后,所分配的存储空间将自动被系统回收掉。
局部变量未被初始化时,其值是不确定的。
当然无论是全局变量还是局部变量,都必须遵循先定义后使用的原
则。
8.函数模板(又称模板函数)的定义格式及其作用。
函数模板的实例化,实例化与已有函数定义之间的优先关系。
二、一般掌握
1.函数的递归调用的概念和递归函数的具体执行过程。
2.头文件在程序文件中的位置和作用。
3.函数声明或定义中可选参数的使用,对应的函数调用的格式及执行过程。
4.内联函数的定义与作用。
5函数重载的概念。
函数名相同,但对应形参表不同的一组函数称为重载函数。
参数表不同是指参数个数不同或在个数相同的情况下至少有一个参数对应类型不同。
6.由Static修饰的局部变量的特性。
特性之一是:
若未被初始化,则隐含初始化为0;特性之二是:
当离开所定义的作用域后,该变量所对应的存储空间依然存在,不会被系统收回,以后再调用该函数时可继续访问它。
第六章指针、引用和动态空间管理
一、重点掌握
1.指针的概念,指针变量的定义和初始化。
2.指针赋值(=)、取对象(变量)地址(&)、访问指针所指对象(*)、指针比较(==、!
=、>、<等=、指针算术运算(+、-、+=等)、指针增1或减1(++、--)、指针类型转换等操作的含义、优先级及其应用。
3.数组名是指针常量,其值为该数组空间的首地址,或者说指向该数组空间的开始位置。
函数定义中的数组形参是同类型指针形参的等价表示,其数组名是指针变量而不是常量。
4.利用指针方式而非下标方式访问一维数组(含字符数组)中的元素,一维数组元素的不标访问方式与指针访问方式之间转换。
5.一级指针(即带有一个星号定义的指针)作为函数参数和返回类型的应用。
6.引用的概念,引用变量的定义和初始化,引用作为函数参数和返回类型的应用。
7.new和delete操作符的含义及作用,动态对象或动态数组的建立与释放。
动态分配空间将持续存在,随时可被指向它的指针所访问,直到使用delete操作符释放它为止。
二、一般掌握
1.指针常量的两种定义格式和含义。
2.指针表达式的副作用。
3.利用指针方式而非下标方式访问二维数组中的元素,二维数组元素的下标访问方式与指针访问方式之间转换。
第七章结构与联合
一、重点掌握
1.结构的概念,结构类型的定义格式,结构类型的声明(即不完整定义)格式。
2.结构对象(变量)的各种定义格式和初始化,结构大小的计算,结构对象和结构数组对象的动态分配和初始比。
3.结构赋值,结构成员的直接访问和间接访问,利用结构数组保存和处理数据。
4.结构和结构指针(含结构数组)作为函数参数和返回值类型的具体应用。
二、一般掌握
1.链表的概念,链表中结点的结构,链表的建立、遍历、查找和释放等操作的算法。
2.操作符重载的概念,对结构类型进行算术、关系、输入和输出等操作符重载的函数定义格式,调用操作符重载函数的格式。
3.联合的概念,联合类型的定义格式,联合对象的定义和初始化,联合的存储结构及大小的计算,匿名(无名)联合的特点。
第八章类与对象
一、重点掌握
1.类的概念,类类型的定义格式,类成员的三种访问权限的具体含义,共与结构的异同。
类成员在该类成员函数中的访问方法(即直接使用类成员名)和在类外其他函数中的访问方法(即必须使用对象名限定)。
2.this指针的含义,类成员函数的类中声明或定义的格式,类成员函数的类外定义的格式,内联成员函数的定义格式,类类型大小的计算和类对象的存储结构。
3.构造函数和桥构函数的定义格式、调用时机和作用;构造函数的分类:
无参构造函数、带参构造函数和拷贝构造函数;构造函数中初始化表的定义格式及作用。
4.类的继承的概念,派生类(即带基类的类)的定义格式,对基类的三种不同继承方式的特点,对基类数据成员的初始化方法,类区分符的使用格式及作用。
5.类对象成员的初始化方法,派生类构造函数和桥构函数被执行的过程。
二、一般掌握
1.类成员函数的重载和操作将重载函数。
注意:
在类中定义操作符重载函数时,其第一个操作对象隐含为this指针所指向的对象,参数表中出现的是第二个操作对象。
2.赋值重载函数的定义格式、调用时机及作用。
3.友无函数和友元类的概念,在一个类中对友元函数和友元类的声明格式,在类中引人友元的优缺点。
4.静态数据成员的含义、声明格式、类外定义和初始化格式。
访问方法。
5.模板类的定义格式与模板类的实例化,利用模板类定义对象的语法格式。
第九章C++流。
一、重点掌握
1.C++流类系列中各流类之间的继承关系,iostream.h、fstrealn.h、strstrea.h、iornanip.h等头文件的组成及作用。
2.预定义标准输入流和输出流对象cin、cout和cerr的含义,在输入和输出流类中重载的提取和插入操作符函数的声明格式,以及调用它们的格式。
3.I/O操纵符dec、oct、hex、ws、endl、ends、setw(int)等的控制功能。
4.文件的概念,字将文件和字节文件的存储格式,文件访问位置指针、文件结束标记、文件缓冲区、文件流对象(简称文件流)等的含义,文件流的定义、打开文件、关闭文件等语句的格式及作用,每一种文件打开方式的含义。
5.使用插人操作符和put(char)成员函数向字符文件输出数据,使用提取操作符和get()、get(char&)、getline(char*、,nit,char)等成员函数从字符文件中读取数据。
二、一般掌握
1.使用read(char*,int)和write(constchar*,int成员函数访问字节文件,使用seekg(long,seek-dir)和Seekp(long,Seek-dir)成员函数移动文件指针,使用tellp()和tellp()成员函数返回文件指针位置。
2.ios流类中定义的bad()、eof()、fail()、clear()、fill()、Precision(int)setf(long)、unsetf(long)、width(int)等成员函数的声明格式及作用,I/O操纵符setiorflags(long)、resetiosflags(long)、setfill(int)、setprecision(int)等的调用格式及作用。
3.字符串流类对象的定义和使用。
第三部分综合练习题
一、填空题
1、C++程序是由___________构成的,而一个函数又由函数的___________和___________两部分组成。
2、___________是在程序运行中值不能被改变的量。
而相反,如果在程序运行过程中值可以被改变的量称为___________。
3、C++语言规定,以字符___________来作为字符串的结束标志。
4、带复合赋值运算符的表达式:
x+=4,等价于普通的赋值表达式___________。
5、语句:
y=(x=2+4,x+4,x*2);执行完后x的值是___________,y的值是___________。
6、表达式x*=2+4运算后变量x的值为___________,其中x的初值是10。
7、逻辑表达式a+b>c&&b==c的值为___________,其中a=3,b=4,c=5。
8、普通的赋值表达式:
x=x%3,等价于带复合赋值运算符的表达式___________。
9、逻辑表达式a||b+c&&b-c的值为___________,其中a=3,b=4,c=5。
10、表达式x=x>6运算后变量x的值为___________,其中x的初值是10。
11、逻辑表达式!
(x=a)&&(y=b)&&0的值为___________,其中a=4,b=5,c=6。
13、关系表达式x+y的相反表达式为_____________。
14、若x=2,y=4,则x>y&&!
x<=y的逻辑值为_____________。
15、inta=3;表达式a+=a-=a*=a+3%2的值为___________。
16、设inta=2,b=3;floatx=3.5,y=2.5;表达式
(1)(float)b/2+(int)x%(int)y的值为:
___________;
(2)(float)((a+b)/2)+(int)x%(int)y的值为:
___________;
17、设inta=3,b=5,c=5;表达式
(1)a-=a/b的值为:
___________
(2)a+b>c&&b==c的值为:
___________
(3)!
(a+b)+c&&b+a/b的值为:
___________
(4)a||b+c的值为:
___________
18、字符常量'\O178'在内存中占______字节,字符串"a"在内存中占_______字节。
19、若intx=3,y=2,z=1;求下列表达式的值:
(1)x y: x的值为: ___________; (2)x x++: y++的值为: ___________ (3)z+(x x: y)的值为: ___________; (4)x/y+z的值为: ___________; 20、一个C++语言程序是由若干个函数构成,其中必有一个___________。 21、设inta=2,b=4,c=5;表达式: (1)a+=a*b的值为: ___________; (2)a+b>c&&b==c的值为: ___________; (3)! (a+b)+c-1&&b+c/2的值为: ___________; (4)a||b+c的值为: ___________; 22、cin与操作符___________配合可用于键盘输入; 23、cout与操作符___________配合可用于显示输出; 24、通过执行x=y;y=z;z=x;可交换变量________和变量_________的值 25、执行cout<<"What\'syourname? ";,显示在屏幕上的是___________。 26、int、float、long、char和double类型的大小分别为_____________、_____________、_____________、_____________和_____________。 27、算术表达式 对应的C++表达式分别为_____________和_____________。 28、不用操作符! ,x<=y+5的相反条件可表示为: _______________。 29、若要在程序文件中进行标准输人输出操作,则必须在开始的#include命令中使用_____________头文件。 30、C++语言中的每条基本语句以_____________作为结束符,每条复合语句以_____________作为结束符。 31、执行“cout< 32、执行“cout<<43<<'-'<<18<<'='<<43-18< 33、表达式x=x+l表示成增量表达式为___________。 34、如果x=123,y=-6,则执行语句if(x>0)cout<<'A';if(y<-8)cout<<'B';后屏幕上显示的结果是______________。 35、已知数组a定义为inta[]={1,3,5,7};,则a的各元素的值分别是___________,最小下标是___________,最大下标是___________。 36、已知数组f定义为doublef[4][3]={{1,2},{5},{6,7,8}};,则f是一个___________行___________列的二维数组,总共有___________元素。 37、执行“typedefintABC[10];”语句把ABC定义为具有11个整型元素的____________。 38、借助变量z交换变量x、y的值,应顺序执行的三个赋值语句是: ________;_______;__________。 39、若一函数是以return;结束运行的,说明该函数是___________函数。 40、已知'A'~'Z'的ASCⅡ码为65~90,当执行“charch=14*5+2;cout< 41、变量分为全局和局部两种,_____________变量没有赋初值时,其值是不确定的。 42、使用coust语句定义一个标识符常量时,则必须对它同时进行____________。 43、在函数外定义的变量称为___________变量。 44、"插入法"排序的模块,请将程序填写完整 intinsertsort(a,x,m) longa[],x; intm; {intk,j; if(x>=a[m])a[m+1]=x; else{k=1; while(x>=a[k]&&k ____________________________; for(j=m;j>=k;j--) ____________________________; ____________________________; } m=m+1; return(m); } 45、下面的程序段是按行显示输出5行3列数组a的所有元素,从倒数第一行开始输出,最后输出首行,请补充完整: for(inti=______;i<_______;__________); { cout< for(_____________;_________;j++) cout<<___________________<<''; } 46、已知函数f的定义是: intf(intn) {n=n+2; returnn+1; } 则执行 intm=5,n=3; m=f(n); 后,m的值是___________,n的值是___________。 47、返回n和m的最小公倍数的模块,请将程序填写完整 intf(n,m) intn,m; {intr;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 5002 C+ 语言程序设计