8.27牛客网错题集

5.java Thread中,run方法和start方法的区别

1.start方法
用 start方法来启动线程,是真正实现了多线程, 通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法。但要注意的是,此时无需等待run()方法执行完毕,即可继续执行下面的代码。所以run()方法并没有实现多线程。
2.run方法
run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码。

7.若有 double *p,x[10];int i=5;使指针变量 p指向元素 x[5]的语句为()。

A. p=&x[i]; 正确,p为地址,&取址符(x[5]的地址)
B. p=x; x为数组第一个元素的地址,所以p指向了x[0];
C. p=x[i]; p为地址,x[i]为元素
D. p=&(x+i) p为地址,x+i为地址,&(x+i)地址的地址

9.将逻辑代码

int x = ...;
if (x % 2) {
    return x - 1;
} else {
    return x;
}
 用表达式:return x & -2; 替代,以下说法中不正确的是( )

A 计算机的补码表示使得两段代码等价 正确
B 用第二段代码执行起来会更快一些 正确
C 这段代码只适用于x为正数的情况 错误

解析
代码的本意是返回偶数
计算机内部表示的整数的方式为补码,正数为自身,负数为符号位不变其余各位取反加1
理解本体分两部分:
1)-2的补码为1111,1110,正数与-2相与很明显就是使整数变为2的整数倍(相当于减一)
2)负数时,当负数为偶数时,补码的最后一位比为0,与-2相与仍为自身;当为奇数时,补码的最后一位比为1,与-2相与时其它位不变最后一位为1,此时根据负数到源码的转换规则,各位取反加1,此时相当于加上-1

10.下面有关servlet service描述错误的是?

A.不管是post还是get方法提交过来的连接,都会在service中处理 正确

B.doGet/doPost 则是在 javax.servlet.GenericServlet 中实现的错误

C.service()是在javax.servlet.Servlet接口中定义的正确

D.service判断请求类型,决定是调用doGet还是doPost方法正确

解析:
doget/dopost与Http协议有关,是在 javax.servlet.http.HttpServlet 中实现的

11.有以下程序

#include <stdio.h>
#include <stdlib.h>
void fun ( int *pl,int *p2,int *s )
{
    s = (int*) malloc(sizeof(int));
    *s = *pl + *(p2++ );
}
main( )
{
    int a [2]{l,2},b [2] = {10,20,*s = a;
    fun (a,b,s); 
    printf ( "%d \n", *s);
}

程序运行后的输出结果是?
1
解析: 进入fun时 p3 = s ,即p3 = &a[0].
调用malloc时返回的值是一个int*,实际上 p3 = malloc返回的新指针p4
*p3=p1+(p2++) 即 *p4=p1+(p2++);
p4并不是s,算出来的值赋值到malloc返回的指针p4指向的内存了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值