(完整版)东南大学2010-2014年考研复试c++笔试题汇总

  • 格式:doc
  • 大小:86.01 KB
  • 文档页数:6

【C】2010年东南大学计算机研究生复试笔试题----(卢孝勋)版1、简答题(60分)1、简述你对“面向对象”和“面向过程”编程思想的认识与思考2、ADT是什么?简述你对“数据抽象”和“信息隐藏”的认识3、const和static有什么作用?4、友元关系的利与弊5、C++多态的实现6、STL是什么?组成部分和核心作用2、程序设计题(90分)1、输入n个十进制数转换成二进制写到文件,n是随机得到2、写两个模板函数:插入排序法的迭代实现与递归实现3、文件中有类似的一行行字符串“(010)(150****5678)|123|(430070)”,按以下格式输出:“区号| 电话号码| 城市编号| 邮编”(具体的字符串格式记不清了,但就是考字符串的解析)4、设计一个多项式类Polynomial(包括构造函数、复制构造函数、析构函数、赋值函数、实现两个多项式相加)5、几个类(Vehicle类Car类Streetwheel类Brake类)有着必然的联系,设计类与实现6、一个基类Shape,在基类的基础上继承写一个二维图形类,再继承写一个三维图形类,设计与实现2011年一、简答题(共5 题,每题10 分)1、简述对C++中的数据类型和抽象数据类型(ADTs)的理解。

2、请举例并写出相关代码,阐述C++在什么情况下必须进行运算符重载。

3、为什么说“继承是C++面向对象的一个主要特征之一”,请做一下简要说明。

4、如何声明和使用虚函数,说明它在多态性中的作用和意义。

5、请说明函数模板(Function Template) 和函数模板实例化(function-template specification)的区别和联系。

二、编程题(共6 题,100 分)3、编写一个递归函数模板,从一个数组中找出最小值,并返回该值的数组元素下标。

(15’)4、编写两个函数SortOne 和SortTwo,分别对字符串数组实现插入排序和选择排序。

(15’)5、对于一个数组Array 类的chess 对象,通过调用运算符重载函数() ,可实现chess(row,column)代替chess[row][column],请完成:(1)、Array 类的基本定义,包括构造函数、析构函数、拷贝构造函数和基本数据成员;(2)、运算符重载函数()的定义。

(20’)6、定义一个具有多态性的基类Shape,派生出三个类:圆Circle(坐标点和半径),矩形Rec 类(两点不同坐标),三角形Tri 类(三个不同坐标),每个类中至少有一个计算面积的函数。

编写程序,从文件file.txt 中读取数据来创建各类的对象,并放在Shape指针向量中,最后循环处理每个对象并输出面积。

(20’)【假设file.txt 中的数据如下:C:123,5,40;T:1,2,32,50,60,3;R:6,8,8,100】2012年一.简答题1.编写语句说明枚举类型是如何定义和使用的。

2.程序改错,如果有错,说明出错的地方,正确则给出输出。

(1)#include <iostream>using namespace std;int main(){for(int i=0;i<8;i++){if(i%2==0)cout<<i+1<<endl;if(i%3==0)continue;if(i%5==0)break;cout<<"End of programming\n";}cout<<"End of programming\n";return 0;}(2)#include <iostream>using namespace std;int main(){int c;if((c=cin.get())!=EOF){main();cout<<c;}return 0;}(3)#include <iostream>using namespace std;void fun(int a[],int cur,int s){{if(cur<s)fun(a,cur+1,s);cout<<a[cur]<<',';}}int main(){int a[]={1,2,3,4,5,6,7,8,9,10};fun(a,0,10);return 0;}3.一个函数模板和模板函数的区别。

4.为什么说“继承是面向对象的主要特征之一”?请简要说明理由。

5.如何声明和使用虚函数。

请说明它在多态性中的作用和意义。

二.编程题1.编写程序,求最小公倍数。

2.编写程序,计算一系列整数之和。

假定:输入的第一个整数为继续输入整数的个数。

【要求每条输入语句仅读取一个整数】例如:输入5,101,213,325,437,549,表明输入五个整数分别是101,213,325,437,549.3.编写程序,读入几行文本,并打印一个表格,显示每个不同单词在文本中出现的次数。

例如输入:Welcome to C++ world ! Happy birthday to you .This is theweather report across the world for tomorrow , talk about it in pairsfollowing the model below. 结果为Welcome 出现1 次,to 出现2 次,C++出现1 次等。

4.已知:Person 类包含3 个数据成员(name , nationality 和sex)和三个成员函数(构造函数,printName 函数和printNationality 函数),其中name的数据类型为Name 类。

Name 类包含三个数据成员(first , middle 和last)和两个成员函数(构造函数和printName 函数)。

定义Person 类和Name 类,并编写程序测试这两个类的所有接口。

2013年一.简答题1.什么是逻辑错误?什么是语法错误?请举例说明.2.控制语句有哪几种?请画出它的流程图或UML图.3.什么是运算符重载?它如何增强了C++的扩展性?4.为什么说”继承是C++面向对象的主要特征之一”?请简要说明.5.类作用域和文件作用域的区别是什么?请详细说明.二.编程题1.编写程序,计算1~20000之间的质数,输出时要求每行10个数.2.编写简单的加密,解密程序.在main()函数中接收需要加密的字符串,进行加密。

加密时,将字符指针+1,Encrpy的参数为字符指针。

解密时将字符指针-1,Decrpy的参数亦为字符指针。

3.编写如下算法:1.选择排序2.桶排序4.对应于ASCII字符中33~126之间的字符,将其转化为10进制,8进制,16进制,以及ACII码输出到文件,在该文件中依次输出四张ASCII表格。

5.处理字符串(025)87234865-987,用strtok处理,以“区号电话分机号”的格式输出。

6.已知:Person类包含3个数据成员(name,nationality,sex)和三个成员函数(构造函数,printName函数和printNationality函数),其中name的数据类型为Name类。

Name类包含三个数据成员(first,middle,last)和两个成员函数(构造函数和printName 函数)7.定义Person类和Name类,并编写程序测试这两个类的所有接口。

2014年1、指出错误并改正第一题少了一点东西#include<iostream>using namespace std;void f(int *p){ if(p) //就是如果p不为空,是不是这么写的记不清了*p *= 100;cout<<*p<<endl;}void main(){int p = 10;int * ptr;f(ptr);}2、说出下面程序输出什么#include<iostream>using namespace std;void main(){char* str="THIS IS PROGRAMMING.";int length = (忘了具体的但是这个length就是字符串的长度);int j = 0;for(int k = 0; k < length; k++){if(str[j] < str[k]) j = k;}int temp = j;str[j] = str[7];str[7] = str[13];str[13] str[length];cout<<str<<endl;}3、记不得了4、记不得了5.是问输出什么class A{public:virtual void print(){cout<<"A::print"<<endl;}}class B: public A{public:void print(){cout<<"B::print"<<endl;}}class C: public B{public:void print(){cout<<"C::print"<<endl;}}void main(){B b();C c();A* a;a = c;a->print();a = b;a->print();}【编程题】第一题:用递归编程求ack(int m, int n),定义似乎是ack(0,n) = n+1;ack(m,0)=m+1ack(m,n) = ack(ack(m-1),ack(n-1))第二题是写一个IntToStr(int a)函数将一个整形数转换为字符串第三题是写一个swap(int a[], int m, int n )使得数组的前m项和后n项交换位置第四题:(1)写一个日期Date类成员有年月日,成员函数有无参数构造函数、设置年月日的函数setDate还有一个打印函数display3个(2)第二个类是员工类Employee,成员有工号、姓名、身份证号、出生日期、受聘日期、聘用年限、月薪成员函数要有构造函数、改变出生日期函数、改变聘用年限函数、改变月薪函数、续聘函数(要求当续聘后的年龄大于60时给提示不能续聘)还有展示函数display,需要有工号、姓名、身份证号、出生日期、聘用【到期】时间、聘用年限、【年】薪注意第二个类会有Date类或其指针作为成员。