华为软件研发面试题1

from:http://blog.csdn.net/eddy_0825/article/details/1875574

1、局部变量能否和全局变量重名?

 

  答:能,局部会屏蔽全局。要用全局变量,需要使用"::"

 

  局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

 

  2、如何引用一个已经定义过的全局变量?

 

  答:extern

  可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

 

  3全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?

 

  答:可以,在不同的C文件中以static形式来声明同名全局变量。

 

  可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错

 

  4、语句for( )有什么问题?它是什么意思?

  答:和while(1)相同。

 

  5do……whilewhile……do有什么区别?

  答:前一个循环一遍再判断,后一个判断以后再循环

 

  6、请写出下列代码的输出内容

  #include<stdio.h>

  main()

  {

   int a,b,c,d;

   a=10;

   b=a++; //先引用,后自加,这句完成后,a=11

   c=++a;//先自加,后引用,这话完成后,a=12

   d=10*a++;

   printf("bcd%d%d%d"bcd;

   return 0;

  }

  答:1012120

 

  7static全局变量与普通的全局变量有什么区别?

    static局部变量和普通局部变量有什么区别?

    static函数与普通函数有什么区别?

 

  全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。

 

  从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。

 

  static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件

 

  static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;

  static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;

  static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

 

  8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。

 

  9、设有以下说明和定义:

 

  typedef union {long i; int k[5]; char c;} DATE;

  struct data { int cat; DATE cow; double dog;} too;

  DATE max;

 

  则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____

  答:DATE是一个union, 变量公用空间里面最大的变量类型是int[5], 占用20个字节所以它的大小是20

data是一个struct, 每个变量分开占用空间依次为int4 + DATE20 + double8 = 32.

所以结果是 20 + 32 = 52.

 

  当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

 

  10、队列和栈有什么区别?

  队列先进先出,栈后进先出

 

  11、写出下列代码的输出内容

 

  #include<stdio.h>

  int inc(int a)

  {

   return(++a);

  }

  int multi(int*a,int*b,int*c)

  {

   return(*c=*a**b);

  }

  typedef int(FUNC1)(int in);

  typedef int(FUNC2) (int*,int*,int*);

 

  void show(FUNC2 fun,int arg1, int*arg2)      //show(multi,10,&a);

  {

   INCp=&inc;

   int temp =p(arg1);

   fun(&temp,&arg1, arg2);

   printf("%d/n",*arg2);

  }

 

  main()

  {

   int a;

   show(multi,10,&a);

   return 0;

  }

 

  答:110

 

  12、请找出下面代码中的所以错误

 

  说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba

 

  1#include"string.h"

  2main()

  3{

  4 char*src="hello,world";

  5 char* dest=NULL;

  6 int len=strlen(src);

  7 dest=(char*)malloc(len);

  8 char* d=dest;

  9 char* s=src[len];

  10 while(len--!=0)

  11 d++=s--;

  12 printf("%s",dest);

  13 return 0;

  14}

 

  答:

 

  方法1

 

  int main()

  {

   char* src = "hello,world";

   int len = strlen(src);

   char* dest = (char*)malloc(len+1);//要为/0分配一个空间

   char* d = dest;

   char* s = &src[len-1];//指向最后一个字符

   while( len-- != 0 )

   *d++=*s--;

   *d = 0;//尾部要加/0

   printf("%s/n",dest);

   free(dest);// 使用完,应当释放空间,以免造成内存汇泄露

   return 0;

  }

 

 

 

方法2

 

  #include <stdio.h>

  #include <string.h>

  main()

  {

   char str[]="hello,world";

   int len=strlen(str);

   char t;

   for(int i=0; i<len/2; i++)

   {

    t=str[i];

    str[i]=str[len-i-1]; str[len-i-1]=t;

   }

   printf("%s",str);

   return 0;

  }

 

  1.-1,2,7,28,,126请问28126中间那个数是什么?为什么?

 

  第一题的答案应该是4^3-1=63

 

  规律是n^3-1(n为偶数024)n^3+1(n为奇数135)

 

  答案:63

 

  2.用两个栈实现一个队列的功能?要求给出算法和思路!

 

  设2个栈为A,B, 一开始均为空.

  入队:

  将新元素push入栈A;

  出队:

  (1)判断栈B是否为空;

  (2)如果不为空,则将栈A中所有元素依次pop出并push到栈B

  (3)将栈B的栈顶元素pop出;

这样实现的队列入队和出队的平摊复杂度都还是O(1), 比上面的几种方法要好。

 

3.c语言库函数中将一个字符转换成整型的函数是atool()吗,这个函数的原型是什么? //记住常用函数功能及其用法

  函数名: atol

  功 把字符串转换成长整型数

  用 : long atol(const char *nptr);

  程序例:

  #include <stdlib.h>

  #include <stdio.h>

  int main(void)

  {

   long l;

   char *str = "98765432";

   l = atol(lstr);

   printf("string = %s integer = %ld/n", str, l);

   return(0);

  }


  13.对于一个频繁使用的短小函数,C语言中应用什么实现,C++中应用什么实现?

  c用宏定义,c++inline


  17.软件测试都有那些种类?

  黑盒:针对系统功能的测试   

  白合:测试函数功能,各函数接口


  18.确定模块的功能和模块的接口是在软件设计的那个队段完成的?

  概要设计阶段


  19.

  enum string

     {

   x1,

   x2,

   x3=10,

   x4,

   x5,

  }x;

 

  问x= 0x8010050x8010f4  ;

 

  20.

  unsigned char *p1;

  unsigned long *p2;

  p1=(unsigned char *)0x801000;

  p2=(unsigned long *)0x810000;

 

  请问p1+5=  ;

    p2+5=  ;

 

  25.请问下面程序有什么错误?

  

  int a[60][250][1000],i,j,k;

  for(k=0;k<=1000;k++)

  for(j=0;j<250;j++)

  for(i=0;i<60;i++)

  a[i][j][k]=0;

 

  把循环语句内外换一下

 

  26.

  #define Max_CB 500

  void LmiQueryCSmd(Struct MSgCB * pmsg)

  {

   unsigned char ucCmdNum;

   ......

      for(ucCmdNum=0;ucCmdNum<Max_CB;ucCmdNum++)

   {

    ......;

   }

 

   死循环,ucCmdNum为char型,其最大值为255,故永远小于500

  

  27.以下是求一个数的平方的程序,请找出错误:

   

  #define SQUARE(a)((a)*(a))

  int a=5;

  int b;

  b=SQUARE(a++);

  

  28.

  typedef unsigned char BYTE

  int examply_fun(BYTE gt_len; BYTE *gt_code)

  

   BYTE *gt_buf;

   gt_buf=(BYTE *)MALLOC(Max_GT_Length);

   ......

   if(gt_len>Max_GT_Length)

   {

    return GT_Length_ERROR; 

   }

   .......

  }


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

停一下

15年过去已半载有余&#xff0c;回头看年初定下的目标&#xff0c;有种管中窥豹的感觉。之前和肉山讨论的时候&#xff0c;他对我想要发展的方向并没有表示赞同。 现在认为他是对的&#xff0c;发展的方向太靠前了&#xff0c;ui&#xff0c;canvas&#xff0c;svg&#xff0c;…

which 命令

我们经常在linux要查找某个文件&#xff0c;但不知道放在哪里了&#xff0c;可以使用下面的一些命令来搜索&#xff1a; which 查看可执行文件的位置。 whereis 查看文件的位置。 locate 配合数据库查看文件位置。 find 实际搜寻硬盘查询文件名…

18ch

18.2 线程和进程 18.2.1 什么是进程&#xff1f; 18.2.1 什么是进程&#xff1f; 计算机程序只不过是磁盘中可执行的&#xff0c;二进制的数据。它们只有在被读取到内存中&#xff0c;被操作系统调用的时候才开始它们的生命周期。进程&#xff08;重量级进程&#xff09;是程序…

java sql分页_mysql、sqlserver、oracle分页,java分页统一接口实现

定义&#xff1a;pageStart 起始页&#xff0c;pageEnd 终止页,pageSize页面容量oracle分页&#xff1a;select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<pageEnd) where num>pageStartsqlServer分页&#xff1a;select * from ( select …

安卓四大组件总览

在安卓中四大组件 &#xff08;Component&#xff09;指的是&#xff1a;Activity&#xff0c;Service&#xff0c;BroadcastReceiver&#xff0c;ContentProvider。此博客仅仅对安卓中四大组件从整体上进行简单的分析&#xff0c;了解他们在安卓系统框架中处的位置与作用&…

华为软件研发面试题2

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** from&#xff1a;http://blog.csdn.net/eddy_0825/article/details/1875582 C语言面试…

Spring学习(24)--- AOP之 Aspect instantiation models(aspect实例模式)特别说明

重要&#xff1a; schema-defined aspects只支持singleton model&#xff0c;即 基于配置文件的aspects只支持单例模式 转载于:https://www.cnblogs.com/JsonShare/p/4638475.html

unix网络编程 str_cli epoll 非阻塞版本

unix网络编程 str_cli epoll 非阻塞版本 unix网络编程str_cli使用epoll实现讲了使用epoll配合阻塞io来实现str_cli,这个版本是配合非阻塞io. 可以看到采用非阻塞io以后复杂度大大提升了. 这个版本是在原书select版本基础之上修改而来,可以看出epoll又比select版本复杂了很多,每…

java ee 指南 pdf_Java EE 7权威指南:卷1(原书第5版) 中文pdf

资源名称&#xff1a;Java EE 7权威指南&#xff1a;卷1(原书第5版) 中文pdf第一部分 引言第1章 概述 2第2章 使用教程示例 27第二部分 平台基础知识第3章 资源创建 38第4章 注入 41第5章 打包 44第三部分 Web层第6章 Web应用入门 50第7章 JSF技术 66第8章 Facelets…

中兴面试题2

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** from&#xff1a;http://blog.csdn.net/eddy_0825/article/details/1875566 现在的公司…

java 路径获取文件名称_java 根据文件获取文件名及路径的方法

filelistnew HashMap();/*** 递归方法* param path 文件路径*/public static void find(String path){File filenew File(path);File[] files file.listFiles();//如果文件数组为null则返回if (files null)return;for (int i 0; i < files.length; i) {if (files[i].isDi…

PYTHON招聘需求与技能体系

为什么80%的码农都做不了架构师&#xff1f;>>> 目前国内的招聘Python&#xff0c;基本都是偏向web后台开发&#xff0c;偶有高大上的数据挖掘&机器学习 这是之前(2012年)找工作整理的一些JD&#xff0c;在梳理几年来的笔记&#xff0c;顺带理一理 可以以此建…

C#学习笔记(十一):动态类型

C#是一门静态类型的语言&#xff0c;但是在C#4.0时微软引入了动态类型的概念。 dynamic 关键字dynamic用来定义动态对象&#xff0c;我们来看一下动态类型的一些特性。 调用不同类的相同方法 我们有两个或多个不相关的类&#xff0c;然后运行时需要可以调用到相同名称的方法&am…

c++面试试题

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** from&#xff1a;http://blog.csdn.net/eddy_0825/article/details/1875597 1 …

《FPGA全程进阶---实战演练》第二十一章 电源常用类型:LDO和 DCDC

高速电路中的电源设计 高速电路中的电源设计大概分为两种&#xff0c;一种是集总式架构&#xff0c;一种是分布式架构。集总式架构就是由一个电源输入&#xff0c;然后生成多种所需要的电压。如图1所示。这种架构会增加多个DC/DC模块&#xff0c;这样成本不可控&#xff0c;PCB…

自定义View控件(2—手写实例代码)

1、 步骤: 1.自定义一个类继承于UIView 2.在initWithFrame方法中添加子控件 3.在layoutSubviews中设置子控件的位置 4.提供一个属性保存外界传入的数据(模型对象), 重写setter方法设置子控件的数据 - 类工厂方法(便利构造器) 按照苹果的风格和规范, 一般情况一个用于创建对…

pojo java_Java——POJO总结

一&#xff1a;什么是POJO“Plain Old Java Object”“简单java对象”。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口&#xff0c;更没有被其它框架侵入的java对象。二&#xff1a;为什么会有POJO&#xff1f;主要是Java的开发者被EJB的繁杂搞怕了&#xff0c;…

MATLAB调用C/C++函数的方法

http://item.taobao.com/item.htm?spma1z10.5-c.w4002-9510581626.24.ZO6sko&id43401674106 精通MATLAB混合编程视频讲解 MATLAB各类函数视频讲解 基于MATLAB的高等数学问题求解 MATLAB函数速查视频讲解 面向对象C视频教程 精通MATLAB混编编程demo及PDF QQ&#xff1a…

迁云架构实践

本文着笔介绍IT互联网化为传统企业带来的技术挑战&#xff0c;并对上云架构最佳实践进行了深入介绍&#xff0c;首发于阿里云&《程序员》联合出品的《凌云》杂志。 作者&#xff1a; 王宇德&#xff0c;张文生 云计算作为信息技术领域的一种创新应用模式&#xff0c;自其诞…

最短路最新心得

如果&#xff0c;上面的图&#xff0c;如果用dij算法&#xff0c;那么dist[4] 4, 是得不到正确的结果的&#xff0c; 这个因为dist[3]先被确定是最小&#xff0c;然后用来更新dist[4] 但是存在负权&#xff0c;使得dist[3]更小&#xff0c;但是我们已经把结点3标记为不可用了…