中国电信2016年IT研发工程师笔试题

1.设图 G 的相邻矩阵如下图:则 G 的顶点数和边数分别为()
01111
10100
11011
10101
10110
正确答案: D 你的答案: 空 (错误)
A.4,5
B.4,10
C.5,6
D.5,8

-------------------------------------------------------------------------------------------------------------------------------------------------------

2.mysql 数据库有选课表 learn(student_id int,course_id int),字段分别表示学号和课程编号, 现在想获取每个学生所选课程的个数信息,请问如下的 sql 语句正确的是()
正确答案: B 你的答案: 空 (错误)
A.select student_id,sum(course_id)from learn
B.select student_id,count(course_id)from learn group by student_id
C.select student_id,count(course_id)from learn
D.select student_id,sum(course_id)from learn group by student_id

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

3.下列排序算法中元素的移动次数和关键字的初始排列次序无关的是()
正确答案: C 你的答案: 空 (错误)
A.直接插入排序
B.起泡排序
C.基数排序
D.快速排序

---------------------------------------------------------------------------------------------------------------------------------------------------------------

4.某一密码仅使用 K、 L、 M、 N、 O 共 5 个字母,密码中的单词从左向右排列,密码
单词 必须遵循如下规则:
(1) 密码单词的最小长度是两个字母,可以相同,也可以不同
(2) K 不可能是单词的第一个字母
(3) 如果 L 出现,则出现次数不止一次
(4) M 不能使最后一个也不能是倒数第二个字母 (5) K 出现,则 N 就一定出现
(6) O 如果是最后一个字母,则 L 一定出现 问题:下列哪一个是单词密码?()
正确答案: C 你的答案: 空 (错误)
KLLN
LOML
MLLO

NMKO
---------------------------------------------------------------------------------------------------------------------------------------------------------------

5.n 从 1 开始,每个操作可以选择对 n 加 1,或者对 n 加倍。如果最后结果为 2013, 最少 需要()个操作。
正确答案: A 你的答案: 空 (错误)
A.18
B.24
C.21
D.不可能

解析:

2013->2012->1006->503->502->251->250->125->124->62->31->30->15->14->7->6->3->2->1

数数有多少个->就可以了,每个->就是一次演变过程。

-------------------------------------------------------------------------------------------------------------------------------------------------------

6.下面一段代码的输出结果是()

void f(char *c, char d) {
    *c = *c + 1;
    d = d + 1;
    cout << *c << d;
}
int main() {
    char a = 'A', b = 'a'; f(&b, a);
    cout << a << b << endl;
    return 0;
}

A.BaBa
B.bBAb
C.AbAb
D.aBaB
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

7.关于 JAVA 堆,下面说法错误的是()
A.所有类的实例和数组都是在堆上分配内存的
D.对象所占的堆内存是由自动内存管理系统回收
C.堆内存由存活和死亡的对象,空闲碎片区组成
D.数组是分配在栈中的

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

8.某系统有 n 台互斥使用的同类设备,3 个并发进程需要 3,4,5 台设备,可确保系统不发生死锁的设备数 n 最小为()
正确答案: B 你的答案: 空 (错误)
A.9
B.10
C.11
D.12

解析:

 

是不是可以这么想。

极端状态下:

进程1(3台):申请到2台,无法工作;

进程2(4台):申请到3台,无法工作;

进程3(5台):申请到4台,无法工作;

申请总数:2+3+4=9,此时若只有9台,3个进程持续申请且申请不到,造成死锁。

所以必须再空出一台。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

9.下面有关 java 类加载器,说法正确的是?(A,B,C,D)
A.引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
B.扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。
C.系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
D.tomcat 为每个 App 创建一个 Loader,里面保存着此 WebApp 的 ClassLoader。需要加载 WebApp 下的类时,就取出 ClassLoader 来使用

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

10.下面有关事务隔离级别说法正确的是?(A,B,C,D)

A.串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
B.未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改 的数据
C.提交读(Read Committed):只能读取到已经提交的数据
D.可重复读(Repeated Read):在同一个事务内的查询都是事务开始时刻一致的

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

11.下列说法错误的是 ()

A.利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,这种形式的栈也称为顺序栈
B.top=0 时为空栈,元素进栈时指针 top 不断地减 1
C.当 top 等于数组的最大下标值时则栈满
D.栈不能对输入序列部分或全局起求逆作用
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

12.找出两个链表相交的结点(定义链表结构)
 


/节点定义
typedef struct Node{
    int data;
    Node* next;
}
//寻找内存位置相同的节点
Node* Search(Node* head1,Node* head2){
    if(head1==null || head2==null)
         return null;
    int diff = head1.size() - head2.size();
    Node* p1=head1,p2=head2;
    if(diff<0){
        for(int i=1;i<=diff;i++)
         p2 = p2->next;
    }else if(diff>0){
    for(int i=1;i<=diff;i++)
         p1 = p1->next;
    }
    while(p1->next!=p2->next){
        p1 = p1->next;
        p2 = p2->next;
    }
    return p1->next;
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

13.给定一个已经排好序的字符串数组,空字符串散布在该数组中,编写一个函数寻找一个 给定字符串的位置。

Python版:


def find_string(str_target,string):
    str_list = string.split(' ')
    for i in range(len(str_list)):
        if str_list[i] ==  str_target:
             print("该字符串的位置为 %d" % (i+1))

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

14.给定一个二叉树,且每个节点存储一个值。设计一个算法,实现:对于一个给定的数值, 打印出所有的路径。这条路径不必要开始于或结束语根节点或叶节点。

bool visitTreePathByValue(TreeNode * pNode , int nNodeVal)
{
    if (NULL == pNode)
{
return false;
}
if (nNodeVal == pNode->value())
{
    printf("%d" , pNode->value());
    return true;
}
bool bVisit = false;
bVisit = visitTreePathByValue(pNode->left() , nNodeVal);
if (bVisit)
{
    printf("%d" , pNode->value());
}
bVisit = visitTreePathByValue(pNode->right() , nNodeVal);
if (bVisit)
{
    printf("%d" , pNode->value());
}
return bVisit;
}

 

 

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EmbodiedTech

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值