您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 北航程序设计语言原理题目与参考答案
一lambda演算二词法作用域动态作用域词法作用域输出结果:17动态作用域输出结果:21词法作用域输出结果:202121动态作用域输出结果:202121三参数机制过程调用中的传值、传名和引用三种参数机制的不同点传值:把实参值复制到形参上,一般实参运行后不会改变。只能返回单个的函数结果值。传名:如果在过程中修改了形参的值,就按结合的变元的名字(地址)找出变元值进行修改。在传明过程中虚实结合时将程序体中所有形参出现的地方均以实参变元名置换。引用:引用传递的是存储对象,实参必须是变量名或能得出地址的表达式。执行结果:传值:22420|32330传名:23620|32330引用:22420|32330传值:011传名:121引用:121值返回引用:四面向对象哪些操作1.面向类型的操作:赋值、拼接、类型转换面向复合对象的操作:构造、赋值、数组索引q2.构造了哪些新类型3.PassTest{float:ptValue}String[]代码存在哪些错误4.shortb=(short)val;stringArray=newString[3];System.out.println(stringArray[0]+stringArray[1]+stringArray[2]+val);程序输出的结果是什么5.TheValueis3TheValueis3TheValueis4TheVlaueis99五并发编程monitorPRINTER::varnum=0;varprinter_available:cond;//当num0时,printer_available为真procget_printer()is:whilenum=0dowait(printer_available)end;ifnum0thennum=num-1endif;end;procfinish_print()is:num=num+1;ifnum=1thensignal(printer_available)endif;end;EndPRINTERimportjava.util.concurrent.Semaphore;publicclassSleepBarber{publicstaticvoidmain(String[]args){Semaphoresignal=newSemaphore(10);//初始座位数为10Semaphoresleep=newSemaphore(0);//初始为睡觉状态Threadbarber=newThread(newBarber(signal,sleep));barber.start();try{Thread.sleep(1000);while(true){Threadcustomer=newThread(newCustomer(signal,sleep));customer.start();Thread.sleep(100);}}catch(Exceptione){e.printStackTrace();}}publicstaticclassCustomerimplementsRunnable{Semaphoresignal;Semaphoresleep;publicCustomer(Semaphoresignal,Semaphoresleep){this.signal=signal;this.sleep=sleep;}publicvoidrun(){synchronized(this){if(signal.tryAcquire()){//尝试P座位,如果有就进去,没有就离开System.out.println(新增一名顾客,+signal.availablePermits());if(signal.availablePermits()==9){sleep.release();}}else{System.out.println(座椅不够,客户离开);}}}}publicstaticclassBarberimplementsRunnable{Semaphoresignal;Semaphoresleep;publicvoidrun(){while(true){synchronized(this){try{sleep.acquire();//等待sleep}catch(Exceptione){e.printStackTrace();}while(signal.availablePermits()0){try{Thread.sleep(50);}catch(Exceptione){e.printStackTrace();}System.out.println(一名顾客理完发);if(signal.availablePermits()10){signal.release();//V操作}}}}}publicBarber(Semaphoresignal,Semaphoresleep){this.signal=signal;this.sleep=sleep;}}}七选择题题目2019年1月13日星期日22:03一lambda演算二词法作用域动态作用域词法作用域输出结果:17动态作用域输出结果:21词法作用域输出结果:202121动态作用域输出结果:202121三参数机制过程调用中的传值、传名和引用三种参数机制的不同点传值:把实参值复制到形参上,一般实参运行后不会改变。只能返回单个的函数结果值。传名:如果在过程中修改了形参的值,就按结合的变元的名字(地址)找出变元值进行修改。在传明过程中虚实结合时将程序体中所有形参出现的地方均以实参变元名置换。引用:引用传递的是存储对象,实参必须是变量名或能得出地址的表达式。执行结果:传值:22420|32330传名:23620|32330引用:22420|32330传值:011传名:121引用:121值返回引用:四面向对象哪些操作1.面向类型的操作:赋值、拼接、类型转换面向复合对象的操作:构造、赋值、数组索引q2.构造了哪些新类型3.PassTest{float:ptValue}String[]代码存在哪些错误4.shortb=(short)val;stringArray=newString[3];System.out.println(stringArray[0]+stringArray[1]+stringArray[2]+val);程序输出的结果是什么5.TheValueis3TheValueis3TheValueis4TheVlaueis99五并发编程monitorPRINTER::varnum=0;varprinter_available:cond;//当num0时,printer_available为真procget_printer()is:whilenum=0dowait(printer_available)end;ifnum0thennum=num-1endif;end;procfinish_print()is:num=num+1;ifnum=1thensignal(printer_available)endif;end;EndPRINTERimportjava.util.concurrent.Semaphore;publicclassSleepBarber{publicstaticvoidmain(String[]args){Semaphoresignal=newSemaphore(10);//初始座位数为10Semaphoresleep=newSemaphore(0);//初始为睡觉状态Threadbarber=newThread(newBarber(signal,sleep));barber.start();try{Thread.sleep(1000);while(true){Threadcustomer=newThread(newCustomer(signal,sleep));customer.start();Thread.sleep(100);}}catch(Exceptione){e.printStackTrace();}}publicstaticclassCustomerimplementsRunnable{Semaphoresignal;Semaphoresleep;publicCustomer(Semaphoresignal,Semaphoresleep){this.signal=signal;this.sleep=sleep;}publicvoidrun(){synchronized(this){if(signal.tryAcquire()){//尝试P座位,如果有就进去,没有就离开System.out.println(新增一名顾客,+signal.availablePermits());if(signal.availablePermits()==9){sleep.release();}}else{System.out.println(座椅不够,客户离开);}}}}publicstaticclassBarberimplementsRunnable{Semaphoresignal;Semaphoresleep;publicvoidrun(){while(true){synchronized(this){try{sleep.acquire();//等待sleep}catch(Exceptione){e.printStackTrace();}while(signal.availablePermits()0){try{Thread.sleep(50);}catch(Exceptione){e.printStackTrace();}System.out.println(一名顾客理完发);if(signal.availablePermits()10){signal.release();//V操作}}}}}publicBarber(Semaphoresignal,Semaphoresleep){this.signal=signal;this.sleep=sleep;}}}七选择题题目2019年1月13日星期日22:03一lambda演算二词法作用域动态作用域词法作用域输出结果:17动态作用域输出结果:21词法作用域输出结果:202121动态作用域输出结果:202121三参数机制过程调用中的传值、传名和引用三种参数机制的不同点传值:把实参值复制到形参上,一般实参运行后不会改变。只能返回单个的函数结果值。传名:如果在过程中修改了形参的值,就按结合的变元的名字(地址)找出变元值进行修改。在传明过程中虚实结合时将程序体中所有形参出现的地方均以实参变元名置换。引用:引用传递的是存储对象,实参必须是变量名或能得出地址的表达式。执行结果:传值:22420|32330传名:23620|32330引用:22420|32330传值:011传名:121引用:121值返回引用:四面向对象哪些操作1.面向类型的操作:赋值、拼接、类型转换面向复合对象的操作:构造、赋值、数组索引q2.构造了哪些新类型3.PassTest{float:ptValue}String[]代码存在哪些错误4.shortb=(short)val;stringArray=newString[3];System.out.println(stringArray[0]+stringArray[1]+stringArray[2]+val);程序输出的结果是什么5.TheValueis3TheValueis3TheValueis4TheVlaueis99五并发编程monitorPRINTER::varnum=0;varprinter_available:cond;//当num0时,printer_available为真procget_printer()is:whilenum=0dowait(printer_available)end;ifnum0the
本文标题:北航程序设计语言原理题目与参考答案
链接地址:https://www.777doc.com/doc-7326575 .html