同花顺2018届校园招聘题目

来源:互联网 发布:淘宝买手机靓号靠谱吗 编辑:程序博客网 时间:2024/05/08 00:56
注意事项
  • 1、笔试时间为 100 分钟,时间用完笔试将自动结束。
  • 2、答题过程中请不要离开本页面,也不要刷新页面。
  • 3、请随时点击“保存答案”按钮,以免离开页面时答案丢失。
  • 4、系统不支持任何形式的复制和粘贴,请直接在答题框内进行答题。
  • 5、试卷不要求全部答完,请根据自身情况尽量完成。
  • 6、请确认答案已经保存后,再点击“结束答题”按钮。
  • 7、开发类的同学请注意,请至少完成两道编程题。





 

 

 

 

 

 

 

 

 

 

2

 

3

4、

 

5、

 

(10分)(编程题)能否将下面的ReadOnlyClass类的一个对象,把它的name属性的值由hello改为world?如果能5,3分请写00出秒实现代码。如果不能请说明理由。

 Java代码

 public class ReadOnlyClass {

private String name = "hello";

 public String getName()

{ return name; }

}

6、

 

 

(10分)(编程题)Student(Sno,Sname,Sage,Ssex)学生表 52分08秒 Sno:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别 Course(Cno,Cname,Tno) 课程表 Cno,课程编号;Cname:课程名字;Tno:教师编号SC(Sno,Cno,score) 成绩表 S#:学号;Cno,课程编号;score:成绩 Teacher(Tno,Tname) 教师表 Tno:教师编号; Tname:教师名字问题1、查询”001”课程比”002”课程成绩高的所有学生的学号; 问题2、查询平均成绩大于60分的同学的学号和平均成绩; 问题3、查询所有同学的学号、姓名、选课数、总成绩; 问题4、查询所有课程成绩小于60分的同学的学号、姓名; 问题5、删除“002”同学的“001”课程的成绩

 

7、

 

 

 

 

(5分)(阅读题)找错 51分35秒 1、 Voidtest1() { char string[10]; char* str1="0123456789"; strcpy(string,str1); } 2、 Void test2() { char string[10], str1[10]; for(i=0; i<10;i++) { str1[i] ='a'; } strcpy(string, str1); } 3、 Void test3(char* str1) { char string[10]; if(strlen(str1)><=10){ strcpy(string, str1); } }

 

 

3、 Void test3(char*str1) { char string[10]; if(strlen(str1)<=10) { strcpy(string, str1); } }

 

8、

 

 

(15分)(基础题)描述一个进程在内存中的布局和具体的作用。一个进程能使用的内存地址空间有多大?如果超出这个限制,程序会报什么错误?

如何访问(读、写)另外一个进程的内存?

 

9、

 

10、

 

 

11、

 

 

 

12、

 

13、

 

 

 

14、

 

(5分)(基础题)文件打开 open函数 48分45秒

会将文件全部读到内存中?

一个线程open打开一个文件多次,线程占有的文件句柄数怎么变化?

多个线程open后,同时2次write同一个文件。第一次write x个字节,第二次write y个字节

文件最终大小是多少。

 

15、

 

 

16、

 

17、

 

 

18、

(15分)(开放逻辑题)双面族是荒岛上的一个新民族,他们的特点是说话真一句假一句且真假交替。如果第一4句5为分真4,5则秒第二句

是假的;如果第一句为假的,则第二句就是真的,但是第一句是真是假没有规律。

博士遇到三个人,知道他们分别来自三个不同的民族:诚实族、说谎族和两面族。三人并肩站在博士前面。

博士问左边的人:“中间的人是什么族的?”,左边的人回答:“诚实族的”。

博士问中间的人:“你是什么族的?”,中间的人回答:“两面族的”。

博士问右边的人:“中间的人究竟是什么族的?”,右边的人回答:“说谎族的”。

请问:这三个人都是哪个民族的?

 

19、

 

20、

(5分)(基础题)改错: 45分02秒

int main(void)

{

int **p;

int arr[100];

p = &arr;

return 0;

}

 

21、

 

 

22、

 

 

 

 

23、

 

 

24、

 

25、

 

(15分)(编程题)请定义类Integer,使以下代码的输出为 1

int main()

{

int i = 2, j = 7;

Integer x(i), y(j);

cout <<( x + y == j - i )<<endl;

}

 

 

26、

 

(15分)(编程题)用一个32位的整形,模拟实现double的功能,要求可以实现浮点数的存储和运算,存入10,04004,分0000以4内秒的数据

精度不丢失,

实现类的核心定义和接口

 

 

27、

 

 

 

(10分)(阅读题)谈谈下面类的设计意图,以及使用上的问题和隐患,应该如何解决

struct Item

{

   int nType;

   int* pData;

}

 

class classA

{

public:

   void Register(Item* pItem);

   void UnRegister(Item* pItem);

   

   Item* FindItem(int nType);

   void DoSomething();

private:

   std::vector&lt;Item*&gt; m_vecItems;

}

 

void classA::Register(Item* pItem)

{

         m_vecItems.push_back(pItem);

}

 

void classA::UnRegister(Item* pItem)

{

   std::vector&lt;Item*&gt;::iterator it = m_vecItems.begin();

   for (; it != m_vecItems.end(); ++it)

    {

             if (*it == pItem)

       {

           m_vecItems.erase(pItem);

           return;

       }

   }  

}

 

Item* FindItem(int nType)

{

         std::vector&lt;Item*&gt;::iteratorit = m_vecItems.begin();

   for (; it != m_vecItems.end(); ++it)

    {

             if ((*it)-&gt;nType == nType)

       {

           return *it;

       }

    }

   

   return NULL;

}

 

void classA::DoSomething()

{

   for_each(m_vecItems.begin(), m_vecItems.end(), _functor);

}

 

28、

(5分)(基础题)能否显示调用构造函数和析构函数?并写出例子

 

 

29、

 

 (15分)(编程题)假设一个池塘有无穷的水, 你有两个瓶子, 一个X升,  一个Y升, 现在要利用这两个瓶子量出Z升的水, 请编程来确定是否有可能量出来。</span>

 

例子, x = 3, y =5, z = 4, &nbsp; y瓶装满,往x瓶到,装满x瓶,剩下2升, x倒空, 2升转到x瓶,  y瓶装满, 往x瓶加, x瓶已有2升, 装满后用掉1升,  y瓶正好剩下了4升, &nbsp;目标的4升就得到了。 &nbsp; 这个情形是有解的

 

x = 2, y = 6, z = 5,  这个情形是无解的

 

bool IfCanBeDone(int x, int y, int z);

 

 

 

 

30、

 

 

 

(10分)(基础题)#include 42分43秒 #include classA { private: static char* m_pStr; public: A(const char* pStr) { m_pStr = newchar[strlen(pStr) + 1]; strcpy(m_pStr, pStr); } ~A() { if (m_pStr) { delete[]m_pStr; } } void print() { if (m_pStr) { std::cout << m_pStr <<std::endl; } } }; char *A::m_pStr = NULL; int main() { A a("123"); Ab("456"); a.print(); b.print(); return 0; } 请问上述这段程序中存在哪些问题?

 

 

31、

 

 

 

(5分)(基础题)知道前向声明(forwarddeclaration)吗?其作用是什么?什么情况下可以使用?请举个简4单2的分例0子7?秒

 

32、

 

33、

 

 

(5分)(阅读题)下面的代码实现什么功能?是否存在问题?如果存在问题,应该怎么改? 41分43秒

void HandleString(char* pTest)

{

char *p = pTest;

while(*p != '0')

{

if(*p == '\t')

*p = '.';

++p;

}

}

 

 

34、

 

 

 

 

 

 

 

(15分)(阅读题)classCRealOrderDataArray 40分45秒 { ...... protected: void DeleteAt(int nIndex); int m_nSize; //真实存放的数据个数 intm_nAlloc; //分配的数据个数 CRealOrderData* m_pData; //存放的数据指针 }; voidCRealOrderDataArray::DeleteAt(int nIndex) { if(nIndex >= 0 && nIndex< m_nSize) { int32 lRight = (m_nSize - nIndex - 1) * sizeof(CRealOrderData);if(lRight > 0) { memmove(&m_pData[nIndex], &m_pData[nIndex + 1],lRight); } m_nSize--; } } void CRealOrderDataArray::DeleteData(BYTE cMarket) {int nDelete = 0; for(int i = 0; i < m_nSize; i++) {if(m_pData[i].GetMarket() == cMarket) { DeleteAt(i); i--; nDelete++; } } } 请问以上代码CRealOrderDataArray::DeleteData 函数有什么性能问题?如何改进?

 

35、

 

 

 

 

求打印输出结果 61分33秒 int addten(int a) { return a + 10;} int addtwenty(int a) { return a+ 20;} int addthirty(int a) { return a + 30;} int addfory(int a) { return a +40;} int addfifty(int a) { return a + 50; } typedef int (*fun_add)(int a); int_tmain(int argc, _TCHAR* argv[]) { int a = 1; fun_add ayFunc[5]; ayFunc[0] =addten; ayFunc[1] = addtwenty; ayFunc[2] = addthirty; ayFunc[3] = addfory;ayFunc[4] = addfifty; char* pFunc = (char*)ayFunc; a = (*(fun_add*)pFunc)(a);pFunc += 4; a = (*(fun_add*)pFunc)(a); printf("%x", a); return 0; }

 

 

 

36、

 

 

 

 

(5分)(基础题)以下代码运行可能会有什么问题?怎么解决?

 while (1) {}


阅读全文
0 0
原创粉丝点击