神州数码笔试题
Document serial number【KK89K-LLS98YT-SS8CB-SSUT-SST108】
L i n u x
2.只显示一个文件的最后10行
3.在当前目录下有100个文件,分别为a.000,
a.001.....................a.099;请写一个脚本,将所有文件名改为
b.000,b.001,b.002.......................b.099
1.3数据库测试
1.oracle中char和varchar2的区别?
2.Oracle中truncate和delete命令有何区别?
3.主键和索引的区别?
4.什么是左外连接,右外连接和全连接?
5.论述什么是事务、数据的一致性、完整性以及如何保证.
6.有一张表名称为:test_tab,有下列字段,存放各号码的通话记录;Msisdnvarchar(11)主叫号码
Beg_timedate通话时间
Feenumber(8,2)通话费用
请各写一条SQL语句(注意是一条SQL),完成下列各题:
1.求取所有通话记录的费用的平均值、最大值、最小值;
2.选出每个号码的最早通话时间、最晚通话时间、通话总费用。
3.对以1391234开头的主叫号码的费用进行修改:
通话时间在0~7点(含7点)的,费用该为0;
通话时间在21~24点的,费用改为原来费用的一半。
二分法排序,什么关键码;
什么软件成熟度排序;
pc机外围总线
等
4道简答题
1.进程状态转化图,及解释,及转化条件。
几个状态用英文写的,没学过操作系统,什
么玩意。
2.tcp/ip分层模型,解释,arp解释
3.程序改错,主要就是几个字符串操作函数的用法
4.两个双向链表,编写函数,删除其中数据相同的节点
5给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3。
在上两
个操作中,要保持其它位不变。
然后是编程题
1.一个未知长度的链表,找回路
节点已经定义
structnode
{
structnode*next;
2.两个有序链表,合并成一个有序链表
ms还有两个
总之都是关于链表的
最后大题
多线程编程,客户端,服务器之间进行通讯,另外还要求调用键盘,显示等还有什么玩意要求写完整的程序,总共有两个编程。
软件开发工程师笔试题
//神州数码网络公司
第一部分选择:
1-下列总线接口哪个不是PC的外围扩展总线
a、ISA总线上
b、CPU局部总线上
c、PCI总线上
d、EISA总线上
2-哪一种情况适用现行链表的链式存储
a、大量数据,大量随机读
b、大量数据,大量插入和删除
c、大量数据,大量的随机写入
3-数组Q[1——m]表示的环形队列,f为当前队头在数组中的位置,r为队尾的后一
位置顺时针,则队列的元素个数为:
a、r-f
b、m+r-fmodm
c、m-r+fmodm
d、m-r-fmodm
4-CMM模型软件成熟度5级排序。
CMM1初始级
CMM2可重复级
CMM3已定义级
CMM4已管理级
CMM5优化级
5-二分法查找11顺序表{3681012151618212530},需要进行几次关键值比
较
a、2
b、3
c、4
d、5
第二部分简答:
1、在多任务操作系统中,进程的状态ready,run,pend,zombie的含义和相互的
迁移条件。
2、VC++中,如何调用操作系统的函数。
3、TCP/IP模型中,画出分层协议并解释。
ARP是什么作用。
4、双向循环链表,删除两个链表data值相同的结点。
写程序。
5、不改变其他位的值,写一段程序分别将char型变量a的bit3置位和复位。
第三部分编程:
1、改错
char*string_test()
{
char
charc[10];
int*b;
b=malloc(sizeof(a));
strcpy(b,a);
strncpy(&c,a,10);
printf("%s/n",c);
returnb;
}
main()
{
char*b=string_test();
printf("%s/n",b);
return;
}
参考答案:
char*string_test()
{
char
charc[11];
char*b;
b=(char*)malloc(strlen(a)+1);
strcpy(b,a);
strncpy(c,a,11);
printf("%s/n",c);
returnb;
}
intmain()
{
char*b=string_test();
printf("%s/n",b);
free(b);
return0;
}
2、用标准C实现strcat和memmove函数
char*strcat(char*dest,constchar*src)
char*strcat(char*dst,constchar*src)
{
char*cp=dst;
while(*cp)
cp++;
while(*cp++=*src++)
NULL;
returndst;
}
char*strcpy(char*dest,constchar*srce)
{
char*addr=dest;
while((*dest++=*srce++)!='/0')
NULL;
returnaddr;
}
void*memmove(void*dest,constvoid*src,size_tcount) void*memmove(void*dest,void*source,size_tcount) {
void*ret=dest;
if(dest<=source||dest>=(source+count))
{
while(count--)
*dest++=*source++;
}
else
{
dest+=count-1;
source+=count-1;
while(count--)
*dest--=*source--;
}
returnret;
}
ps:void*memcpy(void*dest,void*source,size_tcount) {
void*ret=dest;
//copyfromloweraddresstohigheraddress
while(count--)
*dest++=*source++;
returnret;
}
3、设计一个linux或者windows下c语言,基于TCP的多线程服务器和客户端发送程序。
(1)对服务器程序,收到客户端字符串后,用printf()显示。
要求对客户端的
报文处理采用多线程并发处理方式。
(2)对客户端程序,接收来自键盘的字符串,发给指定的IP服务器。