欢迎来到精华作文网!

0x00000001

小升初作文真题 时间:2010-04-11

【www.jinghuajt.com--小升初作文真题】

篇一:[0x00000001]计算机三级嵌入式系统开发技术真题及答案


  填空题
  1:为提高SoC的设计效率,减少重复开发,通常大多以IP核为基础,在单个芯片上集成处理器、存储器和各种接口等组件,组成一个相当完整的计算机系统。按照IC设计文件的类型,IP核通常分为三种:____【1】____核、固核和___【2】____核。
  2:目前数码相机中用于存储所拍摄相片的大多是____【3】____存储器,假设一台数码相机一次可连续拍摄65536色的1024 x 1024的彩色相片80张,数据压缩比平均是4,则它使用的存储器容量大约是___【4】____MB。
  3:无线局域网(WLAN)是以太网与无线通信技术相结合的产物。它借助无线电波进行数据传输,所采用的通信协议主要是____【5】____,数据传输速率可以达到11Mbps、54Mbps、___【6】_____Mbps甚至更高。
  4:经典ARM处理器有7种异常:主要包括复位RESET、未定义指令UND、软件中断SWI、指令预取中止PABT、数据访问中止DABT、外部中断请求IRQ以及___【7】_____,其中优先级最高的异常是____【8】____。
  5:ARM处理器Cortex系列包括Cortex嵌入式处理器和Cortex应用处理器,其中Cortex嵌入式处理器包括主要应用于控制领域的___【9】_____系列和面向实时应用领域的____【10】____系列。
  6:Thumb-2指令集提供了专门用于开、关中断的专用指令,关外部中断使用的指令为:____【11】____,开外部中断的指令为:___【12】_____。
  7:已知ARM处理器R1=0x12345678, R2=0xFF008899,则执行指令AND R0,R1,R2后,寄存器R0=___【13】___,R1=___【14】_____。
  8:某ARM汇编语言程序要调用子程序,子程序名为MySubrutine,则调用该子程序的指令为___【15】_____,子程序返回调用程序的指令为___【16】_____。
  9:按照AMBA总线规范,基于ARM内核的嵌入式处理器芯片采用系统总线与___【17】_____总线两层结构的方式构建片上系统。其中的系统总线主要用于连接____【18】____带宽快速组件。
  10:嵌入式系统的存储器以半导体存储器为主。随着技术的不断发展,新型存储器不断出现,主要包括FRAM和MRAM,分别称为____【19】____存储器和____【20】____存储器。
  11:半导体存储器芯片的存储容量取决于该芯片的____【21】____总线的条数和____【22】____总线的位数。
  12:I2C总线被启动后,多个主机在每发送一个数据位时都要对SDA信号线电平进行检测,只要检测的电平与自己发出的电平____【23】____就会继续占用总线。总线控制遵循的原则是谁先发送____【24】____电平谁就会掌握对总线的控制权。
  13:UART由____【25】____器、____【26】____器、控制单元及波特率发生器等构成。
  14: 嵌入式系统与通用计算机系统软件的相同之处,指的是嵌入式系统通常也具备____【27】____加载程序,外设____【28】____程序,操作系 统,文件系统,网络协议栈,图形用户界面,数据库,以及各种各样的应用程序等, 这些软件都是通用计算机所拥有的。
  15:数据库管理系统、图形用户界面、互联网浏览器、媒体播放器等软件,如果运行在嵌入式系统上,往往具有内部结构精简,____【29】____轻量化,占用存储资源___【30】_____的特点。
  16: 实时系统的主要特征是能够及时响应外部发生的随机任务请求并且能够在规定的时限内完成任务。任务时限有两种:____【31】____时间,也就是任务开 始执行时间到任务必须完成的时间间隔。____【32】____时间,或者叫做任务最快完成时间,这是无中断响应情况下的任务最快执行时间。
  17:实时系统对时间约束要求的严格性,使____【33】____性成为实时系统的一项重要性能要求,它是指RTOS能够对外部事件的____【34】____时间和实时任务的执行时间进行判断,以确定被事件触发的实时任务能否在规定的时间内完成。
  18:一般按响应时间将实时系统分成三类:____【35】____实时系统,其响应时间一般在毫秒级或微秒级;普通实时系统,其响应时间一般在秒级;____【36】____实时系统,其响应时间一般在数十秒级。
  19:嵌入式系统的开发过程按顺序可以分成____【37】____分析与规格说明、系统设计、____【38】____设计、系统集成与测试等4个阶段,测试的目的是验证模块/系统的功能和性能,以及发现错误。
  20: 若以S3C2410为核心的目标机上,已经移植成功Linux操作系统。若要开发该目标机的Linux应用程序,通常使用arm-linux-____ 【39】____交叉编译器来编译应用程序。若要对一个应用程序进行调试排错,则应该在编译命令中加____【40】____参数对它进行编译。
  综合题
  1:1、酒店客房的门锁系统是由总台服务器和若干客房指纹锁组成,其基本功能具体描述如下:
  a、客房的指纹锁与总台服务器之间通过通信网络连接。
  b、旅客在总台登记住宿时,录入其指纹信息,并提取其特征值存储在总台服务器中。同时录入一个密码(若干位数字组成),以备指纹无法开锁时,用密码开锁。
  c、旅客在开客房指纹锁时,把相应手指放在门锁的指纹采集部件上,采集相应的指纹图像信息,并传输给总台服务器。
  d、总台服务器接收到某个客房指纹锁传输来的指纹图像信息后,进行特征值求取并进行匹配,若匹配正确,则回送开锁指令给客房指纹锁。
  e、客房指纹锁收到开锁指令后,控制开锁的机械动作,并用绿色LED灯指示开锁成功。
  f、若匹配不正确,总台服务器回送不开锁指令给客房指纹锁。
  g、客房指纹锁收到不开锁指令后,用红色LED灯指示开锁不成功。
  h、若指纹无法开锁,旅客还可以通过客房指纹锁上的数字按键输入密码,若密码匹配正确,也可以控制开锁的机械动作,并用绿色LED灯指示开锁成功。
  根据上述功能要求的描述,若采用S3C2410芯片为核心来构建客房指纹锁控制器的硬件平台,请完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见题后说明)。
  (1) 若采集的指纹图像分辨率为320×40,灰度等级为256,则存储一幅指纹图像的原始像素信息需要的存储容量为___【1】 _____KB(1K=1000)。若采用115.2Kbps的异步串行通信网传输,一幅指纹图像的传输时间至少需要____【2】____秒,若采用 10Mbps的以太网传输,一幅指纹图像的传输时间至少要____【3】____秒,因此,系统中总台服务器和若干个客房指纹锁之间选用以太网连接。
  (2)硬件构件设计时,以太网接口选用AX88796芯片为核心来设计,若S3C2410芯片的nGCS2引脚连接到该芯片的____【4】____引脚(低电平有效),那么,AX88796芯片内部寄存器地址的首地址是:____【5】____。
  (3) 若客房指纹锁红色LED指示灯的驱动电路由GPIO的GPC0引脚控制,绿色LED指示灯的驱动电路由GPC1引脚控制。GPC0、GPC1引脚各自输出 “0”时,其对应的LED灯灭,各自输出“1”时,其对应的LED灯亮。那么,初始化GPC0、GPC1引脚为输出功能的语句是:
  rGPCCON=((rGPCCON|0x00000005)&___【6】_____); // rGPCCON是端口C的控制寄存器
  控制绿色LED灯点亮和熄灭的语句分别是:
  rGPCDAT = rGPCDAT |___【7】_____; //rGPCDAT是端口C的数据寄存器
  rGPCDAT = rGPCDAT &____【8】____;
  红色LED灯点亮和熄灭的语句分别是:
  rGPCDAT = rGPCDAT |___【9】_____;
  rGPCDAT =rGPCDAT &____【10】____;
  (4) 指纹采集部件由一个摄像芯片和光学镜头组成。S3C2410芯片通过I2C总线传输控制命令给摄像芯片。硬件设计时,选择S3C2410芯片的 GPE15、GPE14引脚与摄像芯片的引脚___【11】_____、SCL相连。软件设计时,需要用下面语句初始化该引脚为I2C功能引脚。
  rGPECON=((rGPECON|0xA0000000)&____【12】____); // rGPECON是端口E的控制寄存器
  (5)若输入密码的键盘采用非标准键盘,键盘接口设计成4?的阵列。若设计时选用了GPE0~GPE3来输出键盘行扫描信号,选用GPD0~GPD2来输入键盘列信号。请补充完善下面的键盘扫描函数:
  //**keyoutput 是键盘扫描时的输出地址,keyinput是键盘读入时的地址
  #define KEYOUTPUT (*(volatile INT8U *)0x56000044) //定义GPE的数据端口
  #define KEYINPUT(*(volatile INT8U *)0x56000034) //定义GPD的数据端口
  INT16U ScanKey()
  {
  INT16U key=0xFFFF;
  INT16U i;
  INT8U temp=0xFF,output;
  rGPDCON= rGPDCON &___【13】_____; //初始化GPD0~GPD2为输入
  rGPECON= ((rGPECON &____【14】____)|0x00000055); //初始化GPE0~GPE3为输出;
  for (i=1;(( i<=____【15】____)&&(i>0)); i<<=1)
  {
  output |= 0xFF;
  output &= (~i);
  KEYOUTPUT=output;
  temp = KEYINPUT;
  if ((temp&0x07)!=___【16】_____)
  {
  key = (~i);
  key <<= 8;
  key |= ((temp&0x07)|0xF8);
  return (key);
  }
  }
  return 0xFFFF;
  }
  上 面的键盘扫描函数返回的是由键盘行信号和键盘列信号合并而成的一个16位二进制值,根据该函数的返回值,可以判断是否有按键按下,并可确定是哪个按键按 下。若返回值为___【17】__时,可知键盘中无键按下,若返回值为____【18】____时,可知键盘中第3行第2列的键被按下。(注:以GPE0 对应的键盘行为第一行,以GPD0对应的键盘列为第一列)
  (6)为了便于以太网通信程序的编写,客房指纹锁的应用软件基于?/OS-II操作系统来设计,客房指纹锁的应用程序主函数中,需要用OSTaskCreate()函数____【19】____,并用____【20】____函数启动多任务调度功能。
  说明:下面是试题解答时需要用到的寄存器格式及相关说明。
  1)端口C的控制寄存器(GPCCON)
  引脚GPCCON的位描述
  GPC15[31:30]00=输入,01=输出,10=VD7,11=保留
  GPC14[29:28]00=输入,01=输出,10= VD6,11=保留
  GPC13[27:26]00=输入,01=输出,10= VD5,11=保留
  GPC12[25:24]00=输入,01=输出,10= VD4,11=保留
  GPC11[23:22]00=输入,01=输出,10= VD3,11=保留
  GPC10[21:20]00=输入,01=输出,10= VD2,11=保留
  GPC9[19:18]00=输入,01=输出,10= VD1,11=保留
  GPC8[17:16]00=输入,01=输出,10= VD0,11=保留
  GPC7[15:14]00=输入,01=输出,10=LCDVF2,11=保留
  GPC6[13:12]00=输入,01=输出,10= LCDVF1,11=保留
  GPC5[11:10]00=输入,01=输出,10=LCDVF0,11=保留
  GPC4[9:8]00=输入,01=输出,10=VM,11=IIS数据输出
  GPC3[7:6]00=输入,01=输出,10=VFRAME,11= IIS数据输入
  GPC2[5:4]00=输入,01=输出,10=VLINE,11=保留
  GPC1[3:2]00=输入,01=输出,10=VCLK,11=保留
  GPC0[1:0]00=输入,01=输出,10=LEND,11=保留
  2)端口D的控制寄存器(GPDCON)
  引脚GPDCON的位描述
  GPD15[31:30]00=输入,01=输出,10=VD23,11=保留
  GPD14[29:28]00=输入,01=输出,10= VD22,11=保留
  GPD13[27:26]00=输入,01=输出,10= VD21,11=保留
  GPD12[25:24]00=输入,01=输出,10= VD20,11=保留
  GPD11[23:22]00=输入,01=输出,10= VD19,11=保留
  GPD10[21:20]00=输入,01=输出,10= VD18,11=保留
  GPD9[19:18]00=输入,01=输出,10= VD17,11=保留
  GPD8[17:16]00=输入,01=输出,10= VD16,11=保留
  GPD7[15:14]00=输入,01=输出,10= VD15,11=保留
  GPD6[13:12]00=输入,01=输出,10= VD14,11=保留

篇二:[0x00000001]java基础知识测试题及答案


  在任何Java考试当中多线程和并发方面的问题都是必不可少的一部分。java基础知识更是必不可少的知识。下面是百分网小编为大家整理的关于java基础知识测试题,希望大家喜欢!
  java基础知识测试题及答案(一)
  一、 单选题
  1. 对类: (B)
  public class Test{
  //…do something
  }
  下面那个正确地定义了类Test的构造函数。
  A)public void Test(){}
  B)public Test(){}
  C)public static Test(){}
  D)public Test();
  2. 下面哪个函数是public void example(){...}的重载函数。(A)
  A)public void example( float f){...}
  B)public int example(){...}
  C)public void example2(){...}
  D)public int example_overLoad ( ){...}
  3. 下面的代码段中,执行之后i 和j 的值是_C_。
  int i = 1;
  int j;
  j = i++;
  A)1, 1 B)1, 2 C)2, 1 D)2, 2
  4. 以下for循环的执行次数是_B_。
  for(int x=0,y=0;(y!=0)&&(x<4);x++);
  A)无限次 B)一次也不执行
  C)执行4次 D)执行3次
  5. 下面程序的输出结果是__C。
  public class People{
  String name;
  int id;
  public People( String str, int n ){
  name = str;
  id = n;
  }
  public String toString(){
  return id + " : " + name;
  }
  public String print(){
  return name + " : " + id;
  }
  public static void main( String args[] ){
  People p = new People( "zhang", 1 );
  System.out.print( p );
  }
  }
  A)zhang 1 B)zhang : 1 C)1 : zhang D)不确定
  6. 下面函数的运行结果是_C_。
  class Count{
  static int cnt = 0;
  static int sum = 0;
  int number;
  public Count( int n ){
  number = n;
  cnt++;
  sum += number;
  }
  public static void main( String args[] ){
  Count c1 = new Count(11);
  Count c2 = new Count(22);
  c2 = new Count( 33 );
  System.out.print( c2.cnt + " : " + c2.sum );
  }
  }
  A)0 : 0 B)2 : 33 C)3 : 66 D)3 : 33
  7. 下面程序的运行结果为_A_。
  class example{
  public static void main( String args[] ){
  int x = 0;
  if( x > 0 ) x = 1;
  switch( x ){
  case 1 : System.out.print( 1 );
  case 0 : System.out.print( 0 );
  case 2 : System.out.print( 2 ); break;
  case 3 : System.out.print( 3 );
  default : System.out.print( 4 ); break;
  }
  }
  }
  A)02 B)0 C)2 D)023
  8. 对final关键字的说法不正确的是 (A)
  A 子类不能继承父类的final成员变量
  B final成员变量不能被修改
  C 接口中定义的成员变量都是final变量
  D 如果final成员变量在定义处没有初始化,那么它必须在构造函数中被初始化
  9. 关于设计模式下列说法不正确的是 (C)
  A .Singleton模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。
  B .Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
  C.Bridge模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
  D .Proxy模式为其他对象提供一个代理以控制对这个对象的访问。
  10. MVC模式中说法不正确的是 (A)
  A MVC是指的表现层-业务层-数据库这种模式
  B Model层实现系统中的业务逻辑
  C View层用于与用户的交互
  D Controller层是Model与View之间沟通的桥梁
  11. 关于命名,描述不正确的是: ()
  A. 类名和接口使用类意义完整的英文描述。
  B. 类名和接口的命名采用每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
  C. 方法名采用第一个单词的字母使用大写、剩余单词首字母大写其余字母小写的大小写混合法。
  D. 方法名使用方法意义完整的英文描述。
  12. 下述各项的代码中,符合编码规范的是: (A)
  A. for (...) {
  ... // program code
  }
  B. void example_fun( void )
  {
  ... // program code
  }
  C. if (filename != null
  && new File(logPath + filename).length() < LogConfig.getFileSize())
  {
  ... // program code
  }
  D. LogFilename now = null;
  LogFilename that = null;
  13. 下述各项中,不符合编码规范的项是: (D)
  A. for (...)
  {
  ... // program code
  }
  B. if (...)
  {
  ... // program code
  }
  C. void example_fun( )
  {
  ... // program code
  }
  D. class user{
  ... // program code
  }
  二、多选题
  1. 以下对于HTML5说法正确的是:
  A) 是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本,现在仍处于发展阶段,但大部分浏览器已经支持某些 HTML5 技术。
  B) 强化了 Web 网页的表现性能。
  C) 追加了本地数据库等 Web 应用的功能。
  D) 希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application,RIA),如Adobe Flash、Microsoft Silverlight,与Oracle JavaFX的需求,并且提供更多能有效增强网络应用的标准集。
  2. 下述各项中,符合编码规范的是:
  A. 分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。
  B. 较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
  C. 建议把多个短语句写在一行中,便于阅读
  D. if, for, do, while等语句的执行语句如果只有一行的话,不需要要加括号{}。
  3. ACM的说法错误的是: (D)
  A) ACM是基于Java Framework开发的
  B) ACM是权限管理系统,包括数据权限与功能权限的控制
  C) ACM统一权限管理平台,可供后续项目直接引用
  D) ACM无法控制页面上按钮的权限,只能控制页面访问权限
  4. Java Framework v20说法正确的是:
  A) Java Framework v20里面自带了文件上传组件,并提供了丰富的方法供开发者使用
  B) Java Framework v20集成了Struts2+Spring3+Mybatis3三大框架
  C) Java Framework v20集成了Struts2+Spring3+Hibernate3三大框架
  D) Java Framework v20自定义了开发丰富的标签库供使用
  5. Java Framework v20系统设计目的,说法正确的是: (ABCD)
  A) 为后续项目可能会碰到的一些共通的难题提供切实可靠的成熟的解决方案;
  B) 提高开发效率;
  C) IT行业人才流动性大,保证在人员变动剧烈的情况下,项目能够继续进行;
  D) Java developer在使用这套framework之后,能从中学习与发掘前人在实践中总结的宝贵经验,极大地提升个人能力;
  6. 关于继承哪些说法是正确的
  A.继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
  B.采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。
  C.类的继承性使所建立的软件具有开放性、可扩充性简化了对象、类的创建工作量,增加了代码的可重用性。
  D.不同的对象,收到同一消息可以产生不同的结果,这种现象称为继承。
  java基础知识及试题答案(二)
  一、判断题
  1Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free [错]
  2子类要调用父类的方法,必须使用super关键字[错]
  3有的类定义时可以不定义构造函数,所以构造函数不是必需的[对]
  4类及其属性、方法可以同时有一个以上的修饰符来修饰[对]
  5抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法[错]
  6最终类不能派生子类,最终方法不能被覆盖[对]
  7一个Java类可以有多个父类[错]
  8用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串[错]
  9java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面[错]
  10抽象类里一定要包含抽象方法,但含抽象方法的类未必是抽象类[错]
  11在不同的软硬件平台上,Java的各种数据类型所占用的内存长度不同,因此程序的可移植性不强。[错]
  12构造方法是一种特殊的方法,名字与类名一致,但返回类型都为void型。[错]
  13Java语言中的数组元素只能是基本数据类型而不能为对象类型。[错]
  14Java的类不允许多重继承,但接口支持多重继承。[对]
  15Java的各种数据类型所占用的内存长度与具体软硬件环境有关[错]
  16abstract方法所在的类必须是abstract类。[对]
  17即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参函数,函数体为空。[对]
  18Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。[对]
  19构造方法可以被继承[错]
  20JAVA应用程序是从其中的main()方法开始运行的
  21Java数组随时可以改变大小[错]
  22super()和this()方法只能在构造函数里调用[错]
  23构造方法可以被继承[错]
  24Java当中long类型的数据占8个字节[对]
  25JAVA中的类、接口、数组都是引用数据类型[对]
  26JAVA当中方法的重载与方法名、参数列表及返回值有关[错]
  27JAVA当中方法的重写与方法名、参数列表及返回值有关,并且不能扩大异常范围、不能降低访问范围[对]
  28如果在程序中,一个try块没有对应的catch块,只有一个finally块和其对应,这种写法行不行?[行]
  29JAVA的基本数据类型boolean的默认值是什么?[false]
  30const、NULL、false、this、native这些个单词哪些是JAVA中的保留字[NULL不是其它都是的]
  31JAVA当中,如果一个对象没有一个引用指向它,那么此对象将会被垃圾收集。这种说法对不对[对]
  32下面哪些变量的命名是合法的? [userName、$charge]
  userName、%password、3d_game、$charge、this
  33byte类型的数据取值范围是多少?[-128~127]
  34下面程序的输出结果是什么[D]
  int[] arr = new int[10];
  System.out.println(arr[0]);
  A 编译不通过
  B 运行时出错
  C 输出null
  D 输出0
  35
  下面程序的输出结果是什么[D]
  Set set= new HashSet();
  set.add(“aaa”);
  set.add(“bbb”);
  set.add(”aaa”);
  System.out.println(set.size());
  A 编译不通过
  B 运行时出错
  C 输出3
  D 输出2
  36执行以下代码最后的结果是(C)
  1. Map map = new HashMap();
  2. map.put("name", "zs");
  3. map.put("name", "ls");
  4. System.out.println(map.get("name"));
  A编译错误
  B控制台输出“zs”
  C控制台输出“ls”
  D控制台输出“null”
  37启动一个线程是那种方法? (B)
  A start
  B run
  C yeild
  D sleep
  38以下代码共创建了多少个String对象?(C)
  1. String s1 = new String("abc");
  2. String s2 = s1;
  3. String s3 = new String("abc");
  A 1
  B 2
  C 3
  D 4
  39下面哪个声明是正确的?(A)
  A char c = ‘\’’;
  B char c = “cafe”;
  C char c = ‘\u01001’;
  D char c = ‘0x001’
  40在JAVA语言当中,哪个关键字用来实现同步?(C)
  A native
  B static
  C synchronized
  D abstract
  41下面的哪个变量命名是不合法的?(C,E)
  A here
  B _there
  C this;
  D that
  E 2tolodds
  42下面哪些赋值语句是正确的?(A,B,D)
  A long test = 012;
  B float f = -412;
  C int other = (int) true;
  D double d = 0x12345678;
  E byte b = 128;
  43下面哪个语句正确地声明一个整型的二维数组(C, D)
  A int a[][] = new int[][];
  B int b[10][10] = new int[][];
  C int c[][] = new int[10][10];
  D int []d[] = new int[10][10];
  44下面哪个函数是public void aMethod(){...}的重载函数?(B,D)
  A void aMethod( ){...}
  B public int aMethod(int a, float b){...}
  C public void aMethod (){...}
  D public float aMethod (int m){…}
  45有一个JavaScript的对象foo,它有一个att属性,那么获取att属性的值,以下哪些做法是可以的?(ACE)
  A. foo.att
  B. foo(“att”)
  C. foo[“att”]
  D. foo{“att”}
  E. foo[“a”+”t”+”t”]
  46面向对象编程的特点是(B,C,D)
  A 抽象
  B 继承
  C 封装
  D 多态
  47下面关于Struts报错机制说法正确的是(A、C、D)。
  A 强制使用国际化
  B 错误信息保存在session中
  C 使用标签显示错误信息
  D 也可以使用显示错误信息
  48在三层结构中,数据访问层承担的责任是(B)。
  A 定义实体类
  B 数据的增删改查操作
  C 业务逻辑的描述
  D 页面展示和控制转发
  49在Hibernate关系映射配置中,inverse属性的含义是(B)。
  A 定义在节点上,声明要负责关联的维护
  B 声明在节点上,声明要对方负责关联的维护
  C 定义在节点上,声明对方要负责关联的维护
  D 声明在节点上,声明要负责关联的维护
  50尝试运行下面的代码会发生什么?(B)
  public class Test {
  public static void main(String[] args) {
  boolean m = true ;
  if (m = false ) {
  System.out.println("true");
  } else {
  System.out.println("false");
  }
  }
  }
  A 输出字符串“true”
  B 输出字符串“false”
  C 编译时错误
  D 运行时错误
猜你还喜欢:
1.java基础知识面试题
2.java基础知识笔试题
3.java基础知识笔试题
4.java基础知识总结笔记
5.java基础知识点汇总
6.java基础知识

篇三:[0x00000001]十个值得深思的PHP面试问题


  过来人在以往的面试中总结的10个值得深思的 PHP 面试问题,希望对你现在的面试有用,少走弯路,更多内容请关注应届毕业生网!
  Q1
  第一个问题关于弱类型
  $str1 = "yabadabadoo";
  $str2 = "yaba";
  if (strpos($str1,$str2)) {
  echo "/"" . $str1 . "/" contains /"" . $str2 . "/"";
  } else {
  echo "/"" . $str1 . "/" does not contain /"" . $str2 . "/"";
  }
  正确运行的输出结果:
  "yabadabadoo" does not contain "yaba"
  strpos是返回字符串str2在str1的位置,没有找到则返回false然而实际上这次返回了0而在if语句中0也被当作false,所以我们需要对false做类型判断,正确的代码如下:
  $str1 = "yabadabadoo";
  $str2 = "yaba";
  if (strpos($str1,$str2) !== false) {
  echo "/"" . $str1 . "/" contains /"" . $str2 . "/"";
  } else {
  echo "/"" . $str1 . "/" does not contain /"" . $str2 . "/"";
  }
  需要注意的是我们使用了!==,在php 和 JS中= !相对== 更为严格需要要求数据类型一致。
  Q2
  下面的输出结果会是怎样?
  $x = 5;
  echo $x;
  echo "
  ";
  echo $x+++$x++;
  echo "
  ";
  echo $x;
  echo "
  ";
  echo $x---$x--;
  echo "
  ";
  echo $x;
  实际运行结果是
  5
  11
  7
  1
  5
  关于 $x++ 和 $x?这个问题其实非常容易遇见,我们只需记住$x++使用最近的值,然后才自增。
  运算符的优先级,++ 是明显高于 +,因此先执行++ 再执行 + 。关于运算符的优先级,有的时候我们真的可以通过括号来让我们的程序更让人直观的了解,毕竟代码不光是用于执行的,有的时候或许团队的可读性也是提高效率的一种。
  Q3
  关于变量的引用;
  $a = "1";
  $b = &$a;
  $b = "2$b";
  请问 $a 和 $b的值各位多少
  部分第一时间会想到 $a=’1′ $b=’21′,仔细一看 $b=&$a,这里$b是变量$a的引用而不是直接 赋值。
  Q4
  下面是true还是false
  var_dump(0123 == 123);
  var_dump("0123" == 123);
  var_dump("0123" === 123);
  var_dump(0123 == 123);// false,PHP会默认把0123当作8进制来处理,实际转化为10进制就是83,显然这不是相等的。
  var_dump(’0123′ == 123);// true这里php会非常有趣的将’0123′转换成一个数字而且默认去掉了前面的0也就是123==123
  var_dump(’0123′ === 123);// false很显然上面的问题已经说过了数字和字符串类型不一致。
  Q5
  下面的代码有什么问题吗?输出会是什么,怎样修复它
  $referenceTable = array();
  $referenceTable["val1"] = array(1, 2);
  $referenceTable["val2"] = 3;
  $referenceTable["val3"] = array(4, 5);
  $testArray = array();
  $testArray = array_merge($testArray, $referenceTable["val1"]);
  var_dump($testArray);
  $testArray = array_merge($testArray, $referenceTable["val2"]);
  var_dump($testArray);
  $testArray = array_merge($testArray, $referenceTable["val3"]);
  var_dump($testArray);
  实际输出如下:
  array(2) { [0]=> int(1) [1]=> int(2) }
  NULL
  NULL
  运行的时候你或许还能看到下面的警告
  Warning: array_merge(): Argument #2 is not an array
  Warning: array_merge(): Argument #1 is not an array
  array_merge需要传入的参数都是数组,如果不是,则会返回null。 你可以这样修改
  $testArray = array_merge($testArray, (array)$referenceTable["val1"]);
  var_dump($testArray);
  $testArray = array_merge($testArray, (array)$referenceTable["val2"]);
  var_dump($testArray);
  $testArray = array_merge($testArray, (array)$referenceTable["val3"]);
  var_dump($testArray);
  Q6
  $x应该是输出什么?
  $x = true and false;
  var_dump($x);
  部分同学或许会第一时间想到false,实际上这里依旧是强调运算符的优先级,= 会比 and级别高点,因此等同下面的代码
  $x = true;
  true and false
  答案显而易见。
  Q7
  经过下面的运算 $x的值应该是多少?
  $x = 3 + "15%" + "$25"
  答案是18,PHP是会根据上下文实现类型的自动转换
  上面的代码我们可以这样理解,如果我们在与字符串进行数学运算,实际php会尽可能将字符串中的数组进行转换,如果是数字开头的话则转换成改数字比如”15%”会变成15,如果不是数字开头则会变成0; 上面的运算类似下面 :
  $x = 3 + 15 + 0
  Q8
  运行下面的代码,$text 的值是多少?strlen($text)又会返回什么结果?
  $text = "John ";
  $text[10] = "Doe";
  上面代码执行完毕后 $text = “John D”(John后面会有连续的5个空格) strlen($text)会返回11
  $text[10] = “Doe”给某个字符串具体的某个位置具体字符时候,实际只会把D赋给$text. 虽然$text才开始只有5个自负长度,但是php会默认填充空格。这和别的语言有些差别。
  Q9
  下面的输出结果会是什么
  $v = 1;
  $m = 2;
  $l = 3;
  if( $l > $m > $v){
  echo "yes";
  }else{
  echo "no";
  }
  实际的输出是”no”,只要仔细分析就不难得出
  $l>$m 会转换成1 ,则这个时候再和$m比较。
  Q10
  执行下面代码$x会变成什么值呢?
  $x = NULL;
  if ("0xFF" == 255) {
  $x = (int)"0xFF";
  }
  实际的运行结果是$x=0而不是255.
  首先’oxFF’ == 255我们好判断,会进行转换将16进制数字转换成10进制数字,0xff -> 255.
  PHP使用is_numeric_string 判断字符串是否包含十六进制数字然后进行转换。
  但是$x = (int)’0xFF’;是否也会变成255呢?显然不是,将一个字符串进行强制类型转换实际上用的是convert_to_long,它实际上是将字符串从左向右进行转换,遇到非数字字符则停止。因此0xFF到x就停止了。所以$x=0
更多相关文章推荐:
1.提问频率最高的PHP面试题
2.PHP中级程序员常见面试题有哪些
3.常见的PHP中级程序员面试题
4.八个PHP数组面试题目
5.精选php面试题及答案
6.2017年PHP面试题与答案
7.关于变量和日期处理的php面试题
8.2017年最新PHP工程面试题
9.2017年PHP面试题之HTTP状态码出现问题
10.2017年PHP面试编程题

本文来源:http://www.jinghuajt.com/xiaoxuezuowen/9410/

推荐内容