亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于EduCoder平臺的C語言實(shí)驗(yàn)自動(dòng)評測設(shè)計(jì)

        2021-03-04 08:41:46祝建華
        關(guān)鍵詞:程序學(xué)生

        盧 萍,祝建華

        (華中科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430074)

        1 借助 EduCoder平臺進(jìn)行 C語言實(shí)驗(yàn)評測的必要性

        “C語言程序設(shè)計(jì)”是高校計(jì)算機(jī)及相關(guān)專業(yè)的必修基礎(chǔ)課程,是數(shù)據(jù)結(jié)構(gòu)、編譯原理、算法分析、操作系統(tǒng)等課程的先導(dǎo)課程。該課程以C語言為工具,以培養(yǎng)學(xué)生計(jì)算機(jī)思維能力和編程解決實(shí)際問題的能力為目標(biāo)。課程涉及的內(nèi)容多、知識使用靈活、實(shí)際問題千變?nèi)f化,同一個(gè)問題可有多種實(shí)現(xiàn)方法,具有很強(qiáng)的實(shí)踐性和創(chuàng)造性。

        工程教育認(rèn)證標(biāo)準(zhǔn)對課程的實(shí)踐環(huán)節(jié)提出了更高要求[1-4]。針對C語言功能強(qiáng)且靈活的特點(diǎn),為了使學(xué)生準(zhǔn)確掌握每一個(gè)教學(xué)重難點(diǎn)知識,提出“著眼能力、精準(zhǔn)訓(xùn)練”的實(shí)踐模式[5]。在設(shè)計(jì)實(shí)驗(yàn)任務(wù)時(shí),要依據(jù)教學(xué)內(nèi)容,梳理知識點(diǎn),細(xì)化目標(biāo),明確要求。例如,要求用位運(yùn)算實(shí)現(xiàn)數(shù)據(jù)壓縮,旨在掌握位運(yùn)算的應(yīng)用,為用C語言編寫系統(tǒng)軟件打下基礎(chǔ)。

        實(shí)驗(yàn)?zāi)繕?biāo)的達(dá)成有賴于有效的監(jiān)督和評價(jià)機(jī)制,傳統(tǒng)上往往采用加大檢查力度的方法。但由于學(xué)生在學(xué)習(xí)能力、自覺性、主動(dòng)性等方面存在差異,傳統(tǒng)的人工檢查方式不僅增加了教師的負(fù)擔(dān),檢查結(jié)果不能及時(shí)反饋給學(xué)生,而且隨著作業(yè)量的增大、學(xué)生人數(shù)的增多,很難檢查到每一個(gè)學(xué)生,沒有查到的學(xué)生難免出現(xiàn)應(yīng)付交差現(xiàn)象,影響了教學(xué)質(zhì)量的提高[6-8]。

        如何創(chuàng)建有效的督促和激勵(lì)機(jī)制,推動(dòng)每個(gè)學(xué)生一步一個(gè)腳印地完成實(shí)驗(yàn),達(dá)到精準(zhǔn)訓(xùn)練、全面掌握知識點(diǎn)的目標(biāo),是C語言實(shí)踐教學(xué)中需著重考慮和解決的問題。EduCoder實(shí)踐教學(xué)平臺的出現(xiàn),給程序類課程實(shí)踐教學(xué)改革帶來了契機(jī)[9-11]。平臺提供的在線評測代碼、結(jié)果及時(shí)反饋、自動(dòng)統(tǒng)計(jì)成績和分析學(xué)生能力值等功能,以及類似于游戲闖關(guān)挑戰(zhàn)的實(shí)驗(yàn)形式,極大地增強(qiáng)了與學(xué)生的互動(dòng)性,提高了學(xué)生的學(xué)習(xí)興趣和參與度。平臺支持的自主設(shè)計(jì)評測腳本機(jī)制,也給教師提供了很大的自由度和發(fā)揮空間。教師可以按需設(shè)置實(shí)驗(yàn)任務(wù),實(shí)現(xiàn)評測的智能化和精準(zhǔn)化,推動(dòng)學(xué)生全面掌握教學(xué)重點(diǎn)和難點(diǎn)知識,并使他們變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí)。

        從2019年秋季開始,我們借助EduCoder平臺,實(shí)施了以學(xué)生為中心、以能力培養(yǎng)為導(dǎo)向、以精準(zhǔn)訓(xùn)練為核心的C語言實(shí)踐模式,設(shè)計(jì)了與理論課教學(xué)同步的10個(gè)實(shí)驗(yàn)作業(yè)及其評測腳本,每個(gè)實(shí)驗(yàn)包括3~8個(gè)題目,取得了很好的效果。

        本文將分析 EduCoder平臺的評測機(jī)制,并結(jié)合典型實(shí)例闡述如何根據(jù)訓(xùn)練目標(biāo)自行設(shè)計(jì)評測腳本,從而使學(xué)生能夠有針對性地進(jìn)行知識點(diǎn)練習(xí),促進(jìn)他們對知識點(diǎn)的精準(zhǔn)掌握,為綜合應(yīng)用所學(xué)知識解決實(shí)際工程問題打下良好的語言基礎(chǔ)。

        2 EduCoder平臺的評測機(jī)制

        EduCoder 是一個(gè)面向計(jì)算機(jī)專業(yè)方向開展教學(xué)、實(shí)驗(yàn)和實(shí)訓(xùn)活動(dòng)的工程教育平臺。該平臺將知識學(xué)習(xí)與動(dòng)手實(shí)踐相結(jié)合,支持教師按需自主創(chuàng)建實(shí)踐課程,并根據(jù)課程內(nèi)容設(shè)計(jì)并發(fā)布實(shí)驗(yàn)任務(wù)。學(xué)生通過登錄平臺,可以隨時(shí)隨地在線編寫代碼完成實(shí)驗(yàn)任務(wù)。平臺可自動(dòng)編譯、執(zhí)行和評測代碼,并立即反饋評測結(jié)果,學(xué)生可根據(jù)錯(cuò)誤信息提示修改代碼并繼續(xù)測試。在整個(gè)實(shí)驗(yàn)過程中,平臺會(huì)實(shí)時(shí)記錄每個(gè)學(xué)生的活動(dòng)軌跡,如提交評測的次數(shù)、每次評測存在的問題、實(shí)驗(yàn)時(shí)間、是否查看參考答案、最近通過的代碼、最終成績等,并形成詳細(xì)報(bào)告和統(tǒng)計(jì)圖表,以便教師充分掌握學(xué)生的實(shí)驗(yàn)進(jìn)度、存在問題和學(xué)習(xí)效果等,并據(jù)此分析教學(xué)難點(diǎn)、調(diào)整教學(xué)策略、改進(jìn)課堂教學(xué)方法等,從而進(jìn)一步提高教學(xué)質(zhì)量。

        EduCoder平臺采用的評測方法是測試用例法,即用數(shù)據(jù)集測試程序的正確性。測試用數(shù)據(jù)集應(yīng)完備,應(yīng)能全方位檢測算法的正確性,應(yīng)覆蓋程序執(zhí)行的各種情況。比如閏年的判斷,有普通的非閏年,如2019;還有100的倍數(shù)的非閏年,如1900;有普通閏年,如2008;還有世紀(jì)閏年,如2000。如果考慮不全面,則會(huì)使錯(cuò)誤的程序也能夠通過。平臺將會(huì)用每組測試用例執(zhí)行程序,并將程序的實(shí)際輸出結(jié)果與正確輸出結(jié)果進(jìn)行對比,全部測試用例結(jié)果正確的將獲得通關(guān),否則會(huì)將失敗的測試用例反饋給學(xué)生。

        EduCoder平臺用來測試的文件有學(xué)員任務(wù)文件和評測執(zhí)行文件兩類。設(shè)置任務(wù)時(shí),應(yīng)為每一個(gè)題目建立一個(gè)文件夾,如 src/step1、src/step2等,每個(gè)題目的文件放在對應(yīng)的文件夾下。學(xué)員任務(wù)文件是學(xué)生編寫代碼用的,里面的內(nèi)容(可以為空)將直接顯示在代碼區(qū)域,需要學(xué)生在其中編寫代碼。評測執(zhí)行文件是需要執(zhí)行的平臺腳本,根據(jù)執(zhí)行結(jié)果判斷程序的正確性,學(xué)生對該文件只能查看,不能修改。評測執(zhí)行文件也可以是學(xué)員任務(wù)文件,也就是直接運(yùn)行學(xué)生寫的程序,或者是由教師設(shè)計(jì)的用來測試學(xué)生代碼的腳本文件。通過自行設(shè)計(jì)評測文件可以精準(zhǔn)地達(dá)到訓(xùn)練某個(gè)知識點(diǎn)的教學(xué)目標(biāo)。

        3 表達(dá)式的自動(dòng)評測

        表達(dá)式是C語言一個(gè)非常重要的程序元素,它貫穿在C語言教學(xué)的各個(gè)章節(jié),各種流程控制語句的執(zhí)行條件都要用表達(dá)式來描述,表達(dá)式還可以單獨(dú)構(gòu)成表達(dá)式語句。C語言提供了34種運(yùn)算符,既能實(shí)現(xiàn)其他高級語言的運(yùn)算,也能實(shí)現(xiàn)匯編語言的底層位運(yùn)算,再加上一些特有的運(yùn)算符,使C語言的運(yùn)算能力非常強(qiáng),表達(dá)式類型多樣化。靈活使用各種運(yùn)算符寫出實(shí)現(xiàn)特定功能的表達(dá)式是一項(xiàng)重要的技能。

        在講授運(yùn)算符和表達(dá)式后,就要訓(xùn)練學(xué)生寫C語言表達(dá)式的能力。根據(jù)平臺的評測架構(gòu),可以設(shè)計(jì)兩種方式,第一種方式是學(xué)員任務(wù)文件是一個(gè)完整程序框架,學(xué)生在其中完成代碼填空(填寫表達(dá)式),該文件作為評測執(zhí)行文件;第二種方式是學(xué)員任務(wù)文件用.h,文件內(nèi)容為空或者包含一些注釋(說明相關(guān)變量的類型),只需要學(xué)生填寫一個(gè)表達(dá)式,而評測執(zhí)行文件是針對該實(shí)驗(yàn)?zāi)繕?biāo)設(shè)計(jì)的一個(gè)完整程序,可以使用#include把學(xué)員任務(wù)文件包含進(jìn)來。相比較而言,后者效果更好,訓(xùn)練更精準(zhǔn)。

        【示例1】任務(wù)描述:寫一個(gè)表達(dá)式,求三個(gè)整數(shù)a、b和c中的最大值。

        訓(xùn)練目標(biāo)是使學(xué)生掌握條件運(yùn)算符(?:)的使用,這是一個(gè)三目運(yùn)算符,可以用來代替if語句實(shí)現(xiàn)某些分支運(yùn)算。

        將學(xué)員任務(wù)文件命名為 step1_stu.h,在 src/step1文件夾下,里面沒有任何語句,只有一些注釋,學(xué)生需填寫一個(gè)條件表達(dá)式,通過設(shè)計(jì)評測腳本使得學(xué)生只能用條件表達(dá)式。將評測執(zhí)行文件命名為step1_main.c,也在src/step1文件夾下,它是針對該訓(xùn)練目標(biāo)而設(shè)計(jì)的腳本文件,里面包含變量聲明、輸入3個(gè)整數(shù)、輸出最大數(shù),中間用#include "step1_stu.h"把學(xué)生寫的表達(dá)式嵌入進(jìn)來,賦值給變量 x,其后加分號構(gòu)成一條賦值表達(dá)式語句,該文件內(nèi)容如圖1所示。

        圖1 示例1的評測執(zhí)行文件內(nèi)容

        學(xué)生是不能修改評測腳本的,該設(shè)計(jì)使得學(xué)生在學(xué)員任務(wù)文件中只能寫一個(gè)表達(dá)式,因而不能使用 if語句,如果使用if語句,系統(tǒng)則會(huì)報(bào)語法錯(cuò),這樣就可以非常精準(zhǔn)地達(dá)到訓(xùn)練寫條件表達(dá)式的教學(xué)目標(biāo)。

        4 自定義函數(shù)的自動(dòng)評測

        在C語言中實(shí)現(xiàn)模塊化程序設(shè)計(jì)的手段是編寫函數(shù),即把每一個(gè)模塊設(shè)計(jì)成一個(gè)函數(shù),完成總?cè)蝿?wù)的程序是由一個(gè)主函數(shù)和若干其他函數(shù)組成的。主函數(shù)比較簡單,起著任務(wù)調(diào)度的總控作用,其他函數(shù)將最終直接或間接被主函數(shù)調(diào)用,以解決總?cè)蝿?wù)。這種模塊化的程序結(jié)構(gòu)增強(qiáng)了程序的可讀性、可維護(hù)性和可擴(kuò)充性。學(xué)會(huì)設(shè)計(jì)和編寫函數(shù)非常重要,在講授完函數(shù)后,需要訓(xùn)練學(xué)生用函數(shù)去實(shí)現(xiàn)特定的功能。

        【示例 2】任務(wù)描述:定義函數(shù) digit(n,k),求n中從右端開始的第k個(gè)數(shù)字的值(k從1開始),如果k超過了n的位數(shù),則函數(shù)返回–1;否則返回n中第k個(gè)數(shù)字。例如:digit(345876,4)=5,digit(345,4)= –1。

        訓(xùn)練目標(biāo)是掌握函數(shù)的定義,根據(jù)要求編寫自定義函數(shù),包括return語句的使用。

        將學(xué)員任務(wù)文件命名為 step2_stu.h,在 src/step2文件夾下,里面只有函數(shù)的頭部注釋,學(xué)生需按照規(guī)定的接口編碼實(shí)現(xiàn)函數(shù)功能。該文件內(nèi)容如圖2所示。

        圖2 示例2的學(xué)員任務(wù)文件內(nèi)容

        評測執(zhí)行文件命名為step2_main.c,也在src/step2文件夾下,里面包含變量聲明、函數(shù)調(diào)用和調(diào)用前后的數(shù)據(jù)輸入輸出,在 mian函數(shù)的前面用#include"step2_stu.h"嵌入學(xué)生定義的函數(shù),該文件內(nèi)容如圖3所示。

        圖3 示例2的評測執(zhí)行文件內(nèi)容

        這樣,學(xué)生在任務(wù)文件中就只能按要求編寫函數(shù),從而達(dá)到訓(xùn)練目標(biāo)。

        EduCoder的測評原理是運(yùn)行評測執(zhí)行文件,在程序執(zhí)行過程中讀入預(yù)設(shè)的測試數(shù)據(jù),通過將程序輸出結(jié)果與正確結(jié)果進(jìn)行對比來決定是否通關(guān)。

        5 帶參main函數(shù)的自動(dòng)評測

        在針對授課知識點(diǎn)設(shè)計(jì)實(shí)驗(yàn)任務(wù)過程中,發(fā)現(xiàn)帶參main函數(shù)比較特殊,平臺無法直接測試其功能,學(xué)生即使定義了帶參main函數(shù),也被當(dāng)作無參main函數(shù)執(zhí)行。為此,提出了一種能夠在 EduCoder平臺下間接測試帶參main函數(shù)的方法,訓(xùn)練學(xué)生編寫和使用帶參數(shù)的main函數(shù),并給予自動(dòng)評測。

        5.1 帶參main函數(shù)的特點(diǎn)

        表示和處理 main函數(shù)的參數(shù)是指針數(shù)組和二級指針的一個(gè)重要應(yīng)用。有些操作系統(tǒng),包括UNIX和MS-DOS,需要用戶在命令行界面輸入?yún)?shù)來啟動(dòng)一個(gè)程序的執(zhí)行,這些參數(shù)被傳遞給程序,供程序分析處理。命令行界面需要用戶記憶操作命令,不如圖形界面使用方便,但能節(jié)省計(jì)算機(jī)系統(tǒng)資源,在熟記命令的前提下,使用命令行界面的操作速度更快。所以,圖形界面的操作系統(tǒng)不僅保留了命令行界面,而且還加強(qiáng)了操作命令的功能[12]。帶參 main函數(shù)的定義形式為:

        main函數(shù)具有兩個(gè)形參,第1個(gè)參數(shù)argc代表命令行中參數(shù)(即字符串)的個(gè)數(shù),第2個(gè)參數(shù)是字符指針數(shù)組 argv,argv[i]指向命令行中第 i個(gè)字符串。假定有一個(gè)名為copy的程序,在Windows下運(yùn)行該程序的命令行如下:

        該命令行有3個(gè)參數(shù),第1個(gè)參數(shù)copy是可執(zhí)行程序名,其后的abc.txt和def.txt是程序執(zhí)行所需的參數(shù)。該命令行啟動(dòng)copy程序后,會(huì)將3傳給argc,argv[0]指向串“copy”,argv[1]指向串“abc.txt”,argv[2]指向串“def.txt”,然后執(zhí)行程序,實(shí)現(xiàn)將文件 abc.txt的內(nèi)容復(fù)制到文件def.txt中。

        可見,帶參main函數(shù)被系統(tǒng)調(diào)用時(shí),需要在命令行中輸入數(shù)據(jù)來啟動(dòng)程序的執(zhí)行,而這些數(shù)據(jù)被傳遞給main函數(shù)。命令行中輸入不同的參數(shù),程序?qū)?zhí)行不同的功能。在 EduCoder下設(shè)置實(shí)驗(yàn)任務(wù)時(shí),不能設(shè)置命令行的參數(shù),只能設(shè)置測試集數(shù)據(jù),測試數(shù)據(jù)是main函數(shù)執(zhí)行后由輸入函數(shù)(getchar、scanf等)讀取的,而命令行的參數(shù)是操作系統(tǒng)讀取并傳給main函數(shù)的,兩種獲取數(shù)據(jù)的方式截然不同。

        根據(jù)帶參main函數(shù)的特點(diǎn),提出的這種通過設(shè)計(jì)評測腳本的間接測試方法,有助于學(xué)生精準(zhǔn)掌握命令行參數(shù)的作用、參數(shù)的傳遞機(jī)制以及帶參main函數(shù)的編寫。

        5.2 評測策略及腳本的設(shè)計(jì)

        根據(jù)命令行參數(shù)傳遞原理,結(jié)合 EduCoder評測機(jī)制,提出如下在EduCoder下對帶參main函數(shù)功能的測試策略:①將命令行參數(shù)作為測試數(shù)據(jù);②學(xué)生編寫等效于本地帶參main函數(shù)的main0函數(shù),即在本地環(huán)境調(diào)試時(shí)是main,提交平臺測試時(shí)將 main改為main0即可;③設(shè)計(jì)一個(gè)main函數(shù)作為測試腳本,模擬操作系統(tǒng)讀取和存儲(chǔ)命令行參數(shù),對main0進(jìn)行測試,命令行參數(shù)就是設(shè)置的測試數(shù)據(jù)。

        main函數(shù)需要模擬命令行參數(shù)的整個(gè)處理過程,包括從測試數(shù)據(jù)(即命令行參數(shù))中讀取字符、識別出參數(shù)字符串、統(tǒng)計(jì)字符串個(gè)數(shù)、動(dòng)態(tài)分配內(nèi)存存儲(chǔ)字符串、記錄字符串的首地址等,再用獲取的參數(shù)個(gè)數(shù)和字符串?dāng)?shù)組作參數(shù),調(diào)用main0函數(shù)。main中聲明變量n保存字符串個(gè)數(shù),字符指針數(shù)組inputStr保存各字符串的首地址,將n傳給main0的形參argc,inputStr傳給argv,調(diào)用main0函數(shù)(即帶參main函數(shù)),從而啟動(dòng)main0的執(zhí)行(相當(dāng)于main函數(shù)被系統(tǒng)調(diào)用)。

        main0函數(shù)等價(jià)于帶參main函數(shù),學(xué)生要在自己的編程環(huán)境中寫帶參main函數(shù),即將main函數(shù)代碼粘貼到 EduCoder編輯器,當(dāng)測試腳本對其進(jìn)行自動(dòng)測試時(shí),把main函數(shù)的名字改為main0即可。因此,學(xué)生也可以先在本地環(huán)境實(shí)現(xiàn)帶參 main函數(shù)的功能并調(diào)試通過后,再將main修改為main0,提交平臺進(jìn)行自動(dòng)測試。

        【示例3】任務(wù)描述:編寫一個(gè)程序,名為strcat,用命令行參數(shù)實(shí)現(xiàn)至少兩個(gè)字符串的連接,命令行為:

        strcat str1 str2 str3 ...

        其中,strcat是命令名,即可執(zhí)行程序名,str1、str2、str3、 ...是被連接的字符串,每一個(gè)字符串的長度不超過50,規(guī)定連接順序?yàn)橛疫叺拇来芜B接到左邊串的末尾。例如,

        命令行輸入:strcat abc def gh

        連接之后形成新串并輸出:abcdefgh

        訓(xùn)練目標(biāo)是掌握帶參函數(shù)的定義和命令行參數(shù)的傳遞,并初步掌握動(dòng)態(tài)存儲(chǔ)分配的概念及其應(yīng)用,為后續(xù)結(jié)構(gòu)指針的應(yīng)用打下基礎(chǔ)。

        編程要求:學(xué)生編寫帶參main0函數(shù)(若在本地調(diào)試則為main函數(shù))來連接命令行中的多個(gè)字符串,連接之后的新串無冗余地存儲(chǔ)到用 malloc動(dòng)態(tài)分配的空間,并將該空間首地址賦值給外部指針p,指針p在評測腳本中定義,連接后的新串也在腳本文件中輸出。

        評測執(zhí)行文件命名為 step3_main.c,文件內(nèi)容見圖 4和圖5。

        圖4 示例3的評測執(zhí)行文件內(nèi)容之一

        圖5為Begin ...End之間的代碼模擬命令行參數(shù)的讀入和參數(shù)串的存儲(chǔ)。

        圖5 示例3的評測執(zhí)行文件內(nèi)容之二

        因此,學(xué)生只有深入理解帶參main函數(shù)這一教學(xué)重點(diǎn)和難點(diǎn)知識,并學(xué)會(huì)使用動(dòng)態(tài)存儲(chǔ)分配函數(shù),代碼才能通過測試。測試數(shù)據(jù)若為:strcat abc def gh,則輸出結(jié)果應(yīng)為:abcdefgh。

        6 結(jié)語

        基于 EduCoder的實(shí)踐模式經(jīng)過 2019年秋季和2020年春季兩個(gè)學(xué)期的試行,取得了較好的效果,受到學(xué)生的歡迎??荚嚱Y(jié)果表明,經(jīng)過知識點(diǎn)的精準(zhǔn)訓(xùn)練,學(xué)生對一些難點(diǎn)知識,如位運(yùn)算、二級指針、帶參main函數(shù)、動(dòng)態(tài)分配等掌握情況良好,成績得到明顯提高,達(dá)到了預(yù)期目標(biāo)。該項(xiàng)改革對教師來說,可以使他們從繁重的督促檢查中解脫出來,能更好地研究教學(xué)教法和答疑解惑,提高教學(xué)質(zhì)量和教學(xué)效果;對學(xué)生來說,既可促進(jìn)他們?nèi)嬲莆战虒W(xué)重點(diǎn)和難點(diǎn),又可培養(yǎng)獨(dú)立思考和自主學(xué)習(xí)的習(xí)慣,提高分析和解決問題的能力。

        猜你喜歡
        程序學(xué)生
        快把我哥帶走
        試論我國未決羈押程序的立法完善
        《李學(xué)生》定檔8月28日
        電影(2018年9期)2018-11-14 06:57:21
        趕不走的學(xué)生
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        學(xué)生寫話
        學(xué)生寫的話
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        亚洲欧美日韩高清专区一区| 亚洲国产一区二区视频| 在线观看一区二区三区视频| 国产乱人伦偷精品视频免观看| 国99精品无码一区二区三区| 99热在线观看| 中国女人做爰视频| 国产亚洲日韩在线三区| 97超级碰碰人妻中文字幕| 国产精品大屁股1区二区三区| 中文字幕av无码一区二区三区电影| 蜜桃视频在线免费观看一区二区| 国产成人一区二区三区| 最新国产精品拍自在线观看 | 97超碰精品成人国产| 精品久久久久久亚洲综合网| 玩弄放荡人妻少妇系列| 国产午夜影视大全免费观看 | 亚洲国产精品成人一区二区三区| 日韩av在线亚洲女同| 蜜桃尤物在线视频免费看| 色欲欲www成人网站| 特黄a级毛片免费视频| 免费 无码 国产精品| 69精品国产乱码久久久| 香港三日本三级少妇三级视频| 亚州综合激情另类久久久| av在线免费播放网站| 日本免费大片一区二区三区| 亚洲最大中文字幕熟女| 亚洲av无码专区在线播放中文 | 熟妇与小伙子露脸对白| 中文字幕av长濑麻美| 亚洲欧美国产国产综合一区| 中文字幕在线日韩| 蜜桃视频一区二区三区在线| 亚洲一二三区免费视频| 国产精品毛片无遮挡| 精品麻豆国产色欲色欲色欲www| 在线精品免费观看| 免费av网址一区二区|