`

三道笔试题

    博客分类:
  • C++
阅读更多

附加题一:

递归实现合并两个有序链表head1 和head2 成一个链表依然有序:

*问题分析与算法设计

输入:两个有序链表指针head1 和head2 (假设是递增序列)

输出:合成的有序链表head;

递归终止条件:若head1为空,返回head2指针(head);若head2为空,返回head1指针(head)

递归过程:

       (1)若head1->data>head2->data;   head 指针应该指向head2所指向的节点,而且head->next应该指向head1和head2->next两个链表的合成序列的头指针;

       (2)否则head 指针应该指向head1所指向的节点,而且head->next应该指向head->next和head2两个链表的合成序列的头指针;

 

Node * Merge(Node *head1 , Node *head2)
{
     if ( head1 == NULL )
         return head2 ;
     if ( head2 == NULL)
        return head1 ;
    Node *head = NULL ;
    if ( head1->data > head2->data )
    {
        head = head2 ;
        head->next = Merge(head1,head2->next);
    }
    else
    {
        head = head2 ;
        head->next = MergeRecursive(head1,head2->next);
   }
   return head ;

}

 

 

附加题二:

      设二叉树的节点数据结构为

           struct node {   node *left,

                                  node *next ,

                                  node *rignt};

       其中left指针指向其左子树,right指针指向其右子树,起始时刻next指针为空,请写出一个二叉树的按层遍历的函数,输入为二叉树的头指针head,输出按层遍历的节点顺序的头指针head,且节点的next指针按层遍历的后继节点。(二叉树根节点和按成遍历的第一个节点是同一个)

问题分析与算法设计:

对二叉树按层遍历,并用next指针相连,返回指向按层遍历头结点的指针,必须利用队列来实现:(实际程序应该加入左右子树为空的处理)p指向的是上一个层序遍历的节点

void LBLOrder(Node* head)

{

      Node *rear, *p;

      p=rear=head;

      while(p!=NULL)

     {

            if(p->left!=NULL)

           {

               rear->next=p->left;

               rear=rear->next;

            }    

            if(p->right!=NULL)

            {

                rear->next=p->right;

                rear=rear->next;

             }

            p=p->next; 

       }

}

 

 

附加题三:谁是小偷

公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是小偷,还知道这四人中每人要么是诚实的,要么是说谎的。在回答公安人员的问题中:
甲说:“乙没有偷,是丁偷的。”
乙说:“我没有偷,是丙偷的。”
丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷。”
请根据这四人的答话判断谁是小偷。

*问题分析与算法设计
假设A、B、C、D分别代表四个人,变量的值为1代表该人是窃贼。
由题目已知:四人中仅有一名是小偷,且这四个人中的每个人要么说真话,要么说假话,而由于甲、乙、丙三人都说了两句话:“X没偷,X偷了”,故不论该人是否说谎,他提到的两人中必有一人是小偷。故在列条件表达式时,可以不关心谁说谎,谁说实话。这样,可以列出下列条件表达式:
甲说:”乙没有偷,是丁偷的。” B+D=1
乙说:“我没有偷,是丙偷有。” B+C=1
丙说:“甲没有偷,是乙偷的。” A+B=1
丁说:“我没有偷。” A+B+C+D=1
其中丁只说了一句话,无法判定其真假,表达式反映了四人中仅有一名是小偷的条件。

#include
int main()
{
    int i,j,a[4];
    for(i=0;i<4;i++) /*假定只有第i个人为窃贼*/
   {
       for(j=0;j<4;j++) /*将第i个人设置为1表示窃贼,其余为0*/
           if(j==i) 

                a[j]=1;
           else 

                a[j]=0;
       if(a[3]+a[1]==1&&a[1]+a[2]==1&&a[0]+a[1]==1) /*判断条件是否成立*/
       {
             printf("The thief is "); /*成立*/
             for(j=0;j<4;j++) /*输出计算结果*/
             if(a[j])    printf("%c.",j+'A');
             printf("\n");
       }
   }
}

*运行结果  The thief is B. (乙为小偷。)

 

分享到:
评论

相关推荐

    高通笔试题--嵌入式C开发人员的最好的0x10道笔试题详细解析.docx

    "高通笔试题--嵌入式C开发人员的最好的0x10道笔试题详细解析" 本节知识点详细解析高通笔试题中的10道笔试题,涵盖嵌入式C开发人员所需的各种知识点,包括volatile关键字、类型转换、递归调用、指针、多维数组、逗号...

    4399-游戏开发笔试题

    《4399游戏开发笔试题:探索游戏开发的核心技术与面试策略》 4399,作为国内知名的游戏平台,其2015年校园招聘的笔试题无疑是对潜在游戏开发者的一次全面考验。这份笔试题集不仅揭示了游戏开发的基本技能要求,也...

    h3c 新华三 校招 c 笔试题一

    【新华三校招C语言笔试题一解析】 在IT行业,尤其是硬件与网络领域,H3C(新华三)作为一家知名的公司,其招聘过程往往包括技术性较强的笔试环节,特别是针对C语言的测试。C语言是计算机科学的基础,对于理解和开发...

    华三交换机笔试题

    "华三交换机笔试题"是一个专门为考察和评估应聘者对华三(H3C)交换机理解与操作能力而设计的试题集。这些题目通常涵盖网络基础、交换机配置、协议知识以及故障排查等多个方面。 1. **网络基础知识**:这部分可能...

    100道程序员笔试题

    这份"100道程序员笔试题"集合涵盖了多种编程语言、数据结构、算法、操作系统、网络、数据库等多个领域的核心知识点,是提升技术能力的好资料。下面我们将详细探讨这些题目所涉及的关键知识。 1. **编程语言基础**:...

    2021紫光笔试题IC校招笔试题.zip

    《2021紫光笔试题IC校招笔试题》是一个针对集成电路(IC)行业的笔试题目集合,主要针对应届毕业生的招聘过程。紫光集团是中国知名的集成电路设计与制造企业,其笔试题目的涵盖范围广泛,旨在测试应聘者的专业知识、...

    数字马力笔试题.docx

    数字马力笔试题 本文总结了数字马力的笔试题,涵盖了软件测试岗位的简历筛选笔试题,涉及到了接口自动化测试、Java/Python 实现多线程的方法等知识点。 接口自动化测试 在软件测试中,接口自动化测试是一个重要的...

    运维工程师笔试题.doc

    【运维工程师笔试题】 在运维领域,笔试题通常用来评估候选人的基础知识和技能。这份运维工程师的笔试题主要涵盖了Linux系统知识和Web容器两大主题,包括填空题、选择题和简答题。以下是对这些知识点的详细解释: ...

    常见linux笔试题-100道选择题-(答案见最后).doc

    Linux 操作系统常见笔试题知识点总结 本文总结了 Linux 操作系统常见的笔试题,涵盖了 Linux 基础知识、文件系统管理、用户管理、权限管理、进程管理、系统安全等方面的知识点。 Linux 基础知识 1. cron 是一个...

    2018年H3C新华三C语言笔试题(社招)

    【标题】2018年H3C新华三C语言笔试题(社招)解析 在2018年,H3C新华三公司面向社会招聘时,为候选人提供了一套C语言笔试题,旨在测试候选人在C语言编程方面的基础与实际应用能力。由于题目中并未给出具体答案,...

    华三H3CIE-RS笔试题库

    华三H3CIE-RS笔试题库,检验学习效果

    百度历年笔试题

    《百度历年笔试题解析》 在信息技术领域,面试与笔试是评估求职者技能的重要环节,尤其是对于技术型岗位,如百度这样的互联网巨头,其历年笔试题不仅反映了公司的技术导向,也揭示了当前行业关注的技术热点。本文将...

    2009福富笔试题(java,c/c++)海外,电信

    10.笔试题3 知识点:指针基础、指针运算、数组 解释:该题目考察了指针基础知识,包括指针运算、数组等。 11.笔试题4 知识点:结构体基础、结构体成员 解释:该题目考察了结构体基础知识,包括结构体成员、...

    新华三19年笔试题

    选项可能会有改动,但知识点不变,需要理解每道题的知识点。

    校招C&C++笔试题大全

    【标题】:“校招C&C++笔试题大全” 在求职过程中,尤其是对于计算机科学和技术相关专业的学生来说,参加公司的校园招聘笔试是至关重要的一步。"校招C&C++笔试题大全"是一个集各大公司历年校招笔试题目的资源库,...

    变态版java笔试试题

    三、Math 函数 Math.round(11.5) 返回 12,Math.round(-11.5) 返回 -11。 四、数据类型 short 型变量不能隐式转换为 int 型,需要显式转换,例如:s1 = (short) (s1 + 1)。short 型变量可以使用 += 运算符,如:...

    中国移动招聘历年笔试真题

    3. **数学与逻辑推理**:笔试通常会包含一定数量的数学题目,如概率论、统计学、线性代数等。同时,逻辑推理题也是常见的部分,考察考生的逻辑思维能力和问题解决能力。 4. **英语能力**:由于通信行业的国际交流...

    java 笔试题 j2ee笔试题

    Java笔试题常常涉及到Java语言和J2EE框架的相关知识,以下是对这些知识点的详细解析: 1. **MVC模式**:MVC(Model-View-Controller)是一种软件设计模式,常用于构建用户界面,分离业务逻辑、数据模型和用户界面。...

    中兴笔试题 笔试题 找工作

    【中兴笔试题】主要考察的是应聘者的基础 IT 知识,尤其是计算机科学与技术方面的内容,包括数据结构、数据库管理、操作系统、编程语言(C 和 Java)、网络通信以及软件工程的基本概念。以下是对这些知识点的详细解释...

Global site tag (gtag.js) - Google Analytics