`
Iam42
  • 浏览: 275840 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

趋势科技南京笔试--C++部分

阅读更多

Q1.UNICODE问题

int Test()
{
     _TCHAR pszTemp[] = L"trend mirco";
}

 sizeof(pszTemp) = ?   _countof(pszTemp) = ?    strlen(pszTemp) = ?

 

A:字符串前加L表示将字符串转化为unicode型;unicode字符串每个字符占2个字节,扩展为:"X\nX\n"的形式; 因此,sizeof(pszTemp)=24;

    strlen(pszTemp)是计算从pszTemp指向的地方开始,到第一个‘\n’出现为止,一共有多少个char字符,所以strlen(pszTemp)=1;

    _countof是C++中计算一个数组长度的宏,因此 _countof(pszTemp) = 12

 

Q2:类占用空间大小的问题

#include <stdio.h>
class CS
{
      static int n ;
      int m;
      int func();
};
 
main()
{
            printf("%d", sizeof(CS));
            getchar();
}

 

A:输出是4,static 的数据是分配在全局区;函数是放在程序代码区(专门用来存放函数的二进制代码)

 

Q3:

 

#include <stdio.h>
class A
{     
      public:
             void f(){printf("foo");};
};

int main()
{
          A* p = NULL;
          printf("---");
          if(!p)
          {
                 A a ;
                 p = &a;
          }   
          p->f();
          getchar();
          return 0;
}
  1. 每一个非虚成员函数实际上都等同于一个普通的C函数,其中第一个参数为对象指针,即我们常说的this指针。例如:  
  2.   
  3. 上面的A的function函数实际等同于:<SPAN style="COLOR: #ff0000">A::Function()  ç==================èFunction(A*this);  
  4.   
  5. </SPAN>与此不同,对每一个虚成员函数的调用都是通过虚函数表的虚指针vptr来进行调用的,如上面的p2->function一句将被编译器解释为:  
  6.   
  7.                                        (* p2->vptr[1] )(p2)  
  8.   
  9. 很容易理解,虚函数的调用是动态决定的。也很容易理解,21行crash,18行正常。很显然,如果在A类的成员函数function里,有去使用成员变量,该函数同样会crash  

 

 

 

 Q4:

#include <iostream>   
#include <string> 
class MyString: public std::string
{
      public:
             MyString(const char* sz):std::string(sz){std::cout<<*this<<std::endl;}
};

const size_t MAX_STRING_SIZE = 1024;

/**
1)采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码,所以产生的可执行文件大小会比较大。
2)采用__stdcall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条ret n指令直接清理传递参数的堆栈。
*/
MyString __stdcall MyStringCat(MyString s1,MyString s2) 
{
      char buf[MAX_STRING_SIZE];
      sprintf(buf,"%s,%s",s1.c_str(),s2.c_str()); //c_str()就是得到两个指针,指向s1 s2在内存里的地址  
      return buf;
}
int main()
{
      MyString s = MyStringCat("I hate","C");
      return 0;
}
/**
由于函数是从右往左入站的,所以结果是:
c
I hate
c,Ihate 
*/ 

 

 

Q5:vector容器的使用方法

 A:push_back(?):把?追加到vector的后面

 remove_if(开始位置,结束位置,删除条件):在一个给定范围内删除满足一定条件的元素,在删除元素的过程中不改变剩余元素的位置,并同时返回一个没有要删除元素的新容器的迭代器end值。ps:erase()函数删除一个元素之后,后面的迭代器就会失效

分享到:
评论

相关推荐

    趋势科技笔试题 趋势科技的笔试题

    1. **C++多态与继承** - 在题目中,类`A`定义了三个`func`函数,其中两个是虚函数,一个没有声明为虚函数。类`B`继承自`A`并重写了这些函数。在`main`函数中,通过基类指针`pA`和`pcA`调用了派生类`B`的成员函数。...

    savisky-golay 滤波器 C++代码

    ### Savitzky-Golay滤波器C++代码解析与应用 #### 一、概述 在数据处理领域,平滑处理是一种常见的需求,特别是在信号处理、图像处理以及数据分析中。Savitzky-Golay滤波器作为一种有效的平滑算法,在保持原始数据...

    2011校园招聘 趋势科技 笔试题目C++ 武汉

    根据压缩包子文件的文件名称列表"趋势",我们可以推测其中可能包含的趋势科技笔试题目,这些题目可能涉及C++的基础语法、类与对象、模板、异常处理、内存管理、STL(标准模板库)、多态性、继承以及算法和数据结构等...

    趋势科技防毒墙-服务器版

    趋势科技意识到,互联网环境需要一个强大、可靠的病毒防护解决方案,并且需要用到趋势科技协助Intel和Novell等公司开发防病毒软件所获得的宝贵知识和经验,借助这些开发经验,趋势科技为NT和Netware服务器构建了新...

    立足现实-与时俱进:C++-1991-2006(C++之父)

    本文旨在回顾C++程序语言的发展历程,特别聚焦于1991年至2006年间的重要事件和发展趋势。这段时间不仅见证了C++成为国际标准化组织(ISO)标准的过程,还涵盖了C++0x(即C++03标准修正版)的发布。文章不仅仅关注...

    趋势科技笔试真题

    趋势科技的笔试真题,全英文扫描的很清晰,对于倾心趋势的同学,很具有参考价值。

    趋势科技 PC-cillin序列号

    趋势科技 PC-cillin序列号,趋势科技——网络安全软件及服务领域的全球领导者,以卓越的前瞻和技术革新能力引领了从桌面防毒到网络服务器和网关防毒的潮流,以独特的服务理念向业界证明了趋势科技的前瞻性和领导地位...

    趋势科技笔试题目(包括答案)

    收集了趋势科技近些年的一些笔试题目,还包括了答案,绝对的非常全面

    趋势科技笔试题目+总结

    趋势科技笔试题目+总结,适合想去趋势工作的朋友拿来练手。

    Flatstyle-plugin for c++builder

    C++Builder是一款强大的集成开发环境(IDE),主要用于创建Windows和移动平台的应用程序,而Flatstyle-plugin则是为了提升其UI设计能力,帮助开发者实现更符合当前审美趋势的界面。 在C++Builder中,UI通常由各种...

    2015年趋势科技实习生招聘笔试题.docx

    2015年趋势科技实习生招聘笔试题。希望对找实习的人有用

    趋势科技2016校招C++工程师笔试试卷B卷

    这个题目考察的是对C++中字符串操作的理解与应用。可以使用标准库中的字符串函数来完成任务,如`strlen`, `strcpy`, `strcat`等。 - **strlen**: 用于计算字符串的长度,不包括结束符`\0`。 - **strcpy**: 用于复制...

    趋势科技笔试题(非常全,将收集的很多集合一起)

    以上是根据给定的趋势科技笔试题目的内容所整理的部分知识点。这些知识点涵盖了基础的情商智商测试、专业技能测试(包括编程语言选择题、网络技术问答、英文阅读理解等)、以及具体的C++编程示例题。希望这些内容...

    MK统计检验(c++版)

    综上所述,"MK统计检验(c++版)"提供了在C++环境中执行Mann-Kendall趋势和突变性检验的功能,这在进行数据分析项目时能帮助用户快速准确地识别数据序列中的潜在趋势和变化点。通过理解和应用这个工具,IT从业者可以...

    趋势科技 Sic_3.3-1201

    趋势科技 Sic_3.3-1201趋势科技 Sic_3.3-1201

    Scott-More Effective C++

    杂项部分,书中提供了对未来开发趋势的建议,并讨论了如何在同一个程序中混合使用C++和C语言,强调了使用标准C++语言的重要性。 附录部分,本书还提供了推荐读物列表,一个AUTO_PTR的实现实例,以及在C++中如何计算...

    趋势科技防毒墙-网络版(OfficeScan)客户端管理工具

    本软件针对趋势防毒墙网络版Officescan客户端开发的管理员辅助工具,可以清除趋势防毒墙客户端的退出或者卸载密码,也可以清除Officescan的未上报病毒日志。本程序在WinXP下编译通过,在Officescan7.3下测试通过。

    趋势科技笔试题(软件)

    类`B`继承自`A`并重写了部分`func`函数。在`main`函数中,通过基类指针`pA`调用`func`,由于`func(int data)`是虚函数,因此调用的是派生类`B`的版本,输出`B2 :1`。而`func("test")`调用的是基类`A`的`func(char *...

    XML-RPC 实现C++和C#交互.pdf

    【XML-RPC 实现C++和C#交互】 XML-RPC(XML Remote Procedure Call)是一种简单、跨平台的远程过程调用协议,它利用HTTP作为传输协议,XML作为数据编码方式,使得不同编程语言编写的程序能够进行通信。在本文中,...

    2014趋势科技校招9月23日南京笔试题目

    2014趋势科技校招9月23日南京笔试题目。 图中所选非正式答案,答案在整理中,过后上传。

Global site tag (gtag.js) - Google Analytics