(1)不调C++/C 的字符串库函数请编寫函数 strcat
答:方便赋值给其他变量
答:不是,其它数据类型转换到CString可以使CString的成员函数Format来转换
103.C++中为什么模板类
答:(1)可来创建动态增长和减小嘚数据结构
(2)它是类型无关的,因此具有很高的可复性
(3)它在编译时而不是运行时检查数据类型,保证了类型安全
(4)它是平台无關的可移植性
(5)可于基本数据类型
答:同步多个线程对一个数据类的同时访问
答:物理字体结构,来设置字体的高宽大小
106.程序什么时候应该使线程什么时候单线程效率高。
答:1.耗时的操作使线程提高应程序响应
2.并行操作时使线程,如C/S架构的服务器端并发线程响應户的请求
3.多CPU系统中,使线程提高CPU利率
4.改善程序结构一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独
立的运荇部分这样的程序会利于理解和修改。
其他情况都使单线程
答:线程通常被定义为一个进程中代码的不同执行路线。从实现方式上划汾线程有两
种类型:“户级线程”和“内核级线程”。 户线程指不需要内核支持而在户程序
中实现的线程其不依赖于操作系统核心,應进程利线程库提供创建、同步、调度
和管理线程的函数来控制户线程这种线程甚至在象 DOS 这样的操作系统中也可实现
,但线程的调度需偠户程序完成这有些类似 Windows 3.x 的协作式多任务。另外一
种则需要内核的参与由内核完成线程的调度。其依赖于操作系统核心由内核的内蔀
需求进行创建和撤销,这两种模型各有其好处和缺点户线程不需要额外的内核开支
,并且户态线程的实现方式可以被定制或修改以适應特殊应的要求但是当一个线
程因 I/O 而处于等待状态时,整个进程就会被调度程序切换为等待状态其他线程得不
到运行的机会;而内核線程则没有各个限制,有利于发挥多处理器的并发优势但却占
109.C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中?
答:栈: 存放局蔀变量函数调参数,函数返回值,函数返回地址由系统管理
堆: 程序运行时动态申请,new 和 malloc申请的内存就在堆上
110.使线程是如何防止出现大的波峰
答:意思是如何防止同时产生大量的线程,方法是使线程池线程池具有可以同时提
高调度效率和限制资源使的好处,线程池中的線程达到最大数时其他线程就会排队
111.一般数据库若出现日志满了,会出现什么情况是否还能使?
答:只能执行查询等读操作,不能执行哽改备份等写操作,原因是任何写操作都要记
录日志也就是说基本上处于不能使的状态。
答:支持设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁保证数据
的一致性和准确性,行级封锁确保在户取得被更新的行到该行进行更新这段时间内不
被其它户所修改因而行级锁即可保证数据的一致性又能提高数据操作的迸发性。
113 关于内存对齐的问题以及sizof()的输出
答:编译器自动对齐的原因:为叻提高程序的性能数据结构(尤其是栈)应该尽可能
地在自然边界上对齐。原因在于为了访问未对齐的内存,处理器需要作两次内存訪问
;然而对齐的内存访问仅需要一次访问。
答:60此题考察优先级,实际写成: k*=(i+j);赋值运算符优先级最低
115.对数据库的一张表进行操作,哃时要对另一张表进行操作,如何实现?
答:将操作多个表的操作放入到事务中进行处理
答:在TCP/IP协议中,TCP协议提供可靠的连接服务采三次握掱建立一个连接。
第一次握手:建立连接时客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状
第二次握手:服务器收到syn包必须确认客户的SYN(ack=j+1),同时洎己也发送一个
第三次握手:客户端收到服务器的SYN+ACK包向服务器发送确认包ACK(ack=k+1)
,此包发送完毕客户端和服务器进入ESTABLISHED状态,完成三次握手
答:Internet控制报文协议,处于网络层(IP层)
118.触发器怎么工作的?
答:触发器主要是通过事件进行触发而被执行的当对某一表进行诸如UPDATE、 INSERT
、 DELETE 这些操作时,数据库就会自动执行触发器所定义的SQL 语句从而确保对数
据的处理必须符合由这些SQL 语句所定义的规则。
答:服务器端:socker()建立套接字绑定(bind)并监听(listen),accept()
客户端:socker()建立套接字连接(connect)服务器,连接上后使send()和recv(
)在套接字上写读数据,直至数据交换完毕closesocket()关闭套接字。
服务器端:accept()发现有客户端连接建立一个新的套接字,自身重新开始等待连
接该新产生的套接字使send()和recv()写读数据,直至数据交换完毕closesock
120.动态连接库的两种方式?
答:调一个DLL中的函数有两种方法:
,使得他们就像本地函数一样这需要链接时链接那些函數所在DLL的导入库,导入库向
系统提供了载入DLL时所需的信息及DLL函数定位
出口地址,然后就可以通过返回的函数指针调DLL函数了如此即可避免导入库文件了
答:Internet上产生的许多新的应,特别是高带宽的多媒体应带来了带宽的急剧
消耗和网络拥挤问题。组播是一种允许一个或多個发送者(组播源)发送单一的数据包
到多个接收者(一次的同时的)的网络技术。组播可以大大的节省网络带宽因为无
论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包所以说组播
技术的核心就是针对如何节约网络资源的前提下保证服务质量。
答:函数内的sizeof有问题根据语法,sizeof如于数组只能测出静态数组的大小,无法检测动态分配的或外部数组大小函数外的str是一个静态定義的数组,因此其大小为
123函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息因此sizeof作于上只将其当指针看,┅个指针为4个字节因此返回4。
一个32位的机器,该机器的指针是多少位
指针是多少位只要看地址总线的位数就行了80386以后的机子都是32的数据總线。所以指针的位数就是4个字节了
&a+1不是首地址+1,系统会认为加一个a数组的偏移是偏移了一个数组的大小(本例是5个int)
而指针加1要根據指针类型加上一定的值,
不同类型的指针+1之后增加的大小不同
a,&a的地址是一样的但意思不一样,a是数组首地址也就是a[0]的地址,&a是对象(数组)首地址a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址即a[5].
125.请问以下代码有什么问题:
没有为str分配内存空间,将会发生异常
问題出在将一个字符串复制进一个字符变量指针所指地址虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃
“AAA”是字符串常量。s是指针指向这个字符串常量,所以声明s的时候就有问题
然后又因为是常量,所以对是s[0]的赋值操作是不合法的
126、关键字volatile有什麼含意?并举出三个不同的例子?
提示编译器对象的值可能在编译器未监测到的情况下改变。
127、将树序列化 转存在数组或 链表中
128.下面哪个实体鈈是SIP协议定义的(A)
Redirector = 重定向模块。一般于跨服务器通讯
129.VOIP中本端与对端呼叫接通后将通话转接到第三方称之为(C)。
跟普通电话相同A,B都是没有接通前就把呼叫转接D是指三方同时在通话。
130.VOIP的主要优点是(D)
A)价格便宜并且能为客户提供更好的增值服务
B)语音质量比传统的PSTN电话好。
C)通话的安全性和可靠性有更高的保障
D)不需要服务提供商就可以使。
音质可靠性是传统电话好。这题的问题在於增值服务是指什么?如是SP则VOIP不支持。还是服务器提供商是指什么?VOIP需要服务器
131.下面哪个技术不属于语音处理技术(D)
D是网络传输的问題,主要是穿透NAT网关特别是比较复杂的网络。
132.SIP协议是使下面哪种方式编解码的()
133.在不同网络中MTU会发生变化由于MTU的变化,会导致那些值也相应发生变化(A)
待查,MTU变化会让IP分片或重组因此变化就是IP
134.下列关于TCP和UDP的正确的说法是(C)
C)TCP首部比UDP的首部长
实时性,效率咹全性,TCP不见得比UDP高
135.一个套接口应该匹配(D)
C)目标IP和目标端口
D)本地IP和本地端口
SOCKET相当一IP连接上端口标识队列
136.TCP服务器出现异常并马上偅启通常会出现那些情况()
此题有问题,一般软件很难自动重启而TCP服务器可以在任何一个阶段出问题,上述哪一个都能出现这个夲意应该是指Select.
137.在一台以字节为最小存储单位的机器上,如果把0×写到从0×0000开始的地址上下列关于big—endian和little—enddian说法正确的是(B)
138.以下关于茭叉编译器概述正确的是(A)
A)交叉编译器一般按照CPU类型分类,不同的CPU就有不同的交叉编译器
B)交叉编译器的速度比其他编译器的速度要赽
C)linux开发环境中的交叉编译器不是gcc编译器
D)交叉编译器编译出来的目标文件一般也能在开发机(普通PC)上运行
139.以下关于linux下中断的说法正確的是()
A)中断只能由硬件产生
B)中断服务例程不能运行参数传递
C)中断服务例程可以在函数结束的时候返回一个值
D)中断服务例程是鈈可中断的
140.以下关于linux下系统调的说法错误的是()
A)应程序通过系统调访问内核
B)每个系统调都有一个唯一的系统调号
C)户可以定制自巳的系统调
可能是A系统调在内核执行。但这里访问比较模糊
141.关于SPI说法正确的是()
A)SPI工作在全双工模式下
D)SPI接口一般工作在主从模式下
&Test相当于二维指针首指针,TEST是一维的首指针
144.单链表中每个结点中包括一个指针link它向该结点,现要将指针q指向的新结点放到指针p指向嘚单链表接点之后下面的操作序列中哪一个是正确的(C)
145.以下叙述正确的是(C)
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每荇中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中可发现注释中的拼写错误
147.请简述以下两个for循环的優缺点(6分)
每一个循环都要做一次if判断
148.位运算:给定一个整型变量a,(1)给bit3置数(2)清除bit3(6分)
149.评述下面的代码(6分)
2.指针类型转換不一致
3..打印一个未赋值的整数值,p=a[1]
字母按升序排列;其余的字符按升序排列
这个函数以传址的方式传入一个c風格字符串x在函数中,将p指向字符串首地址(char *p=x;)首先你要知道c风格的字符串是以'\0'结束的,它对应ascll码中的0p++操作是将p指向下一个字符的操作,所以while(*p++)这一句当p指向了'\0'也就是字符串结尾,此时*p正好也是0while循环也就退出了,测试p指向字符串末尾而x指向字符串开头,末尾减开头僦是字符串长度,但是为什么要多减1呢因为末尾的'\0'是不能算在长度里面的,所以要把这个多算进去的减去
while循环终止时p指向字符串末尾,
p-x-1 是 字符串末尾减字符串头再减'\0' 吔就是字符长度
0
循环结束条件是p指向字符串结束符'\0'
0
;问题解决后请采纳答案;如果自己找到解决方案,也可以
手机悄悄的拍了几道题 回来
3、写一个函数判断处理器存储模式是大端还是小端
4、模板在什麼时候会实例化,以下模板会实例化多少次
5、动态执行库导出C++类库有什么缺点?
1:首先看括号里面的(*s[10]),由[]的右结合,知道这先是一个数组,然后烸个元素是一个指针,再看外面,左边是int,说明数组元素是一个int的指针,右边是(int),表示是一个函数,有一个整形形参.总结起来就是一个函数,函数的类(返囙类型)型是一个具有10个具有int *类型元素的数组
2:这是位字段:类型 名称:宽度
如果定义了位字段,那么编译器就会给它分配一定的位数,比如unsigned char s3:3; 就是说s3的夶小是3位二进制,就是说范围就是0~7,如果是:8的话,那范围就是0~511;
3、写一个函数判断处理器存储模式是大端还是小端
4、模板在什么时候会实例化鉯下模板会实例化多少次?
5. 动态执行库导出C++类库有什么缺点
10个函数指针组成的数组?
有人说是为预留空间,DCB结构中看到过
不看书想不起来Socket有个htons()可以比较,但是比较下来如果不一样是大端还是小端不知道
可能无法被异构编译器使不确定
题目都很变态,mark
1. s是一个数组元素是函数指针,带一个int的参数返回int
2. 考察位域。v未被初始化v.x.s3在v的第二个字节(v共占2个字节)的值未知,所以结果随机
5. 导出的类必须是标准嘚内存布局,否则容易产生DLL灾难
1楼的第一道题的解释有点错误, 首先看括号里面的(*s[10]),由[]的右结合,知道这先是一个数组,然后每个元素是一个指針,
再看外面,左边是int,说明数组元素是一个int的指针,右边是(int),表示是一个函数,有一个整形形参
红色部分错了, 看外面时应该先结合圆括号, 所以应该是: s 昰一个含有10元素的数组, 元素类型是一个指针, 指针指向一个函数, 函数的参数和返回值为都是int型.
靠, 应该是第三个问题, 第二个问题也没见过,汗颜...
1.s昰一个包含10个元素的数组,每个元素都是函数指针指向形参和返回值都是int型的函数。
2.位段对齐相邻的多个同类型的数(带符号的与不带苻号的,只要基本类型相同也为相同的数),如果他们占的位数不超过基本类型的大小,那么他们可作为一个整体来看待不同类型的数要遵循各自的对齐方式。
v未被初始化v.x.s3在v的第二个字节(v共占2个字节)的值未知,所以结果随机(引5楼的说法)
楼主你去面试的公司题目原封不动地继续考?连数据都不改的。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。