青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

C++查缺補漏4,趕緊的

Posted on 2012-04-05 14:54 RTY 閱讀(846) 評論(0)  編輯 收藏 引用 所屬分類: 編程常識C/C++轉載隨筆

請說出const與#define 相比,有何優點?
答案:
1) const 常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產生意料不到的錯誤。
      2) 有些集成化的調試工具可以對const 常量進行調試,但是不能對宏常量進行調試。

在8086 匯編下,邏輯地址和物理地址是怎樣轉換的?(Intel)
答案:通用寄存器給出的地址,是段內偏移地址,相應段寄存器地址*10H+通用寄存器內地址,就得到了真正要訪問的地址。

當一個類A 中沒有生命任何成員變量與成員函數,這時sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什么沒有讓它為零。(Autodesk)
答案:肯定不是零。舉個反例,如果是零的話,聲明一個class A[10]對象數組,而每一個對象占用的空間是零,這時就沒辦法區分A[0],A[1]…了。

 描述內存分配方式以及它們的區別?
1) 從靜態存儲區域分配。內存在程序編譯的時候就已經分配好,這塊內存在程序的整個運行期間都存在。例如全局變量,static 變量
2) 在棧上創建。在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置于處理器的指令集。
3) 從堆上分配亦稱動態內存分配。程序在運行的時候用malloc 或new 申請任意多少的內存,程序員自己負責在何時用free 或delete 釋放內存。動態內存的生存期由程序員決定,使用非常靈活,但問題也最多。

 main 函數執行以前,還會執行什么代碼?
答案:全局對象的構造函數會在main 函數之前執行。

 C++是不是類型安全的?
答案:不是。兩個不同類型的指針之間可以強制轉換(用reinterpret cast)。C#是類型安全的。

 

有哪幾種情況只能用intialization list 而不能用assignment?

 

答案:當類中含有const、reference 成員變量;基類的構造函數都需要初始化表。

define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?
答案:i 為30

New delete 與malloc free 的聯系與區別?
答案:都是在堆(heap)上進行動態的內存操作。用malloc函數需要指定內存分配的字節數并且不能初始化對象,new 會自動調用對象的構造函數。delete 會調用對象的destructor,而free 不會調用對象的destructor.

 

1、寫一個“標準”宏,這個宏輸入兩個參數并返回較小的一個。
.#define Min(X, Y) ((X)>(Y)?(Y):(X))//結尾沒有;
2、嵌入式系統中經常要用到無限循環,你怎么用C編寫死循環。
while(1){}或者for(;;)
3、關鍵字static的作用是什么?
定義靜態變量
4、關鍵字const有什么含意?
表示常量不可以修改的變量。
5、關鍵字volatile有什么含意?并舉出三個不同的例子?
提示編譯器對象的值可能在編譯器未監測到的情況下改變。

 


int (*s[10])(int) 表示的是什么啊
int (*s[10])(int) 函數指針數組,每個指針指向一個int func(int param)的函數。

 


1.有以下表達式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
請問下列表達式哪些會被編譯器禁止?為什么?
*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
*c 這是個什么東東,禁止
*d 說了是const, 禁止
e = &a 說了是const 禁止
const *f const =&a; 禁止
2.交換兩個變量的值,不使用第三個變量。即a=3,b=5,交換之后a=5,b=3;
有兩種解法, 一種用算術算法, 一種用^(異或)
a = a + b;
b = a - b;
a = a - b; 
or
a = a^b;// 只能對int,char..
b = a^b;
a = a^b;
or
a ^= b ^= a;
3.c和c++中的struct有什么不同?
c和c++中struct的主要區別是c中的struct不可以含有成員函數,而c++中的struct可以。c++中struct和class的主要區別在于默認的存取權限不同,struct默認為public,而class默認為private
4.#i nclude <stdio.h>
#i nclude <stdlib.h>
void getmemory(char *p)
{
    p=(char *) malloc(100);
    strcpy(p,"hello world");
}
int main( )
{
    char *str=NULL;
    getmemory(str);
    printf("%s/n",str);
    free(str);
    return 0;
   }
程序崩潰,getmemory中的malloc 不能返回動態內存, free()對str操作很危險
5.char szstr[10];
strcpy(szstr,"0123456789");
產生什么結果?為什么?
長度不一樣,會造成非法的OS
6.列舉幾種進程的同步機制,并比較其優缺點。
   原子操作 
信號量機制
   自旋鎖
   管程,會合,分布式系統

 

7.進程之間通信的途徑
共享存儲系統
消息傳遞系統
管道:以文件系統為基礎
11.進程死鎖的原因
資源競爭及進程推進順序非法
12.死鎖的4個必要條件
互斥、請求保持、不可剝奪、環路
13.死鎖的處理
鴕鳥策略、預防策略、避免策略、檢測與解除死鎖
15.   操作系統中進程調度策略有哪幾種?
FCFS(先來先服務),優先級,時間片輪轉,多級反饋
8.類的靜態成員和非靜態成員有何區別?
類的靜態成員每個類只有一個,非靜態成員每個對象一個
9.純虛函數如何定義?使用時應注意什么?
virtual void f()=0;
是接口,子類必須要實現
10.數組和鏈表的區別
數組:數據順序存儲,固定大小
連表:數據可以隨機存儲,大小可動態改變

 

12.ISO的七層模型是什么?tcp/udp是屬于哪一層?tcp/udp有何優缺點?
應用層
表示層
會話層
運輸層
網絡層
物理鏈路層
物理層
tcp /udp屬于運輸層
TCP 服務提供了數據流傳輸、可靠性、有效流控制、全雙工操作和多路復用技術等。
與 TCP 不同, UDP 并不提供對 IP 協議的可靠機制、流控制以及錯誤恢復功能等。由于 UDP 比較簡單, UDP 頭包含很少的字節,比 TCP 負載消耗少。
tcp: 提供穩定的傳輸服務,有流量控制,缺點是包頭大,冗余性不好
udp: 不提供穩定的服務,包頭小,開銷小  

 


1:(void *)ptr 和 (*(void**))ptr的結果是否相同?其中ptr為同一個指針
.(void *)ptr 和 (*(void**))ptr值是相同的
2:int main()
   {
    int x=3;
    printf("%d",x);
    return 1;
   
   }
問函數既然不會被其它函數調用,為什么要返回1?
mian中,c標準認為0表示成功,非0表示錯誤。具體的值是某中具體出錯信息

 


1,要對絕對地址0x100000賦值,我們可以用
(unsigned int*)0x100000 = 1234;
那么要是想讓程序跳轉到絕對地址是0x100000去執行,應該怎么做?
*((void (*)( ))0x100000 ) ( );
首先要將0x100000強制轉換成函數指針,即:
(void (*)())0x100000
然后再調用它:
*((void (*)())0x100000)();
用typedef可以看得更直觀些:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
2,已知一個數組table,用一個宏定義,求出數據的元素個數
#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))

 

面試題: 線程與進程的區別和聯系? 線程是否具有相同的堆棧? dll是否有獨立的堆棧?
進程是死的,只是一些資源的集合,真正的程序執行都是線程來完成的,程序啟動的時候操作系統就幫你創建了一個主線程。

 

每個線程有自己的堆棧。
DLL中有沒有獨立的堆棧,這個問題不好回答,或者說這個問題本身是否有問題。因為DLL中的代碼是被某些線程所執行,只有線程擁有堆棧,如果DLL中的代碼是EXE中的線程所調用,那么這個時候是不是說這個DLL沒有自己獨立的堆棧?如果DLL中的代碼是由DLL自己創建的線程所執行,那么是不是說DLL有獨立的堆棧?

 

以上講的是堆棧,如果對于堆來說,每個DLL有自己的堆,所以如果是從DLL中動態分配的內存,最好是從DLL中刪除,如果你從DLL中分配內存,然后在EXE中,或者另外一個DLL中刪除,很有可能導致程序崩潰

 


unsigned short A = 10;
printf("~A = %u\n", ~A);

 

char c=128; 
printf("c=%d\n",c);

 

輸出多少?并分析過程
第一題,~A =0xfffffff5,int值 為-11,但輸出的是uint。所以輸出4294967285
第二題,c=0x10,輸出的是int,最高位為1,是負數,所以它的值就是0x00的補碼就是128,所以輸出-128。
這兩道題都是在考察二進制向int或uint轉換時的最高位處理。

 

分析下面的程序:
void GetMemory(char **p,int num)
{
    *p=(char *)malloc(num);
    
}        
int main()
{
    char *str=NULL;
    
    GetMemory(&str,100);
    
    strcpy(str,"hello");
    
    free(str);
    
    if(str!=NULL)
    {
        strcpy(str,"world");
    }    
        
    printf("\n str is %s",str);
    getchar();
}    
問輸出結果是什么?希望大家能說說原因,先謝謝了
輸出str is world。
free 只是釋放的str指向的內存空間,它本身的值還是存在的.
所以free之后,有一個好的習慣就是將str=NULL.
此時str指向空間的內存已被回收,如果輸出語句之前還存在分配空間的操作的話,這段存儲空間是可能被重新分配給其他變量的,
盡管這段程序確實是存在大大的問題(上面各位已經說得很清楚了),但是通常會打印出world來。
這是因為,進程中的內存管理一般不是由操作系統完成的,而是由庫函數自己完成的。
當你malloc一塊內存的時候,管理庫向操作系統申請一塊空間(可能會比你申請的大一些),然后在這塊空間中記錄一些管理信息(一般是在你申請的內存前面一點),并將可用內存的地址返回。但是釋放內存的時候,管理庫通常都不會將內存還給操作系統,因此你是可以繼續訪問這塊地址的,只不過。。。。。。。。樓上都說過了,最好別這么干。

 

char a[10],strlen(a)為什么等于15?運行的結果

 

#i nclude "stdio.h"
#i nclude "string.h"

 

void main()
{

 

char aa[10];
printf("%d",strlen(aa));
}

 

sizeof()和初不初始化,沒有關系;
strlen()和初始化有關。

 


char (*str)[20];/*str是一個數組指針,即指向數組的指針.*/
char *str[20];/*str是一個指針數組,其元素為指針型數據.*/

 

long a=0x801010;
a+5=?
0x801010用二進制表示為:“1000 0000 0001 0000 0001 0000”,十進制的值為8392720,再加上5就是8392725羅

 

1)給定結構struct A 
{
       char t:4;
       char k:4;
       unsigned short i:8;
       unsigned long m;
};問sizeof(A) = ?
給定結構struct A 
{
       char t:4; 4位
       char k:4; 4位
       unsigned short i:8; 8位      
       unsigned long m; // 偏移2字節保證4字節對齊
}; // 共8字節
2)下面的函數實現在一個數上加一個數,有什么錯誤?請改正。
int add_n ( int n )
{
    static int i = 100;
    i += n;
    return i;
}
當你第二次調用時得不到正確的結果,難道你寫個函數就是為了調用一次?問題就出在 static上?

 


// 幫忙分析一下
#i nclude<iostream.h>
#i nclude <string.h>
#i nclude <malloc.h>
#i nclude <stdio.h>
#i nclude <stdlib.h>
#i nclude <memory.h>
typedef struct AA
{
        int b1:5;
        int b2:2;
}AA;
void main()
{
        AA aa;
        char cc[100];
         strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz");
       memcpy(&aa,cc,sizeof(AA));
        cout << aa.b1 <<endl;
        cout << aa.b2 <<endl;
}
答案是 -16和1
首先sizeof(AA)的大小為4,b1和b2分別占5bit和2bit.
經過strcpy和memcpy后,aa的4個字節所存放的值是:
0,1,2,3的ASC碼,即00110000,00110001,00110010,00110011
所以,最后一步:顯示的是這4個字節的前5位,和之后的2位
分別為:10000,和01
因為int是有正負之分  所以:答案是-16和1

 

求函數返回值,輸入x=9999; 
int func ( x )

    int countx = 0; 
    while ( x ) 
    { 
        countx ++; 
        x = x&(x-1); 
    } 
    return countx; 

結果呢?
知道了這是統計9999的二進制數值中有多少個1的函數,且有
9999=9×1024+512+256+15

 

9×1024中含有1的個數為2;
512中含有1的個數為1;
256中含有1的個數為1;
15中含有1的個數為4;
故共有1的個數為8,結果為8。
1000 - 1 = 0111,正好是原數取反。這就是原理。
用這種方法來求1的個數是很效率很高的。
不必去一個一個地移位。循環次數最少。

 

int a,b,c 請寫函數實現C=a+b ,不可以改變數據類型,如將c改為long int,關鍵是如何處理溢出問題
bool add (int a, int b,int *c)
{
*c=a+b;
return (a>0 && b>0 &&(*c<a || *c<b) || (a<0 && b<0 &&(*c>a || *c>b)));
}

 


分析:
struct bit 
{   int a:3; 
    int b:2; 
    int c:3; 
}; 
int main() 

bit s; 
char *c=(char*)&s; 
   cout<<sizeof(bit)<<endl;
*c=0x99;
   cout << s.a <<endl <<s.b<<endl<<s.c<<endl; 
     int a=-1;
   printf("%x",a);
return 0; 

輸出為什么是
4
1
-1
-4
ffffffff
因為0x99在內存中表示為 100 11 001 , a = 001, b = 11, c = 100
當c為有符合數時, c = 100, 最高1為表示c為負數,負數在計算機用補碼表示,所以c = -4;同理 
b = -1;
當c為有符合數時, c = 100,即 c = 4,同理 b = 3

 


位域 :   
有些信息在存儲時,并不需要占用一個完整的字節, 而只需占幾個或一個二進制位。例如在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省存儲空間,并使處理簡便,C語言又提供了一種數據結構,稱為“位域”或“位段”。所謂“位域”是把一個字節中的二進位劃分為幾個不同的區域, 并說明每個區域的位數。每個域有一個域名,允許在程序中按域名進行操作。 這樣就可以把幾個不同的對象用一個字節的二進制位域來表示。一、位域的定義和位域變量的說明位域定義與結構定義相仿,其形式為:     
struct 位域結構名     
{ 位域列表 };    
其中位域列表的形式為: 類型說明符 位域名:位域長度     
例如:     
struct bs    
{    
int a:8;    
int b:2;    
int c:6;    
};    
位域變量的說明與結構變量說明的方式相同。 可采用先定義后說明,同時定義說明或者直接說明這三種方式。例如:     
struct bs    
{    
int a:8;    
int b:2;    
int c:6;    
}data;    
說明data為bs變量,共占兩個字節。其中位域a占8位,位域b占2位,位域c占6位。對于位域的定義尚有以下幾點說明:   

 

1. 一個位域必須存儲在同一個字節中,不能跨兩個字節。如一個字節所剩空間不夠存放另一位域時,應從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如:     
struct bs    
{    
unsigned a:4    
unsigned :0 /*空域*/    
unsigned b:4 /*從下一單元開始存放*/    
unsigned c:4    
}    
在這個位域定義中,a占第一字節的4位,后4位填0表示不使用,b從第二字節開始,占用4位,c占用4位。   

 

2. 由于位域不允許跨兩個字節,因此位域的長度不能大于一個字節的長度,也就是說不能超過8位二進位。   

 

3. 位域可以無位域名,這時它只用來作填充或調整位置。無名的位域是不能使用的。例如:     
struct k    
{    
int a:1    
int :2 /*該2位不能使用*/    
int b:3    
int c:2    
};    
從以上分析可以看出,位域在本質上就是一種結構類型, 不過其成員是按二進位分配的。   

 

二、位域的使用位域的使用和結構成員的使用相同,其一般形式為: 位域變量名•位域名 位域允許用各種格式輸出。    
main(){    
struct bs    
{    
unsigned a:1;    
unsigned b:3;    
unsigned c:4;    
} bit,*pbit;    
bit.a=1;    
bit.b=7;    
bit.c=15;    
pri

 

改錯:
#i nclude <stdio.h>

 

int main(void) {

 

    int **p;
    int arr[100];

 

    p = &arr;

 

    return 0;
}
解答:
搞錯了,是指針類型不同,
int **p; //二級指針
&arr; //得到的是指向第一維為100的數組的指針
#i nclude <stdio.h>
int main(void) {
int **p, *q;
int arr[100];
q = arr;
p = &q;
return 0;
}

 


下面這個程序執行后會有什么錯誤或者效果:
#define MAX 255
int main()
{
   unsigned char A[MAX],i;//i被定義為unsigned char
   for (i=0;i<=MAX;i++)
      A[i]=i;
}
解答:死循環加數組越界訪問(C/C++不進行數組越界檢查)
MAX=255 
數組A的下標范圍為:0..MAX-1,這是其一..
其二.當i循環到255時,循環內執行:
A[255]=255;
這句本身沒有問題..但是返回for (i=0;i<=MAX;i++)語句時,
由于unsigned char的取值范圍在(0..255),i++以后i又為0了..無限循環下去.

 

struct name1{
   char str;
   short x;
   int   num;
}

 

struct name2{
   char str;
   int num;
   short x;
}

 

sizeof(struct name1)=8,sizeof(struct name2)=12
在第二個結構中,為保證num按四個字節對齊,char后必須留出3字節的空間;同時為保證整個結構的自然對齊(這里是4字節對齊),在x后還要補齊2個字節,這樣就是12字節。

 

intel:
A.c 和B.c兩個c文件中使用了兩個相同名字的static變量,編譯的時候會不會有問題?這兩個static變量會保存到哪里(棧還是堆或者其他的)?
static的全局變量,表明這個變量僅在本模塊中有意義,不會影響其他模塊。
他們都放在數據區,但是編譯器對他們的命名是不同的。
如果要使變量在其他模塊也有意義的話,需要使用extern關鍵字。

 

struct s1
{
int i: 8;
int j: 4;
int a: 3;
double b;
};

 

struct s2
{
int i: 8;
int j: 4;
double b;
int a:3;
};

 

printf("sizeof(s1)= %d\n", sizeof(s1));
printf("sizeof(s2)= %d\n", sizeof(s2));
result: 16, 24
第一個struct s1
{
int i: 8;
int j: 4;
int a: 3;
double b;
};
理論上是這樣的,首先是i在相對0的位置,占8位一個字節,然后,j就在相對一個字節的位置,由于一個位置的字節數是4位的倍數,因此不用對齊,就放在那里了,然后是a,要在3位的倍數關系的位置上,因此要移一位,在15位的位置上放下,目前總共是18位,折算過來是2字節2位的樣子,由于double是8字節的,因此要在相對0要是8個字節的位置上放下,因此從18位開始到8個字節之間的位置被忽略,直接放在8字節的位置了,因此,總共是16字節。

 

第二個最后會對照是不是結構體內最大數據的倍數,不是的話,會補成是最大數據的倍數

 

上面是基本問題,接下來是編程問題:

 


本人很弱,這幾個題也搞不定,特來求救:
1)讀文件file1.txt的內容(例如):
12
34
56
輸出到file2.txt:
56
34
12
(逆序)
2)輸出和為一個給定整數的所有組合
例如n=5
5=1+4;5=2+3(相加的數不能重復)
則輸出
1,4;2,3。
望高手賜教!!

 

第一題,注意可增長數組的應用.
#i nclude <stdio.h>
#i nclude <stdlib.h>

 

int main(void)
{
         int MAX = 10;
int *a = (int *)malloc(MAX * sizeof(int));
int *b;
    
FILE *fp1;
FILE *fp2;

 

fp1 = fopen("a.txt","r");
if(fp1 == NULL)
{printf("error1");
    exit(-1);
}

 

    fp2 = fopen("b.txt","w");
if(fp2 == NULL)
{printf("error2");
    exit(-1);
}

 

int i = 0;
    int j = 0;

 

while(fscanf(fp1,"%d",&a[i]) != EOF)
{
i++;
j++;
if(i >= MAX)
{
MAX = 2 * MAX;
b = (int*)realloc(a,MAX * sizeof(int));
if(b == NULL)
{
printf("error3");
exit(-1);
}
a = b;
}
}

 

for(;--j >= 0;)
   fprintf(fp2,"%d\n",a[j]);

 

fclose(fp1);
fclose(fp2);

 

return 0;
}

 

第二題.
#i nclude <stdio.h>

 

int main(void)
{
unsigned long int i,j,k;

 

printf("please input the number\n");
scanf("%d",&i);
    if( i % 2 == 0)
        j = i / 2;
else
j = i / 2 + 1;

 

printf("The result is \n");
    for(k = 0; k < j; k++)
     printf("%d = %d + %d\n",i,k,i - k);
return 0;
}

 

#i nclude <stdio.h>
void main()
{
unsigned long int a,i=1;
scanf("%d",&a);
if(a%2==0)
{
     for(i=1;i<a/2;i++)
     printf("%d",a,a-i);
}
else
for(i=1;i<=a/2;i++)
        printf(" %d, %d",i,a-i);
}

 

兄弟,這樣的題目若是做不出來實在是有些不應該, 給你一個遞規反向輸出字符串的例子,可謂是反序的經典例程.

 

void inverse(char *p)
{
    if( *p = = '\0' ) 
return;
    inverse( p+1 );
    printf( "%c", *p );
}

 

int main(int argc, char *argv[])
{
    inverse("abc\0");

 

    return 0;
}

 

借簽了樓上的“遞規反向輸出”
#i nclude <stdio.h>
void test(FILE *fread, FILE *fwrite)
{
        char buf[1024] = {0};
        if (!fgets(buf, sizeof(buf), fread))
}



青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            最新热久久免费视频| 麻豆精品一区二区av白丝在线| 亚洲一区二区三区国产| 亚洲激情亚洲| 99国产精品一区| 亚洲欧美日韩精品一区二区| 亚洲一区二区三区四区视频| 亚洲欧美日韩国产综合| 久久国产主播| 亚洲国产高清自拍| 亚洲毛片在线观看| 99re66热这里只有精品4| 在线视频亚洲欧美| 久久国产精品一区二区三区| 久久精品一区二区| 欧美精品三级日韩久久| 欧美日韩亚洲免费| 韩日欧美一区二区| 一区二区三区免费观看| 久久国产一区二区| 黄网站免费久久| 最新成人av在线| 亚洲欧美日韩精品在线| 久久久在线视频| 9久草视频在线视频精品| 欧美综合第一页| 欧美日韩二区三区| 黄色成人91| 亚洲欧美日韩一区在线观看| 欧美成人精品一区| 亚洲综合日本| 欧美日韩综合精品| 亚洲欧洲三级| 久久午夜羞羞影院免费观看| 在线亚洲自拍| 欧美激情日韩| 影音先锋久久久| 欧美一区二区视频在线观看| 亚洲国产日韩美| 久久国产一区二区三区| 欧美日韩一区二区三区视频| 亚洲国产精品一区二区www| 午夜久久美女| 夜夜夜久久久| 欧美精品成人一区二区在线观看| 国产网站欧美日韩免费精品在线观看 | 国内不卡一区二区三区| 中国女人久久久| 欧美韩国日本一区| 欧美在线观看www| 国产精品毛片大码女人| 一本一本a久久| 亚洲欧洲午夜| 欧美刺激午夜性久久久久久久| 国产亚洲欧美日韩美女| 性欧美超级视频| 一区二区三区精品国产| 欧美全黄视频| 中文一区字幕| 一区二区三区四区精品| 欧美日韩精品在线| 一区二区三区福利| 亚洲人成啪啪网站| 欧美日韩国产成人高清视频| 91久久综合| 亚洲人成77777在线观看网| 免费成人小视频| 亚洲人成绝费网站色www| 美女性感视频久久久| 久久精品国产亚洲一区二区三区 | 欧美在线观看视频一区二区三区| 99精品欧美一区| 国产精品久久久久久户外露出| 亚洲欧美中文字幕| 亚洲免费在线观看视频| 欧美一区激情视频在线观看| 国产精品v欧美精品v日韩 | 国产麻豆精品theporn| 午夜国产一区| 性感少妇一区| 在线观看日韩国产| 91久久在线播放| 欧美新色视频| 欧美专区第一页| 久久国产一区| 亚洲精选一区| 亚洲一区三区视频在线观看| 国产亚洲aⅴaaaaaa毛片| 久久亚洲不卡| 欧美乱人伦中文字幕在线| 亚洲视频免费在线观看| 亚洲欧美日韩区| 亚洲电影免费观看高清完整版在线观看| 欧美国产综合一区二区| 欧美日韩一二三四五区| 欧美中文字幕不卡| 欧美成人综合一区| 欧美怡红院视频一区二区三区| 久久国产精品毛片| 99在线|亚洲一区二区| 欧美一区二区免费| 亚洲卡通欧美制服中文| 亚洲免费视频网站| 亚洲精品一二区| 香蕉国产精品偷在线观看不卡| 亚洲国产老妈| 欧美在线免费观看| 亚洲视频中文字幕| 美女网站久久| 久久久久久国产精品一区| 欧美日韩国产精品一区| 久久亚洲精品一区二区| 国产精品二区在线观看| 欧美高清视频| 国语自产精品视频在线看8查询8| 最新国产拍偷乱拍精品| 国产一区二三区| 亚洲性夜色噜噜噜7777| 亚洲精品久久嫩草网站秘色| 亚久久调教视频| 午夜精品久久久| 欧美日韩精品二区第二页| 欧美成人综合网站| 国内不卡一区二区三区| 亚洲一区www| 中文久久乱码一区二区| 久久永久免费| 免费日本视频一区| 精品福利电影| 久久精品国产2020观看福利| 亚洲伊人色欲综合网| 欧美黄色一区| 亚洲国产成人tv| 最新国产精品拍自在线播放| 久久另类ts人妖一区二区| 久久精品国产999大香线蕉| 国产精品欧美日韩一区| 亚洲小少妇裸体bbw| 亚洲一区二区伦理| 亚洲一区二区三区三| 亚洲激情视频在线播放| 欧美一区二区网站| 久久久久久国产精品一区| 亚洲乱码精品一二三四区日韩在线 | 亚洲午夜av在线| 国产精品va在线播放| 亚洲无人区一区| 午夜伦理片一区| 国产麻豆91精品| 久久精品一二三| 亚洲大片av| 一本在线高清不卡dvd | 亚洲电影欧美电影有声小说| 在线观看一区欧美| 欧美成人第一页| 一本色道久久综合一区| 亚洲欧美日韩国产精品 | 欧美大秀在线观看| 亚洲欧洲精品天堂一级| 亚洲视频欧洲视频| 国产日韩欧美另类| 久久亚洲精品伦理| 亚洲精品视频在线播放| 亚洲视频在线免费观看| 国产精品一区二区三区免费观看 | 亚洲欧美在线看| 韩日视频一区| 欧美freesex8一10精品| 妖精视频成人观看www| 欧美在线一级va免费观看| 亚洲国产成人高清精品| 欧美日韩中文字幕在线| 欧美一区二区播放| 亚洲黄色免费电影| 香蕉视频成人在线观看 | 亚洲国产日本| 国产精品sm| 蜜桃av噜噜一区| 亚洲一区精品电影| 欧美激情区在线播放| 欧美中文日韩| 亚洲天堂av在线免费观看| 国产一区二区三区网站| 欧美成人黑人xx视频免费观看| 在线视频你懂得一区二区三区| 久久亚洲国产成人| 亚洲欧美另类在线| 亚洲三级观看| 国内精品国语自产拍在线观看| 欧美人体xx| 另类av导航| 欧美一级淫片播放口| 亚洲日本欧美在线| 久久躁日日躁aaaaxxxx| 亚洲欧美国产精品桃花| 亚洲二区免费| 亚洲福利av| 亚洲精品综合在线| 亚洲高清二区| 国产精品视频xxx|