标签:
**********软件工程师**********
笔试:题目分选择、填空/改错和编程
选择题后面不只有C/C++还有些数据库通信之类的,不过比较少,所以如果对那些都不了解的最起码要好好做做笔试后面的编程题,编程还是比较简单的就让你填几个语句。
面试:
先自我介绍,然后问些大概情况就会进入到专业知识考查,也就是简单的类的特性,让举例说明,还会出个小题问你。然后就问还会什么方面的知识,基本会在20分钟左右,面完告诉你等通知,我的二面通知当晚就来了。
【转】 笔试题目(一)
1. 将程序改成Unicode编程需要做哪些修改?
window 2k以后的系统底层都是基于Unicode的,就算你调用ANSI的API(以A结尾比如SetWidowsTextA),系统也会在你的进程默认堆上动态分配一块内存,存放转换后的Unicode字符串,然后把转换后的字符串传递给API,如果调用了返回值为ANSI字符串的API,Windows会在后台进行相反的转换。
其实VC中进行Unicode编程也不麻烦,大概如下:
1.为工程添加UNICODE和_UNICODE预处理选项,在VC.net中就是 项目 -> 属性 -> c/c++ -> 预处理器 在"预处理定义"中加入这两个宏定义(vc6中 project -> settings -> c/c++ -> general 中的 Preprocessor definitions).
2.Include (一般在stdafx.h中)然后把所有使用char*定义变量的地方换为LPTSTR/TCHAR*或LPCTSTR/const TCHAR*(对应于const char*).
3.把所有的字符串常量用_T()宏包起来,比如 TCHAR* szText = _T("我的Text");
4.所有的C库字符串操作函数也做相应的替换,比如
strlen ->_tcslen
strcat ->_tcscat
strcmp ->_tcscmp
......
注意,这些函数中的"文本长度"均为字符个数,而非char个数具体参看MSDN.
5.API调用一般不用做特殊处理,当定义了UNICODE和_UNICODE后,所有的API都会被宏指向W结尾的版本(不定义则指向A结尾的版本).
其实,上面所说的并非强制你使用UNICODE,如果你还想回去使用ANSI,没有问题,把第一步定义的两个宏拿掉就OK了,继续我们的ANSI编程。
2. TCHAR同char的区别
TCHAR 就是当你的字符设置为什么就是什么
例如:程序编译为 ANSI, TCHAR 就是相当于 CHAR
当程序编译为 UNICODE, TCHAR 就相当于 WCHAR ,每个字符占两个字节
3. BOOL同bool的区别
意义上没什么区别,但却是两种类型.
bool应该是C语言里定义的,返回值为true和false(事实上就上1和0)
而BOOL应该是MFC及SDK里定义返回值的.
它的定义应该是:typedef int BOOL;(WINDEF.H中定义)
也就是说它是int型的
返回值是大写的TRUE 和FALSE
定义如下:
#define FALSE 0
#define TRUE 1
(AFX.H中如此定义)
一个是布尔型,一个是整型.
事实上整型如果取1和0就可以代替布尔型了.
笔试题目(二)
1. A tape manufacturer reduces the price of his heavy duty tape from Rs.30/- to Rs.28/- a reel and the price of a regular tape from Rs.24/- to Rs.23/- a reel . A computing centre normally spends Rs.1440/- a month for tapes and 3/4 of this is for heavy duty tapes. How much will they save a month under the new prices?
Ans.Rs.87 132
2. shl测评题:In a team of 12 persons, 1/3 are women and 2/3 are men. To obtain a team with 20% women how many men should be hired?
Ans.8
3. The dimensions of a certain machine are 48″ X 30″ X 52″. If the size of the machine is increased proportionately until the sum of its dimensions equals 156″, what will be the increase in the shortest side?/
Ans. 6″
4. shl测评题:In a certain company, 20% of the men and 40% of the women attended the annual company picnic. If 35% of all the employees are man, what percent of all the employees went to the picnic?
Ans.33% 21%
5. It cost a college Rs.0.70 a copy to produce a Programme for the homecoming football game. If Rs.15,000/- was received for advertisements in the programme, how many copies at Rs.0.50 a copy must be sold to make a profit of Rs.8000/- ?
Ans. 35000
选择题
封装性:
多态性:
继承性:
C++定义类最大的特点是使程序面向对象而不是面向过程,这在c中是没有体现的。 类的标志特性是继承,封装,多态,对象化提供了模型化和信息隐藏的好处,类化提供了可重用性的好处。通过面向对象使得程序设计模块化了,便于编程人员拆分合作。类首先是基类,派生和继承得到新的类即有基类的公共属性,又可以定义新的功能属性,便有了多元化实用价值。封装便于保护代码不被任意篡改和便于维护,可移植性和重用性高。多态说的是程序因而变得更加灵活,多态性允许将父对象设置成为和一个或多个它的子对象相等的技术,比如Parent:=Child; 多态性使得能够利用同一类(基类)类型的指针来引用不同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作。
叙述题
五种类图定义: 1.用例图:从用户角度描述系统功能,并指各功能的操作者。 2.静态图:包括类图,包图,对象图。 类图:描述系统中类的静态结构 包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构 对象图:是类图的实例 3.行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图 活动图:描述了业务实现用例的工作流程 状态图:是描述状态到状态控制流,常用于动态特性建模 4.交互图:描述对象之间的交互关系 顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互 合作图:描述对象之间的协助关系 5.实现图: 配置图:定义系统中软硬件的物理体系结构 |
十种模型图定义: (1)、用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系 (2)、类图:展示系统中类的静态结构 (3)、对象图:是类图的一种实例化图(对象图是对类图的一种实例化) (4)、包图:是一种分组机制。在UML1.1版本中,包图不再看作一种独立的模型图) |
2.写出类的 3 个特点,貌似和前面的选择题重了,多态继承啊什么的
3.use case diagram 是不是要我说用例图是干吗的?还是软件工程的题
4.居然问你写过程序没?我说 yes 然后说做过什么项目 用什么开
5 问我用过 winddk 吗?貌似就是问我写过驱动没?直接写 NO
6 说为什么来东芝?
编程题
1.画了一个图 A 类 B 类 C 类,B 类和 C 类是 A 的子类, C 类又包含 A 类,问 A 类和 B 类什么关系?我汗。。。
这也是编程题?编什么啊?
//C语言标准库函数strcpy的一种典型的工业级的最简实现。 //返回值:目标串的地址。 //对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NUL。 //参数:des为目标字符串,source为原字符串。 char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*des++ = *source++)!=‘\0‘); return r; } //while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值NULL后,循环停止。 |
1//摘自《代码之美》 // 字符含义 // . 匹配任意的单个字符 // ^ 匹配输入字符串的开头 // $ 匹配输入字符串的结尾 // * 匹配前一个字符的零个或者多个出现
int matchhere(char *regexp, char *text);
int matchstar(int c, char *regexp, char *text) {// matchstar: search for c*regexp at beginning of text do {// a * matches zero or more instances if (matchhere(regexp, text)) return 1; } while (*text != ‘\0‘ && (*text++ == c || c == ‘.‘)); return 0; }
int match(char *regexp, char *text) {// match: search for regexp anywhere in text if (regexp[0] == ‘^‘) return matchhere(regexp + 1, text); do {// must look even if string is empty if (matchhere(regexp, text)) return 1; } while (*text++ != ‘\0‘); return 0; } |
void main() { printf("%d==match(abc ,abc)\n", match("abc", "abc")); printf("%d==match(^a ,abc)\n", match("^a", "abc")); printf("%d==match(c$ ,abc)\n", match("c$", "abc")); printf("%d==match(a.c ,abc)\n", match("a.c", "abc")); printf("%d==match(a.*c,abc)\n", match("a.*c", "abc")); printf("-------------------\n"); printf("%d==match(ABC ,abc)\n", match("ABC", "abc")); printf("%d==match(^B ,abc)\n", match("^B", "abc")); printf("%d==match(A$ ,abc)\n", match("A$", "abc")); printf("%d==match(a..c,abc)\n", match("a..c", "abc")); printf("%d==match(a.*d,abc)\n", match("a.*d", "abc")); } //1==match(abc ,abc) //1==match(^a ,abc) //1==match(c$ ,abc) //1==match(a.c ,abc) //1==match(a.*c,abc) //------------------- //0==match(ABC ,abc) //0==match(^B ,abc) //0==match(A$ ,abc) //0==match(a..c,abc) //0==match(a.*d,abc) |
还有一些题目,忘了……总之考的比较全面
来源:大街网东芝_Toshiba2014校园招聘大礼包_东芝_Toshiba2014校园招聘
标签:
原文地址:http://www.cnblogs.com/zjh86/p/4996351.html