2018-04-01

1.写出下列语句返回值

undefined==null    // true
[0]==0            //true
""==0            //true
""==null       //false
typeof(undefined); //undefined
typeof(null); //object

双等与三等的区别:
双等在比较之前要进行类型转换(转换为相同类型),再进相比较。
三等进行类型比较和值的比较,若类型不同,则二者不相等。
==规则:
a.如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较.
b.如果一个是字符串,一个是数值,把字符串转换成数值再进行比较
c.如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较.
d.null与undefined相等。要比较相等性之前,不能将null与undefined转换成其他任何类型。
e.如果有一个操作数是NaN,则相等操作符返回false,不相等返回true。NaN不等于NaN。
f.如果两个操作数都是对象,则比较他们是不是同一个对象。若是,true;否则,false。
2.linux命令

新建文件 touch 文件名
新建文件夹  mkdir 文件夹名
列出当前目录下文件 ls 
 -l           列出文件详细信息l(list)
 -a          列出当前目录下所有文件及目录,包括隐藏的a(all)

显示当前目录下隐藏文件并按照时间排序 ls -a -t
切换到Download目录下 cd Download
删除文件 rm
-r            递归删除,可删除子目录及文件
-f            强制删除

安装.deb文件 sudo dpkg -i 文件名.deb (-i 即install)

3.找出1-100的素数

#include <stdio.h>
int main()
{
	int i,status;//判断标志 
	for(i=3;i<100;i++)
	{
		status=0;
		int j;
		for(j=2;j<i;j++)
		{
			if(i%j==0)
			{
				status=1;//不是素数 
				break;
		    }
		}
		if(status==0)//是素数 
	printf("%d\n",i);
	}
	return 0;
}

4.归并排序

//c语言
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
#define N 10 
void MergeSort(int Array[],int n);
void MSort(int Array[],int TmpArray[],int left,int right);
void Meger(int Array[],int TmpArrry[],int left,int right,int middle);
int main()
{
	int a[N],i;
	for(i=0;i<N;i++)
	scanf("%d",&a[i]);
	MergeSort(a,N);
	for(i=0;i<N;i++)
	printf("%d ",a[i]);
	return 0;
}
void MSort(int Array[],int TmpArray[],int left,int right)
{
	int middle;
	if(left<right)
	{
		middle=(left+right)/2;//找中间位置划分 
		MSort(Array,TmpArray,left,middle);//左半部分进行递归归并排序 
		MSort(Array,TmpArray,middle+1,right);//右半部分 
		Meger(Array,TmpArray,left,right,middle);//归并 
	}
}
void Meger(int Array[],int TmpArray[],int left,int right,int middle)
{
	int i,p1,p2;
	for(i=left;i<=right;i++)
	TmpArray[i]=Array[i]; //临时保存待排序序列
	p1=left; //左半部分有序记录起始位置 
	p2=middle+1;//右半部分起始位置
	i=left;//从左半部分开始归并 
	while(p1<middle&&p2<right)
	{
		if(TmpArray[p1]<=TmpArray[p2])
		{
		Array[i]=TmpArray[p1];
		p1++;
	}
	else
	{
		Array[i]=TmpArray[p2];
		p2++;

	}
	 i++;
 } 
 //合并
 while(p1<=middle)
 {
 	Array[i++]=TmpArray[p1++];
 	
} 
 while(p2<=right)
 {
 	Array[i++]=TmpArray[p2++];
 	
}
}
void MergeSort(int Array[],int n)
{
	int *TmpArray;
    TmpArray = malloc(n * sizeof(int));
    if (TmpArray != NULL)
    {
        MSort(Array, TmpArray, 0, n - 1);
        free(TmpArray);
    }
}

//javascript
function merge_sort(arr){
  if(arr.length < 2){
    return arr;
  }
  var middle = parseInt(arr.length/2);
  var left = arr.slice(0,middle);
  var right = arr.slice(middle);
  
  return merge(merge_sort(left),merge_sort(right));
}

function merge(left,right){
  var result = [];
  var i = 0, j = 0;
  while(i < left.length && j < right.length){
    if(left[i] > right[j]){
      result.push(right[j++]);
    }
    else{
      result.push(left[i++]);
    }
  }
  while(i < left.length){
    result.push(left[i++]);
  }
  while(j < right.length){
    result.push(right[j++]);
  }
  
  return result;
}

5.青蛙跳(一次只能上一个或两个,问n阶有多少种方法)
斐波那契数列
如果只有1级台阶,那显然只有一种跳法。如果有2级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1级;另外一种就是一次跳2级。当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此n级台阶时的不同跳法的总数f(n)=f(n-1)+(f-2)。

//递归法
#include <stdio.h>
long f(int n)
{
	if(n==1)
	return 1;
	if(n==2)
	return 2;
	if(n>=2)
	{
		return f(n-1)+f(n-2); 
	}
 } 
 int main()
 {
 	int n,sum;
 	scanf("%d",&n);
 	sum=f(n);
 	printf("%d",sum);
 	return 0;
 }
//迭代法

6.css position的值与含义
a.static 默认值。没有定位,元素出现在正常的流中
b.absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
c.relative 生成相对定位的元素,相对于其正常位置进行定位。
d.fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。

猜你喜欢

转载自blog.csdn.net/qj6837/article/details/84575708