华为软件工程师笔试题
华为招聘笔试、面试 试题及经验

第一部分,不定向选择第二部分,填空题1. 什么是UML?分哪两类?2. OS一般的两种进程调度策略3. 进程间的四种通讯方式4. 一棵二叉树的前序,中序,后序遍历结果第三部分,问答题1. 通常递归所采用的数据结构?递归和循环的区别?2. 将一个单链表逆序。
3. A,B,C,D四个进程,A向一个缓冲区写数据,B,C,D从该缓冲区读数据,A 要等到B,C,D都已经读好才能写下一个。
用p,v操作实现通讯。
4. C 程序写运行结果。
class A{public:void f1(){printf("A::f1\r\n");}virtual void f2(){printf("A::f2\r\n");}void callfunc(){printf("A::callfunc\r\n");f1();f2();}};class B :public A{public:void f1(){printf("B::f1\r\n");}void f2(){printf("B::f2\r\n");}void callfunc(){printf("B::callfunc\r\n");f1();f2();}};int main(){B *pB=new B;pB->callfunc();A *pA=pB;pA->callfunc();return 0;} 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、前面已经有人写了,hehe,我写一下稍微详细的版本:中断优先级排序补码:写出0,-1,-5的二进制补码递归的优缺点;写程序的结果;求出一个学生成绩数组的max,min和average的值网络知识:路由器的作用,DNS的原理项目开发:软件流程,瀑布模型;黑盒测试数据库:创建一个数据库,创建一个表,包含主键,索引。
【最新推荐】华为招聘笔试题目-精选word文档 (3页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==华为招聘笔试题目华为是很多求职者都想要进入的,下面是小编搜集整理的华为招聘笔试题目,欢迎阅读,供大家参考和借鉴!华为系统程序招聘笔试题华为笔试题一:基础知识1、string 是最基本的数据类型吗?2、int 和 integer 有什么区别3、string 和 stringbuffer 的区别4、运行时异常与一般异常有何异同?5、说出 servlet 的生命周期,并说出 servlet 和 cgi 的区别。
华为笔试题二:专业知识6、说出 arraylist,vector, linkedlist 的存储性能和特性7、ejb 是基于哪些技术实现的?并说出 sessionbean 和 entitybean 的区别,statefulbean 和statelessbean 的区别。
8、collection 和 collections 的区别。
9、&和&&的区别。
10、hashmap 和 hashtable 的区别。
华为笔试题三:知识拓展11、final, finally, finalize 的区别。
12、sleep() 和 wait() 有什么区别?13、overload 和 override 的区别。
overloaded 的方法是否可以改变返回值的类型?14、error 和 exception 有什么区别?15、同步和异步有何异同,在什么情况下分别使用他们?举例说明。
16、abstract class 和 interface 有什么区别?华为C语言招聘笔试题目一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。
( )2、int (*ptr) (),则ptr是一维数组的名字。
华为笔试真题及答案

华为笔试真题及答案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,这样就正常了。
华为历年笔试题大汇总

2010校园招聘笔试题目分享 (1)应聘华为各类工程师通信基础题库以及答案 (1)华为资金管理岗笔试 (10)华为厦门销售融资岗笔试 (12)华为财经笔试 (12)华为会计笔试 (12)华为软件工程师笔试题 (13)华为硬件笔试题 (18)研发(软件) (18)武汉华为笔试归来(财经类资金管理销售融资岗) (20)2008-2009校园招聘笔试题目分享 (21)华为笔试 (21)华为笔试回来 (22)华为的C语言笔试题 (23)华为C/C++笔试题 (24)2010校园招聘笔试题目分享应聘华为各类工程师通信基础题库以及答案电信基础知识题库(以下题目可以按填空、判断或简答方式出题,也可以经过变化成为选择题)1、语音信号数字化过程中,采用的是的量化方法是非均匀量化。
2、PCM30/32路系统中,每个码的时间间隔是488ns。
3、PCM30/32路系统中,TS0用于传送帧同步信号,TS16用于传送话路信令。
4、PCM30/32路系统中,复帧的重复频率为500HZ,周期为2ms。
5、程控交换机的硬件可分为话路系统和中央控制系统两部分,整个交换机的控制软件都放在控制系统的存储器中。
6、一般二氧化硅光纤的零色散波长在1310nm左右,而损耗最小点在1550nm波长左右。
7、G.652光纤是零色散波长在1310nm的单模光纤。
8、光缆的基本结构由缆芯、加强元件和护套组成。
9、常用的光缆结构形式有层绞式光缆、束管式光缆、骨架式光缆和带状式光缆。
10、在网状网的拓扑结构中,N个节点完全互连需要N(N-1)/2条传输线路。
11、在星型网的拓扑结构中,N个节点完全互连需要N-1条传输线路。
12、A TM技术是电路交换技术和分组交换技术的结合。
13、根据98年发布的《自动交换电话(数字)网技术体制》,我国电话网分为三级。
14、根据新的电话网体制,我国长途电话网分为二级。
15、当电话网全网为三级时,两端局之间最大的串接电路段数为5段,串接交换中心最多为6个。
华为软件测试工程师笔试题一

华为软件测试工程师笔试题一华为软件测试工程师笔试题一1:请你分别划OSI的七层网络结构图,和TCp/Ip的五层结构图?OSI的七层网络结构图,和TCp/Ip的五层结构图OSIOSI 是Open System Interconnect的缩写,意为开放式系统互联。
在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构最为著名。
为了解决不同体系结构的网络的互联问题,国际标准化组织ISO(注意不要与OSI搞混))于 1981年制定了开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。
这个模型把网络通信的工作分为7层,它们由低到高分别是物理层(physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(presen tation Layer)和应用层(Application Layer)。
第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。
每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。
当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。
物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。
总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。
OSI参考模型的各个层次的划分遵循下列原则:1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。
华为校园招聘软件工程师笔试题

华为校园招聘软件工程师笔试题一、判断题(对的写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、总是使用不经常改动的大型代码体。
华为笔试题大全
华为笔试题⼤全华为有什么⽤途?(请⾄少说明两种)1)在函数体,⼀个被声明为静态的变量在这⼀函数被调⽤过程中维持其值不变。
2) 在模块内(但在函数体外),⼀个被声明为静态的变量可以被模块内所⽤函数访问,但不能被模块外其它函数访问。
它是⼀个本地的全局变量。
3) 在模块内,⼀个被声明为静态的函数只可被这⼀模块内的其它函数调⽤。
那就是,这个函数被限制在声明它的模块的本地范围内使⽤2.引⽤与指针有什么区别?1) 引⽤必须被初始化,指针不必。
2) 引⽤初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引⽤,但是存在指向空值的指针。
3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。
4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。
5.什么是平衡⼆叉树?左右⼦树都是平衡⼆叉树且左右⼦树的深度差值的绝对值不⼤于1。
6.堆栈溢出⼀般是由什么原因导致的?没有回收垃圾资源。
7.什么函数不能声明为虚函数?constructor函数不能声明为虚函数。
8.冒泡排序算法的时间复杂度是什么?时间复杂度是O(n^2)。
9.写出float x 与“零值”⽐较的if语句。
if(x>&&x<采⽤哪种⽹络协议?该协议的主要层次结构?Tcp/Ip协议主要层次结构为:应⽤层/传输层/⽹络层/数据链路层/物理层。
物理地址和IP地址转换采⽤什么协议?ARP (Address Resolution Protocol)(地址解析協議)地址的编码分为哪俩部分?IP地址由两部分组成,⽹络号和主机号。
不过是要和“⼦⽹掩码”按位与上之后才能区分哪些是⽹络位哪些是主机位。
13.⽤户输⼊M,N值,从1⾄N开始顺序循环数数,每数到M输出该数值,直⾄全部输出。
写出C程序。
循环链表,⽤取余操作做14.不能做switch()的参数类型是:switch的参数不能为实型。
华为软件测试工程师笔试题
软件测试工程师笔试题目一.填空1、系统测试使用( C )技术, 主要测试被测应用的高级互操作性需求, 而无需考虑被测试应用的内部结构。
A、单元测试B、集成测试C、黑盒测试D、白盒测试2、单元测试主要的测试技术不包括(B )。
A、白盒测试B、功能测试C、静态测试D、以上都不是3、(A )的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
A、系统测试B、集成测试C、单元测试D、功能测试4、如果一个产品中次严重的缺陷基本完成修正并通过复测,这个阶段的成品是( A )。
A、Alpha版B、Beta版C、正版D、以上都不是5、自底向上法需要写(A )。
A、驱动程序B、桩程序C、驱动程序和桩程序D、 .以上都不是6、测试ATM取款功能,已知取款数只能输入正整数,每次取款数要求是100的倍数且不能大于500,下面哪个是正确的无效等价类(C)A、(0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞);B、(500,+∞)C、(500,+∞)、任意大于0小于500的非100倍数的整数;D、(-∞,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞);7、因果图/判定表工程方法在以下那种情况下不适用(C)A、输入输出明确,或输入输出因果关系明确的情况下B、被分析的特性或功能点复杂,输入项目很多的情况下C、系统输入之间相互约束多,需要做大范围的组合测试情况下D、系统输入之间基本没有相互联系8、以下说法不正确的是(D)A、测试原始需要明确了产品将要实现了什么B、产品测试规格明确了测试设计内容C、测试用例明确了测试实现内容D、以上说法均不正确9、可测试性中,有关系统可观察性的理解,下面说法那个是错误的( B)A、系统所有的输出结果可观察,错误输出易于识别;B、系统运行状态和内部处理的过程信息可观察;C、系统内部变量名及其取值可观察;D、系统内部重要对象的状态和属性可观察;E、系统内部重要的操作的处理时间可观察;F、系统内部重要的资源的占用情况及单个资源的创建、保持、释放过程可观察10、测试脚本的编写规范强调:(ABCD )A、可读行B、可重用性C、可维护性D、可移植性11、当继承某个特性是,通常会从哪些角度对该特性进行测试分析?(AC )A、失效影响度B、成熟度C、继承方式D、用户原始需求12、从下列关于软件测试的叙述中,选出正确的叙述(CD)A、用黑盒法测试时,测试用例是根据程序内部逻辑设计的B、测试的目的是验证该软件已正确的实现了用户的要求C、发现错误多的程序块,残留在模块中的错误也多D、测试设计时,应充分考虑异常的输入情况13、软件验收测试的合格通过准则是:(ABCD)A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
华为笔试题大全(史上最齐全)
华为笔试汇总有什么用途?〔请至少说明两种〕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)采用哪种网络协议?该协议的主要层次结构? Tcp/Ip 协议主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。
物理地址和IP 地址转换采用什么协议?ARP (Address Resolution Protocol)〔地址解析協議〕地址的编码分为哪俩局部?IP 地址由两局部组成,网络号和主机号。
不过是要和“子网掩码〞按位与上之后才能区分哪些是网络位哪些是主机位。
13.用户输入M,N 值,从1 至N 开始顺序循环数数,每数到M 输出该数值,直至全部输出。
写出C 程序。
循环链表,用取余操作做14.不能做switch()的参数类型是:switch 的参数不能为实型。
华为笔试题大全(史上最齐全)
华为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地址的编码分为哪俩部分?13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。
写出C程序。
循环链表,用取余操作做14.不能做switch()的参数类型是:switch的参数不能为实型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华为软件笔试题一、判断题(对的写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、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。
在这种情况下,可以将所有包含文件预编译为一个预编译头。
(2)char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改const char *p;//和char const *p (3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl;结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。
(4)以下代码中的两个sizeof用法有问题吗?[C易] void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母{ for( size_t i=0; i <sizeof(str)/sizeof(str[0]); ++i ) if( 'a' <=str[i] && str[i] <='z' ) str[i] -= ('a'-'A' ); } char str[] = "aBcDe"; cout < < "str字符长度为: " < < sizeof(str)/sizeof(str[0]) < < endl; UpperCase( str ); cout < < str < < endl; 答案:函数内的sizeof有问题。
根据语法,sizeof 如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。
函数外的str是一个静态定义的数组,因此其大小为6,因为还有'\0',函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。
(5)一个32位的机器,该机器的指针是多少位答案:指针是多少位只要看地址总线的位数就行了。
80386以后的机子都是32的数据总线。
所以指针的位数就是4个字节了。
6。
main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 答案:2。
5 *(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5 &a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)int *ptr=(int *)(&a+1); 则ptr实际是&(a[5]),也就是a+5 原因如下:&a是数组指针,其类型为int (*)[5]; 而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同a是长度为5的int数组指针,所以要加5*sizeof(int) 所以ptr实际是a[5] 但是prt与(&a+1)类型是不一样的(这点很重要) 所以prt-1只会减去sizeof(int*) a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,&a是对象(数组)首地址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5].7。
请问以下代码有什么问题:int main() { char a; char *str=&a; strcpy(str,"hello"); printf(str); return 0; } 答案:没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。
虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。
8。
char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s); 有什么错?答案:"AAA"是字符串常量。
s是指针,指向这个字符串常量,所以声明s的时候就有问题。
cosnt char* s="AAA"; 然后又因为是常量,所以对是s[0]的赋值操作是不合法的。
9。
写一个“标准”宏,这个宏输入两个参数并返回较小的一个。
答案:.#define Min(X, Y) ((X)>(Y)?(Y):(X)) //结尾没有‘;’10。
嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。
答案:while(1){}或者for(;;) 11。
关键字static的作用是什么?答案:定义静态变量12。
关键字const有什么含意?答案:表示常量不可以修改的变量。
13。
关键字volatile有什么含意?并举出三个不同的例子?答案:提示编译器对象的值可能在编译器未监测到的情况下改变。
14。
int (*s[10])(int) 表示的是什么啊?答案:int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。
15。
有以下表达式:int a=248; b=4;int const c=21;const int *d=&a; int *const e=&b;int const *f const =&a; 请问下列表达式哪些会被编译器禁止?为什么?答案:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f; *c 这是个什么东东,禁止*d 说了是const,禁止e = &a 说了是const 禁止const *f const =&a; 禁止16交换两个变量的值,不使用第三个变量。
即a=3,b=5,交换之后a=5,b=3; 答案:有两种解法, 一种用算术算法, 一种用^(异或) a = a + b; b = a - b; a = a - b; or a = a^b;// 只能对int,char..b = a^b; a = a^b; or a ^= b ^= a;17.c和c++中的struct有什么不同?答案:c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。
c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private18.#include <stdio.h> #include <stdlib.h> void getmemory(char *p) { p=(char *) malloc(100); strcpy(p,"hello world"); } int main( ) { char *str=NULL; getmemory(str); printf("%s/n",str); free(str); return 0; } 答案:程序崩溃,getmemory中的malloc 不能返回动态内存,free()对str操作很危险19.char szstr[10]; strcpy(szstr,"0123456789"); 产生什么结果?为什么?答案:长度不一样,会造成非法的OS20.列举几种进程的同步机制,并比较其优缺点。