南京工业大学《C/C++程序设计》研究生科目是南京工业大学一门重要的考试科目,南京工业大学有生物工程,安全工程,化学工程与工艺,计算机科学与技术,土木工程,过程装备与控制工程,冶金工程,材料科学与工程,无机非金属材料工程,高分子材料与工程,金属材料工程,复合材料与工程等国家特色专业。南京工业大学《C/C++程序设计》在职研究生科目复试大纲如下:
本考试复习大纲适用于南京工业大学计算机科学与技术类和软件工程在职研究生(学术和专业硕士)入学复试阶段的考试。重点考查考生的程序设计语言基础和动手能力。
一、考试内容
1、基本知识
(1)基本数据类型
(2)常量与变量
(3)运算符:运算符的优先级和结合性、表达式
2、顺序、选择与循环结构
(1)选择语句:if语句,switch语句
(2)循环语句:while、do-while、for语句
(3)跳转语句:break、continue语句,exit()和abort()函数
3、数组
(1)一维数组:一维数组的定义、初始化和使用
(2)二维数组:二维数组的定义、初始化和使用
(3)字符数组:字符数组的定义和初始化
(4)字符串处理函数:字符串比较函数、字符串复制函数、字符串追加函数
4、函数与编译预处理
(1)函数定义与调用:函数的定义,函数的调用
(2)函数名重载
(3)内联函数:内联函数的定义和特点
(4)函数的原型说明与值调用
(5)函数的嵌套调用和递归调用
(6)作用域与存储类型:局部变量、全局变量;自动存储类型、静态存储类型
(7)具有默认参数值的函数
(8)编译预处理:宏定义、条件编译
5、指针与引用
(1)地址和指针的概念
(2)指针和数组:用指针访问数组元素、指针和字符串、指针数组、指向数组的指针
(3)指针与函数:指针作为函数的参数、返回类型为指针的函数
(4)动态分配内存空间:new与delete运算符
(5)引用:引用类型变量的定义和使用、引用作为函数的参数
(6)其他类型的指针:void指针、const类型指针
(7)类型定义:typedef的使用
6、结构体和枚举
(1)结构体:结构体类型的定义、定义结构体类型的变量、结构体类型变量的使用、结构体数组、结构体指针
(2)枚举:枚举类型的定义、枚举类型变量的使用
7、简单链表及其应用
(1)简单链表的定义:单向非循环链表的定义
(2)简单链表的应用:创建链表、增加结点、删除结点、链表的遍历
8、 类及其对象的封装性
(1)类的基本概念:类的定义、类的成员类型、*this指针
(2)类的使用:对象的定义、实例调用类的成员、对象指针和对象引用、类实现数据封装
9、类的成员
(1)类的成员函数的定义和调用:成员函数的定义、成员函数的调用
(2)成员函数的重载
(3)构造函数:定义构造函数、构造函数和对象的初始化、缺省构造函数、实现类型转换和拷贝的构造函数
(4)析构函数:定义析构函数、缺省析构函数
(5)对象成员:对象成员的定义、在构造函数中初始化对象成员
(6)const对象和const成员函数
(7)友元:友元函数、友元成员、友元类
(8)静态成员:静态数据成员、静态成员函数
10、继承性
(1)继承:继承的概念和实现、单一继承、多重继承
(2)初始化基类成员:在构造函数中初始化基类成员
(3)冲突、支配规则和赋值兼容性
(4)虚基类:虚基类定义和特征
11、 虚函数和多态性
(1)虚函数的定义和使用
(2)C++中的多态性:静态多态(函数名重载)、动态多态(虚函数)
12、运算符重载
(1)用成员函数实现运算符重载:一元运算符重载、二元运算符重载
(2)用友元函数实现运算符重载:一元运算符的重载、二元运算符的重载
(3)类型转换
(4)须掌握的运算符:算术运算符的重载、关系运算符的重载、“++”和“--”运算符的重载、赋值运算符的重载
13、输入/输出流
(1)流的基本概念
(2)输出流:cout的使用、格式化输出(设置宽度、设置实数的精度等)
(3)输入流:cin的使用
(4)文件输入输出
14、基本结构与算法
(1)排序:选择排序、冒泡排序
(2)搜索:简单搜索、二分搜索
(3)栈:栈的定义和使用
(4)队列:队列的定义和使用
二、考试要求
1、掌握基本数据类型、各种运算符和表达式。
2、掌握程序的基本控制结构。
3、掌握数组的定义、数组元素的引用、数组的初始化,重点掌握字符串处理函数。
4、掌握函数的定义语法,重点掌握函数调用中三种参数传递机制;掌握局部变量、全局变量作用域,掌握auto、static类型变量的概念及特性。
5、掌握结构体类型变量的定义、结构体变量的引用、结构体变量的初始化方法,掌握结构体数组和结构体指针的定义、初始化和结构体数组的应用,掌握枚举类型的一般概念、定义格式及使用方法。
6、掌握地址和指针的基本概念,重点掌握指针和数组之间的关系以及函数参数为指针和引用类型的特点,掌握动态分配内存空间的操作方法和注意点,灵活使用类型定义。
7、掌握简单链表的实现方法和使用过程,重点掌握链表的创建、结点删除和结点插入方法。
8、掌握类的定义及其构成,掌握*this指针的概念及其使用方法,掌握类和对象的关系,掌握类中成员的访问方法,掌握对象指针及对象引用的定义及其使用方法,掌握类如何实现数据的封装。
9、掌握类的成员函数的定义和调用方法,掌握并能熟练运用函数重载,掌握构造函数和析构函数的定义和作用,重点掌握构造函数各种形式及其功能,掌握对象成员的应用特点,掌握const类型的对象和const类型的成员函数,掌握友元函数的定义和特点,重点掌握类的静态成员的定义格式及其特点。
10、掌握继承性的基本概念及其实现方式,掌握单一继承和多重继承的实现方法,掌握初始化基类成员的含义及其应用,重点掌握冲突、支配规则及赋值兼容规则的含义及其注意点,掌握虚基类的概念、特点及应用场合。
11、掌握多态性的定义及其实现方法,重点掌握虚函数的定义及其使用方法
12、掌握运算符重载的基本概念和格式,掌握用成员函数和友元函数实现运算符的重载方法,掌握类型转换的概念和实现方法,重点掌握基本运算符的重载方法。
13、掌握流的基本概念,重点掌握输出流的各种格式。
14、掌握一些基本算法和结构,包括:排序(选择排序、冒泡排序)、搜索(简单搜索、二分搜索)、字符串处理、链表的定义和使用、栈的定义和使用、队列的定义和使用等。
三、主要参考书目
1、Bjarne Stroustrup【美】, 王刚、刘晓光、吴英、李涛译, C++程序设计原理与实践,机械工业出版社
2、刘斌、王忠编著,面向对象程序设计-Visual c++,清华大学出版社,2003年出版,2011年第9次印刷
3、C++程序设计,谭浩强,清华大学出版社,2004年出版
四、题型(满分150分)
1、选择题:单项选择。
2、填空题(完成程序):给定若干个程序,其中有一些代码未写全,要求按题目要求填写完成程序。
3、编程题:按要求完成程序的实现,其中一题为面向对象题。
五、考试方法和考试时间
笔试、闭卷,考试时间为3小时。