精华内容
下载资源
问答
  • 指出下列程序运行的结果()

    千次阅读 2020-03-15 16:23:17
    指出下列程序运行的结果() public class Example{ String str = new String("good"); char[ ] ch = { 'a' , 'b' , 'c' }; public static void main(String args[]){ Example ex = new Example(); ...

    题目

    指出下列程序运行的结果()

    public class Example{
        String str = new String("good");
        char[ ] ch = { 'a' , 'b' , 'c' };
        public static void main(String args[]){
            Example ex = new Example();
            ex.change(ex.str,ex.ch);
            System.out.print(ex.str + " and ");
            System.out.print(ex.ch);
        }
        public void change(String str,char ch[ ]){
            str = "test ok";
            ch[0] = 'g';
        }
    }
    

    A. good and abc
    B. good and gbc
    C. test ok and abc
    D. test ok and gbc

    答案

    B

    解析

    题目中的形参str只是原引用ex.str的一个引用副本,传的是一个副本地址值,这个值与ex.str地址值是不一样的,但是它们同时指向了堆中的对象new String("good"),当你在函数中改变形参也就是地址的副本值也就是这句str=“test ok"只是将副本地址指向常量"test ok”,并没有改变原ex.str的指向方向,它还是指向对象new String(“good”)的
    char数组与String一样传的也是地址的副本,但是关键是形参ch它没有新的指向 ch[0]只是ch在指向原对象时改变了对象的内部结构, 所以在ex.ch指向与它是同一个对象的情况下当然也会随之变化

    展开全文
  • 4.指出下列程序运行的结果:

    千次阅读 2019-05-13 21:29:18
    指出下列程序运行的结果: public class Example{ String str=new String("tarena"); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex...

    指出下列程序运行的结果:

    public class Example{
        String str=new String("tarena");
        char[]ch={'a','b','c'};
        public static void main(String args[]){
            Example ex=new Example();
            ex.change(ex.str,ex.ch);
            System.out.print(ex.str+" and ");
            System.out.print(ex.ch);
        }
        public void change(String str,char ch[]){
       //引用类型变量,传递的是地址,属于引用传递。
            str="test ok";
            ch[0]='g';
        }
    }
    A.tarena and abc
    B.tarena and gbc
    C.test ok and abc
    D.test ok and gbc

    本题选B。

    string和char数组都是引用类型,引用类型是传地址的,会影响原变量的值,但是string是特殊引用类型,为什么呢?因为string类型的值是不可变的,为了考虑一些内存,安全等综合原因,把它设置成不可变的; 不可变是怎么实现的?Java在内存中专门为string开辟了一个字符串常量池,用来锁定数据不被篡改,所以题目中函数中的str变量和原来的str已经不是一个东西了,它是一个局部引用,指向一个testok的字符串,随着函数结束,它也就什么都没了,但是char数组是会改变原值的

    展开全文
  • 写出下列程序运行结果

    千次阅读 2018-07-02 14:05:29
    class A{ public A(){ System.out.println(“A”); } } class B extends A{ public B(){ System.out.println(“B”); } public static void main(String[] args){ B b=new B(); } } 输出A,换行,输出B...
    class A{ 
     public A(){ 
     System.out.println(“A”); 
     } 
     } 


    class B extends A{ 
     public B(){ 
     System.out.println(“B”); 
     } 


    public static void main(String[] args){ 
     B b=new B(); 
     } 
     } 


    输出A,换行,输出B
    展开全文
  • public class Test { public static void main(String[] args) { A obj = A.getInstance(); System.out.println("obj.num1 = ...运行结果: obj.num1 = 0 obj.num2 = 1 请问为什么 num1=0 而不等于1? 谢谢!
  • 下列程序运行时会崩溃,请找出错误并改正,并且说明原因。 #include stdio.h>  #include malloc.h>  typedef struct {   TNode* left;   TNode* right;   int
     
    

    下列程序运行时会崩溃,请找出错误并改正,并且说明原因。

    #include <stdio.h> 
    #include 
    <malloc.h> 

    typedef 
    struct

        TNode
    * left; 
        TNode
    * right; 
        
    int value; 
    } TNode; 

    TNode
    * root=NULL; 
    void append(int N); 

    int main() 

        append(
    63); 
        append(
    45); 
        append(
    32);
        append(
    77); 
        append(
    96); 
        append(
    21); 
        append(
    17); // Again, 数字任意给出 


    void append(int N) 

        TNode
    * NewNode=(TNode *)malloc(sizeof(TNode)); 
        NewNode
    ->value=N; 

        
    if(root==NULL) 
        { 
            root
    =NewNode;
            
    return;
        } 
        
    else 
        { 
            TNode
    * temp; 
            temp
    =root; 
            
    while((N>=temp.value && temp.left!=NULL) || (N<temp. value && temp. right!=NULL)) 
            { 
                
    while(N>=temp.value && temp.left!=NULL)
                    temp
    =temp.left;
                
    while(N<temp.value && temp.right!=NULL)
                    temp
    =temp.right;
            }
            
    if(N>=temp.value)
                temp.left
    =NewNode; 
            
    else
                temp.right
    =NewNode;
            
    return
        }
    }

     

     

    解答:

     

    //下列程序运行时会崩溃,请找出错误并改正,并且说明原因。
    /*
    此程序的功能是完成一个有序二叉树的建立,使得左子树结点的值小于根结点,
    右子树大于根结点. 题目程序中结构体定义的地方有误,在TNode名字出现之前,
    就在结构体内使用TNode,将导致编译错误.另外题目中append函数中的所有temp的点号操作符都应改成->,
    因为temp是个指针.至于题目中所说的程序在运行时崩溃出现在append函数中的对temp->left和temp->right操作时候, 
    因为每创建一个新结点的时候都没将left和right成员初始化为空指针,会导致append函数中的while循环访问到非法内存,
    从而导致程序崩溃. 为了方便测试,添加了函数print_tree打印树的结点内容,
    另外补充了一个函数free_tree来释放动态分配的内存.修改后的程序如下:
    */
    #include <iostream>
    using namespace std;
    //typedef struct{   //错误1 TNode名字出现前,就在结构内使用TNode将导致编译错误
    typedef struct TNode{ //应该这样写
    	TNode* left;
        TNode* right; 
       int value; 
    }TNode;
    
    TNode* root=NULL; 
    void append(int N); 
    void free_tree(TNode *root);
    void print_tree(TNode *root);
    
    
    int main() 
    { 
    	append(63); 
    	append(45); 
        append(32); 
    	append(77); 
    	append(96); 
    	append(21); 
    	append(17); // Again, 数字任意给出 
    	print_tree(root);
    	cout<<"\n memory released !\n";
    	free_tree(root);
        system("pause");
    return 0;
    } 
    
    void append(int N) 
    {
    	TNode* NewNode=(TNode *)malloc(sizeof(TNode)); 
    	if (!NewNode)
    	{
    		cout<<"memory alloc failure!\n";
    		exit(1);
    	}
    
    	NewNode->value=N; 
    	//NewNode->left;
    	//NewNode->right; //错误2 没有初始化新结点的left和right成员为空指针,
    	                  //导致append函数中while循环访问到非法内存,从而导致运行时崩溃
    	NewNode->left=NULL;
    	NewNode->right=NULL;
    	if(root==NULL) 
    	{ 
    		root=NewNode; 
    		return;
    	} 
    	else 
    	{ 
    		TNode* temp; 
    		temp=root; 
    		//while((N>=temp.value && temp.left!=NULL) || (N<temp. value && temp. right!=NULL)) 
    		//错误3 temp是指针,则下面引用成员应该使用->而不是.(点)
    		while((N>=temp->value && temp->left!=NULL) || (N<temp->value&&temp->right!=NULL)) 
    		{
    			   while(N>=temp->value && temp->left!=NULL) 
    				   temp=temp->left; 
    			   while(N<temp->value && temp->right!=NULL)
    				   temp=temp->right; 
    		} 
    
    		if(N>=temp->value) 
    			temp->left=NewNode; 
    		else 
    			temp->right=NewNode; 
    		return; 
    	}
    } 
    
    
    //释放内存函数
    void free_tree(TNode *root){
    	if (!root->left && !root->right)
    	{
    		free(root);
    		return;
    	}
    	if (root->left)
    	{
    		free_tree(root->left);
    	}
    	else{
    		free_tree(root->right);
    	}
    }
    
    
    //打印函数
    void print_tree(TNode *root){
    	if (!root->left && !root->right)
    	{
    		cout<<root->value<<" ";
    		return;
    	}
    	if (root->right)
    		print_tree(root->right);
    
    		cout<<root->value<<" ";
    
    	if (root->left)
    	{
    		print_tree(root->left);
    	}
    }


    展开全文
  • 分析并写出下列程序运行结果

    千次阅读 2017-11-05 00:29:06
    这里写代码片 这里写代码片#include #include int main() { int i,j,k; char space=' ' ; for (i=1;i;i++) { for(j=1;j;j++) { printf ("%c",space ); }
  • 运行下列程序,会产生的结果是:public class X extends Thread implements Runable()public void run() {System.out.println("this is run()");}public static void main(String args[]) {Thread t = new Thread...
  • 6.分析并写出下列程序运行结果

    千次阅读 2017-11-12 15:48:06
    #include main() { int k=4,n; for(n=0;n;n++) { if(n%2==0) continue; k--; } printf("k=%d,n=%d\n",k,n); }
  • (2) #include main() { int x=32,y=81,p,q; p = x++; q = --y; printf("%d%d\n",p,q); printf("%d%d\n",x,y); }
  • 写出下列程序在X86 上的运行结果。

    千次阅读 2011-08-21 16:09:06
    写出下列程序在X86 上的运行结果: struct mybitfields { unsigned short a:4; unsigned short b:5; unsigned short c:7; }test; void main(){ int i;
  • 写出下列程序段的运行结果

    千次阅读 2008-10-20 09:06:00
    你的程序是有点问题while( empty_sequeue(q)) y=out_queue(q); printf("%c" 者是把y保存的值插入队列中3.取出队列中队头元素 那么结果就是charchar下有空行2.前者是把字符r插入队列中 如果加上{ y); } 少了个{ 并...
  • 下列给定程序中,函数fun的...例如,输入1、2、3、4,程序运行后输出以下方阵: 4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4 #include <stdio.h>#define M 4void fun(int *a){ int I,j,k,m; printf("Enter...
  • 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。1) 创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10的结果。2) 再创建一个类B,使其...
  • 一、为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是用putty远程连接到日本Linux服务器。...1:我们这边是否关机不影响日本那边的程序运行。(不会像以前那
  • 问题描述:当SSH远程连接到服务器上,然后运行一个服务 ./catalina.sh start,然后把终端开闭(切断SSH连接)...解决方法:使用nohup命令让程序在关闭窗口(切换SSH连接)的时候程序还能继续在后台运行。 Unix...
  • Java程序运行依赖操作系统吗?

    千次阅读 2020-02-18 17:31:41
    C.JVM支持Java程序运行,它能够直接运行Java字节码文件 D.JVM支持Java程序运行,它能够直接运行Java源代码文件 以下关于支持Java运行平台的叙述,哪项错误?(C) A.Java可在Solaris平台上运行 B.Java可在...
  • Linux监控程序运行/停止+邮件通知

    千次阅读 2021-01-12 21:24:03
    判断程序是否运行或停止 发送邮件 判断程序是否运行或停止 首先运行并测试下面代码,将QQ换成要监控的进程名称 sudo vim monitor.sh # 创建文件 #将下面文件复制到monitor.sh中 chmod +x monitor.sh # 添加运行权限...
  • unix下后台运行程序

    千次阅读 2010-01-29 19:05:00
    unix下后台运行程序的方法:Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe --user=mysql & 但是加入...
  • 解决Linux关闭终端(关闭SSH等)后运行程序自动停止

    万次阅读 多人点赞 2016-10-10 14:49:03
    1 问题发现之前在服务器上起一个python的服务, 放到后台运行. `我关闭这个SSH之后,该服务不可用,再次登入到服务器,已经没有这个python进程为此我写了一个测试程序来描述此问题///////////////////// // hello.c /...
  • linux中安装wine运行windows程序

    万次阅读 2014-12-01 21:22:05
     Wine是Wine Is Not an Emulator(Wine不是模拟器)的缩写,其实是一个转换层(或程序装入器),能够在Linux及与POSIX兼容的其他类似操作系统上运行Windows应用程序。Wine在Linux上无法模拟Windows应用程序,而是提供了...
  • PYTHON的程序在LINUX后台运行

    千次阅读 2016-10-10 17:10:15
    PYTHON的程序在LINUX后台运行1.nohup 命令nohup   nohup 命令   用途:Linux命令用法,不挂断地运行命令。   语法:nohup Command [ Arg ......在注销使用 nohup 命令运行后台中的程序。要
  • 使用nohup让程序永远后台运行

    千次阅读 2012-09-14 01:25:35
    使用nohup让程序永远后台运行 Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe --user=mysql & ...
  • VB无所不能之六:对程序运行的监控

    千次阅读 热门讨论 2010-04-16 16:00:00
    VB无所不能之六:对程序运行的监控 ——作者:钟声博客地址:http://blog.csdn.net/useway 转眼间,本系列文章已经写到了第六个,今天写点什么呢?还是得写,看似VB做不到的事情,那么今天起就写写VB对操作系统的...
  • 如何在raspiberry pi上运行x86程序

    千次阅读 2018-09-29 17:16:44
    如何在raspiberry pi上运行x86程序 第一步:下载ExaGear 步骤: 首选项-&gt;Add/Remove Software-&gt;搜索ExaGear-&gt;下载搜索出来的四个包 第二步:下载Wine 终端模式下输入: sudo apt-get update ...
  • 关于程序运行 IROM、IRAM解决方案

    千次阅读 2015-07-22 16:36:31
    关于程序运行 IROM、IRAM 题目大意是在下列选项中,三星的ARM的s5pv210的芯片可以执行程序的存储器有那些? a、IROM b、IRAM c、nand flash d、SDRAM 给的答案是a、b、d ------解决方案--------...
  •  然后填写名称,描述,随后在 安全选项中 (我这台服务器是默认administrator) ,选择 “不管用户是否登录都要运行” 和 “使用最高权限运行"  触发器 -> 新建触发器, 选择启动时 , 最下方启用默认打

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 288,457
精华内容 115,382
关键字:

下列程序运行后