软件开发笔试题目(精选11篇)由网友“您的小耳朵”投稿提供,以下是小编整理过的软件开发笔试题目,欢迎阅读分享,希望对大家有帮助。
篇1:软件开发笔试题目
,
。。后悔啊,俺就凑合了两行
6,P1dB,IIP3,等等 反复的问,我已经被问晕掉了 测试研发必考
7, 接收机噪声系数的问题
8,射频同轴电缆的指标参数
9,默写麦克斯韦方程组啊 哭死鸟啊,背了几遍都是记错了,后悔啊
10,一个简单的IIP3计算,公式看了,忘记了,木有办法的啊 还是不会。。。
11, RBW
12,频谱分析仪的几个选择题,记不太清了,反正是基本的 好像是问 它的测量精度和什么有关系(多选)
WCDMA OAM Verification Engineer –BJ
1-1Explain/Describe the UMTS physical network architecture, and indicate the interface used between devices.
1-1 In UMTS,what’s the difference between AAL2 and AAL5?
1-2 In UMTS,what do FDD and TDD mean?
1-3 Describe the processor of hardover and soft handover?
1-4 Describe the spread mechanism used in UMTS, and please draw the power spectrum before and after spreading.
1-5 Please describe the functionalities of rake recEiver?
2-1 Explain (draw) the 4 TCP-IP layer.
2-2 What’s DNS? What’s domain name? What’s the relationship between IP address and domain name?
2-3 What’s IP routing? Please list and explain several routing protocols.
2-4 What’s the function of firewall?
2-5 Please explain telnet and ssh protocol.What’s the difference between them?
3-1 List the Network Management System you know.
3-2 What’s the purpose of UMTS Network Management System.
3-3 List all the functions UMTS Network Management tool should provide and give your explanation about these functions.
3-4 Please describe the network performance optimization in UMTS network management system?
4-1 What are the meaning of these commands.
ls df cp chmod chown mv tar cpio init 0 init 6 vi aa.txt ifconfig netstat-a ps grep find(give example) iostat uname cat more tail head wc
5-1 In a Unix shell script, how to export the number of arguments of a script?
5-2 There is one variable in the shell script named “sample name”, please write a script to check whether it is a file or a directory name. Please output in this format: directory : samplename or file: samplename.
5-3 Please write a Unix shell script which ask user to input a sentence and output each work in a line.
for example:
input :
run test3.sh
promt : enter some text : I like the korn shell.
Output :
I like the korn shell
5-4 Please write a regular expression to replace “Micheal” with “Mike” in this file :ResumeOfMicheal and output to another file named ResumeOfMike.
6-1 Explain the meaning og the following computer science abbreviations
UML CORBA IDL JRE JNLP JMS DHCP VBA DLL DDBC
6-2 Please list the software life cycle model you know .describe one model in terms of advantage and disadvantage.
篇2:高级软件开发笔试题目
说明:
可能您的专业并不完全符合本试题所涉及的领域,因此,并非所有的问题都需要回答,您可以只回答你所熟悉和能够回答的问题。答应参考任意的资料,但请独立完成此试题,我们更欣赏您独立的思考和创新的'精神。本试题并非我们录用或者不录用您的惟一依据。
应聘高级软件开发人员者请回答这部分问题。
1.数据的逻辑存储结构(如数组,队列,树等)对于软件开发具有十分重要的影响,试对你所了解的各种存储结构从运行速度、存储效率和适用场合等方面进行简要地分析,
2.数据库技术是计算机系统中一个非常重要的领域,几乎所有的计算机应用中都或多或少地用到了数据库。试简要地谈谈数据库设计中应当注重哪些问题,以及如何解决?给出两种你所熟悉的DBMS,要求一种适用于小型应用,另一种适用于大型应用,给出你做出选择的理由。
3.某公司的主要业务是提供WWW和E-mail服务,出于安全考虑,该公司要求我公司提供一套网络指纹登录系统,该系统要求能够利用指纹替代E-mail中常用的密码,并对所提供的部分网页通过指纹认证后才能访问,请利用你所学过的知识对该系统进行分析设计,你可以指定网络的配置(包括协议),但必须保证邮件用户既可通过网页(http方式)收取信件,也可通过Outlook收取信件。请分析该系统的可行性,可行时给出系统结构和主要的存储结构,指出系统中的难点和解决方法。(假设指纹识别的问题已经解决)
篇3:c软件开发笔试题目
1、(4分)用变量a给出下面的定义
a) 一个整型数;
b)一个指向整型数的指针;
c)一个指向指针的指针,它指向的指针是指向一个整型数;
d)一个有10个整型的数组;
e)一个有10个指针的数组,该指针是指向一个整型数;
f)一个指向有10个整型数数组的指针;
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
答案:
a)int a
b)int *a;
c)int a;
d)int a[10];
e)int *a [10];
f) int (*a)[10]
g)int (*a)(int)
h) int( *a[10])(int)
2、(4分)请写出以下语句的输出结果:
Int i=43;
Int j=5;
Double f=25.45181;
a) printf(“i=%d,j=%d,f=%3.2f”,i,j,f);
b) printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);
答案:
A)i=43,j=5,f=25.45
(说明:本来应该输出最小3位有效数字,25.5,但是由于限定了2位小数,所以强制有2位小数,有效数字的个数就起不到强制作用了。如果是%3.1,则输出为25.5)
B)i=2B ,j=000005,i/j=8
(%x显示的是一个无符号的0x 16进制的整数,%06d输出的是6位数,不够6位数,前面补0,i/j两个整数相除,只取商的整数值)
3、(2分)请完成以下宏定义:
a)用预处理指令#define 声明一个常数,用以表明1年中有多少个秒(忽略闰年问题) b)写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个
答案:
a)#define SECONDS (365*24*60*60)UL
b) #define MIN(a,b) ((A)<(B)?(A):(B))
扩展:MAX宏 #define MAX ((A)>(B)?(A):(B))
ABS宏 #define ABS (((X)>0)?(X):(-(X)))
4、(6分)以下为32为windows下的c++程序,请计算:
a)
char str=”hello”;
char *p=str;
请计算:
sizeof(str)=6
sizeof(p)=4
strlen(p)=5
答案:6,字符串数组以\0(空格为结尾,所以str数组空间大小为5+1)
4,计算的是指针的长度。
5,strlen函数区的字符指针str的长度,不包括空字符。
b)
void func(char str[100])
{
Void *p=malloc(100);
}
请计算:
sizeof(str)=100,:表示在内存中预分配的内存大小。
sizeof (p)=4
c)
int a[3]={1,2,3};
int b=sizeof(a)/sizeof(a[0]); sizeof(a)求的是数组的大小。
请计算:
b=3,对的。
5、(2分) 设有定义:int n=0,*p=&n,q=&p; 则以下选项中,正确的赋值语句是(d) a)p=1; b)*q=2; c)q=p; d)*p=5;
(c)改成q=&p; 才对。
6、(2分)const关键字的用途?(至少说明两种)
答案:
(1)可以定义 const 常量
(2)const 可以修饰函数的参数、返回值,甚至函数的定义体。被const 修饰的东 西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
(3)const可以用来修饰指针变量,控制指针变量的存取规则。
篇4:c软件开发笔试题目
1、(2分)typedef的c语言中频繁用以声明一个已经存在的数据类型的同义词。也可以用以预处理器做类似的事情。例如:
#define dps struct s*
Typedef struct s * tps;
以上两种情况的意图都是要定义dps和tps作为一个指向结构s指针。哪种方法更好一些呢?(如果有的话)为什么? 考虑安全性还是用typedef好,宏定义在编译时是不检查的,只是简单替换,而typedef编译时要检查的 typedef,而且typedef,define并非等价,如#define string1 char *
typedef char *string2;第二种才能达到预想效果, string1 a,b;
得到的b是char
define是做替换的,typedef 则是重新定义一种数据类型的。可以向int型一样使用的。
#define FIND(struct,e) (size_t) &(((struct*)0)->e)
typedef是语句( 以';'结尾)
Typedef。它在自己的作用域内给一个已经存在的类型一个别名
2、(8分) 以下是一组有关内存知识的问题,请仔细看题,回答:
Void GetMemory(char *p)
{
P=(char *)malloc(100);
}
Void Test(void)
{
Char *str=Null;
GetMemory(str);
Strcpy(str,”hello world”);
Printf(str);
}
请问运行Test函数会有什么样的结果?
a)__________程序崩溃,运行时错误___________________________
char *GetMemory(void)
{
Char p=”hello world”);
Return p;
}
Void Test(void)
{
Char *str=NULL;
Str=GetMemory;
Printf(str);
}
请问运行Test函数会有什么结果?
b)_______________ hello world ________________________________
void GetMemory2(char p,int num)
{
*p=(char *)malloc(num);
}
Void Test(void)
{
Char *str=NULL;
GetMemory(&str,100);
Strcpy(str,”hello”);
Printf(str);
}
请问运行Test函数会有什么结果?
c)_______ hello __________________________________________
void Test(void)
{
Char *str=(char *)malloc(100);
Strcpy(str,”hello”);
Free(str);
If(str!=NULL)
{
Strcpy(str,”world”);
Printf(str);
}
}、
请问运行test函数会有什么样的结果?
d)_______程序崩溃:因为释放str指针后,没有将指针置为null,所以指针变为野指针了。再执行cpy时会因为找不到指针的指向而导致程序崩溃,请编程时,注意这一点。 __________________________________________
3、(6分)请写出以下程序的输出结果:
Class A
{
Public:
A
{ Printf(“A constructed.\n”);}
Virtual ~A
{printf(“A deconstructed.\n”);}
Virtual void Fn
{printf(“A fn called.\n”);} };
Class B:public A
{
Public:
B
{printf(“B constructed.\n”);} Virtual ~B
{printf(“B deconstructed.\n”);} Virtual void Fn
{printf(“B fn called.\n”);} };
Class C:public B
{
Public:
C
{printf(“C constructed.\n”);} Virtual ~C
{printf(“C deconstructed.\n”);} Virtual void Fn
{printf(“C fn called.\n”);} };
Void main(int argc,char* grgv) {
A *pA=new B;
If(pA!=NULL)
pA->fn;
B *pB=static_cast(pA);
If(pB!=NULL)
pB->fn;
C * pC=static_cast(pA); If(pC!=NULL)
pC->fn;
delete pA;
}
Answer:
A constructed
B constructed
B fn called
B fn called
B fn called
B deconstructed
A deconstructed
篇5:c软件开发笔试题目
1.(2分)以下说法错误的是:
A)指针和引用作为函数参数都可以改变实参
B)指针和引用都可以在定义后任意的改变指向,引用是不可以改变的。
C)引用必须在创建的时候初始化,而指针则不需要
D)不能空引用,但是可以有空指针
2、(2分) 运算符的重载形式有两种,重载为_重载为类的内部成员函数____________和_重载为类的友元函数______________________
3、(2分) main主函数执行完毕后,是否可能会再执行一段代码?请说明理由? 可以使用注册函数让程序在推出main之后,程序终止之前执行自定义的一些代码!
全局对象的构造函数会在main 函数之前执行
利用atexit函数可以在程序终止前完成一些“清理”工作——如果将指向一组函数的指针传递给atexit函数,那么在程序退出main函数后(此时程序还未终止)就能自动调用这组函数。在使用atexit函数时你要注意这样两点:
main 之前:预编译 全局变量的初始化等
main 之后:全局变量的释放
main函数执行之前,主要就是初始化系统相关资源
mainCRTStartup中被调用的
在main之前会调用一系列初始化函数来初始化这个进程
而在main之后会调用exit(int)来进行进程的清理工作。可以用_onexit 注册一个函数
,可以用_onexit 注册一个函数,它会在main 之后执行int fn1(void), fn2(void), fn3(void), fn4 (void);
可能会执行一些注册过的Hook
注意,atexit以栈的方式注册函数,后注册的函数会先执行。
_onexit和atexit一样是以占的方式注册函数的,后注册的函数会被先执行。
void main( void )
篇6:C语言软件开发笔试题目
C语言软件开发笔试题目
(1)什么是预编译,何时需要预编译:
答案:
1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种
情况下,可以将所有包含文件预编译为一个预编译头。
预编译又称为预处理,是做些代码文本的替换工作。处理#开头的指令吗,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等,就是为编译做的预备工作的阶段,主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的.操作,可以放在程序中的任何位置。c编译系统在对程序进行通常的编译之前,先进行预处理。c提供的预处理功能主要有以下三种:1)宏定义 2)文件包含 3)条件编译。
(2)char* const p, char const* p,const char*p 上述三个有什么区别?
答案:
char * const p; //常量指针,p 的值不可以修改
char const * p;//指向常量的指针,指向的常量值不可以改
const char *p;//和char const *p等价
(3)char str1[] = “abc”; char str2[] = “abc”; const char str3[] = “abc”; const char str4[] = “abc”;
const char *str5 = “abc”; const char *str6 = “abc”; char *str7 = “abc”; char *str8 = “abc”; cout < <( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout <
< ( str7 == str8 ) < < endl;
结果是:0 0 1 1 str1,str2,str3,str4 是数组变量,它们有各自的内存空间;而str5,str6,str7,str8
是指针,它们指向相同的常量区域,
(4)以下代码中的两个sizeof 用法有问题吗?
void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母
{
for( size_t i=0;i
if( 'a' <=str[i] && str[i] <='z' )
str[i] -= ('a'-'A' );
}
char str[] = “aBcDe”; cout < < “str 字符长度为: ” < < sizeof(str)/sizeof(str[0]) < < endl;
UpperCase( str ); cout < < str < < endl;
答案:函数内的sizeof 有问题。根据语法,sizeof 如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str 是一个静态定义的数组,因此其大小为6,因为还有'\0',函数内的str 实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof 作用于上只将其当指针看,一个指针为4 个字节,因此返回4。
(5)一个32 位的机器,该机器的指针是多少位答案:
指针是多少位只要看地址总线的位数就行了。80386 以后的机子都是32 的数据总线。所以
指针的位数就是4 个字节了。
篇7:it笔试题目
1、有一个名人和很多平民在一块,平民都认识这个名人,但是这个名人不认识任何一个平民,任意两个平民之间是否认识是未知的,请设计一个算法,快速找个这个人中的那个名人。 已知已经实现了一个函数 bool know(int a,int b) 这个函数返回true的时候,表明a认识b,返回false的时候表明a不认识b。
思路:首先将n个人分为n/2组,每一组有2个人,然后每个组的两个人调用这个know函数,假设为know(a,b),返回true的时候说明a认识b,则a肯定不是名人,a可以排除掉了,依次类推,每个组都调用这个函数依次,那么n个人中就有n/2个人被排除掉了,数据规模将为n/2。同理在剩下的n/2个人中在使用这个方法,那么规模就会将为n/4,这样所有的遍历次数为n/2+n/4+n/8+........ 这个一个等比数列,时间复杂度为o(n)。
2、进程切换需要注意哪些问题?
保存处理器PC寄存器的值到被中止进程的私有堆栈; 保存处理器PSW寄存器的值到被中止进程的私有堆栈; 保存处理器SP寄存器的值到被中止进程的进程控制块;
保存处理器其他寄存器的值到被中止进程的私有堆栈; 自待运行进程的进程控制块取SP值并存入处理器的寄存器SP; 自待运行进程的私有堆栈恢复处理器各寄存器的值;
自待运行进程的私有堆栈中弹出PSW值并送入处理器的PSW; 自待运行进程的私有堆栈中弹出PC值并送入处理器的PC。
3、输入一个升序数组,然后在数组中快速寻找两个数字,其和等于一个给定的值。
这个编程之美上面有这个题目的,很简单的,用两个指针一个指向数组前面,一个指向数组的后面,遍历一遍就可以了。
4、判断一个自然数是否是某个数的平方。当然不能使用开方运算。
方法1:
遍历从1到N的数字,求取平方并和N进行比较。
如果平方小于N,则继续遍历;如果等于N,则成功退出;如果大于N,则失败退出。
复杂度为O(n^0.5)。
方法2:
使用二分查找法,对1到N之间的数字进行判断。
复杂度为O(log n)。
方法3:
由于
(n+1)^2
=n^2 + 2n + 1,
= ...
= 1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1)
注意到这些项构成了等差数列(每项之间相差2)。
所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。
如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。
复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。
例如:3^2 = 9 = 1 + 2*1+1 + 2*2+1 = 1 + 3 + 5
4^2 = 16 = 1 + 2*1 + 1 + 2*2+1 + 2*3+1
int square(int n)
{
int i = 1;
n = n - i;
while( n >0 )
{
i += 2;
n -= i;
}
if( n == 0 ) //是某个数的平方
return 1;
else //不是某个数的平方
return 0;
}
篇8:it笔试题目
一、算法设计
1、设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。
思路:这个使用数学中的极坐标来解决,先调用[s1,t1]随机产生一个数r,归一化后乘以半径,得到R*(r-s1)/(t1-s1),然后在调用[s2,t2]随机产生一个数a,归一化后得到角度:360*(a-s2)/(t2-s2)
2、为分析用户行为,系统常需存储用户的一些query,但因query非常多,故系统不能全存,设系统每天只存m个query,现设计一个算法,对用户请求的query进行随机选择m个,请给一个方案,使得每个query被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量。
思路:如果用户查询的数量小于m,那么直接就存起来。如果用户查询的数量大于m,假设为m+i,那么在1-----m+i之间随机产生一个数,如果选择的是前面m条查询进行存取,那么概率为m/(m+i),如果选择的是后面i条记录中的查询,那么用这个记录来替换前面m条查询记录的概率为m/(m+i)*(1-1/m)=(m-1)/(m+i),当查询记录量很大的时候,m/(m+i)== (m-1)/(m+i),所以每个query被抽中的概率是相等的。
3、C++ STL中vector的相关问题:
(1)、调用push_back时,其内部的内存分配是如何进行的?
(2)、调用clear时,内部是如何具体实现的?若想将其内存释放,该如何操作?
vector的工作原理是系统预先分配一块CAPACITY大小的空间,当插入的数据超过这个空间的时候,这块空间会让某种方式扩展,但是你删除数据的时候,它却不会缩小。
vector为了防止大量分配连续内存的开销,保持一块默认的尺寸的内存,clear只是清数据了,未清内存,因为vector的capacity容量未变化,系统维护一个的默认值。
有什么方法可以释放掉vector中占用的全部内存呢?
标准的解决方法如下
template < class T >
void ClearVector( vector< T >& vt )
{
vector< T >vtTemp;
veTemp.swap( vt );
}
事实上,vector根本就不管内存,它只是负责向内存管理框架acquire/release内存,内存管理框架如果发现内存不够了,就malloc,但是当vector释放资源的时候(比如destruct), stl根本就不调用free以减少内存,因为内存分配在stl的底层:stl假定如果你需要更多的资源就代表你以后也可能需要这么多资源(你的list, hashmap也是用这些内存),所以就没必要不停地malloc/free。如果是这个逻辑的话这可能是个trade-off
一般的STL内存管理器allocator都是用内存池来管理内存的,所以某个容器申请内存或释放内存都只是影响到内存池的剩余内存量,而不是真的把内存归还给系统。这样做一是为了避免内存碎片,二是提高了内存申请和释放的效率――不用每次都在系统内存里寻找一番。
二、系统设计
正常用户端每分钟最多发一个请求至服务端,服务端需做一个异常客户端行为的过滤系统,设服务器在某一刻收到客户端A的一个请求,则1分钟内的客户端任何其它请求都需要被过滤,现知每一客户端都有一个IPv6地址可作为其ID,客户端个数太多,以至于无法全部放到单台服务器的内存hash表中,现需简单设计一个系统,使用支持高效的过滤,可使用多台机器,但要求使用的机器越少越好,请将关键的设计和思想用图表和代码表现出来。
三、求一个全排列函数:
如p([1,2,3])输出:
[123]、[132]、[213]、[231]、[321]、[323]
求一个组合函数
如p([1,2,3])输出:
[1]、[2]、[3]、[1,2]、[2,3]、[1,3]、[1,2,3]
这两问可以用伪代码。
篇9:it笔试题目
1、对于如下程序:
#include
using namespace std;
class A
{
public:
A
{
cout<<“A”<
}
};
int main(void)
{
A a[4], b,*p;
}
会输出多少个A?( C )
A、2 B、3 C、5 D、6
p只是一个对象指针,并没有指向一个对象的内存空间,所以没有调用构造函数。
2、头文件中的 ifndef/define/endif 有什么作用?
答:防止该头文件被重复引用,避免变量、类型等被重新定义。
3、const 有什么用途?(请至少说明两种)
答:(1)可以定义 const 常量。
(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
4、如下的字符串函数,用于生存一个字符串 ”连接号码异常” ,并返回它的指针
char* strfun()
{
char str[20];
strcpy(str, “连接号码异常”);
printf(“%s \n”, str); //printf语句1
return str;
}
void main()
{
char *pstr = strfun();
printf(“%s \n”, pstr); //printf语句2
}
问题1 : printf语句1和printf语句2哪个能在屏幕上正在打印出来?
问题2 : 如果不能正常在屏幕上打印出字符串,请说明原因。
问题3 : 如果不修改strfun的声明,请问该如何修改上述程序的错误。
答:
问题1:语句1可以正常打印,语句2不能正常打印;
问题2:语句2使用的指针所指向的内存空间str[20],在函数strfun返回时已经被释放了;
问题3:可以将函数strfun中的语句char str[20];改为char *str = new char[20];
5、下面是交换两个double型数据的函数,
void swap( double* p1, double* p2 )
{
double *p;
*p = *p1;
*p1 = *p2;
*p2 = *p;
}
void main()
{
double a = 0.1;
double b = 0.2;
swap( &a, &b );
}
请找出上述代码的错误,指出错误的原因,并改正。
答:函数swap中混淆了double型指针与double型变量的差别,对于一个未初始化的指针访问其内存空间是非常危险的。对swap函数修改如下:
void swap( double* p1, double* p2 )
{
double p;
p = *p1;
*p1 = *p2;
*p2 =p;
}
6、在电信业务的后台处理程序中,经常会涉及到处理字符串,除了用char *处理字符串之外,C++还为我们提供了封装了的字符串类string,其本质也是用一个动态数组来保存字符串,类String的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数普通构造函数、拷贝构造函数、析构函数和赋值函数。
代码如下:
class String
{
private:
char *m_data;
public:
String();
String(const char *str = NULL);
String(const String &other);
~String(void);
String & operator =(const String &other);
};
String::String()
{
m_data = NULL;
}
String::String(const char *str = NULL) //带一个指针的普通构造函数
{
if(str == NULL)
{
m_data = new char[1];
assert(m_data != NULL);
*m_data = '\0';
}
else
{
int length=strlen(str);
m_data = new char[length+1];
assert(m_data != NULL);
strcpy(m_data,str);
}
}
String::String(const String &other) //拷贝构造函数
{
m_data = new char[other.length+1];
assert(m_data != NULL);
strcpy((*this).m_data,other.m_data);
}
String::~String(void) //析构函数
{
if(m_data != NULL)
{
delete m_data;
m_data = NULL;
}
}
String & String::operator=(const String &other) //赋值函数
{
if(&other != this)
{
delete [](*this).m_data;
(*this).m_data = new char[other.length+1];
assert((*this).m_data != NULL);
strcpy((*this).m_data,other.m_data);
}
}
篇10:it笔试题目
1、对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少。
2、如果X大于0并小于65536,用移位法计算X乘以255的值为: (X<<8)-X
X<<8-X是不对的,因为移位运算符的优先级没有减号的优先级高,首先计算8-X为0,X左移0位还是8。
3、一个包含n个节点的四叉树,每个节点都有四个指向孩子节点的指针,这4n个指针中有 3n+1 个空指针。
4、以下两个语句的区别是:第一个动态申请的空间里面的值是随机值,第二个进行了初始化,里面的值为0
int *p1 = new int[10];
int *p2 = new int[10]();
5、计算机在内存中存储数据时使用了大、小端模式,请分别写出A=0X123456在不同情况下的首字节是,大端模式:0X12 小端模式:0X56 X86结构的计算机使用 小端 模式。
一般来说,大部分用户的操作系统(如windows, FreeBsd,Linux)是小端模式的。少部分,如MAC OS,是大端模式 的。
6、在游戏设计中,经常会根据不同的游戏状态调用不同的函数,我们可以通过函数指针来实现这一功能,请声明一个参数为int *,返回值为int的函数指针:
int (*fun)(int *)
7、下面程序运行后的结果为:to test something
char str[] = “glad to test something”;
char *p = str;
p++;
int *p1 = static_cast(p);
p1++;
p = static_cast(p1);
printf(“result is %s\n”,p);
8、在一冒险游戏里,你见到一个宝箱,身上有N把钥匙,其中一把可以打开宝箱,假如没有任何提示,随机尝试,问:
(1)恰好第K次(1=
(2)平均需要尝试多少次。
这个就是求期望值 由于每次打开宝箱的概率都是1/n,则期望值为: 1*(1/n)+2*(1/n)+3*(1/n)+......+n*(1/n) = (n+1)/2
篇11:百度校园招聘移动软件开发工程师笔试题目
百度校园招聘移动软件开发工程师笔试题目
一、简答题(本题共30分)
1.请说说C++/Java/Objective-C/C#语言是如何体现面向对象思想的,(10分)
2.请用C++或者Java编程语言实现多态。(10分)
3.编写一个栈的压栈操作(push),栈的结构定义如下:
Struct Static{
Element* base;//栈底
Element* top;//当前栈顶
Int capacity;//栈的当前容量
}
实现以下函数:
bool push(Stack* s,Element elem);//s已被初始化,Element为基本数据类型,初始化大小为:INIT_SIZE(10分)
二、算法与程序设计(本题45分)
1.查找某一字串中字串的个数,比如:字串 “hello world!” 中字串的个数为2,实现其函数。(15分)
2.请使用非递归方式实现二叉树的后序遍历,要求时间复杂度和空间复杂度都为O(n)。(15分)
3.给定一个链表,其中的节点有两个指针:指针一指向之后第一个节点,指针二指向之后第二个节点。请设计一个函数,删除链表中所有值为M的节点。(15分)
三、系统设计题(本题共25分)
1.基于手机系统平台,设计一个Push(消息推送)系统,包括手机端和Push server端,
这套Push服务系统是一个基础服务系统,不包括具体业务逻辑功能,是一个开放系统,开放给
Element* base;//栈底
Element* top;//当前栈顶
Int capacity;//栈的当前容量
}
实现以下函数:
bool push(Stack* s,Element elem);//s已被初始化,Element为基本数据类型,初始化大小为:INIT_SIZE(10分)
二、算法与程序设计(本题45分)
1.查找某一字串中字串的个数,比如:字串 “hello world!” 中字串的`个数为2,实现其函数。(15分)
2.请使用非递归方式实现二叉树的后序遍历,要求时间复杂度和空间复杂度都为O(n)。(15分)
3.给定一个链表,其中的节点有两个指针:指针一指向之后第一个节点,指针二指向之后第二个节点。请设计一个函数,删除链表中所有值为M的节点。(15分)
三、系统设计题(本题共25分)
1.基于手机系统平台,设计一个Push(消息推送)系统,包括手机端和Push server端。这套Push服务系统是一个基础服务系统,不包括具体业务逻辑功能,是一个开放系统,开放给第三封应用开发者使用。请基于手机系统的一些特性,来设计这套Push系统。
1)请描述一些这套系统手机端部分设计时需要考虑的关键性能指标有哪些。(5分)
2)请画出手机端程序的系统结构图。(8分)
3)请画出第三方程序使用这套系统时所涉及的相关部分的系统结构图。(8分)
4)你觉得基于这套系统能够开发一个什么样的第三方程序。请给出一个例子。(4分)
★ 蓝盟科技笔试题目
【软件开发笔试题目(精选11篇)】相关文章:
南京顺丰笔试题目2023-06-28
应届生面试笔试总结2023-05-15
德尔福全英的笔试题目2022-05-06
阿里巴巴测试开发工程师面试笔试经验2022-08-27
ABB集团笔试题目2023-04-07
软件测试工程师的笔试题目附加解答2024-01-13
腾讯实习生求职笔试面试经历2022-07-26
山东省农村信用社计算机专业笔试经验2022-11-17
百度校园招聘完整面试笔试经验2023-09-20
美的HR真实透露笔试答题技巧2023-01-18