当前位置:文档之家› 2010年上海电机学院专升本《C++程序设计》考试大纲[1]

2010年上海电机学院专升本《C++程序设计》考试大纲[1]

2010年上海电机学院专升本《C++程序设计》考试大纲一、基本要求1. 掌握C++语言的基本语法规则。

2.掌握程序设计的三种基本结构。

3.掌握函数、指针和结构体的基本知识及相关应用。

4.熟练掌握有关类与对象的相关知识。

5.能够采用面向过程和面向对象的编程思路和方法编写应用程序。

6.能熟练使用Visual C++6.0集成开发环境编写和调度程序。

涉及主要内容:C++语言与面向对象概述、基本数据类型及表达式、C++与结构化程序设计、数组、函数与预处理、指针、构造数据类型、类与对象、继承与派生、多态性、I/O 流与文件、模板与异常处理等。

二、考试内容第1 章 C++语言与面向对象概述1.理解和掌握C++程序的基本结构、C++的基本词法和规范;2.了解面向对象技术的基本概念;3.初步掌握Visual C++集成开发系统的步骤和方法;第2 章基本数据类型及表达式1.掌握简单的输入/输出;2.掌握基本数据类型的应用;3.掌握常量和变量的定义与应用;4.掌握运算符与表达式的应用;5.了解运算符的优先级;6.了解数据类型转换。

第3 章 C++与结构化程序设计1.掌握结构化程序设计方法;2.掌握各种选择语句的使用;3.掌握各种循环语句的使用;4.掌握各种转向语句的使用;5.学会综合运用结构控制语句进行简单的编程第4 章数组1.掌握定义一维数组和二维数组的方法以及设定初值的方法;2.掌握数组和循环配合的程序设计方法;3.掌握数组操作的基本技巧并能解决实际问题;4.掌握数组的一个典型应用——字符串处理,熟悉常用的字符串处理函数;5.了解数组的概念;6.了解数组元素的存放方式。

第5 章函数与预处理1.掌握函数的定义格式和函数的原型声明方法;2.掌握函数的调用方法以及形式参数和实际参数之间的关系;3.掌握函数的嵌套和递归调用使用方法;4.掌握内联函数和函数重载的使用方法;5.了解函数的作用域与生命期;6.了解编译预处理的基本原理和使用方法。

第6 章指针1.掌握指针变量的定义格式及引用方法;2.掌握指针变量的简单运算;3.掌握用new 与delete 运算符动态分配与回收内存空间的方法;4.掌握用指针变量处理一维数组与字符串数组的问题;5.掌握用指针变量、数组作为函数参数时函数的使用方法;6.了解指向函数的指针和指向指针的指针的使用方法。

第7 章构造数据类型1.掌握结构型的定义、结构型变量的定义和使用;2.掌握共用型的定义、共用型变量的定义和使用;3.掌握枚举型的定义、枚举型变量的定义和使用;4.理解typedef 作用,了解typedef 的使用方法;5.能综合运用上述方法和技术进行较复杂的程序设计第8 章类与对象1.掌握类和对象的定义方法;2.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;3.掌握构造函数和析构函数的含义与作用、定义方式和实现;4.理解静态成员的特性;5.掌握内联函数和重载函数在类设计上的应用;6.掌握友元函数和友元类的含义和特点;7.了解嵌套类的定义方式,掌握子对象的初始化方法;8.理解对象指针和对象数组的定义和使用方法;9.掌握常类型函数参数的使用要领;10.掌握常对象、常成员的定义、使用方法第9 章继承与派生1.掌握派生和继承的相关概念和使用方法;2.掌握在继承中构造函数的设计方法和调用顺序;3.掌握在继承中析构函数的设计方法和调用顺序;4.掌握虚基类的相关概念和使用方法;5.掌握运用类的继承和派生的相关知识进行综合程序设计第10 章多态性1.理解静态联编和动态联编的概念;2.掌握运算符重载的实现方法;3.了解虚拟函数和动态联编对实现动态多态的作用;4.理解纯虚拟函数和抽象类的概念和实现方法;5.了解虚拟析构函数的概念和作用,掌握其声明和使用方法;6.理解动态联编的实现机理,学会使用动态多态特性解决实际问题第11 章 I/O 流与文件1.理解如何使用C++面向对象和输入/输出流;2.使用定义在<iomanip>中的格式化标志对输入/输出进行格式化;3.理解如何输入/输出流的类层次;4.理解如何输入/输出自定义类型的对象;5.创建程序员定义的流操作程序;6.掌握文件流的使用,了解字符串流的使用。

第12 章模板与异常处理1.能够设计和使用模板;2.能够使用继承的模板;3.理解容器与迭代器;4.理解异常处理的重要性以及使用异常处理;5.使用不同的C++异常处理技术;6.能够处理不可预见的异常;7.熟悉标准异常处理函数。

三、考试方式笔试:120分钟,满分150分。

四、附考试样题:《C++程序设计》笔试试卷一、选择题(25%)1. 以下C++标识符,哪个是正确的( )。

A. voidB. _text_1C. 3_nameD. 2a-one2. 下列哪个是C++源文件的扩展名( )。

A. .hB. .dswC. .cppD. .dsp3. sizeof(double)的结果是( )。

A. 8B. 4C. 2D. 出错4. 字符串“\\\”ABC\“\\”的长度是( )。

A. 3B. 5C. 7D. 95. 设整型变量i 为5,使整型变量k 不为2 的表达式是( )。

A. k=i%2B. k=i/2C. k=6-(--i)D. k=i>3?2:16. 下面for 语句的循环次数为( )。

for(int i=0,x=0; !x && i<=6;i++)A. 0B. 5C. 6D. 77. 下列语句中,不正确的是( )。

A. static int a[2][3]={1,2,3,4,5,6};B. static int a[2][3]={{1},{4,5}};C. static int a[][3]={{1},{4}};D. static int a[][]={{1,2,3},{4,5,6}};8. 设有如下形式的字符数组定义:static char str[]="Beijing";则执行下列语句后的输出结果为( )。

cout<<strlen(strcpy(str,"Hdllo"));A. 7B. 5C. 8D. 99. 在C++程序中,直接或间接调用自己的函数称为( )。

A. 递归函数B. 内联函数C. 重载函数D. 成员函数10. 在下列语句中,将函数int find(int x, int y)正确重载的是( )。

A. float find(int x, int y)B. int find(int a, int b)C. int find(int x)D. float find(int x, int y)11. 下面的函数声明语句中,最正确的是( )。

A. int max(x,y);B. max(int,int);C. void max(int ,int)D. int max( int x, int y);12. 在int a=5,*p=&a; 语句中,*p 的值是( )。

A. 变量a 的地址B. 无意义C. 变量p 的地址值D. 513. 若有:int func(int *p){... ...}void main(){int (*q)(int *)=func;int *f(),k[10],a;... ...}在必要的赋值后,对func 函数的正确调用语句是( )。

A. q=q(k);B. (*q)(&a);C. f=*f(k);D. func(f);14. 若有如下定义,则下列对成员变量a 的访问,哪种是不合法的( )。

struct AA{int a,b;}st,*p=&st;A. (*p).aB. *p.aC. p->aD. st.a15. 有关类和对象的说法不正确的是( )。

A. 对象是类的实例B. 一个类只有一个对象C. 任何一个对象只能属于一个类D. 类与对象的关系和数据与变量的关系相似E. 类是抽象的,对象是具体的16. 有关构造函数的说法不正确的是( )。

A. 构造函数名和类名相同B. 构造函数可被程序显式调用C. 构造函数可有返回类型D. 构造函数可有多个E. 构造函数都是由系统自动调用的17. 关于静态数据成员,下列说法错误的是( )。

A. 静态数据必须初始化B. 静态数据的初始化是在构造函数中进行的C. 说明静态数据成员时前面要加staticD. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符18. 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则( )。

A. 完全相同B. 完全不同C. 部分相同,部分不同D. 以上都不对19. 关于多继承二义性的描述,以下( )是错误的。

A. 一个派生类中的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性B. 解决二义性最常用的方法是对成员名的限定C. 基类和派生类中出现同名函数,也存在二义性问题D. 一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性20. 下列属于动态多态的是( )。

A. 函数重载B. 运算符重载C. 虚函数D.构造函数重载4. 重载运算符的实质是函数调用,如果重载了后置单目运算符“++”,执行C++,则相当于执行了哪个函数( )。

A. c.operator++(c,0);B. c.operator++();C. operator++(c);D. operator++(c,0);21. 当使用ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式是( )。

A. ios::inB. ios::outC. ios::trunkD. ios::binary22. 进行文件操作时包含( )文件。

A. iostream.hB. fstream.hC. stdio.hD. stdlib.h23. 磁盘文件操作中,打开磁盘文件的访问模式常量时,( )是以追加方式打开文件的。

A. inB. outC. appD. ate24. 关于函数模板,下面描述错误的是( )。

A. 函数模板必须由程序员实例化为可执行的函数模板B. 函数模板的实例化由编译器实现C. 一个类定义中,要有一个函数模板,则这个类是类模板D. 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化25. 下列对模板的说明中,正确的是( )。

A. template <typename T1, typename T2>B. template <class T1,T2>C. template <class T1,T2>D. template <typename T1,T2>二、填空题(25%)1. 面向对象方法的主要特点是将___________和___________封装在一起。

相关主题