笔试练习题Word文档格式.docx
- 文档编号:21294245
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:36
- 大小:73.99KB
笔试练习题Word文档格式.docx
《笔试练习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《笔试练习题Word文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
inti=0;
intlen=sizeof(array)/sizeof(array[0]);
printf(“%d\n”,len);
for(i=0;
i<
(sizeof(array)/sizeof(array[0]));
i++)
array[i]=toupper(array[i]);
}
Intmain(void){
Chararray[]=“abCde”;
intlen=sizeof(array)/sizeof(array[0]);
for(i=0;
i++){
printf(“%c\n”,array[i]);
2.实现strlen或者strstr库函数
intmystrlen(char*p){
char*temp=p;
intcount=0;
while(*temp!
='
\0'
)temp++;
returntemp-p;
3.操作系统的生产者与消费者问题
4.删除单链表的某一个元素。
函数如:
Structnode*delete(structnode*head,intdata);
5.单链表逆序。
6.tcp与udp的区别。
7.进程与线程的区别。
8。
实现memmove函数。
Voidmemmove(constvoid*src,constvoid*dest);
和亚嵌教程一样的程序我写出来了。
中间实现的时候我用了一个临时储存数组chartemp[];
要我解释原因。
structA{
inta;
charb;
shortc;
};
第一:
在这个结构体A中int最大,占4个字节。
第二:
char占一个,但和4还差3个距离,于是再往后面看看有没有比四小的,如果加起来恰好小于4就合并在一起了,这时候加起来正好是3,4+3=7,又得是四的整数倍所以是8了
structB{
char占1个,不能和后面的int组成一对,因为int已经是非曲直了,否则只能添加三个空格就是4个字节了。
第三:
inta就是4个了。
第四:
shortc占二个字节,由于它是最后一个,没有合并的对象了,只能添加2个空格了,也就是2+2=4;
4+4+4=12
1写出有关函数或API
内存类型转换字符串网络线程
2举例描述内存拷贝、字符串拷贝的作用
3c语言函数入口名称()win32函数入口名称()
MFC入口基类()
4整形i和整型j相等的表达式是什么?
5网络连接于关闭的那几个函数的执行顺序
服务器端:
客户端:
6编写一个线程函数,用用函数调用该函数创建新的线程
7编写一个学生类
一、英文翻译,请将下文翻译为中文(5分)
QtisamultiplatformC++GUIapplicationframework.Itprovidesapplicationdeveloperswithallthefunctionalityneededtobuildapplicationswithstate-of-the-artgraphicaluserinterfaces.Qtisfullyobject-oriented,easilyextensible,andallowstruecomponentprogramming.
Sinceitscommercialintroductioninearly1996,Qthasformedthebasisofmanythousandsofsuccessfulapplicationsworldwide.QtisalsothebasisofthepopularKDELinuxdesktopenvironment,astandardcomponentofallmajorLinuxdistributions.
Qt/EmbeddedFreeEditionistheEmbeddedversionofQt.ItisprovidedfreeofchargeunderthetermsoftheGNUGeneralPublicLicense.
______________________________________________________________________________________________
二、填空题(40分)
1.请写出Linux下的命令:
(4分)
a.找出/tmp目录中,内容有helloworld的所有文件。
()
b.找出/work目录中,文件后缀名为.cpp的所有文件。
()
c.查看本机的当前网络连接状况。
d.查看当前系统中所有进程。
2.请写出SQL语句:
(1分)
选出record表中name字段等于”Timmy”的记录,并按date字段逆序排序。
3.请说明使用数据库事务(Transaction)的目的:
4.Linux下进程间通信的方式有哪几种?
____________________________________________________________________
5.对于1000个已经排序的整数数组,使用二分查找法找出整数K在该数组中的下标,最多需多少次?
(2分)
_____________________________________________________________________________
6.假设基于32位平台,请写出以下代码运行输出的结果:
(3分)
typedefstructworker{
charname[10];
intage;
boolsex;
intlevel;
}worker;
main()
{
workerw[3];
printf("
sizeofdata:
%d"
sizeof(w));
}
输出结果:
___________________
7.请说明下列代码运行后的结果:
(6分)
voidget_str(char*p)
{
p=(char*)malloc(strlen("
abcd"
)+1);
strcpy(p,"
);
main()
char*p=NULL;
get_str(p);
printf(“%s”,p);
char*get_str()
char*p="
Helloworld"
;
returnp;
printf(“%s”,get_str());
charp[]="
helloWorld"
main()
结果:
__________________________结果:
_______________________结果:
__________________________
8.请说明下列代码运行后的打印输出:
classA{
public:
A(){func
(1);
}
virtualvoidfunc(intdata){printf("
A1"
voidfunc(char*str){printf("
A2"
classB:
publicA{
voidfunc(intdata){printf("
B1"
B2"
A*pA;
Bb;
pA=&
b;
pA->
func
(1);
func("
test"
输出结果:
___________________________________________________________
9.有变量定义chargreeting[]=“hello”;
请为以下语句选择相应的含义:
char*p=greeting;
_____constchar*p=greeting;
_____
char*constp=greeting;
_____constchar*constp=greeting;
a.值可变,地址也可变;
b.值可变,地址不可变
c.值不可变,地址可变d.值不可变,地址不可变
10.为使gdb可以调试可执行文件,需要在用g++/gcc编译时加入什么编译参数?
______________________________________________________________________________
在一个可执行文件产生core文件后,如何使用gdb获知出错时的堆栈情况?
(2分)
(请给出gdb打开core文件的命令用法、及显示堆栈情况的命令)
_______________________________________________________________________________
如何在代码中打印出当前源文件名、行号?
(1分)
11.请说出代码运行后的结果:
#definePLUS(x)x+x
i=5*PLUS(5)Result:
i=__________________________________________
12.一个类的静态方法是否可以调用该类的非静态方法?
请说明原因。
_____________________________________________________________________________________________
13.请说明深拷贝和浅拷贝的概念(2分)
14.请说明断言(ASSERT)的作用(1分)___________________________________________________________
题一:
给一组随机数8、4、2、3、9,用任意一方法进行排序。
要求:
写出各趟排序的结果和排序函数。
排序函数接口如下:
voidfn(void*buf,intn)
buf指向整数数组的首地址,n为数组元素的个数。
题二:
假设链表内保存的是整形数据,设计一算法,将数据“Number”插入到第N个字节后。
boolinsert(void*pFirst,intNumber,intN)
题三:
请构造一段程序,用来表现面向对象中多态的概念。
题四:
根据上下文,给出函数setData(char*buf)的实现。
字符数组p的内容保存到类的私有数据中。
当p值被改变后,类中私有数据不会改变。
classString:
pData(NULL)
char*pData;
~String()
if(pData)deletepData[];
voidsetData(char*buf);
intmain(void)
charp[]=“hello!
”;
Stringstr;
str.setData(p);
题五:
给出链表结构示意图。
题六:
假设某公司有两电梯,请实现电梯的函数接口或者类的定义,画出电梯运行的状态图。
题七:
用最快的方法实现判断一个数是否是2的N次幂形式。
题八:
atoi函数的实现,不可以调用其他系统函数。
题九:
用gcc命令编译成可执行文件的过程。
题十:
用gdb调试时用到的命令举例。
题十一:
全局变量,局部变量,静态变量,的作用范围和生命期。
题十二:
OSI七层模型,TCP/UDP属于哪一层。
题十三:
进程,线程的区别,线程是否有相同的堆栈,dll是否有独立的堆栈。
题十四:
用单链表实现查找和删除节点。
题十五:
定义一个宏,实现求两个数中的最大的一个,不可以用<
>
和if。
1、写一个常用的排序,并说出时间和空间复杂度
2、用C写一个二叉树,并用一种方法遍历
3、Socket阻塞与非阻塞的区别,使用的方法
4、下面的程序有什么问题?
intsquare(volatileint*x)
{
Return*x**x;
}
5、写一个程序,判断num是否是二的N次方
6、给一组随机数84239,用任意一方法进行排序,写出各趟排序的结果和排序函数,
接口如下:
voidfn(void*buf,intn)
buf为数组首地址,n为元素个数
7、请构造一段程序,来表示多态的概念
C++考题:
8、SetData(char*buf)
classString:
pData(NULL)
voidSetData(char*buf);
charp[]="
hello"
Stringstr;
str:
SetData(p);
要求p的值存到类的私有数据中,当私有数据改变时,p的值没有改变
9、atoi的实现,不能调用系统函数
10、请写出gcc编译可执行文件的过程
11、GDB的常用命令
12、进程和线程的区别
13、TCP/UDP的区别
14、DLL是否有独立的堆栈
15、定义一个宏,求两个数最大的一个
16、单链表实现插入和删除
17、写一个函数,CPU是大端就返回0,小端就返回1
18、现在需要1M字节的缓冲区,而且需要一个字节指针指向该缓冲区,这个指针必须128字节对齐,如何定义缓冲区和指针
SQL的含义是什么?
19、请写出TCP/IP的三次握手的具体过程
20、使用fork函数可以创建一个子进程,请问父子进程之间有哪些不同。
(1)
(2)
(3)
(4)
(5)
21、比较“管道”和“共享内存”这两种linux环境下进程之间的通信方式。
(1)管道优点:
(2)管道缺点:
(3)共享内存优点:
(4)共享内存缺点:
22、如何实现一个简单的“输出重定向”程序,其程序的格式为:
程序名输出重定向
return0;
23、服务器程序将日志输出到“daliy.log”文件中,当服务器程序结束运行时关闭该文件。
如果在服务器程序运行期间作如下操作:
mvdaliy.logdaliy.bak
那么新日志内容将输出到哪个文件中,如果重新启动服务器程序又会怎么样呢?
24、请解释下列信号在什么时候会收到。
(1)SIGINT
(2)SIGQUIT
(3)SIGSEGV
(4)SIGPIPE
25、如何以将一个文件变为“非阻塞方式”读取的文件?
26、在运行程序时有时需要使用一些临时文件,如何得到一个唯一的文件名?
如何保证在程序崩溃的情况下仍然可以清除进程的临时文件?
尝试完成下面代码段。
charfilename[128];
(1)/*得到唯一的路径名*/
fd=open(filename,O_WRONLY|
(2)/*填充open函数的参数*/);
(3)/*程序崩溃的情况下仍然可以清除进程的临时文件*/
/*dosomestuff...*/
close(fd);
27、解释两个出错号:
EINTR和EAGAIN
28、写一个shell脚本,对一个文件“raw.txt”进行排序。
raw.txt中存放的是无序整数。
29、写一个程序,验证依附于一个进程的两个线程共用进程的地址空间(包括堆、栈和数据段)
30、TTL是什么意思?
31、linux套接字有几种类型?
使用UDP协议的客户端程序可以调用connect函数吗?
32、connect函数会造成阻塞,如何使其不阻塞?
试用两种方法解决。
33、简述一个使用TCP协议的服务器端程序的基本执行流程。
假设一个使用UDP的服务器端进程出现崩溃现象,对于通信的客户端来讲会造成怎样的影响?
34、如何阻塞一个信号?
在编写网络应用程序中,哪些信号是必须要编写处理函数的?
35、如果向一个线程发送信号会产生什么效果?
多个线程是否能够共用一个定时器呢?
如果希望使用一个微秒级的定时器,应该使用哪个函数?
36、实现一个简单的system函数。
考虑自己实现的system函数为什么不能代替库函数中的system函数?
你写的代码区别哪里?
哪一点没有考虑?
37、信号可以中断哪些系统调用?
被中断的系统调用有什么样的动作?
编程验证这个问题,以读终端为例。
38、怎样判断文件的类型?
编写一个函数计算一个指定目录中所有的普通文件的个数。
注意要能处理子目录和符号连接。
39、lstat和stat函数有什么区别?
read和readlink有什么区别?
目录文件、普通文件和符号连接文件的数据盘块中保存的内容有什么不同?
40、双向链表操作:
假设每个对象有next指针指向下一对象,prev指针指向前一对象。
链表的头由head指向,现有在链表头增加一个对象的宏如下(obj指向的是新增加的对象):
//双向链表操作函数:
(next,prev)
#definelist_add_head(head,obj)
if((head)==0)
(head)=(obj);
(obj)->
prev=(obj)->
next=(obj);
else
next=(head);
prev=(head)->
prev;
(head)->
prev=(obj);
(obj->
prev->
next=obj);
(head)=(obj);
仿上例写出在列表尾部增加一个对象的宏:
#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 笔试 练习题