001-华为公司应届生试题-研发软件类(第1套)

合集下载

华为笔试真题及答案

华为笔试真题及答案

华为笔试真题及答案1、华为公司的全称为()A、深圳市华为技术有限公司B、华为技术有限公司C、华为公司D、我司(答案:B,答A、C者酌情给分,答D者马上辞退,我司三令五申制止使用该华为内部土语,屡禁不止,老员工不行教也,只好从新员工抓起,格杀勿论)2、华为公司的企业性质是()A、民营B、私营C、国营D、上市公司(答案:A,此题主要让考生了解公司的性质)3、华为公司的商标象征()A、红太阳B、菊花C、扇贝(答案:B,答A者酌情给分,答C者马上辞退,每天就想着吃)4、从以下选项中选择出公司的常务副总裁()A、任正非B、孙亚芳C、李一男D、郑宝用E、张燕燕(答案:BD,答C者马上辞退,让他到李一男的公司去报到吧)5、华为公司的年终奖一般是在每年的什么时候发()A、元旦后B、春节前C、7月下旬或8月上旬D、劳动节前E、国庆节前(答案:C,切记,由于是年中奖,而不是年终奖)6、华为公司的配给你的”股票是()A、**发的B、用自己的奖金去买(答案:B)7、老板常说的土八路,是指()A、老板自己的革命年月的光芒历史B、本地化的用服兄弟C、季度考核为D的兄弟(答案:B)2023华为笔试真题及答案二1. 找错void test1(){char string[10];char* str1=0123456789;strcpy(string, str1);}答:外表上并且编译都不会错误。

但假如string数组原意表示的是字符串的话,那这个赋值就没有到达意图。

最好定义为char string[11],这样最终一个元素可以存储字符串结尾符\0;void test2(){char string[10], str1[10];for(int I=0; I10;I++){str1[I] =a;}strcpy(string, str1);}答:strcpy使用错误,strcpy只有遇到字符串末尾的\0才会完毕,而str1并没有结尾标志,导致strcpy函数越界访问,不妨让str1[9]=\0,这样就正常了。

华为笔试试题软件工程试题及答案

华为笔试试题软件工程试题及答案

华为笔试试题软件工程试题及答案1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。

它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。

那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别?1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针可以改变所指的对象。

3) 不存在指向空值的引用,但是存在指向空值的指针。

3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。

4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。

5.什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。

6.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。

7.什么函数不能声明为虚函数?constructor函数不能声明为虚函数。

8.冒泡排序算法的时间复杂度是什么?时间复杂度是O(n^2)。

9.写出float x 与“零值”比较的if语句。

if(x>0.000001&&x<-0.000001)10.Internet采用哪种网络协议?该协议的主要层次结构?Tcp/Ip协议主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。

11.Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析協議)12.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。

不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。

华为机试题目参考1

华为机试题目参考1

华为南京地区校园招聘软件类上机考试说明同学您好!欢迎您应聘华为公司。

软件研发类岗位(软件研发、云计算、操作系统开发、数据库开发)需要提前进行上机考试。

现将上机考试做如下说明。

一、题目类别本次上机考试题目设置C/C++、Java两个类别,根据个人情况选作一个类别。

二、题目数量每个考生有三道题,第一二道题必答,第三道题为附加题可以选作,附加题做出,成绩会计入总分。

三、考试时间安排1、简历筛选后,从9月17日开始分批安排上机考试2、每个考生上机考试时间为2小时一、上机考试步骤1、打开IE输入服务器的IP地址或者直接打开收藏夹中已经收藏好的地址;2、输入姓名和手机号,选择考试语言,提交登录:3、登录后会进入试题说明页面,考试阅读完试题要求后,在页面下方点击下载试题框架并解压到D盘。

如果是C/C++则用VC打开工程进行编程,只在func.cpp文件中进行函数编写,函数名已经定义好;如果是Java则用Eclips打开Java工程进行编程,只在SWTest.java文件中进行函数编写,函数名已经定义好。

注意,考生不要进行任何IO输入输出的处理(题目说明中已经有写了),否则会得0分。

4、编完代码并编译和调试通过后,点击试题页面下方的按钮,在弹出的窗口中,如果是C/C++则将test.exe和func.cpp拷贝到一个名为test的目录中然后打包该目录上传,如果是Java则将工程仍然打包为SWTest.rar一次性上传(这个过程非常重要,否则会因无法自动判卷而得0分)。

上传之后页面会显示“提交成功”,然后关闭所有IE窗口并清空客户机中您所创建的所有内容后结束考试离开考场。

二、如何阅卷1、考生提交试卷后,我们在服务器后台执行系统阅卷程序,进行自动判卷,不进行人工阅卷。

2、系统设置了多个测试用例,根据用例执行的情况判断考生所上机考试的分数。

三、样题编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素的个数并返回。

华为校园招聘软件工程师笔试题

华为校园招聘软件工程师笔试题

华为校园招聘软件工程师笔试题一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。

()2、int (*ptr) (),则ptr是一维数组的名字。

()3、指针在任何情况下都可进行>, <, >=, <=, = =运算。

()4、switch(c) 语句中c可以是int, long, char, float, unsigned int 类型。

()5、#define print(x) printf("the no, "#x",is ")二、填空题(共30分)1、在windows下,写出运行结果,每空2分,共10分。

char str[ ]= "Hello";char *p=str;int n=10;sizeof(str)=( )sizeof(p)=( )sizeof(n)=( )void func(char str[100]){ }sizeof(str)=( )2、void setmemory(char **p, int num){ *p=(char *) malloc(num);}void test(void){ char *str=NULL;getmemory(&str,100);strcpy(str,"hello");printf(str);}运行test函数有什么结果?()10分3、设int arr[]={6,7,8,9,10};int *ptr=arr;(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr));( ) 10分二、编程题(第一小题20,第二小题30分)1、不使用库函数,编写函数int strcmp(char *source, char *dest)相等返回0,不等返回-1;2、写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

华为招聘的试题

华为招聘的试题

注意:如对考试题目有任何疑问,请举手与现场监考人员联系,监考人员会协助跟出题人员澄清疑问)所有答案写答题纸上,写试卷纸上无效。

[详见考试说明]第一部分:客观题客观题部分,共30分,建议这部分答题用40分钟。

一、单选题(每题1分,共10题)1、下列那种不是任务间通讯的方式____A)信号量B)消息队列C)共享内存D)中断2、以下叙述中不正确的是____A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)3、若整型变量a的值为50,则c语言表达式a>>2的值为____A)50B) 25C) 12.5D) 124、下面方法中,哪一个不能很好解决死锁问题?____A) 给每一个进程不同的优先级,并按照优先级的大小决定在资源队列中的顺序。

B) 让进程开始运行时获得全部的资源,在不能获得全部资源时重新启动。

C) 给资源编号,并要求进程按照编号的顺序申请资源。

D) 提供超时机制,在进程进入资源等待后一段随机时间内重起进程。

5、下面的程序是对二叉树的前序遍历,请写出下面空格中的语句____其中,Visit函数表示访问节点数据。

void PreOrder(BinaryTreeNode *t){// 对* t进行前序遍历if (t){(_1_);(_2_);(_3_);}}A) PreOrder(t->LeftChild) Visit(t) PreOrder(t->RightChild)B) PreOrder(t->LeftChild) PreOrder(t->RightChild) Visit(t)C) Visit(t) PreOrder(t->RightChild) PreOrder(t->LeftChild)D) Visit(t) PreOrder(t->LeftChild) PreOrder(t->RightChild)6、已知int a[]={10,9,8,7,6}; int *p = a;则(*(p+1))*(p+2)[2]的值是____A)72B)80C)54D)有语法错误7、下面关于new 和delete操作符的说法,哪个是不正确的____A)使用new操作符,可以动态分配全局堆中的内存资源B)若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用C)new和delete通常成对地使用D)执行语句A * p=new A[100];时,类A的构造函数只会被调用1次8、如下代码,正确的是____class CExample{public:static void Func( void* pobj );private:char m_cTest;};A) void CExamle::Func( void* pobj ){m_cTest = ( char )0;}B) 在Func内部不能访问类的私有成员m_cTest;C) void CExample::Func( void* pobj ){CExample *pThis;pThis = dynamic_cast< CExample* >( pobj );ASSERT( NULL != pThis );pThis->m_cTest = ( char )0;}D) void CExample::Func( void* pobj ){CExample::m_cTest = ( char )0;}9、对于下面的类CA,在32位计算机、4字节对齐的情况下,sizeof(CA) = ____ class CA{public:CA();virtual ~CA();private:int m_iTime;public:int GetTime();int SetTime(int iTime);};A)16B)12C)8D)410、对于下面的代码,描述正确的是____class A{public:virtual void test();};class B: public A{public:void test();...};class C: public B{public:void test();...};A) B类的test函数是虚函数,而C类的也是B) B类的test函数不是虚函数,C类的是C) B类的test函数是虚函数,而C类的不是D) C类的test函数不是虚函数二、多选题(每题2分,共10题,少选可得1分)11、关于变量定义,下列说法正确的有____A)公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦合度B)命名中若使用特殊约定或缩写,则要有注释说明C)变量名的命名要清晰、明了,有明确含义D)除非必要,不要用数字或较奇怪的字符来定义标识符12、请找出以下程序中的错误,不考虑命名规范和排版的问题____long strlen(char *p ){ASSERT(p);long i = 0;while (*p){i++;p++;}return i;}ShowErrMsg(char *msg){int nCount = 1; -------Aif (msg == NULL) return;char *pBuf = (char *)malloc(256); -------Bif (pBuf == NULL) return;if ( strlen(msg) > 256 ){strncpy(pBuf, msg, 256);pBuf[256] = ‘\0’;}else{strcpy( pBuf, msg); -------C}printf( "No. %d: This message is: %s\n", nCount, pBuf );nCount++;pBuf = NULL; -------D}13、下列代码中对const关键字的使用是正确并有意义的____class SomeClass{private:int m_nValue;char* m_pszName;public:SomeClass(int id);int GetValue() const; //---------------- Avoid SetValue(const int value); //------ Bconst char* GetName(); //---------------- Cvoid SetName(const char* pszName); //--- Dvoid DoSomething(char* const p); //------ E}14、多任务系统中,任务所具有的基本状态有____A)就绪B)执行C)阻塞D)挂起15、下列说明哪些是正确的____A)一个类必须至少提供一个构造函数B)缺省构造函数是指不用指定任何实参就能被调用的构造函数,这并不意味着它不能接受实参C)父类的构造函数肯定在子类的构造函数之前被调用D)如果一个类不显式地提供缺省构造函数则编译器会自动生成一个以初始化其数据成员E)子类的析构函数中要调用父类的析构函数以确保父类的成员被释放F)构造和析构函数中不应该调用虚函数16、在一个老版本代码中已经声明了myfunc函数:int myfunc(int a,double b),小李在开发新版本时增加了如下几个函数声明,请问哪些不是对老版本函数的重载声明____ A)int myfunc(int c, double d)B)int myfunc(int a,double b=0.5)C)double myfunc(int , double )D)int myfunc(double b,int a)17、类B的析构函数不为virtual,类D是类B的子类,并且是public继承的,B和D都定义了缺省的构造函数,下面正确代码段有____A)B* pb = new B;delete pb;B)D* pd = new D;delete pd;C)B* pb = new D;delete pb;D)D d;B* pb = &d;18、假定类CA的声明如下, 下面哪些语句声明了a是CA的对象____class CA{public:CA ();CA (int iValue);... ...};A)CA a;B)CA a();C)CA a(100);D)CA a = 100;19、下面关于指针和引用的说法正确的是____A)指针变量存放的是内存地址,并且可以置为0B)定义引用变量时,必须同时指明具体被引用的对象或变量C)使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址D)类中的数据成员可以是指针变量,但不能是引用变量20、下列代码中正确的有____A)char* p = malloc(100); free(p);B)char* p = malloc(100); delete p;C)char* p = new char[100]; delete p;D)char* p = new char[100]; delete[] p;E)char p[100]; delete[] p;F)char p[100]; delete p[100];三、编程题(共2题,第1题40分,第2题30分。

华为技术招聘笔试题目总结

华为技术招聘笔试题目总结

华为技术招聘笔试题目总结发布时间:2011-03-04 来源:应届毕业生求职网第一部分,不定向选择第二部分,填空题1. 什么是uml?分哪两类?统一建模语言(UML,Unified Modeling Language)是非专利的第三代建模和规约语言。

UML 是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。

UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

UML图分为两类:静态图:是描述对象之间可能存在的关系的种类,以及作为结果的对象网络可以具有的可能的拓朴结构。

动态图:是描述可以在对象之间传递的消息以及该消息对接收消息的对象的影响。

2. os一般的两种进程调度策略非剥夺方式分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。

剥夺方式当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。

剥夺原则有:优先权原则、短进程优先原则、时间片原则。

3. 进程间的四种通讯方式用于进程间通讯(IPC)的四种不同技术:1. 消息传递(管道,FIFO,posix和system v消息队列)2. 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)3. 共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区)4. 过程调用(Solaris门,Sun RPC)消息队列和过程调用往往单独使用,也就是说它们通常提供了自己的同步机制.相反,共享内存区通常需要由应用程序提供的某种同步形式才能正常工作.解决某个特定问题应使用哪种IPC不存在简单的判定,应该逐渐熟悉各种IPC形式提供的机制,然后根据特定应用的要求比较它们的特性.常用的几种进程通信方式的比较(有删剪)文件映射文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。

华为软件面试题

华为软件面试题

华为软件面试题随着科技的不断发展,软件行业越来越受到重视,软件工程师成为热门职业。

华为作为全球知名的通信设备和解决方案供应商,也在软件开发领域占有重要地位。

如果您正在准备面试华为软件职位,以下是一些常见的华为软件面试题以及建议的回答。

1. 介绍一下自己的软件开发经验。

在回答这个问题时,您可以从自己的教育背景、工作经历和项目经验方面逐步展开。

强调您的专业技能和应对各种挑战的能力。

同时,提到您曾经使用过的开发工具和编程语言,以及您在软件开发过程中所遇到的最大挑战和如何解决的。

2. 谈谈您对软件工程的理解。

此问题考察您对软件开发生命周期以及软件工程方法学的理解。

您可以谈论需求分析、规划、设计、编码、测试和维护等各个阶段,并解释每个阶段的重要性。

同时,提及您在某个项目中如何遵循软件工程方法学,并且讨论采用敏捷开发或瀑布模型时的区别。

3. 请解释面向对象编程(OOP)的概念及其优势。

以面向对象编程为例,回答此问题时,您需要解释封装、继承和多态这三个基本概念。

强调OOP的模块化、可重用性和易维护性等优势。

举例说明如何在项目中应用OOP原则,以提高代码的效率和质量。

4. 谈谈您对设计模式的了解。

设计模式是软件开发中常用的解决问题的模板。

回答此问题时,您可以先简单介绍几种常见的设计模式,如工厂模式、单例模式和观察者模式等。

然后选择其中一种模式进行深入解释,包括它的使用场景、解决的问题以及优势等。

5. 请说说您在前端开发中使用过的技术和工具。

回答此问题时,您可以提到您熟悉的HTML、CSS和JavaScript等前端开发技术。

还可以谈论您使用过的框架,如React或Angular,并解释为什么选择这些框架。

同时,提到您使用过的前端开发工具和调试工具,以及如何通过优化性能和用户体验改善前端开发。

6. 如果您在一个项目中遇到了问题无法解决,您会怎么办?这个问题考察您的解决问题的能力和团队合作精神。

回答时,您可以强调您的解决问题的方法和过程,例如通过查阅技术文档、搜索互联网或与团队成员讨论等。

软件公司面试题目及答案

软件公司面试题目及答案

软件公司面试题目及答案Introduction:在软件行业竞争激烈的背景下,面试成为了评估并选拔优秀人才的重要环节。

本文将提供一些常见的软件公司面试题目及答案,以帮助应聘者更好地准备面试,展现自己的专业知识和技能。

一、介绍一下自己的项目经历。

答案:在介绍项目经历时,应聘者需要清晰地概述自己参与的项目,包括项目名称、所属部门、项目目标和职责等。

同时,重点强调个人的贡献和技术挑战,例如解决了哪些难题、如何处理团队合作以及项目取得的成果等。

二、请详细解释面向对象编程(OOP)的概念和特点。

答案:面向对象编程是一种编程范式,它将数据和对数据的操作封装在一起形成对象。

它的特点包括:1. 封装(Encapsulation):将数据和操作封装在类中,只暴露必要的接口给外部使用。

这种封装的好处是提高了代码的可维护性和复用性。

2. 继承(Inheritance):通过继承,子类可以继承父类的属性和方法,并且可以在此基础上进行扩展或修改。

继承可以提高代码的重用性,并且使得代码更加易于扩展和维护。

3. 多态(Polymorphism):多态指的是同一个接口可以有多种实现方式。

不同的对象可以对同一个消息做出不同的响应。

多态性提高了代码的灵活性和可扩展性。

三、请详细说明关系型数据库和非关系型数据库的区别。

答案:关系型数据库(RDBMS)和非关系型数据库(NoSQL)是目前最常见的两种数据库模型,其区别如下:1. 数据结构:关系型数据库采用表格的结构来存储数据,数据之间通过关系进行连接。

而非关系型数据库则可以使用多种数据结构,如键值对、文档型、图形型等。

2. 可扩展性:非关系型数据库通常具有更好的可扩展性,可以方便地进行水平扩展,适合存储大规模数据。

3. 灵活性:非关系型数据库在数据结构和模式上更加灵活,可以根据实际需求动态改变数据模型,而关系型数据库则需要事先定义好表结构。

四、请解释什么是敏捷开发(Agile Development)?答案:敏捷开发是一种以人为本、迭代交付的软件开发方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

说明:本份试题满分100分,完成时间为90分钟。

请将答案写在答题纸上,不要写在试卷上,答题完毕将试卷、答题纸和草稿纸一起上交。

一、单选题(共20题计40分)1、输入序列为ABC,可以变为CBA时,经过的栈操作为()A. push,pop,push,pop,push,popB. push,push,push,pop,pop,popC. push,push,pop,pop,push,popD. push,pop,push,push,pop,pop2.线程和进程最主要的区别在于A. 进程是UNIX下的概念,线程是Windows下的概念B. 进程的效率比线程低C. 在进程中可以创造线程,但线程中不能生成进程D. 进程由自己独立的运行空间,线程的运行空间是共享的3. IP路由发生在TCP/IP体系结构中的哪一层A. 物理层B. 数据链路层C. 网络层D. 传输层4. 假设一个IP主机地址为而子网掩码为那么该主机的网络号为_________5.120 C 、遍历是树形结构的一种重要运算。

若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是______。

供选择的答案A) E F G H B C D B) F E G H D C BC) B C D E F G H D) E F G C H D B6、五层完全二叉树有___个节点。

A. 16B. 32C. 31D. 337、用链接方式存储的非循环单向队列,在进行删除运算时,_____。

A) 头、尾指针可能都要修改B) 仅修改头指针C) 仅修改尾指针D) 头、尾指针都要修改8、如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为()A.插入排序B.归并排序C.冒泡排序D.堆排序9、对下列关键字序列用快速排序法进行排序时,速度最快的情形是:( )(A){25、23、30、17、21、5、9} (B){21、9、17、30、25、23、5}(C){21、25、5、17、9、23、30} (D){5、9、17、21、23、25、30}10、( ) 是用一组任意的存储单元存储线性表元素的一种数据结构。

A. 数组B. 链表C. 树D. 图11、循环单向链表指( )A. 最后一个节点的指针域总是指向链表头B. 可以自由膨胀的链表C. 链表含有指向上一级节点的指针域D. 都不是12、折半查找的时间复杂性为()A. O(n*n)B. O(n)C. O(n*log2n)D. O(log2n)13、给出以下定义:char acX[ ]= "abcdefg";char acY[ ]= {'a','b','c','d','e','f','g'};则正确的叙述为( )A) 数组acX和数组acY等价B) 数组acX和数组acY的长度相同C) 数组acX的长度大于数组acY的长度D) 数组acX的长度小于数组Y的长度14、void example(char acHello[]){printf("%d", sizeof(acHello));return;}void main(){char acHello[] = "hello";example(acHello);return;}的输出是( )A 4B 5C 6 D不确定15、以下叙述中不正确的是( )A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是在栈中保存C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)16、以下程序运行后,输出结果是( )void main( ){char *szStr = "abcde";szStr += 2;printf("%lu \n",szStr);return;}A cdeB 字符c的ASCLL码值C "abcde"这个常串中字符c所在的地址D 出错17、语句switch(c)中的c不能是哪种数据类型A) char B) long C) unsigned D) double18、设有以下宏定义:#define N 4#define Y(n) ( (N+1)*n)则执行语句: Y(5+1)为____A) 30 B) 28 C)26 D)2419、下述算法的功能是_____。

/* L 是无头结点单链表*/LinkList Demo(LinkList L){ListNode *Q,*P;if(L&&L->next){Q=L;L=L->next;P=L;while (P->next) P=P->next;P->next=Q;Q->next=NULL;}return L;}A. 将单链表转变为循环链表B. 遍历操作,链表顺序不变C. 将链首节点移植至链尾D. 删除链首节点20、设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。

A. BA+141B. BA+180C. BA+222D. BA+225二、多选题(共10题计30分)1、程序的局部变量存在于_______中,全局变量存在于________中,动态申请数据存在于________中。

A. 代码段B. 数据段C.堆栈D. 堆空间E. 程序2.下面关于临界资源的说法正确的有:A. 当关于某一组共享变量的所有临界区域均为空闲时,一个要求进入该组共享变量某一临界区的进程应当能够立即进入;B. 进程只能在临界区停留有限时间;C. 临界资源可以同时为两个以上的进程使用;D. 进程应该能够在有限的时间内进入临界区。

3、求出下列各小题中的时间复杂度:1)a= b;2)sum=0;for ( i = 0; i<n; i++)sum ++;3)sum=0;for ( j = 0; j<n; j++)for ( i = 0; i<j; i++)sum ++;4)sum=0;for ( j = 0; j<n; j*=2)for ( i = 0; i<n; i++)sum ++;A、O(1)B、O(n)C、O(n×n)D、O(n log2n)E、O(log2n)4、从下列有关树的叙述中,选出正确的叙述()A.二叉树中每个结点有两个子结点,而树无此限制,因此二叉树是树的特殊情况。

B.当K≥1时高度为K的二叉树至多有2k-1个结点。

C.用二叉树的前序遍历和中序遍历可以导出树的后序遍历。

D.将一棵树转换成二叉树后,根结点没有左子树。

5、设有六列火车,编号为1,2,3,4,5,6顺序开进一个栈式结构的站台,问下列输出序列中,哪些是可能出现的( )。

A.1,2,3,4,5,6B.6,5,4,3,2,1C.3,1,2,6,5,4D.3,2,1,6,5,46、双向链表存储结构如下,现有一该结构链表,某节点为p,该节点非首尾节点,删除该节点的正确操作是:typedef struct DulNode{struct DulNode *prior;ElemType data;struct DulNode *next;}DulNode,*DuLinkList;①p->prior->next = p->next;②p->prior->next = p->next->piror;③p->next->prior = p->prior;④p->next->prior = p->prior->next;⑤p->next->prior->next = p->next;⑥free(p);A. ③⑤⑥B. ①②⑥C. ②④⑥D. ①③⑥7、以下对结构体类型变量的定义中,正确的写法是:A) typedef struct aa B) #define AA struct aa{ int n; { int n;float m; float m;}AA; }td1;AA td1;C)struct{ D) struct{int n; int n;float m; float m;}aa; }td1;struct aa td1;8、下列定义正确的有:___A: char *pcPtr = "abcd";B: char pc[4]= "abcd";C: char pc[] = "abcd";D: char pc[] = 'abcd';E: char pc[] = {'a','b','c','d','\0'};F: char pc[] = 'a' 'b' 'c' 'd';9、有如下定义struct person{char name[9]; int age;};struct person class[10]={“Johu”, 17,“Paul”, 19“Mary”, 18,“Adam 16,};根据上述定义,若想输出字母M,下面错误的语句是A) prinft(“%c\n”,class[3].mane);B) pfintf(“%c\n”,class[3].name[0]);C) pfintf(“%c\n”,class[3].name[1]);D) p rinft(“%c\n”,class[2].name[1]);E) printf(“%c\n”,class[2].name[0]);10、IPv6是下一代IP协议。

IPv6的基本报头包含__ 个字节,此外还可以包含多今扩展报头。

基本报头中的_ 字段指明了一个特定的源站向一个特定目标站发送的分组序列,各个路由器要对该分组序列进行特殊的资源分配,以满足应用程序的特殊传输需求。

A.16 B.32 C.40 D.60E.负载长度F.数据流标记G.下一报头H.8h数限制三、改错题(共3题计15分)1、下列程序是否有错,请指出#define MAX_LEN 2_UC *ConvertCode(_UC *p_byte, _UC num){_UL i = 0;_UC strTemp[MAX_LEN];if (NULL == p_byte){return NULL;}memcpy(strTemp, p_byte, MAX_LEN);return (_UC *)strTemp;}void main(void){_UC str[MAX_LEN];str[0] = 0x12;str[1] = 0x34;ConvertCode(str, MAX_LEN);}2、请指出下面程序的错误:void GetMemory(char **ppcChar, int iLength){if(NULL == ppcChar){return;}*ppcChar = (char *)malloc(iLength);return;}void Test(void){char *szStr = NULL;GetMemory(&szStr, 100);if(NULL != szStr){strcpy(szStr, "hello");printf(szStr);}return;}3、请指出下面这段代码中的错误:unsigned long FUNC_B ( unsigned long ulCount ){unsigned long ulSum = 0 ;while( 0 <= ulCount ){ulSum += ulCount ;ulCount--;}return ulSum ;}四、应用题(15分)从键盘输入10个学生的学号和成绩,按成绩从大到小建立一个有序链表,并输出。

相关文档
最新文档