填空题[说明] 编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。 import java. io. * ; public class abc public static void main(String args [ ] ) int i, n = 10 , max = 0 , min = 0 , temp = 0; try BufferedReader br = new BufferedReader( new InputStreamReader( System. in) ); (1) ); catch ( IOException e ) ; for(i = 2 ;i <= n; i ++ ) try BufferedReader br = new BufferedReader( new InputStreamReader (System. in) ); temp = Integer. parselnt(br. readLine( ) ); if ( temp > max ) (2) if (temp < min) (3) catch ( IOExeeption e ) ; System. out. println( "max =" + max + "/nmin =" + min);
填空题[说明]在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了Decorator(修饰)模式。SalesOrder对象使用一个SalesTicket对象打印销售票据。显示了各个类间的关系。以下是Java语言实现,能够正确编译通过。[Java代码]//Component.java文件public______classComponentabstractpublicvoidprtTicket();//SalesTicket.java文件publicclassSalesTicketextendsComponentpublicvoidprtTicket()//SalesticketprintingcodehereSystem.out.println("SalesTicket");//Decorator.java文件publicabstractclassDecoratorextendsComponentpublicvoidprtTicket()if(myComp!=null)myComp.prtTicket();private______myComp;publicDecorator(ComponentmyC)myComp=myC;//Footer.java文件publicclassFooterextendsDecoratorpublicFooter(ComponentmyC)______;publicvoidprtTicket()______;prtFooter();publicvoidprtFooter()//placeprintingfootercodehereSystem.out.println("Footer");//SalesOrder.java文件publicclassSalesOrdervoidprtTicket()ComponentmyST;myST=newFooter(______);//PrintTicketwithfootersasneededmyST.prtTicket();
填空题[说明]现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自Shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXCircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象;当Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。[Java代码]//Shape.java文件publicinterfaceShapepublic______voiddisplay();//XXCircle.java文件publicclassxxCirclepublicvoiddisplayIt()//省略具体实现//circle.java文件publicclassCircle______ShapeprivateXXCirclepcx=______;publicvoiddisplay()pcx.displayIt();//mactory.java文件publicclassFactorypublic______getShapeInstance(inttype)switch(type)case1:returnnewLine();case2:returnnewSquare();case3:returnnewCircle();default:returnnull;//Main.java文件publicclassMainpublicstaticvoidmain(String[]args)inttype=1;Factoryfactory=newFactory();Shapes;s=factory.______;if(s==null)System.out.println("Errorgettheinstance!");return;s.display();return;
填空题
阅读以下说明和C代码,将应填入{{U}} (n) {{/U}}处的字句写在对应栏内。 [说明]
函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10k-1+c[k-1]×10k-2+…+c[2]×10+c[1],利用c[0]存储长整数m的位数,即c[0]=k。数组的每个元素只存储长整数m的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于9,这是就应该调用format将其归整,使数组中的每个元素始终只存储长整数的一位数字。
整数a和b(a>b)的组合数为:,其中u1=a,u2]=a-1,…,ub=a-b+1,d1=1,d2=2,…,db=b。为了计算上述分式,先从u1,u2,…,ub中去掉d1×d2×…×db的因子,得到新的u1,u2,…,ub,然后再将它们相乘。
[函数] #define NAXN 100 int
gcd(int a,int b)//求两个整数a和b的最大公因子 { if(a<b){
intC=a;a=b;b=c; }
for(inti=b;i>=2;i--){ if({{U}} (1) {{/U}})return i;
} return 1; void format(int
*a)//将长整数数组归整 { int i;
for(i=1;i<a[0]||a[i]>=10;i++){ if(i>=a[0]){{U}} (2)
{{/U}}; a[i+1]+=a[i]/10; a[i]=a[i]%10;
} if(i>a[0]){{U}} (3) {{/U}};
} void combine(int a,int b,int *C)
{ int i,J,k,x; int d[MAXN],u[MAXN];
k=0; for(i=a;i>=a-b+1;i--)u[++k]=i;
u[0]=b; for(i=1;i<=b;i++)d[i]=i;
for(i=1;i<=u[0];i++){//从u中各元素去掉d中整数的因子 for(j=1;j<=b;j++){
x=gcd(u[i],d[j]);//计算最大公约数 u[i]/=X;
d[j]/=x; } {{U}} (4)
{{/U}};C[1]=1;//长整数c初始化
for(i=1;i<=u[0];i++)(//将u中各整数相乘,存于长整数c中 if(u[i]!=1){
for(j=1;j<=c[0];j++){ C[j]={{U}} (5)
{{/U}}; } format(C);//将长整数c归整
} } }
填空题[问题4] 若这三个事务都遵守两段锁协议,那么是否存在事实上可串行化但又不能形成的调度?
