• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    測(cè)評(píng)系統(tǒng)揭秘
    ——從Python程序設(shè)計(jì)測(cè)評(píng)說(shuō)起

    2022-09-02 07:35:58虞穎健浙江省海寧市第一中學(xué)
    中國(guó)信息技術(shù)教育 2022年17期
    關(guān)鍵詞:程序代碼正確性程序設(shè)計(jì)

    虞穎健 浙江省海寧市第一中學(xué)

    倪俊杰 浙江省桐鄉(xiāng)市鳳鳴高級(jí)中學(xué)

    新一輪的課程改革大幅增加了高中信息技術(shù)新教材程序設(shè)計(jì)相關(guān)內(nèi)容的比重,大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能等內(nèi)容進(jìn)入了信息技術(shù)新版教材,新版教材的編程語(yǔ)言換成了在以上領(lǐng)域應(yīng)用廣泛的Python。Python程序設(shè)計(jì)教學(xué)在新課程的教學(xué)中具有舉足輕重的地位。程序設(shè)計(jì)測(cè)評(píng)系統(tǒng)能夠即時(shí)檢驗(yàn)學(xué)生編寫的程序代碼是否正確,教學(xué)需求也日益增強(qiáng)。相比傳統(tǒng)的課堂教學(xué)模式,采用程序測(cè)評(píng)系統(tǒng)的程序設(shè)計(jì)課堂教學(xué)能夠根據(jù)測(cè)評(píng)系統(tǒng)的實(shí)時(shí)反饋及時(shí)掌握學(xué)生的學(xué)習(xí)情況,進(jìn)而能更好地調(diào)整課堂教學(xué),提升課堂教學(xué)的有效性。

    ● 在線測(cè)評(píng)系統(tǒng)的需求

    在線測(cè)評(píng)系統(tǒng)(Online Judge,簡(jiǎn)稱OJ系統(tǒng))是目前廣泛使用的主流程序測(cè)評(píng)系統(tǒng)。OJ系統(tǒng)是一個(gè)在線判題系統(tǒng),用戶可以在線提交程序源代碼,系統(tǒng)通過(guò)預(yù)先設(shè)計(jì)的測(cè)試數(shù)據(jù)來(lái)檢驗(yàn)程序源代碼的正確性。用戶提交的程序在OJ系統(tǒng)下執(zhí)行時(shí)將受到比較嚴(yán)格的限制,包括運(yùn)行時(shí)間限制、內(nèi)存使用限制和安全限制等。用戶程序執(zhí)行的結(jié)果將被OJ系統(tǒng)捕捉并保存,然后再轉(zhuǎn)交給一個(gè)裁判程序。該裁判程序或者比較用戶程序的輸出數(shù)據(jù)和標(biāo)準(zhǔn)輸出樣例的差別,或者檢驗(yàn)用戶程序的輸出數(shù)據(jù)是否滿足一定的邏輯條件。國(guó)內(nèi)較為著名的OJ系統(tǒng)有POJ(北京大學(xué))、ZOJ(浙江大學(xué))、HDOJ(杭州電子科技大學(xué))。

    傳統(tǒng)的OJ系統(tǒng)經(jīng)過(guò)多年的發(fā)展,雖然功能較為完善,但應(yīng)用于中小學(xué)信息技術(shù)課堂教學(xué),存在如下問(wèn)題:①OJ系統(tǒng)用戶提交的程序代碼在服務(wù)器運(yùn)行,用戶較多情況下對(duì)服務(wù)器的性能有一定要求,需要配置專門的服務(wù)器,不符合大多數(shù)學(xué)校的實(shí)際情況。②OJ系統(tǒng)基于B/S架構(gòu),通常需要安裝數(shù)據(jù)庫(kù)和Web服務(wù)器并進(jìn)行必要的配置和部署;OJ系統(tǒng)用戶提交的程序代碼在執(zhí)行時(shí)有運(yùn)行時(shí)間、內(nèi)存使用、安全等的限制,需要在服務(wù)器上進(jìn)行配置。使用OJ系統(tǒng)對(duì)信息教師的專業(yè)能力要求較高。③OJ系統(tǒng)檢驗(yàn)的是用戶提交程序代碼的正確性,其中只有正確和錯(cuò)誤兩種結(jié)果,無(wú)法對(duì)程序設(shè)計(jì)填空的正確性進(jìn)行檢驗(yàn),而目前不少程序設(shè)計(jì)考題都為填空題,這就需要測(cè)評(píng)系統(tǒng)具有程序設(shè)計(jì)填空碼的評(píng)測(cè)功能。以上問(wèn)題在一定程度上阻礙了OJ系統(tǒng)在中小學(xué)信息技術(shù)課堂教學(xué)中的推廣與使用。

    要想讓廣大中小學(xué)信息技術(shù)教師能夠在課堂教學(xué)中使用程序測(cè)評(píng)系統(tǒng),提升課堂教學(xué)的有效性,需要開發(fā)一款適用于當(dāng)下信息技術(shù)課堂教學(xué)、使用門檻較低的程序測(cè)評(píng)系統(tǒng),該系統(tǒng)需要滿足如下需求:①系統(tǒng)無(wú)需高性能計(jì)算機(jī),無(wú)需服務(wù)器,在機(jī)房學(xué)生機(jī)或者教師機(jī)上即可運(yùn)行使用。②無(wú)需部署數(shù)據(jù)庫(kù)與Web服務(wù)器,無(wú)需煩瑣復(fù)雜的配置。③既能夠檢驗(yàn)提交的完整代碼的正確性,也能夠檢驗(yàn)程序設(shè)計(jì)填空的正確性。

    ● 在線測(cè)評(píng)系統(tǒng)的設(shè)計(jì)

    筆者根據(jù)浙江信息技術(shù)教學(xué)情況,設(shè)計(jì)并實(shí)現(xiàn)了Python程序設(shè)計(jì)測(cè)評(píng)系統(tǒng)——YYOJ系統(tǒng)。該系統(tǒng)有如下優(yōu)點(diǎn):①學(xué)生提交的程序代碼的正確性在學(xué)生使用的本地機(jī)器上檢驗(yàn),對(duì)運(yùn)行YYOJ系統(tǒng)數(shù)據(jù)庫(kù)和Web服務(wù)器的計(jì)算機(jī)性能沒(méi)有要求,YYOJ系統(tǒng)可以在機(jī)房任意一臺(tái)計(jì)算機(jī)上運(yùn)行,不需要配置專門的服務(wù)器,也無(wú)需對(duì)運(yùn)行YYOJ系統(tǒng)計(jì)算機(jī)的內(nèi)存、安全限制進(jìn)行配置。②YYOJ系統(tǒng)不需要安裝數(shù)據(jù)庫(kù)和Web服務(wù)器并進(jìn)行配置,它自帶數(shù)據(jù)庫(kù)和Web服務(wù)器的應(yīng)用程序。③YYOJ系統(tǒng)除了可以檢驗(yàn)學(xué)生提交的完整程序代碼的正確性,還可以檢驗(yàn)程序設(shè)計(jì)填空的正確性。此外,YYOJ系統(tǒng)對(duì)硬件設(shè)備要求較低,使用門檻不高且易于使用,特別適合浙江高中信息技術(shù)課堂教學(xué)。

    1.系統(tǒng)技術(shù)介紹

    YYOJ系統(tǒng)是基于B/S架構(gòu)的Web應(yīng)用程序,在開發(fā)過(guò)程中使用了Web框架、Web服務(wù)器、數(shù)據(jù)庫(kù)等技術(shù)。

    FastAPI是一個(gè)用于構(gòu)建Web API的現(xiàn)代、高性能的WEB框架,它實(shí)現(xiàn)了ASGI規(guī)范。雖然FastAPI的主要用途是用于構(gòu)建Web API,但是FastAPI也提供了對(duì)Jinja2、Mako等模板引擎的支持,能夠像Flask、Django一樣開發(fā)基于服務(wù)端渲染的Web應(yīng)用程序。

    Uvicorn是使用C和Python編寫的ASGI Web服務(wù)器。使用Uvicorn部署實(shí)現(xiàn)了ASGI規(guī)范的Web應(yīng)用程序。FastAPI實(shí)現(xiàn)了ASGI規(guī)范,所以,F(xiàn)astAPI開發(fā)的Web應(yīng)用程序能夠部署在Uvicorn中。Uvicorn與傳統(tǒng)的Web服務(wù)器不同,傳統(tǒng)的Web服務(wù)器如nginx、apache、IIS需要單獨(dú)安裝,Uvicorn不需要安裝,并且可以通過(guò)Python編碼的方式直接嵌入應(yīng)用程序中運(yùn)行。

    Nuitka是Python編寫的優(yōu)化Python編譯器,它能夠把Python代碼編譯生成為可執(zhí)行程序,而且通過(guò)Nuitka編譯生成的可執(zhí)行程序不需要安裝Python環(huán)境也能夠獨(dú)立運(yùn)行。Nuitka支持Python2與Python3,支持Windows、Linux與蘋果等主流操作系統(tǒng)。Nuitka的工作原理是把Python代碼編譯成C代碼,再把C代碼編譯成可執(zhí)行文件,生成的文件不能像.pyc文件一樣反編譯,因此安全性高,而且因?yàn)榫幾g成C代碼,所以生成的可執(zhí)行程序運(yùn)行速度會(huì)更快。

    Brython是用javascript編寫的Python編譯器和解析器。使用Brython,可以在瀏覽器中編譯和運(yùn)行Python代碼。

    SQLite是一個(gè)C語(yǔ)言庫(kù),它實(shí)現(xiàn)了一個(gè)小型、快速、自包含、高可靠性、功能齊全的SQL數(shù)據(jù)庫(kù)引擎。SQLite內(nèi)置于所有手機(jī)和大多數(shù)計(jì)算機(jī)中,并捆綁在人們每天使用的無(wú)數(shù)其他應(yīng)用程序中。SQLite不像MySQL、Postgres那樣需要開啟服務(wù)器提供數(shù)據(jù)庫(kù)服務(wù),它是無(wú)服務(wù)器的數(shù)據(jù)庫(kù),可以通過(guò)編程語(yǔ)言調(diào)用API直接與SQLite數(shù)據(jù)庫(kù)通信。

    總的來(lái)說(shuō),YYOJ系統(tǒng)是使用FastAPI開發(fā)的Web應(yīng)用程序,內(nèi)嵌了Uvicorn和SQLite,Uvicorn用于承載Web應(yīng)用程序,SQLite作為應(yīng)用程序的數(shù)據(jù)存儲(chǔ),因此,省去了安裝數(shù)據(jù)庫(kù)和Web服務(wù)器以及配置的步驟。YYOJ的源碼采用Nuitka編譯并生成可執(zhí)行程序,不需要安裝Python環(huán)境,使用時(shí)把可執(zhí)行程序拷貝到計(jì)算機(jī)上直接運(yùn)行即可。判題代碼在瀏覽器端通過(guò)Brython運(yùn)行檢驗(yàn)學(xué)生提交程序代碼的正確性,提交的程序代碼無(wú)需上傳到服務(wù)器后再進(jìn)行判題,減輕了服務(wù)器端的壓力。

    2.在線測(cè)評(píng)系統(tǒng)功能設(shè)計(jì)

    YYOJ系統(tǒng)是一個(gè)Python程序設(shè)計(jì)測(cè)評(píng)系統(tǒng),教師在系統(tǒng)中錄入Python程序設(shè)計(jì)的題目及其評(píng)判代碼,學(xué)生登錄系統(tǒng)根據(jù)題目要求編寫或完善程序并提交,系統(tǒng)根據(jù)教師提供的評(píng)判代碼對(duì)學(xué)生提交的程序進(jìn)行評(píng)判,檢驗(yàn)學(xué)生程序的正確性。YYOJ系統(tǒng)的功能主要包括學(xué)生界面功能、教師界面功能、第三方軟件實(shí)現(xiàn)的管理功能。

    ①在線運(yùn)行。學(xué)生可以輸入Python代碼并運(yùn)行查看執(zhí)行結(jié)果。該模塊輸入的Python代碼在網(wǎng)頁(yè)中運(yùn)行,因此不需要Python編程環(huán)境,在瀏覽器的環(huán)境下就可以運(yùn)行。開發(fā)該模塊主要是考慮學(xué)生如果不在機(jī)房或者不在學(xué)校,YYOJ系統(tǒng)只要部署在學(xué)校的服務(wù)器上,學(xué)生通過(guò)自己的計(jì)算機(jī)、平板、手機(jī)登錄YYOJ系統(tǒng)就可以練習(xí)Python代碼,而無(wú)需安裝Python編程環(huán)境。

    ②我要挑戰(zhàn)。學(xué)生可以選擇教師錄入系統(tǒng)中的題目進(jìn)行挑戰(zhàn)練習(xí),在學(xué)生提交Python代碼后,系統(tǒng)根據(jù)教師的判題代碼檢驗(yàn)學(xué)生提交代碼的正確性并反饋結(jié)果給學(xué)生。學(xué)生在課余時(shí)間可以使用該模塊開展自主編程練習(xí)。

    ③練習(xí)反饋。學(xué)生登錄之后才能使用。在“我要挑戰(zhàn)”的基礎(chǔ)上還添加了一項(xiàng)額外的功能:學(xué)生提交的Python代碼檢驗(yàn)的結(jié)果會(huì)保存到數(shù)據(jù)庫(kù)中,教師可以在后臺(tái)查看。

    教師功能必須在教師登錄后臺(tái)之后才能使用,教師功能主要包括以下內(nèi)容:

    ①題目查看。對(duì)系統(tǒng)中已經(jīng)錄入的題目提供分頁(yè)查看功能。

    ②錄入題目。提供錄入題目的功能。錄入的題目包括題目名稱、需要批閱的代碼、批閱代碼三塊內(nèi)容。如果代碼完全由學(xué)生編寫,“需要批閱的代碼”留空,如果代碼是一部分由學(xué)生完善,如程序設(shè)計(jì)填空,則教師在“需要批閱的代碼”中錄入無(wú)需學(xué)生完善的代碼部分并標(biāo)記需要完善的部分。“批閱代碼”是檢驗(yàn)學(xué)生代碼正確與否的評(píng)判代碼。

    ③修改題目。提供修改錄入的某個(gè)題目的功能。

    ④刪除題目。提供刪除某個(gè)題目的功能。

    ⑤查看做題情況。提供以班級(jí)為單位查看某個(gè)題目的評(píng)判結(jié)果的功能。

    ①教師管理。提供查看、添加、修改、刪除教師賬號(hào)的功能。

    ②班級(jí)管理。包括班級(jí)的查看、添加、修改、刪除功能。

    ③學(xué)生管理。包括學(xué)生的查看、添加、修改、刪除功能。

    考慮到Y(jié)YOJ系統(tǒng)的主要使用群體是信息技術(shù)教師,能夠使用數(shù)據(jù)庫(kù)管理軟件來(lái)管理數(shù)據(jù)庫(kù)中的數(shù)據(jù),并且YYOJ使用的是無(wú)需服務(wù)器的SQLite數(shù)據(jù)庫(kù),所以以上三項(xiàng)功能并未在系統(tǒng)中實(shí)現(xiàn),教師可以直接使用HeidiSQL或者DB Browser for SQLite這樣的SQLite數(shù)據(jù)庫(kù)管理工具來(lái)實(shí)現(xiàn)上述功能。

    ● 在線測(cè)評(píng)系統(tǒng)的實(shí)現(xiàn)

    YYOJ系統(tǒng)通過(guò)Brython在瀏覽器中運(yùn)行評(píng)判代碼以檢驗(yàn)學(xué)生提交代碼的正確性。當(dāng)學(xué)生點(diǎn)擊提交按鈕之后,Brython會(huì)將學(xué)生提交的代碼傳遞給教師編寫的評(píng)判代碼,并在瀏覽器中運(yùn)行評(píng)判代碼檢驗(yàn)學(xué)生提交的代碼是否正確,最后僅將評(píng)判的結(jié)果返回給服務(wù)器并保存在數(shù)據(jù)庫(kù)中。因?yàn)樵u(píng)判代碼在瀏覽器中運(yùn)行,所以減輕了服務(wù)器的壓力。

    YYOJ系統(tǒng)與傳統(tǒng)的OJ系統(tǒng)不同,YYOJ系統(tǒng)除了支持完整代碼正確性的評(píng)判,也支持程序設(shè)計(jì)填空正確性的評(píng)判。程序設(shè)計(jì)填空的答案通常不是唯一的,為了確保評(píng)判的正確性,教師需要編寫評(píng)判代碼,通過(guò)評(píng)判代碼來(lái)評(píng)判程序設(shè)計(jì)填空的正確性。在學(xué)生提交代碼之后,教師編寫的評(píng)判代碼在瀏覽器中運(yùn)行評(píng)判學(xué)生提交代碼的正確性,并通過(guò)AJAX請(qǐng)求將題目的編號(hào)、學(xué)生標(biāo)志以及題目正確與否等信息傳回服務(wù)端并保存在數(shù)據(jù)庫(kù)中,教師在后臺(tái)能夠查看學(xué)生的答題情況。

    評(píng)判代碼的編寫主要分為完整代碼的正確性評(píng)判和程序設(shè)計(jì)填空的正確性評(píng)判。

    1.完整代碼的正確性評(píng)判

    評(píng)判完整代碼的正確性的方式是檢驗(yàn)?zāi)承┳兞康闹祷蛘叱绦虻妮敵鲈诔绦蜻\(yùn)行后是否符合預(yù)期。

    ①根據(jù)變量值評(píng)判代碼正確性。

    某些問(wèn)題會(huì)將結(jié)果存儲(chǔ)到某個(gè)變量中,對(duì)于這樣的問(wèn)題,需要通過(guò)檢驗(yàn)變量?jī)?nèi)存儲(chǔ)的值來(lái)判斷代碼的正確性。

    例1,描述:在列表s中存儲(chǔ)[1, 10]范圍內(nèi)的所有偶數(shù);

    題目已有代碼:無(wú);

    學(xué)生提交代碼如圖1所示。

    圖1

    分析:該問(wèn)題希望在列表s中存儲(chǔ)[1,10]范圍內(nèi)的所有偶數(shù),當(dāng)程序運(yùn)行完畢之后,列表s的值為[10,8,6,4,2],要評(píng)判提交的代碼是否正確,只要判斷列表s中是否僅包含2、4、6、8、10這5個(gè)偶數(shù)即可。

    學(xué)生提交的代碼作為文本字符串存儲(chǔ)在變量src中提交給評(píng)判代碼,評(píng)判代碼通過(guò)exec函數(shù)運(yùn)行學(xué)生提交的代碼。exec是Python的內(nèi)置函數(shù),它能夠動(dòng)態(tài)地執(zhí)行存儲(chǔ)在字符串或文件中的 Python 語(yǔ)句。

    exec(src)

    通過(guò)上面的語(yǔ)句,學(xué)生提交的代碼已經(jīng)在評(píng)判代碼中運(yùn)行完畢,在評(píng)判代碼運(yùn)行的上下文環(huán)境中已經(jīng)存在變量s且它的值為[10,8,6,4,2]。評(píng)判代碼只需要判斷s的值是否僅包含2、4、6、8、10這5個(gè)偶數(shù)即可。

    在評(píng)判代碼中引入變量correct,將其賦值為False,假設(shè)代碼是錯(cuò)誤的。通過(guò)if語(yǔ)句檢驗(yàn)s的值是否僅包含2、4、6、8、10這5個(gè)偶數(shù),如果代碼正確,correct的值設(shè)置為True(如圖2)。

    圖2

    ②根據(jù)輸出評(píng)判代碼正確性。

    某些問(wèn)題需要將結(jié)果通過(guò)print函數(shù)直接輸出并顯示,對(duì)于這樣的問(wèn)題,需要檢驗(yàn)輸出是否正確。

    print函數(shù)的工作原理是將數(shù)據(jù)寫入sys.stdout流中,stdout是標(biāo)準(zhǔn)輸出流,默認(rèn)情況下stdout會(huì)把數(shù)據(jù)顯示在運(yùn)行當(dāng)前Python代碼的終端命令行窗口中。

    print("你好,世界!")

    等價(jià)于

    import sys

    sys.stdout.write("你好,世界! ")

    print函數(shù)的輸出顯示在屏幕上,沒(méi)有辦法對(duì)print函數(shù)的輸出進(jìn)行檢驗(yàn)。要評(píng)判學(xué)生提交的代碼是否正確需要對(duì)print函數(shù)的輸出進(jìn)行捕獲并將其放入某個(gè)變量?jī)?nèi)。

    如圖3所示的代碼自定了類MarkingOutput,改寫了sys.stdout的默認(rèn)行為,當(dāng)執(zhí)行print函數(shù)調(diào)用sys.stdout.write的時(shí)候,本來(lái)在屏幕上輸出的數(shù)據(jù)不再輸出到屏幕上,print函數(shù)的輸出被添加到MarkingOutput的實(shí)例out的屬性bufs列表中。上述代碼默認(rèn)包含在評(píng)判代碼中,評(píng)判代碼要判斷提交代碼的正確性只需要檢查out實(shí)例的bufs列表即可。

    圖3

    例2,描述:使用print輸出三個(gè)變量a、b、c的最大值;

    題目已有代碼:a, b, c = 2, 4, 6;

    學(xué)生提交代碼如下頁(yè)圖4所示。

    圖4

    分析:學(xué)生提交的代碼作為文本字符串存儲(chǔ)在變量src中提交給評(píng)判代碼,通過(guò)exec執(zhí)行學(xué)生提交的代碼。

    exec(src)

    通過(guò)上面的語(yǔ)句,學(xué)生提交的代碼已經(jīng)在評(píng)判代碼中運(yùn)行完畢。

    correct = False

    if sys.stdout.bufs[0] == str(max(a, b, c)):

    correct = True

    在評(píng)判代碼中引入變量correct,將其賦值為False,假設(shè)代碼是錯(cuò)誤的。本題最終結(jié)果僅僅輸出的a、b、c三個(gè)變量中的最大值,輸出的最大值保存在bufs列表的第一個(gè)元素中,要判斷提交的代碼是否正確,只需要判斷bufs列表的第一個(gè)元素是不是a、b、c三個(gè)變量的最大值即可。

    ③程序結(jié)果隨輸入改變的正確性評(píng)判。

    某些程序在運(yùn)行時(shí)需要預(yù)先給定一個(gè)輸入,程序代碼運(yùn)行的結(jié)果會(huì)隨著輸入的改變而改變,結(jié)果并不唯一。該類代碼在評(píng)判的時(shí)候,需要提供多組測(cè)試的輸入數(shù)據(jù),一一檢測(cè)其程序運(yùn)行結(jié)果是否與預(yù)期相符合,如果全部符合則代碼正確,否則代碼錯(cuò)誤。

    例3,描述:將十進(jìn)制自然數(shù)n(n是整型)轉(zhuǎn)化為二進(jìn)制數(shù)s(是字符串型)。

    題目已有代碼:

    n = 13

    s = ''

    學(xué)生提交代碼,如圖5所示。

    圖5

    分析:十進(jìn)制自然數(shù)n轉(zhuǎn)二進(jìn)制數(shù)s,其結(jié)果會(huì)隨著變量n的值的改變而改變,當(dāng)變量n的值為13的時(shí)候,s的值為"1101",但是如果僅僅判斷變量s的值為"1101"是無(wú)法達(dá)到判題效果的,提交的代碼中n的值有可能為任意一個(gè)整數(shù),如果不是13的情況下仍然判斷s的值是否為"1101"將得出錯(cuò)誤的判題結(jié)果。

    此類問(wèn)題的解決方法是提供一組測(cè)試輸入值及其對(duì)應(yīng)的結(jié)果,用提供的測(cè)試輸入值來(lái)替代原來(lái)的輸入值,運(yùn)行代碼檢驗(yàn)對(duì)應(yīng)的結(jié)果是否符合預(yù)期,如果提供的每個(gè)測(cè)試輸入值得到的結(jié)果都符合預(yù)期,則可以認(rèn)為提交代碼是正確的。

    對(duì)于例3,通過(guò)下面的代碼隨機(jī)生成10個(gè)測(cè)試輸入值(如圖6)。

    圖6

    學(xué)生提交的代碼作為文本字符串存儲(chǔ)在變量src中,通過(guò)如圖7所示的代碼使用test_input中的每個(gè)測(cè)試輸入來(lái)驗(yàn)證代碼的正確性。

    圖7

    其中,src_r=src.replace('n =13',f'n=j5i0abt0b')用測(cè)試輸入值替換學(xué)生提交代碼中變量n的輸入值,exec(src_r)運(yùn)行修改輸入數(shù)據(jù)后的提交代碼,s !=dtob(d)判斷提交代碼運(yùn)行的結(jié)果是否與提供輸入值得到的對(duì)應(yīng)結(jié)果一致,只要其中一次檢驗(yàn)結(jié)果不一致就可以確定提交代碼錯(cuò)誤,設(shè)置correct為False并退出循環(huán)。但以上代碼有一個(gè)缺陷,如果學(xué)生修改了“n=13”這一行代碼為“n=任意整數(shù)”,則上面的判題代碼無(wú)法得出正確的結(jié)果。對(duì)于“n=任意整數(shù)”的情況,需要使用正則表達(dá)式來(lái)進(jìn)行輸入值的替換。

    正則表達(dá)式,又稱規(guī)則表達(dá)式(RegularExpression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),是一種文本模式,包括普通字符(如a到z之間的字母)和特殊字符(稱為“元字符”),是計(jì)算機(jī)科學(xué)的一個(gè)概念。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列匹配某個(gè)句法規(guī)則的字符串,通常被用來(lái)檢索、替換那些符合某個(gè)模式(規(guī)則)的文本。

    在Python中使用正則表達(dá)式需要引入正則表達(dá)式的內(nèi)置庫(kù):

    import re

    然后將

    src_r = src.replace('n = 13', f'n = j5i0abt0b')

    這一行代碼修改為:

    re.sub('ns*=s*d+', f'n = j5i0abt0b', src)

    其中的sub函數(shù)用于替換符合模式的字符串。第一個(gè)參數(shù)“ns*=s*d+”是要尋找的模式,其中的“s”表示空格,“d”表示數(shù)字,“*”表示匹配零到多個(gè)字符,“+”表示匹配一到多個(gè)字符,“ns*=s*d+”的含義是“n+包含零到多個(gè)空格+=+包含零到多個(gè)空格+包含一到多個(gè)數(shù)字”(+號(hào)表示連接),第二個(gè)參數(shù)是要替換為的字符串,第三個(gè)參數(shù)是需要替換字符串的文本。通過(guò)以上代碼可知,不管n的值為何整數(shù),都能將其替換為測(cè)試輸入值。

    2.程序設(shè)計(jì)填空的評(píng)判

    評(píng)判程序設(shè)計(jì)填空的正確性的方法是先提取填空的程序段,再使用測(cè)試數(shù)據(jù)測(cè)試提取的程序段運(yùn)行能否達(dá)到預(yù)期的結(jié)果。

    例4,描述:二進(jìn)制數(shù)b轉(zhuǎn)換成十六進(jìn)制數(shù)h(填空題)。

    題目已有代碼如圖8所示。學(xué)生提交代碼如圖9所示。

    圖8

    圖9

    分析:程序設(shè)計(jì)填空的題目需要教師預(yù)先提供題目非填空部分的代碼,其中標(biāo)注的“#第1題”“#第2題”是為了方便判題程序提取學(xué)生填空的程序代碼。

    在學(xué)生提交代碼之后,判題程序會(huì)使用正則表達(dá)式提取其中填空的程序代碼,并利用編寫的判題代碼判斷學(xué)生填寫的程序代碼是否正確。圖10所示是針對(duì)例4填空2編寫的判題代碼的核心代碼。

    圖10

    re.search函數(shù)的作用是找到與正則表達(dá)式匹配的字符串,第一個(gè)參數(shù)中的“(?P.+?)”表示捕獲命名組,用于提取查找到的程序代碼其中的一部分,捕獲組的名稱是b2,“.+”表示捕獲的內(nèi)容是一到多個(gè)字符。第一個(gè)參數(shù)“^s{8}ns*=s*(?P.+?)s*#第2題s* ”表示的含義是“行首以8個(gè)空格開頭+n+零到多個(gè)空格+=+零到多個(gè)空格+(命令捕獲組b2)+零到多個(gè)空格+#第2題+零到多個(gè)空格+換行符”(其中的+號(hào)表示連接)。第二個(gè)參數(shù)“src”是需要查找程序代碼段即學(xué)生提交的代碼,第三個(gè)參數(shù)“re.M”表示多行匹配。當(dāng)執(zhí)行re.search函數(shù)后,通過(guò)match.group("b2")獲得捕獲命名組的內(nèi)容即學(xué)生填空的代碼“chr(55+n)”。

    該填空主要功能是將10~15的十進(jìn)制數(shù)字轉(zhuǎn)化成對(duì)應(yīng)的16進(jìn)制數(shù)的A~F。for循環(huán)中n的變化范圍為10~15。通過(guò)exec將填空代碼“chr(55+n)”執(zhí)行結(jié)果賦值給變量c,if語(yǔ)句判斷c是不是十進(jìn)制數(shù)n對(duì)應(yīng)的十六進(jìn)制數(shù)的大寫或小寫字母,不是則程序錯(cuò)誤,變量ec累加1,退出for循環(huán)。for循環(huán)退出后變量ec的值為0表示程序正確,設(shè)置變量b2_correct的值為True。

    ● 結(jié)語(yǔ)

    隨著信息技術(shù)(信息科技)課程越來(lái)越得到重視,教師對(duì)程序設(shè)計(jì)在線測(cè)評(píng)系統(tǒng)的需求也愈發(fā)強(qiáng)烈。YYOJ系統(tǒng)是根據(jù)多年實(shí)際教學(xué)經(jīng)驗(yàn)與廣大一線信息技術(shù)教師的需求設(shè)計(jì)開發(fā)的,該程序設(shè)計(jì)評(píng)測(cè)系統(tǒng)除了支持常規(guī)的完整程序代碼的評(píng)判,還支持程序設(shè)計(jì)填空題的評(píng)判,符合當(dāng)下學(xué)考、高考教學(xué)的實(shí)際。該系統(tǒng)無(wú)需安裝,無(wú)需數(shù)據(jù)庫(kù)與Web服務(wù)器,只需要一臺(tái)機(jī)房的普通計(jì)算機(jī)即可零配置快速部署使用,適用于在機(jī)房開展的程序設(shè)計(jì)教學(xué),能有效提升課堂教學(xué)的效率。

    猜你喜歡
    程序代碼正確性程序設(shè)計(jì)
    基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
    一種基于系統(tǒng)穩(wěn)定性和正確性的定位導(dǎo)航方法研究
    從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
    電子制作(2019年9期)2019-05-30 09:42:04
    計(jì)算機(jī)網(wǎng)絡(luò)信息安全未來(lái)發(fā)展趨勢(shì)
    淺談如何提高水質(zhì)檢測(cè)結(jié)果準(zhǔn)確性
    基于圖元裝接模式由程序流程圖自動(dòng)生成源代碼
    軟件工程(2016年11期)2017-01-17 16:56:57
    高職高專院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
    PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
    雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
    嵌入式系統(tǒng)中程序的優(yōu)化策略
    新媒體研究(2009年4期)2009-03-14 06:59:48
    av在线天堂中文字幕| 日本黄大片高清| 欧美日本亚洲视频在线播放| 久久久久久久午夜电影| a在线观看视频网站| 一进一出抽搐动态| 日日夜夜操网爽| 亚洲成人免费电影在线观看| 久久精品aⅴ一区二区三区四区| 在线观看美女被高潮喷水网站 | 在线十欧美十亚洲十日本专区| 国产精品久久久久久亚洲av鲁大| 亚洲中文av在线| 国产精华一区二区三区| 最新美女视频免费是黄的| 色老头精品视频在线观看| 亚洲精品一区av在线观看| 久久久水蜜桃国产精品网| 日本一二三区视频观看| 久久人妻av系列| 婷婷精品国产亚洲av| 在线视频色国产色| 51午夜福利影视在线观看| 久久久久性生活片| 中文字幕av在线有码专区| 悠悠久久av| 亚洲av美国av| 给我免费播放毛片高清在线观看| 国产高清videossex| 欧美不卡视频在线免费观看 | 蜜桃久久精品国产亚洲av| 国产精品亚洲美女久久久| 国产精品影院久久| 国产精品av久久久久免费| 精品无人区乱码1区二区| 婷婷亚洲欧美| 村上凉子中文字幕在线| 一夜夜www| 亚洲免费av在线视频| 日韩欧美在线乱码| 午夜影院日韩av| 一个人免费在线观看的高清视频| 一级作爱视频免费观看| 脱女人内裤的视频| 男人舔女人的私密视频| 嫩草影院精品99| 精品欧美国产一区二区三| 日韩有码中文字幕| 国产激情久久老熟女| 久久草成人影院| 九色国产91popny在线| 国产激情偷乱视频一区二区| 成人高潮视频无遮挡免费网站| 国产午夜福利久久久久久| 国产亚洲精品第一综合不卡| 国产私拍福利视频在线观看| 亚洲国产欧美人成| 久久精品国产亚洲av高清一级| 久久九九热精品免费| 成年免费大片在线观看| 亚洲欧洲精品一区二区精品久久久| 中文字幕高清在线视频| av免费在线观看网站| 成人国产一区最新在线观看| 久久亚洲精品不卡| 国产精品九九99| 最近最新免费中文字幕在线| 操出白浆在线播放| 正在播放国产对白刺激| 亚洲国产欧美网| 成人av一区二区三区在线看| 床上黄色一级片| 欧美日韩一级在线毛片| 亚洲午夜理论影院| 97人妻精品一区二区三区麻豆| 少妇裸体淫交视频免费看高清 | 一区二区三区高清视频在线| 嫩草影院精品99| 欧美丝袜亚洲另类 | 午夜影院日韩av| 精品国产乱码久久久久久男人| 久久久国产成人精品二区| 搞女人的毛片| 婷婷六月久久综合丁香| 18禁裸乳无遮挡免费网站照片| 最近最新中文字幕大全电影3| 熟女电影av网| 国产精品九九99| 很黄的视频免费| 亚洲国产日韩欧美精品在线观看 | 少妇粗大呻吟视频| 国产一区二区激情短视频| 日本一区二区免费在线视频| 久久精品亚洲精品国产色婷小说| 一区福利在线观看| 在线观看免费日韩欧美大片| 脱女人内裤的视频| 亚洲真实伦在线观看| 日韩欧美免费精品| 亚洲国产精品久久男人天堂| 精品国产超薄肉色丝袜足j| 五月玫瑰六月丁香| 99热6这里只有精品| 国产午夜精品论理片| 99re在线观看精品视频| 18美女黄网站色大片免费观看| 欧美久久黑人一区二区| 亚洲成人久久性| 亚洲国产欧美人成| 91麻豆av在线| 欧美成人午夜精品| 欧美日韩中文字幕国产精品一区二区三区| www国产在线视频色| 国产精品国产高清国产av| 男女做爰动态图高潮gif福利片| www.www免费av| 黄色a级毛片大全视频| 91字幕亚洲| 免费看美女性在线毛片视频| www.熟女人妻精品国产| 日韩免费av在线播放| 久久中文字幕一级| 午夜成年电影在线免费观看| 久久香蕉精品热| 九色成人免费人妻av| x7x7x7水蜜桃| 手机成人av网站| 一进一出好大好爽视频| bbb黄色大片| 国产熟女xx| 色噜噜av男人的天堂激情| 高清毛片免费观看视频网站| 可以在线观看毛片的网站| 大型黄色视频在线免费观看| 亚洲av熟女| www.熟女人妻精品国产| 嫩草影视91久久| 国产亚洲精品久久久久5区| 老司机午夜福利在线观看视频| 国产精品一区二区精品视频观看| 天堂动漫精品| 国产69精品久久久久777片 | 免费在线观看完整版高清| 欧美色视频一区免费| 日日爽夜夜爽网站| 中文字幕人成人乱码亚洲影| 欧美乱妇无乱码| 真人做人爱边吃奶动态| 午夜a级毛片| 一本一本综合久久| 亚洲专区字幕在线| 国产精品,欧美在线| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲av片天天在线观看| 他把我摸到了高潮在线观看| 国产精品美女特级片免费视频播放器 | 琪琪午夜伦伦电影理论片6080| 两人在一起打扑克的视频| 亚洲一区中文字幕在线| 国产三级黄色录像| 国产成人啪精品午夜网站| 久久婷婷成人综合色麻豆| 琪琪午夜伦伦电影理论片6080| 久久久久国产一级毛片高清牌| 麻豆av在线久日| 久久久精品大字幕| 在线视频色国产色| 青草久久国产| 男男h啪啪无遮挡| 此物有八面人人有两片| 一级片免费观看大全| 亚洲在线自拍视频| www日本黄色视频网| 俺也久久电影网| 精品久久久久久久人妻蜜臀av| 亚洲欧美日韩无卡精品| 久久天躁狠狠躁夜夜2o2o| 熟女少妇亚洲综合色aaa.| 久久久久免费精品人妻一区二区| 久热爱精品视频在线9| 欧美日本亚洲视频在线播放| www.999成人在线观看| 亚洲av电影在线进入| 男人的好看免费观看在线视频 | 精品少妇一区二区三区视频日本电影| 久久精品影院6| 在线观看日韩欧美| 国产精品一区二区免费欧美| 亚洲国产高清在线一区二区三| 757午夜福利合集在线观看| 精品久久久久久,| 亚洲七黄色美女视频| 99热6这里只有精品| 天天一区二区日本电影三级| 五月伊人婷婷丁香| 黄频高清免费视频| 中出人妻视频一区二区| 国产亚洲精品综合一区在线观看 | 一级片免费观看大全| 亚洲第一欧美日韩一区二区三区| 免费在线观看视频国产中文字幕亚洲| 亚洲自拍偷在线| 日韩av在线大香蕉| 黄色丝袜av网址大全| 国产一区二区三区视频了| 亚洲精品久久成人aⅴ小说| 1024视频免费在线观看| 国产精品久久电影中文字幕| 757午夜福利合集在线观看| 两个人免费观看高清视频| 亚洲精品久久国产高清桃花| 国产精品亚洲av一区麻豆| 老司机在亚洲福利影院| 在线免费观看的www视频| 亚洲欧美一区二区三区黑人| 国产精品 欧美亚洲| 日韩中文字幕欧美一区二区| 黄片小视频在线播放| 午夜精品久久久久久毛片777| 制服人妻中文乱码| 亚洲国产高清在线一区二区三| 日韩欧美精品v在线| 九色成人免费人妻av| 亚洲人成伊人成综合网2020| 怎么达到女性高潮| 亚洲精品中文字幕在线视频| 亚洲熟妇中文字幕五十中出| 欧美乱妇无乱码| 日日爽夜夜爽网站| 91字幕亚洲| 丝袜美腿诱惑在线| 高清毛片免费观看视频网站| √禁漫天堂资源中文www| 亚洲中文日韩欧美视频| 亚洲成人中文字幕在线播放| 免费看美女性在线毛片视频| 91国产中文字幕| 亚洲欧美日韩高清在线视频| 又黄又爽又免费观看的视频| 亚洲精品中文字幕在线视频| 在线永久观看黄色视频| 久久中文字幕一级| 精品一区二区三区四区五区乱码| 亚洲精品av麻豆狂野| 手机成人av网站| 亚洲自拍偷在线| 免费看十八禁软件| 日韩大尺度精品在线看网址| 久久精品91蜜桃| 国产私拍福利视频在线观看| a在线观看视频网站| 欧洲精品卡2卡3卡4卡5卡区| 曰老女人黄片| 男女下面进入的视频免费午夜| 大型av网站在线播放| 欧美国产日韩亚洲一区| 小说图片视频综合网站| 变态另类丝袜制服| xxxwww97欧美| 国产精品国产高清国产av| 他把我摸到了高潮在线观看| 99国产精品一区二区蜜桃av| 国产97色在线日韩免费| 一本综合久久免费| 久久这里只有精品中国| 亚洲色图 男人天堂 中文字幕| 精品一区二区三区av网在线观看| 三级国产精品欧美在线观看 | 国产精品九九99| 亚洲色图 男人天堂 中文字幕| 亚洲午夜理论影院| 亚洲成人中文字幕在线播放| 99国产精品一区二区蜜桃av| 黄色a级毛片大全视频| 国内少妇人妻偷人精品xxx网站 | 中文字幕熟女人妻在线| 18禁裸乳无遮挡免费网站照片| 法律面前人人平等表现在哪些方面| av免费在线观看网站| 免费电影在线观看免费观看| 午夜精品久久久久久毛片777| 男男h啪啪无遮挡| 亚洲美女黄片视频| 日日干狠狠操夜夜爽| 国产精品一区二区免费欧美| 亚洲精品在线观看二区| 国产成人精品无人区| 黄色a级毛片大全视频| ponron亚洲| 久久精品综合一区二区三区| 国内精品久久久久久久电影| 欧美日本视频| 男女午夜视频在线观看| 一夜夜www| av片东京热男人的天堂| 成人一区二区视频在线观看| www.自偷自拍.com| 淫秽高清视频在线观看| 国内精品久久久久久久电影| 欧美绝顶高潮抽搐喷水| 国产一区二区在线观看日韩 | 99国产精品99久久久久| 亚洲成人中文字幕在线播放| 精品免费久久久久久久清纯| 精品久久蜜臀av无| 国产亚洲精品综合一区在线观看 | 午夜免费激情av| 国产aⅴ精品一区二区三区波| 日韩欧美 国产精品| 丝袜美腿诱惑在线| 日韩欧美在线二视频| 成人高潮视频无遮挡免费网站| 免费在线观看完整版高清| 国产日本99.免费观看| 国产伦在线观看视频一区| 18禁黄网站禁片免费观看直播| 一夜夜www| 精品国产乱子伦一区二区三区| 久久婷婷成人综合色麻豆| 九九热线精品视视频播放| 国产av一区在线观看免费| 久久久久久免费高清国产稀缺| 免费高清视频大片| 无人区码免费观看不卡| 熟妇人妻久久中文字幕3abv| 啦啦啦免费观看视频1| 俺也久久电影网| 精品久久久久久久久久免费视频| 成人特级黄色片久久久久久久| 日韩三级视频一区二区三区| 久久草成人影院| 国产精品98久久久久久宅男小说| 亚洲国产欧洲综合997久久,| 午夜激情福利司机影院| 国产精品乱码一区二三区的特点| 此物有八面人人有两片| a级毛片a级免费在线| 别揉我奶头~嗯~啊~动态视频| 久久久久精品国产欧美久久久| 精品电影一区二区在线| 久久中文字幕人妻熟女| 国产区一区二久久| 亚洲一区中文字幕在线| 国产精品一及| a在线观看视频网站| 99国产精品99久久久久| 无遮挡黄片免费观看| 国产高清视频在线观看网站| 免费搜索国产男女视频| 国产激情久久老熟女| 韩国av一区二区三区四区| 久久久国产欧美日韩av| 琪琪午夜伦伦电影理论片6080| 老司机午夜十八禁免费视频| 国产精品免费视频内射| 草草在线视频免费看| 午夜福利视频1000在线观看| 国产av一区在线观看免费| 亚洲中文字幕一区二区三区有码在线看 | 久久精品综合一区二区三区| 非洲黑人性xxxx精品又粗又长| 又黄又爽又免费观看的视频| 中文字幕人妻丝袜一区二区| 狂野欧美激情性xxxx| 身体一侧抽搐| 男女之事视频高清在线观看| 男女那种视频在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 欧美成狂野欧美在线观看| www日本在线高清视频| 亚洲精品美女久久av网站| 蜜桃久久精品国产亚洲av| 成人国产一区最新在线观看| 在线观看午夜福利视频| 搡老熟女国产l中国老女人| 久久久久久久久久黄片| 99久久综合精品五月天人人| 午夜福利高清视频| 国产精品久久久久久人妻精品电影| 99国产精品99久久久久| 他把我摸到了高潮在线观看| 国产97色在线日韩免费| 国产99白浆流出| а√天堂www在线а√下载| 日日夜夜操网爽| 婷婷六月久久综合丁香| 久久久久性生活片| 亚洲精品中文字幕在线视频| 亚洲国产欧美一区二区综合| 在线观看舔阴道视频| 亚洲精品国产精品久久久不卡| 精品久久久久久久久久久久久| 又紧又爽又黄一区二区| 久久久久久免费高清国产稀缺| 国产黄色小视频在线观看| 久久 成人 亚洲| 亚洲片人在线观看| 特大巨黑吊av在线直播| 女人高潮潮喷娇喘18禁视频| 变态另类丝袜制服| 久久午夜综合久久蜜桃| 亚洲精品久久成人aⅴ小说| 成年免费大片在线观看| 欧美+亚洲+日韩+国产| 亚洲成av人片免费观看| 少妇熟女aⅴ在线视频| АⅤ资源中文在线天堂| 欧美丝袜亚洲另类 | 亚洲性夜色夜夜综合| 50天的宝宝边吃奶边哭怎么回事| www日本黄色视频网| 后天国语完整版免费观看| 国产午夜精品论理片| 亚洲熟妇熟女久久| 成人18禁在线播放| 美女大奶头视频| 十八禁人妻一区二区| 香蕉久久夜色| 19禁男女啪啪无遮挡网站| 亚洲欧洲精品一区二区精品久久久| 日韩成人在线观看一区二区三区| 欧美日韩福利视频一区二区| 熟女电影av网| 国产精品久久久久久人妻精品电影| netflix在线观看网站| 亚洲男人天堂网一区| 精品欧美一区二区三区在线| 天天躁夜夜躁狠狠躁躁| 国产精华一区二区三区| 免费无遮挡裸体视频| 叶爱在线成人免费视频播放| 国产1区2区3区精品| 中文字幕人妻丝袜一区二区| 色尼玛亚洲综合影院| 亚洲成人中文字幕在线播放| e午夜精品久久久久久久| 欧美乱码精品一区二区三区| www.999成人在线观看| 麻豆av在线久日| 国产亚洲精品av在线| 19禁男女啪啪无遮挡网站| 一级毛片女人18水好多| av国产免费在线观看| 免费在线观看黄色视频的| 精品国产亚洲在线| 亚洲精品久久国产高清桃花| 白带黄色成豆腐渣| 国产精品av久久久久免费| 精品久久久久久久久久免费视频| 国产一区二区在线观看日韩 | 三级国产精品欧美在线观看 | 精品熟女少妇八av免费久了| 国产亚洲精品久久久久久毛片| 男女之事视频高清在线观看| 亚洲成av人片在线播放无| av有码第一页| 黄色a级毛片大全视频| 18禁国产床啪视频网站| 法律面前人人平等表现在哪些方面| 五月伊人婷婷丁香| 女人被狂操c到高潮| 亚洲精品一区av在线观看| 午夜老司机福利片| 一进一出抽搐gif免费好疼| 午夜精品在线福利| 757午夜福利合集在线观看| 日韩av在线大香蕉| 色老头精品视频在线观看| 男女之事视频高清在线观看| 国产亚洲精品久久久久久毛片| 欧美日韩福利视频一区二区| 亚洲成人中文字幕在线播放| xxx96com| av在线天堂中文字幕| 国产黄片美女视频| 精品熟女少妇八av免费久了| 精品人妻1区二区| 国产v大片淫在线免费观看| 国产精品久久久人人做人人爽| 精品国内亚洲2022精品成人| 久久久国产精品麻豆| 无限看片的www在线观看| 1024视频免费在线观看| 好男人电影高清在线观看| 国内精品久久久久久久电影| 欧美+亚洲+日韩+国产| 欧美日韩福利视频一区二区| 999久久久精品免费观看国产| 99riav亚洲国产免费| 不卡av一区二区三区| 麻豆国产97在线/欧美 | 色哟哟哟哟哟哟| 99精品久久久久人妻精品| 日本黄大片高清| 久久香蕉激情| 久久国产精品影院| 国产黄色小视频在线观看| 亚洲午夜理论影院| 亚洲人成77777在线视频| 国产激情偷乱视频一区二区| 久久香蕉国产精品| 久久 成人 亚洲| 欧美日韩中文字幕国产精品一区二区三区| 免费在线观看日本一区| 一二三四社区在线视频社区8| 精品久久久久久久久久免费视频| 国产成年人精品一区二区| 91老司机精品| 男女床上黄色一级片免费看| 人妻丰满熟妇av一区二区三区| 日本精品一区二区三区蜜桃| 精品第一国产精品| 日韩欧美三级三区| 精品一区二区三区av网在线观看| 亚洲18禁久久av| 看免费av毛片| av有码第一页| 亚洲中文日韩欧美视频| 欧美性猛交╳xxx乱大交人| 亚洲一区二区三区不卡视频| 精品免费久久久久久久清纯| 日韩精品中文字幕看吧| 母亲3免费完整高清在线观看| 亚洲欧美精品综合一区二区三区| 中文字幕精品亚洲无线码一区| 男女下面进入的视频免费午夜| 啦啦啦韩国在线观看视频| 日本a在线网址| 色哟哟哟哟哟哟| 久久久久国产一级毛片高清牌| 国产高清视频在线观看网站| 天天一区二区日本电影三级| 麻豆成人午夜福利视频| av国产免费在线观看| 国内精品久久久久精免费| 精品免费久久久久久久清纯| 人妻夜夜爽99麻豆av| 91麻豆av在线| 19禁男女啪啪无遮挡网站| 亚洲午夜精品一区,二区,三区| 国产真实乱freesex| av在线播放免费不卡| 成人一区二区视频在线观看| 亚洲国产精品成人综合色| 精品电影一区二区在线| svipshipincom国产片| 午夜福利免费观看在线| 黄色成人免费大全| 午夜老司机福利片| 亚洲激情在线av| 欧美日韩国产亚洲二区| 香蕉国产在线看| 欧美在线黄色| 天堂av国产一区二区熟女人妻 | 国产熟女xx| 国产精华一区二区三区| 一级a爱片免费观看的视频| 精品国内亚洲2022精品成人| 免费搜索国产男女视频| 此物有八面人人有两片| 国产aⅴ精品一区二区三区波| 91av网站免费观看| 黄色 视频免费看| 欧美成人免费av一区二区三区| 亚洲精品粉嫩美女一区| 亚洲专区国产一区二区| 国产97色在线日韩免费| 免费高清视频大片| 老司机在亚洲福利影院| 免费在线观看亚洲国产| 岛国视频午夜一区免费看| 欧美精品啪啪一区二区三区| 一进一出抽搐动态| 1024香蕉在线观看| 两性午夜刺激爽爽歪歪视频在线观看 | 国产伦一二天堂av在线观看| 国产精华一区二区三区| 美女午夜性视频免费| 精品久久久久久久人妻蜜臀av| 亚洲精华国产精华精| 精品人妻1区二区| 精品一区二区三区av网在线观看| 99国产精品一区二区蜜桃av| 日韩欧美国产一区二区入口| 午夜久久久久精精品| 搡老妇女老女人老熟妇| 日韩免费av在线播放| 国产人伦9x9x在线观看| 久久中文字幕一级| 少妇粗大呻吟视频| 黄色丝袜av网址大全| 日本免费a在线| 免费在线观看影片大全网站| 色尼玛亚洲综合影院| 香蕉丝袜av| 一进一出抽搐gif免费好疼| 黄色丝袜av网址大全| 国产伦人伦偷精品视频| 亚洲专区中文字幕在线| 级片在线观看| 日日干狠狠操夜夜爽| 久久欧美精品欧美久久欧美| 精品一区二区三区av网在线观看| 一个人观看的视频www高清免费观看 | 亚洲专区国产一区二区| 国产精品亚洲av一区麻豆| 国产一区二区激情短视频| 在线观看舔阴道视频| 最近在线观看免费完整版| 久久99热这里只有精品18| 欧美乱色亚洲激情| 欧美人与性动交α欧美精品济南到| 亚洲精品久久成人aⅴ小说| 好看av亚洲va欧美ⅴa在| 99精品久久久久人妻精品|