笔试连着挂,真的需要调整自己了吧。闭关一段时间,会有好的结果。
题目练习笔记:
1.度为2的节点个数 = 度为0的节点个数 - 1
2.public class SendValue{
public String str="6";
public static void main(String[] args) {
SendValue sv=new SendValue();
sv.change(sv.str);
System.out.println(sv.str);
}
public void change(String str) {
str="10";
}
}
输出为6
change方法里面是将传入的参数修改成10,但是并没有对SendValue的属性str就行修改,要修改必须指明this.str="10",所有答案还是6。
Java中String类型变量是immutable(不可变的)。
尽管 change()方法中的str与sv.str都是新的对象实例成员变量值"6"的引用, 由于String类型的 不可变性,change()方法中的str="10"语句实际上是将传入的str副本引用指向了一个值为“10”的新的内存地址,但 原数据引用 sv.str的引用值(也就是“6”的内存地址) 并没有发生改变,因此sv.str指向的值仍旧为6.
3.
static int a=1;
void fun1(void)
{
a=2;
}
void fun2(void)
{
int a=3;
}
void fun3(void)
{
static int a=4;
}
int main()
{
printf(“%d”,a);
fun1( );
printf(“%d”,a);
fun2( );
printf(“%d”,a);
fun3( )
printf(“%d”,a);
}
输出1 2 2 2
首先声明了一个静态全局变量i,首次输出我就不说了,妥妥的1。第二次输出,访问到了早已定义的全局变量i,并改写值,第二次为2。第三次输出,内部定义了一个同名的变量, 它并没有返回值或者被该次执行程序以外任何程序读取a值,所以第三次输出仍然是a。第四次输出,定义了一个静态的局部变量,静态局部变量在函数调用结束后仍然存在,及它的内存空间不会被释放,但其他函数是不能引用它的,所以,两个静态变量虽然同名,但是并不是一样的东西,为2。答案是B
4.
在java7中,下列不能做switch()的参数类型是?
switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long、float、double类型不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
注意:String类型是Java7开始支持的。
5.关于HTTP协议说明,哪些是正确的?
A.在CS模式下,作为一种request-response协议
B.无状态,对每一个请求看成独立的
C.WWW和Email使用的协议
D.HTTP响应包括数字状态码,404经常代表“Page NotFound”
A B D
WWW中使用的是HTTP
HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
第二次:
6.下面程序的输出结果为多少(32位机器上)?
1 2 3 4 5 6 7 8 9 10 11 12 | void Func(char str_arg[2]) { int m = sizeof(str_arg); int n = strlen(str_arg); printf("%d\n", m); printf("%d\n", n); } int main(void) { char str[] = "Hello"; Func(str); } |
A. 5 5
B. 5 4
C. 4 5
D. 4 4
也可以写成
voidFunc(char *str_arg)
之所以能这样写,是因为Func的参数是一个地址
2,对于sizeof的参数,是一个指针,因为这是32位系统, 32 = 8*4,需要4字节存储指针。
如果是64位系统 64 = 8*8,需要8字节
3,对于strlen,就是字符串的长度,"Hello"长度是5。strlen计算不包含\0的字符串的长度。
7.二进制值0.00110011001100110011001100110011转换成10进制后最接近____。
在计算机中二进制转换为十进制是为:对应为乘以权值,小数点后面一次为2的-1次方,上的-2次方依次类推。所以本题小数点后第一个1转换为十进制为2的-3次方,第二个一为2的-4次方,这两个的和为0.1875.估算这串二进制转换为十进制为0.2左右。