1、 2010 东南大学计算机复试 C+ 一 .简答题(共 6题) 1.说说你对面向对象和面向过程的理解。 2.什么是 ADT,比较 “ 数据抽象 ” 和 “ 信息隐藏 ” 。 3.举例说明 const 和 static。 4.什么是 STL,他有哪些部分组成及他的主要应用。 5.说说面向对象中的友元,他有什么副作用。 6.谈谈 c+中的多态是如何实现的 二 .编程题 (共 6题 ) 1.编写函数,将一个二进制整数(如: 10010)转换为 10 进制整数,保存到文件output.txt中。在 main函数中调用上面的函数 n( 1-10)次,调用次数由 random()函数生成。 2.每次从文件
2、 input.txt 中读取一行数据,将其以以下格式输出,如“michyang;25;(215021)65214795;13405054444” ,输出格式为 “ 姓名 |年龄 |电话 |邮编 |手机号 ” 。 3.编写模板函数实现插入排序,要求分别用迭代法和递归法实现。 4.编写多项式类,包含系数,指数属性,并实现以下功能:拷贝构造 函数,析构函数, operator=,多项式的加减法。 5.有类 vehicle,car,streetwheel,brake4 个类,它们之间有着必然的联系,给出它们的定义。 6.有二维和三维两个类,派生出其它类(至少两层)。 2012 东南大学计算机复试 C+
3、 1.请编写程序定义和使用枚举变量 2.下面三段程序 ,如果有错就指出 ,没有错就写出运行结果 1) #include Using namespace std; void main() for(int i=0;i using namespace std; void main() int c; if( (c=cin.get()!=EOF ) main();cout using namespace std; void func(int b,int cur,int s) /这个函数不太记得了 ,但是就是递归反序显示数组元素 ,希望复试的同学纠正下 ,但是这个函数本身就错的 if( cur using
4、 namespace std; void f( int *p) if(p) /就是如果 p不为空,是不是这么写的记不清了 *p *= 100; cout using namespace std; void main() char* str=“THIS IS PROGRAMMING.“; int length = (忘了具体的但是这个 length就是字符串的长度 ); int j = 0; for(int k = 0; k print(); a = b; a-print(); 【编程题】 第一题:用递归编程 求 ack(int m, int n),定义似乎是 ack( 0, n) = n+1;
5、 ack(m,0)=m+1 ack(m,n) = ack(ack(m-1),ack(n-1) 第二题是写一个 IntToStr( int a)函数 将一个整形数转换为字符串 第三题是写 一个 swap( int a, int m, int n ) 使得数组的前 m项和后 n项交换位置 第四题: ( 1)写一个日期 Date类 成员有年月日,成员函数有无参数构造函数、设置年月日的函数 setDate 还有一个打印函数 display 3个 ( 2)第二个类是员工类 Employee,成员有工号、姓名、身份证号、出生日期、受聘日期、聘用年限、月薪 成员函数要有构造函数、改变出生日期函数、改变聘用年
6、限函数、改变月薪函数、续聘函数(要求当续聘后的年龄大于 60时给提示不能续聘) 还有展示函数 display, 需要有工号、姓名、身份证号、出生日期、聘用【到期】时间、聘用年限、【年】薪 注意第二个类会有 Date类或其指针作为成员 2015复试 c+ 今年笔试题只有五道编程题,回忆的很完整。 (20)1、求 e的 x次方 的值,(30)2、编写一个递归函数,其功能为:输入一个字符串,字符间都有空格,输出一个整型值。例如:输入“ 1 x 2 y z 3 d h 4 g 5”,输出为 54321。 (30)3、使用随机数函数 srand()和 time()生成随机数,来模拟掷骰子。( 1)分别投
7、掷两次,将两次所得的值,求出其和值,并写入二维数组 A,数组的行存放第一次投掷的结果,数组的列存放第二次投掷的结果。( 2)如果投掷1000 次,将其和值出现的次数写入二维数组 B。编写函数完成以上功能。(这题为原话,原文就是这么难理解) (30)4、编写 FindRepStr()函数,此函数功能为,在字符串 str 中查找目的字符串 findStr,并用 repalceStr 来替换,最后输出替换后的字符串 str。函数原型为: void FindRepStr( char str, const char findStr, const replaceStr); (40)5、编写一个 Teach
8、er 类,要求类含有教师编号,姓名,性别,出生年月,入职年月。以及以下成员函数: ( 1)带有默认参数的构造函数(默认出生年月为 1900-00-00),复制构造函数。 ( 2) 2016 年进行新一轮聘用,男教师满 55 岁,女教师满 60 岁,则到退休年龄,编写函数输出应退休的教师姓名和编号。 ( 3)如果满退休年龄的女教师入职时间未满 35 年,则继续聘用,编写函数输出应继续聘用的满退休年龄的女教师的姓名和编号。 ( 4)编写 main 函数来测试你所设计的类。 2017 计算机复试 c+ 一、填空题(一空 5 分,共 70 分) 1. 如果 每次 运行环境只能 执行一条语句 ,但是有许
9、多语句需要执行 ,那么 _,构成_ 2. 标识符 的 作用 域 _、 _、 _、 _、 _ 3. 用 字符串 “ schedule” 初始化 一个 字符数组的初始化语句 _、 _、 _ 4. 哪几个 运算符必须 重载 为成员函数 _、 _、 _、 _ 二、简答题( 60 分) 1 什么是 “else 摇摆问题 ”, 举例说明 ( 10分 ) 2 函数 模板和函 数 重载的区别与联系 ( 10分) 3 怎样 区别虚函数和纯虚函数?两者 都有 什么作用 ( 20 分) 4 面向 对象程序 “接口 与实现方法分离 ”, 有什么 优点 ( 10 分 ) 5 列出 所有 与 字符串处理有关的头文件 (
10、10分) 三、编程 题 ( 20 分) 格式 转换,从一个文件中读取日期 07/21/2016,转换为以下 格式 July 21,2016 并输出 到屏幕编程题 #i n c l u d e #i n c l u d e #i n c l u d e u s i n g n a m esp a c e s td ; v o i d m a i n ( ) i f s tr ea m i n ( “ i n f i l e. tx t“ ) ; i n t y ea r , m o n th , d a y ; s tr i n g M o n 1 3 = “ “ , “ J a n “ , “
11、 F eb “ , “ M a r “ , “ A p r “ , “ M a y “ , “ J u n e“ , “ J u l y “ , “ A u g “ , “ S ep t“ , “ O c t“ , “ N o v “ , “ D ec “ ; c h a r *to k en ; c h a r d a te 1 1 ; w h i l e ( i n d a te) to k en = s tr to k ( d a te, “ /“ ) ; m o n th = a to i ( to k en ) ; to k en = s tr to k ( N U L L , “
12、/“ ) ; d a y = a to i ( to k en ) ; to k en = s tr to k ( N U L L , “ /“ ) ; y ea r = a to i ( to k en ) ; c o u t 简答 1 if (a0) if (b0) else 这里的 else 应该与第二个 if 匹配而非第一个 2 用同一函数名定义多个函数,这些函数的参数个数和参数类型不同,这就是函数重载。重载函数的参数个数、参数类型或参数顺序 3者 中必须至少有一种不同,函数返回值类型可以相同也可以不同 。 函数模板 实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟
13、的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定以多个函数,只需在模板中定义一次即可 。 模板只适用于函数体相同、函数的参数个数相同而类型不同的情况,如果参数的个数不同,则不能用函数模板 。 函数模版是将函数参数变化的部分抽象出来,函数重载的参数则是具体类型的。 3 纯虚函数的声明形式是在虚函数声明形式后面跟 =0,例如: virtual void f(); 是一个虚函数 virtual void f() = 0; 是一个纯虚函数 虚函数用于基类与派生类的同名操作使其具有多态性,纯虚函数是用来定义抽象类的。 4 可以很容易看到类的接口,知道其使用方法
14、 可以编译库后,只提供 lib和头文件,起到保密的作用 可以加快编译速度,提高了维护性,使得代码变得清晰 5 string.h是 C 语言中字符串操作函数的头文件 cstring是 c+对 C 语言中的 strcpy 之类的函数申明,包含 cstring之后,就可以在程序中使用C 语言风格的 strcpy 之类的函数。 string是 c+语言中 string类模板的申明 CString是 MFC 中定义的字符串类, MFC 中很多类及函数都是以 CString为参数的 2015 年东南 906 真题 一、简答 1.解释编译错误和运行错误,并举例 2.解释多态 3.*this 指针的作用 4.
15、程序改错题 5.继承与组合的区别 二、补充缺失代码 1.函数功能是统计文本单词个数 2.判断一个数是否是五边形数 三、编程 1.数组 a 与数组 b的前 n个元素相除,结果存储在 a中,并输出 a 2.键盘输入一段文本,将其中的单词反序输出(如 i am Jim应为 Jim am i) 3.类的继承与派生 shape 类派生出二维类和三维类,二维类再派生出圆和矩形类,三维类派生出长方体和圆柱 四、数据结构简答 1.队列与栈的异同 2.顺序存储和链式存储的 优缺点 3.判断出栈序列式 4.给出邻接矩阵,画出图 5.判断深度遍历序列 6.二叉树给出前序和中序,写出后序序列 7.生成 AVL 树 8
16、.排序 五、数据结构编程 1.求二叉树所有节点 data之和 2.求数组中任意两个元素的最大差值( Aj-Ai,ji) C+比较侧重字符串处理和输入输出流,总体来说题目都比较基础,本人复习主要是两科教材再加一本数据结构高分笔记,最后 专业课 122,还算可以吧,希望对打算报考软件学院的学弟学妹们有所帮助。 2016 版 906 拿到卷子惊呆了,东大老师真是拼,今年题型和去年完全不一样。考察的更为细致全面,但我觉得难度变化不大。我努力回忆一点 我觉得有两点出乎意料:一是对概念定义的考察,比如最小生成树,都知道怎么求,但不知道其精确定义。二是考到了高精度加法。 单项选择 20 题 考点有:字符数组
17、初始化、常指针和指向常量的指针、虚函数能否静态绑定、派生类的构造过程、类型兼容规则 c+程序设计: 题一:写一个函数计算 1+( 1+2) +( 1+2+3) +.+(1+2+3+.+n) 题二:从文件中读取两个 150 位的数,算出和再写进去。考察文件流的操作、字符数组或者string、高精度加法 题三:没看的大懂,普遍反映有印刷错误。我感觉是书上多态性章节中用变步长求积分程序设计中的一部分,考察括号运算符的重载。 数据结构简答: 什么叫算法的确定性和可行性 栈和队列的异同 出站序列判断 排序二叉树的定义并根据所给数据构造一棵 哈夫曼树的定义并构造一棵 最小生成树的定义,画出最小生成树,说明步骤 分析常见的各种排序算法用于链表结构时的可行性 算法设计: 第一题是查找单链表中的正中间节点。显然有 O( N)算法。 第二题求一颗二叉树的叶子结点个数。任意使用一种遍历算法都可以。 2017 年 906 回忆
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1