日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

C#基礎練習題工程化:從控制臺小題到自動判題題庫

C#基礎練習題工程化:從控制臺小題到自動判題題庫 簡介一份面向C#初學者的軟件代碼練習包圍繞基本語法與數(shù)據(jù)類型、條件與循環(huán)、函數(shù)與方法、數(shù)組與集合、類與對象、接口與抽象類、異常處理、枚舉與委托、文件與流、LINQ、異步編程和泛型等核心知識點組織適合正在系統(tǒng)入門或準備查漏補缺的學習者通過動手編碼鞏固基礎。壓縮包共1670個文件約17.87MB內含224個cs源碼、94個csproj工程文件、82個sln解決方案以及pdb、exe、resx、jpg、ico等編譯輸出和配套資源多數(shù)練習可按解決方案直接打開、編譯與調試。已有731人學習說明其作為練習素材具有一定參考價值。讀者可借助分層練習逐項驗證變量聲明、循環(huán)控制、值傳遞與引用傳遞、集合增刪改查、接口實現(xiàn)、異常捕獲、LINQ查詢及async/await異步方法等常見考點也能從完整工程結構中熟悉C#項目的組織方式、資源引用和調試流程對于需要從語法練習過渡到小型項目實踐的讀者這份題庫提供了較密集的動手樣本與排錯線索。1. 從一份 C# 基礎練習題說起它究竟練的是什么手感很多人學 C# 卡住的地方不是看不懂語法而是打開編輯器之后不知道下一行該寫什么。手上這份 C# 基礎練習題就是針對這個尷尬來的它把變量與類型、分支循環(huán)、數(shù)組與字符串、類與接口、集合與 LINQ 拆成一批能直接運行的控制臺小題每題一個入口改完就能看到輸出。它適合兩類人一是剛過完語法教程、急需手感的新手二是要帶新人、想找一套現(xiàn)成練手素材的老開發(fā)。整套東西不碰框架也不碰界面純控制臺加 .NET SDK跑起來的門檻很低。但也正因為簡單不少人做完前五題就停了真正值錢的那部分——怎么把這些小題組織成一個能反復練、能自動判對的工程——反而被跳過去了。2. 工程骨架把零散小題組織成一個能編譯的倉庫練習題最容易寫成“一堆隨手丟的 Program.cs”。單題能跑一多就亂想回頭復習第三題得翻半天文件夾想確認自己沒把前面的題改壞只能一個個手動跑。所以第一步不是寫代碼是先把骨架搭對讓dotnet build一次編譯全部題目讓每道題的入口互不干擾。這一步花十分鐘后面能省掉大量返工。2.1 用 dotnet CLI 搭出題目倉庫我一般不用 IDE 的圖形化新建項目直接用命令行因為命令可復制、可寫進腳本下次重建題庫時改兩行就行。核心思路是“一個解決方案 每題一個控制臺項目”這樣每道題都有自己的Main互不搶占入口點。# 建總目錄后面所有命令都在這個目錄里執(zhí)行 mkdir CSharpBasics cd CSharpBasics # 創(chuàng)建解決方案文件用來統(tǒng)一管理所有題目項目 dotnet new sln -n CSharpBasics # 第 1 題變量、類型與類型轉換 dotnet new console -n Ex01_Types -o src/Ex01_Types dotnet sln add src/Ex01_Types/Ex01_Types.csproj # 第 2 題分支與循環(huán) dotnet new console -n Ex02_Loops -o src/Ex02_Loops dotnet sln add src/Ex02_Loops/Ex02_Loops.csproj # 第 3 題數(shù)組與字符串 dotnet new console -n Ex03_ArrayString -o src/Ex03_ArrayString dotnet sln add src/Ex03_ArrayString/Ex03_ArrayString.csproj # 一次性編譯整個解決方案確認骨架沒問題 dotnet builddotnet new console生成的是最小可運行模板只有項目名.csproj和Program.cs兩個文件。-n是指項目名會同時決定程序集名和默認命名空間-o是輸出目錄我習慣統(tǒng)一放到src/下根目錄只留解決方案文件。dotnet sln add把項目掛進解決方案之后dotnet build不帶參數(shù)就會編譯全部能立刻發(fā)現(xiàn)“改了第 2 題卻把第 3 題改崩了”這種連鎖問題。單題運行用dotnet run --project src/Ex02_Loops--project后面跟的是項目目錄而不是解決方案這點別搞混否則會報“找不到可運行的項目”。2.2 用 Directory.Build.props 統(tǒng)一目標框架如果每個 csproj 各寫一套配置練到第十題你就會發(fā)現(xiàn)有的項目目標框架是舊版、有的沒開可空引用行為不一致排查起來很不方便。.NET 的 MSBuild 支持在目錄層級放一個Directory.Build.props子目錄里的項目會自動繼承這是我做練習倉庫時必加的一層。Project PropertyGroup !-- 所有題目統(tǒng)一目標框架避免每題語法能力不一致 -- TargetFrameworknet8.0/TargetFramework !-- 隱式 using省掉每題都寫 using System; -- ImplicitUsingsenable/ImplicitUsings !-- 開啟可空引用類型強制練習時正視 null -- Nullableenable/Nullable LangVersionlatest/LangVersion !-- 練習題不需要發(fā)布產(chǎn)物關掉能少一堆 bin/obj 噪音 -- GenerateDocumentationFilefalse/GenerateDocumentationFile /PropertyGroup /Project這幾個參數(shù)值得逐個說清楚。TargetFramework決定能用哪些 API寫死成一個長期支持版本能避免“網(wǎng)上抄的代碼在我這編譯不過”。ImplicitUsings打開后System、System.Collections.Generic、System.Linq這些常用命名空間自動引入練習題代碼能短很多。Nullable是最有爭議的一個打開后寫string s Console.ReadLine();會直接給警告新手第一反應是煩但這恰恰是 C# 里最該早點撞上的墻第 5 章會專門講怎么處理。提示如果本機只裝了某一個版本的 SDK把net8.0改成dotnet --list-sdks里實際存在的版本別硬抄。2.3 題目分類與目錄清單題目如果只是按“第 1 題、第 2 題”平鋪復習時完全沒有線索。我習慣按語法主線切成七個臺階每道題掛在一個臺階下目錄名直接體現(xiàn)考察點找題時看目錄就夠。臺階目錄示例主要考察點建議題量類型與轉換Ex01_Types值類型、引用類型、TryParse、格式化輸出46分支與循環(huán)Ex02_Loopsif/switch、for/while、嵌套循環(huán)58數(shù)組與字符串Ex03_ArrayString遍歷、排序、string常用方法58類與對象Ex04_Oop字段、屬性、構造、封裝46繼承與接口Ex05_Interface抽象類、接口、多態(tài)35集合與泛型Ex06_CollectionListT、DictionaryK,V、泛型方法46LINQ 與異常Ex07_Linq查詢表達式、鏈式調用、try/catch46對應的目錄結構大致是這樣后面加題只要往src/里塞新項目再dotnet sln add就行CSharpBasics/ ├── CSharpBasics.sln ├── Directory.Build.props # 全局編譯配置所有題目繼承 └── src/ ├── Ex01_Types/ │ ├── Ex01_Types.csproj │ └── Program.cs ├── Ex02_Loops/ │ ├── Ex02_Loops.csproj │ └── Program.cs └── ...這套結構的好處是“可增量”。今天只做類型轉換就只dotnet run --project src/Ex01_Types哪天想整體回歸一遍dotnet build全量編譯能通過的說明語法層面沒退化。至于每道題內部的代碼怎么寫就是下一章的事了。3. 核心題型拆解五類題目背后的 C# 語法主線練習題的價值不在于題目本身多難而在于每道題是不是真的逼你用上了某個語法點。這一章按難度遞進拆四類典型題每類給一段能直接跑的代碼并說明它到底在練什么、參數(shù)怎么改、改錯會看到什么現(xiàn)象??吹臅r候建議對著自己的Program.cs一起改別只讀。3.1 輸入輸出與類型轉換最容易被跳過的一關第一類題通常是“輸入半徑算圓面積”這種看起來簡單到?jīng)]必要寫但它是新手翻車最集中的地方。原因在于控制臺輸入的原始形態(tài)永遠是字符串而Console.ReadLine()在開啟可空引用后返回的是string?直接double.Parse一旦遇到空輸入或者用戶手抖打了字母整個程序就崩了。// 計算圓面積演示輸入校驗 數(shù)值格式化 Console.Write(請輸入半徑); string? raw Console.ReadLine(); // TryParse 返回 bool轉換成功才把結果寫進 out 參數(shù) // 這里同時校驗了“能轉成 double”和“必須大于 0”兩個條件 if (!double.TryParse(raw, out double radius) || radius 0) { Console.WriteLine(輸入不合法請輸入一個大于 0 的數(shù)字。); return; } double area Math.PI * radius * radius; // F2 表示保留兩位小數(shù)會做四舍五入 Console.WriteLine($半徑 {radius:F2} 的圓面積是 {area:F2});double.TryParse的第一個參數(shù)是待轉換字符串第二個是out參數(shù)轉換失敗時它會被賦成0所以判斷必須用返回值而不是看radius是不是 0——這是很多人第一次踩的坑。Math.PI是常量不用自己寫 3.14。格式串里的F2是標準數(shù)值格式符F表示定點2是小數(shù)位數(shù)想改成三位就寫F3想去掉千分位就用N2換成N。這段代碼還有個隱藏考點return寫在頂層語句里表示結束程序。如果你把它放進一個方法里return只會退出方法后面的代碼還會繼續(xù)跑邏輯就錯了。新手常犯的錯是把校驗寫在方法里卻忘了返回一個“失敗標記”。3.2 循環(huán)與數(shù)組把排序和圖形打印寫扎實第二類題是循環(huán)。很多人覺得循環(huán)沒什么可練的但嵌套循環(huán)的邊界控制是后面所有算法的地基。我建議至少手寫一遍冒泡排序和一次圖形打印不要復制粘貼。// 冒泡排序演示數(shù)組遍歷 嵌套循環(huán) 提前退出優(yōu)化 static int[] BubbleSort(int[] source) { // 復制一份避免修改調用方傳進來的數(shù)組 int[] data (int[])source.Clone(); int n data.Length; for (int i 0; i n - 1; i) { bool swapped false; // 本輪是否發(fā)生交換 // 每輪結束最大的元素已經(jīng)沉到末尾所以內層可以少比一次 for (int j 0; j n - 1 - i; j) { if (data[j] data[j 1]) { (data[j], data[j 1]) (data[j 1], data[j]); // 元組交換 swapped true; } } if (!swapped) break; // 已經(jīng)有序提前收工 } return data; } int[] input { 5, 2, 9, 1, 5, 6 }; Console.WriteLine(string.Join(, , BubbleSort(input))); Console.WriteLine($原數(shù)組未被修改{string.Join(, , input)});為什么要有n - 1 - i這個減法因為每一輪外層循環(huán)結束后末尾的i 1個元素已經(jīng)排好序了再比就是浪費。把這個減法寫錯成n - 1程序還能跑結果也對只是多做了無用的比較屬于“對但不夠好”調試時根本發(fā)現(xiàn)不了。swapped標記是提前退出優(yōu)化最好的情況數(shù)組本來有序復雜度從 O(n2) 降到 O(n)。(data[j], data[j 1]) (data[j 1], data[j])是 C# 的元組解構賦值等價于借助臨時變量交換但少寫三行。如果目標框架版本太老不支持就老老實實寫臨時變量別硬用。圖形打印題比如輸出等腰三角形、九九乘法表練的是“循環(huán)變量和輸出位置的關系”。這類題沒有標準答案但有個自檢方法把行數(shù)從 5 改成 3 和 7看圖形是不是仍然對稱。如果不改代碼就變形說明邊界寫死了。3.3 面向對象類、屬性、繼承與接口的最小閉環(huán)到了這一層題目開始從“算一個值”變成“描述一個東西”。典型的題是“定義圖形基類派生圓和矩形統(tǒng)一計算面積”。這類題看著像八股實際上是把封裝、繼承、多態(tài)三件事串起來的唯一低成本方式。// 抽象基類約束所有圖形都必須能算面積和周長 public abstract class Shape(string name) { public string Name { get; } name; public abstract double Area(); public abstract double Perimeter(); public override string ToString() ${Name}: 面積{Area():F2}, 周長{Perimeter():F2}; } public sealed class Circle(double radius) : Shape(圓) { // 主構造函數(shù)參數(shù)直接參與屬性初始化屬性只讀避免外部亂改 public double Radius { get; } radius 0 ? radius : throw new ArgumentOutOfRangeException(nameof(radius)); public override double Area() Math.PI * Radius * Radius; public override double Perimeter() 2 * Math.PI * Radius; } public sealed class Rectangle(double width, double height) : Shape(矩形) { public double Width { get; } width 0 ? width : throw new ArgumentOutOfRangeException(nameof(width)); public double Height { get; } height 0 ? height : throw new ArgumentOutOfRangeException(nameof(height)); public override double Area() Width * Height; public override double Perimeter() 2 * (Width Height); } // 多態(tài)調用方只認 Shape不關心具體是哪種圖形 ListShape shapes [new Circle(2), new Rectangle(3, 4)]; foreach (Shape s in shapes) Console.WriteLine(s);public abstract class Shape(string name)用的是主構造函數(shù)語法參數(shù)name可以直接用在屬性初始化里省掉一個顯式構造函數(shù)。sealed表示這個類不允許再被繼承練習題階段建議加上能避免“亂繼承導致行為跑偏”的迷惑現(xiàn)象。屬性初始化里那句radius 0 ? radius : throw new ...是三目運算符加拋異常的組合好處是把“不合法狀態(tài)根本創(chuàng)建不出來”這條規(guī)則焊死在類型里而不是靠調用方自覺。nameof(radius)會在編譯期變成字符串radius好處是以后重命名參數(shù)時異常信息會自動跟著改不會寫死一個過期字符串。多態(tài)那三行是重點ListShape里放的是不同子類循環(huán)時調用s.Area()會自動走到各自的實現(xiàn)。如果這里寫成Listobject再手動判斷類型說明多態(tài)沒理解到位題目就白做了。3.4 集合與 LINQ從 List 到鏈式查詢最后一類題是集合操作。典型題是“給一批學生成績按班級分組求平均分再按平均分倒序輸出”。這題用傳統(tǒng)for循環(huán)能寫二十行用 LINQ 五行就完了但只寫 LINQ 不寫循環(huán)版本你不知道它到底替你做了什么。public record Student(string Name, string ClassName, int Score); ListStudent students [ new(A同學, 一班, 88), new(B同學, 一班, 72), new(C同學, 二班, 95), new(D同學, 二班, 61), new(E同學, 二班, 79), ]; // 按班級分組 → 算平均分 → 過濾掉平均分低于 70 的班 → 按平均分倒序 var report students .GroupBy(s s.ClassName) // 分組鍵是班級名 .Select(g new { Class g.Key, Count g.Count(), Average g.Average(s s.Score) // 組內對 Score 求平均 }) .Where(x x.Average 70) // 過濾 .OrderByDescending(x x.Average); // 排序 foreach (var item in report) Console.WriteLine(${item.Class}{item.Count} 人平均 {item.Average:F1} 分);GroupBy返回的是IGroupingTKey, TElement每個分組既能當集合遍歷g.Count()、g.Average(...)又能通過g.Key拿到分組鍵這是它和Dictionary最大的區(qū)別。Select里用了匿名類型new { ... }適合只在當前方法里臨時組裝結果如果這個結果要跨方法傳遞就該定義一個record否則類型沒法寫在簽名上。Where和OrderByDescending的順序會對結果產(chǎn)生影響雖然這里邏輯上先過濾再排序和反過來結果一樣但數(shù)據(jù)量大時先過濾能少排很多元素。這類“順序無所謂但要養(yǎng)成習慣”的細節(jié)就是練習題和真實項目之間的差距所在。4. 自證與調試給每道題配一套能跑的校驗練習題最大的問題是沒人給你判對錯??刂婆_輸出一行“面積 12.57”你怎么知道是自己算對了還是碰巧如果每道題都靠肉眼對比練到第十題就會開始偷懶隨手跑一遍看著像對的就過了。所以我在練習倉庫里固定加一層極簡斷言讓每道題都能自證。4.1 手寫一個不到三十行的斷言器不用引入第三方測試框架練習階段一個靜態(tài)類足夠好處是零依賴、打開就能用也不會被一堆測試配置勸退。public static class Check { private static int _pass; private static int _fail; // 值比較用 Equals 而不是 能兼容裝箱后的值類型和字符串 public static void That(string caseName, object? actual, object? expected) { if (Equals(actual, expected)) { _pass; Console.WriteLine($[通過] {caseName}); } else { _fail; Console.WriteLine($[失敗] {caseName} 期望{expected} 實際{actual}); } } // 浮點比較單獨處理直接 Equals 會因為精度問題永遠不相等 public static void Near(string caseName, double actual, double expected, double tolerance 1e-6) That(caseName, Math.Abs(actual - expected) tolerance, true); public static void Summary() { Console.WriteLine($\n合計 {_pass _fail} 項通過 {_pass}失敗 {_fail}); if (_fail 0) Environment.Exit(1); // 有失敗就讓進程返回非零方便腳本判斷 } }Equals(actual, expected)是靜態(tài)方法會自動處理 null比actual expected安全——后者在兩邊都是引用類型且沒重載運算符時比的是引用地址字符串雖然重載過但其他類型不一定。Near專門給浮點用tolerance默認1e-6如果題目要求保留兩位小數(shù)可以放寬到0.005。最后那個Environment.Exit(1)是給自動化留的口子有失敗用例時進程退出碼非零外面用 shell 或 CI 一判就知道過沒過。4.2 把題目改造成“輸入 → 計算 → 返回”三段式斷言要能用前提是邏輯不能和Console.ReadLine攪在一起。做法很簡單把純計算抽成一個返回值的靜態(tài)方法Main只負責讀輸入、調方法、打印結果。// 純函數(shù)只依賴參數(shù)不碰控制臺方便斷言 static double CalcCircleArea(double radius) { if (radius 0) throw new ArgumentOutOfRangeException(nameof(radius), 半徑必須大于 0); return Math.PI * radius * radius; } // Main 里只做 IO邏輯一行調用 Console.Write(請輸入半徑); if (double.TryParse(Console.ReadLine(), out double r)) { try { Console.WriteLine($面積 {CalcCircleArea(r):F2}); } catch (ArgumentOutOfRangeException ex) { Console.WriteLine(ex.Message); } } // 校驗部分集中在文件末尾改題時只動上面不動這里 Check.Near(半徑 2 的面積, CalcCircleArea(2), 12.566370, 1e-3); Check.Near(半徑 0.5 的面積, CalcCircleArea(0.5), 0.785398, 1e-3); Check.That(半徑 0 應拋異常, CatchType(() CalcCircleArea(0)), typeof(ArgumentOutOfRangeException)); Check.Summary();抽成純函數(shù)之后同一份邏輯既能在Main里跑給人看又能被斷言調用改一次兩邊都受益。CatchType是個十行的小工具捕獲異常并返回類型static Type? CatchType(Action action) { try { action(); return null; } // 沒拋異常返回 null catch (Exception ex) { return ex.GetType(); } // 拋了就返回實際類型 }參數(shù)Action表示“無參無返回值的委托”所以調用時要包成() CalcCircleArea(0)的 lambda。返回Type?是因為“沒拋異?!边@個分支沒有類型可返回用可空類型表達最自然這也正好呼應了第 2 章開啟的Nullable。4.3 邊界用例與異常路徑怎么定寫完斷言之后最容易被忽略的是“該測哪些值”。我的習慣是每題至少四類正常值一個、邊界值一個0、空字符串、數(shù)組首尾、非法值一個負數(shù)、字母、null、規(guī)模極值一個空數(shù)組、單元素數(shù)組。這四類覆蓋下來題目里的if分支基本都能走到。跑的時候用dotnet run --project src/Ex01_Types看輸出里有沒有[失敗]。如果有先看期望值和實際值差多少差一點點多半是精度差一整倍多半是公式寫錯差個符號多半是邊界條件取反了。這套流程走順之后調試就從“盯著屏幕猜”變成“看斷言報告定位”。5. 常見問題排查練習時最容易翻車的五個點下面這幾條是我?guī)俗鼍毩晻r反復見到的基本每個新手都會中一兩條。寫法統(tǒng)一按“現(xiàn)象 → 原因 → 解決”來遇到時直接對號入座。5.1 語言與類型層面的坑坑一一開Nullable滿屏黃色警告代碼像錯了一樣?,F(xiàn)象是剛在Directory.Build.props里打開Nullableenable/NullableProgram.cs里就出現(xiàn)CS8600、CS8602、CS8618一串警告程序還能跑但看著心里發(fā)毛很多人第一反應是把開關關掉。原因是可空引用類型把“這個變量可能是 null”從運行時隱患提前到了編譯期提示。Console.ReadLine()確實可能返回 null比如輸入流被重定向且沒有內容string? raw接住它是對的但接著raw.Length就會報CS8602因為編譯器無法保證raw非空。CS8618則是“非空屬性在構造函數(shù)結束時還沒賦值”。解決辦法不是關開關而是把警告當提示用能判空的就判空if (raw is null) return;確實非空的就用!斷言并寫注釋說明為什么安全屬性用主構造函數(shù)或required修飾符保證初始化。練習題階段建議全部老老實實判空別用!圖省事這個習慣帶到真實項目里會救命??佣麛?shù)相除結果永遠是整數(shù)平均分算出來少一截?,F(xiàn)象是求平均分int avg total / count;輸入 3 個 90 分期望 90 實際也是 90看著沒問題但輸入 3 個 88、89、90期望 89 實際 89還是看不出問題直到輸入 2 個 1 和 2期望 1.5 實際 1。原因是 C# 里兩個int相除結果類型還是int小數(shù)部分直接截斷不是四舍五入。這是語言規(guī)定不是 bug所以不會有任何警告。解決辦法是把其中一個操作數(shù)轉成浮點double avg (double)total / count;或者total / (double)count。注意(double)(total / count)是錯的因為括號里先算完除法再轉換那時小數(shù)已經(jīng)丟了。這類題我強烈建議在斷言里放一組除不盡的用例不然永遠發(fā)現(xiàn)不了??尤↑c數(shù)用比較兩個“相等”的值判成不等。現(xiàn)象是0.1 0.2 0.3返回false用Check.That斷言直接失敗但打印出來看兩個值明明都是0.3。原因是double用二進制表示十進制小數(shù)0.1和0.2都無法精確表示相加后是一個極接近但不等于0.3的值。這跟語言無關是 IEEE 754 的固有特性。解決辦法是所有浮點比較都改成“差值絕對值小于容差”也就是第 4 章那個Check.Near。容差取多少看題目要求算面積這種可以取1e-6要求保留兩位小數(shù)的可以取0.005。涉及金額的場景干脆別用double改用decimal它不是二進制浮點能精確表示十進制小數(shù)代價是運算慢一點。5.2 工程與運行層面的坑坑四dotnet run報“找到多個入口點”?,F(xiàn)象是命令行一跑就報CS0017: 程序定義了多個入口點編譯直接失敗一個題都跑不了。原因是你把兩個Program.cs放在了同一個項目里或者給某道題新建了項目卻沒在正確的目錄下執(zhí)行dotnet run——頂層語句會自動生成Main兩個文件就兩個Main編譯器不知道該用哪個。解決辦法是確認“一題一項目”跑的時候帶上--project指定到具體目錄dotnet run --project src/Ex02_Loops。如果確實需要在同一項目里放多個練習入口那就把它們寫成帶名字的靜態(tài)方法只在Program.cs里保留一個Main負責分發(fā)別再新增頂層語句文件??游蹇刂婆_輸出中文變成亂碼?,F(xiàn)象是打印“請輸入半徑”時終端里顯示的是一串問號或者方塊。原因是控制臺編碼和源文件編碼不一致。源文件默認是 UTF-8而部分終端默認代碼頁不是 UTF-8輸出時就會錯位。解決辦法有兩個層次一是在Program.cs開頭加一行Console.OutputEncoding System.Text.Encoding.UTF8;讓輸出走 UTF-8二是檢查終端本身的編碼設置把它調到 UTF-8。第一種更省事我一般在模板里就寫死新題復制過去自動生效。順帶說一句讀入中文時同理必要時把Console.InputEncoding也設上。6. 二次開發(fā)把題目集改成自己的題庫與自動判題器練習題做通關之后多數(shù)人就停在那了。其實這套東西稍微改一改能變成一個自己長期用的刷題系統(tǒng)甚至給團隊新人當入職訓練。我自己的改法是三步把題目元數(shù)據(jù)化、把運行入口統(tǒng)一、把校驗結果匯總成報告。第一步是給每道題加統(tǒng)一接口?,F(xiàn)在每題各寫各的Main想批量跑只能靠 shell 循環(huán)。改成定義一個接口每道題的邏輯實現(xiàn)它再寫一個調度器用反射把所有實現(xiàn)找出來跑// 所有題目統(tǒng)一實現(xiàn)這個接口調度器只認它 public interface IExercise { string Id { get; } // 題號如 Ex03_02 string Title { get; } // 題名報告里顯示 bool Run(); // 返回 true 表示本題全部用例通過 } // 以冒泡排序題為例 public sealed class Ex03_02_BubbleSort : IExercise { public string Id Ex03_02; public string Title 冒泡排序并返回新數(shù)組; public bool Run() { // 這里復用第 4 章的 Check但把 Summary 換成返回值 Check.That(普通數(shù)組, string.Join(,, BubbleSort([5, 2, 9])), 2,5,9); Check.That(已有序數(shù)組, string.Join(,, BubbleSort([1, 2, 3])), 1,2,3); Check.That(單元素數(shù)組, string.Join(,, BubbleSort([7])), 7); return Check.Failed 0; } private static int[] BubbleSort(int[] source) { /* 同第 3 章實現(xiàn) */ return source; } }第二步是寫調度器掃描當前程序集里所有IExercise實現(xiàn)并依次執(zhí)行。Activator.CreateInstance要求類型有無參構造函數(shù)所以題目類別寫帶參構造。用typeof(IExercise).IsAssignableFrom(t)判斷而不是t typeof(IExercise)前者能匹配到所有實現(xiàn)類包括間接實現(xiàn)。var exercises typeof(IExercise).Assembly.GetTypes() .Where(t typeof(IExercise).IsAssignableFrom(t) !t.IsAbstract !t.IsInterface) .Select(t (IExercise)Activator.CreateInstance(t)!) .OrderBy(e e.Id); int failed 0; foreach (var ex in exercises) { bool ok ex.Run(); Console.WriteLine(${(ok ? PASS : FAIL)} {ex.Id} {ex.Title}); if (!ok) failed; } Console.WriteLine($\n共 {exercises.Count()} 題失敗 {failed} 題); Environment.Exit(failed 0 ? 0 : 1);第三步是把它接進日常流程。我會在倉庫根目錄放一個run-all.sh內容就一行dotnet run --project src/Runner然后每次改完題目先跑它。退出碼非零就說明有題被改壞了這時候再去看具體是哪道題失敗比逐個項目手點快得多。想再進一步可以把Check里的通過數(shù)、失敗數(shù)輸出成 JSON長期記錄每道題的通過率哪題反復錯就重點補那一塊。改造過程中最容易翻車的地方是題目類沒有無參構造函數(shù)反射時會拋MissingMethodException報錯信息還不直接指向原因。血淚經(jīng)驗是題目類只放字段、屬性和方法需要注入的東西一律通過方法參數(shù)傳別在構造函數(shù)里做初始化。另外一個后悔藥是給調度器加上 try/catch某道題拋異常時記一筆繼續(xù)跑下一道否則一道題崩掉整個報告都出不來。從那以后我每次把練習倉庫交給別人跑之前都會先在一個干凈目錄里dotnet build加run-all.sh走一遍確認沒有隱式依賴本機環(huán)境的東西再發(fā)出去。這套習慣看起來啰嗦但省下來的解釋成本遠比這幾分鐘多。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
98超碰欧美| 韩日无码在线观看| 欧美激情高清性猛交| 亚 欧 美 综合| 国产女人高潮嗷嗷嗷叫小说| 麻豆视频一区二区| 欧美 精品国产制服第一页| 欧美激情色婷婷花野真衣一区二区| 韩国一级婬片A片AAAAA| 91在线视频免费播放| 久草精品在线| 欧美综合网1| 丝袜美腿诱惑亚洲欧美视频在线观看| 国产麻豆福利av在线播放| 狠狠爱大香蕉| 美女网站91| 懂色av中文字幕一区二区三区天美| 日韩乱码Av| 久久婷婷亚洲| 天天躁日日躁AAA片李宗瑞| 欧美日本中字另类在线| 亚洲成人日韩小说| 粉嫩av久久一区二区三区| 97久久超碰日韩精品| 人妻超碰青青草98| 人妻素股| 日本三级韩国三级美三级91| 欧美一级专区免费大片| 91爱网| 国产精品一区在线播放| 校园春色美腿丝袜 | 免看60秒涩涩视频| 干美女人妻| 试看60秒| 夜夜国自区| 久久伦理视频久久大香蕉视频| 久九干| 麻豆国产原创AV色哟哟| 久操B网| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 免费97视频| 超碰久在线天天做| 天天综合站| 风间由美日韩欧美久久| 超碰99re| 久久黄片国产一区二区| 人妻少妇被猛烈进入中| 丁香婷婷久久| 97久久超碰国产网站| 国产精品 午夜福利| 中文字幕 一区二区 亚洲无码| 啊嗯好大视频在线观看| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 97色涩| 日韩大香蕉精品在线视频| 九九国产热| 超碰综合97在线| 美欧色综合| 日韩操p| 国产探花精品在线| 激情五月天婷婷| 欧美性猛交美女自慰91| 99国产精品自在自在| 97久久久久久久久久| 中文久久久| 国产精品99精品视频网站| 国产精品一区二区校花| 大香蕉亚洲中文| 中文字幕视频2区| 超碰午夜| 97超碰超碰| 无遮挡又黄又刺激的视频| 九九干| 超碰免费人人| 九九热超碰97亚洲最新香蕉 | 人人 操人人 操人人| 91艹B视频| 久久久一级| 欧美大片一区二区三区| 国产精品无码成人精品| 920日本午夜免费| 亚洲男人的天堂一区二区| 超碰98综合网| 久久久久九九九| 免费操逼视频下载| 国产性爱欧美性爱在线| 蜜臀在线视频| 97色伦欧美| 欧美韩国你懂得在线| 麻豆91熟妇人妻中文字幕茄子| 一级人妻性爱视频| 少妇免费视频| 日本成人在线不卡一区二区三区 | 狠狠爱夜夜干| 国产精品久久久久久久黄无码| 乱日视频| 久久春色| 98一区二区精品| 欧洲一区二区三区四区在线观看| 一级黄色视频网| 久久久影院| 欧洲亚洲人妻无码久久三区四区| 偷窥自拍A片| 加勒比日本在线| 97超碰香蕉| a级理论午夜日本| 亚洲少妇色图自慰直播| se吧提供91精品国产91久久久久久 | 抽查国产福利主播| 女人综合网| 久久人人爽人人爽人人片Ⅴ| 亚洲资源网| 国产91av在线播放| 诱惑人妻欧美一区在线播放| 欧美日韩国产成人高清| 人人摸人人干| 亚洲精品免费中文字幕| 日韩中文字幕宗合在线| 台湾一区国产高清在线| 天天舔天天日天天射| 99久久无码| 国产亚洲99久久精品| 国产精品久久久久久久久久二区三区| 在线国产探花| 国桃视频产巨乳精品一区二区在线| 国产精品嫩草影院午夜两性 | 日本黄大片在线观看视频| 亚洲色图超碰在线| 伊人网青青| 免费农村成人少妇人妻Aa一区二区视频| 国产欧美另类久久久精品课程| 五月丁香婷婷啪啪| 色97干| 天天摸,夜夜摸| 狠狠爱夜夜| 日本91白丝| 国产精品4p在线观看| 日日黄色三级网站| 久久,精品一二三| 91色婷婷综合久久中文字幕二区| 亚洲AV无码| 欧美精品三级黄片| 91国产在线精品| 伊人影院综合是一个与深夜成人在线| 黄页网站成人免费| 精品少妇一区二区三区免费观看| 超碰国产精品久| 超碰9 7女人| 啪啪一区| 国产成年免费大片黄在线观看| 人妻熟女一区二区| 男人夜色天堂ss| 欧美欧美啪啪视频| 干美女人妻| 久久久久免费少妇| 国产亚洲精品av一区| 97国产精选| 日夜啪电影| 亚洲欧美中文一区二区三| 美女上床网站| 欧亚第一综合网| 亚洲制服欧美另类内射| 极品白嫩美少妇在地板上位骑射淫水泛滥| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲Av无码成人精品国产| 欧美日韩欧美| 狠狠躁天天躁日日躁| 中国探花熟女| 天天日天天干天天色| 亚洲成人AB| 青久操| 狠狠综合网| 操婢日韩| 国产精品网址| 丰满人妻-区二区三区免费看| 中文字幕日产av人| 青青操97| 久久久久久久久久久久久9999| AV无码久久久精品| 宅男影院久久久,99| 天天干嫩逼网| 亚洲欧美碰碰| 蜜臀99久久国产| 在线观看视频91| 人妻密肉在线观看| 激情综合网一盗摄| 蜜乳中文字幕a在线| 久久久九九九九| 久草老司机| 亚洲91在线播放影院| 色一区二区三区综合| 麻豆精品A片免费观看| 天天色综亚洲91污| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 久久久精品网| 99色在线视频| 亚洲91综合| 香一区二区三区| 五月天色色色| 狠狠操综合| 婬女免费一二三区A片| 91高清无码下载| 中文字幕一区二区三区四区在线视频| 好涩综合| 欧美日韩国产一区二区小黄片大全| 麻豆熟妇乱妇熟色A片在线看| 91久久国外网| 欧美激情黑人| 伊人网在线点播| 久久久少妇诱惑精品视频| 激情黄色五月天| 麻豆精品A片免费观看| 国产传媒1234区| 99自拍B亚洲 | 草b在线| 五月天丁香欧洲日韩| 青青草九九九九九| 亚洲色性情三级| 嗯嗯嗯啊啊啊操的我好爽| 116美女午夜| 密臀在线免费观看| 玖玖爱一区在线| 日本蜜桃| 超碰视97中文| 国产综合久久久麻桃个| 欧美后入| 免费日韩黄片| 99热只有这里有精品| 搡老熟女老女人老熟妇免费视频| 日日日日日| 69超碰综合| 亚洲AV资源| 国产第二页| 久久精品国产97欧美精品亚洲 | 粉嫩av在线一区二区| 丁香五月性爱| 久久久久久久久久久人妻| 德国一二三不卡| 三级网站超变态精品| 操逼无毒无码免费视频| 青青操国产夫妻| 97这里只有精品| 思思视频免费看网站| 6080YYY午夜理论片在线观看| 亚洲精品无码久久AV| av凤凰久久久| 日本顶级天天操狠狠操夜夜操中文字幕| 91亚洲丝袜| 色香AV| 国产精品无码av嫩草| 午夜一区| 夜夜国产一区| 欧美少妇人妻| 国产精品无码在线| AND人妻系列| 97综合久第一页| 亚洲欧美日韩制服另类| 爽 好舒服 无码刺激久久| 天天综合,91综合永久| 天堂射| 大香蕉伊人75| 中文字幕aⅴ在线视频| 国产女人高潮视频| 伊人96在线| 无码人妻精品一区二区三区99不卡| 久久性爱大全| 天堂网 主播 亚洲| ji熟女.com| 91狠狠综合久久久久久| 四虎在线免费视频| 成人性爱AV在线免费观看| 国产这里只有精品| 夜夜黄| 中国女人内射6XXXXX| 欧美一区二区日韩传媒搭讪精品| 91性片| 亚洲欧美国产日本一区二区三区| 亚洲一区亚洲天堂| 国产性爱在线视频一区二区| 一区二区三区国产精产| 特色a在线上| 人人考人人摸人人干| 9长久久精品| 日本熟女不卡视频| www.狠狠干.coom | 无码91| 好吊色综合| 久久久18| 人人妻人人爽一区二区三区| 99操99| 久九九九九九九九热| 中文字幕亚洲永久精品| 欧美日动态视频| 亚洲97成人在线观看| 亚洲AV小说| 丝袜综合网| 国产成人网站在线观看| 欧美人妻少妇| 动漫片子网站3黄| 久久精品国产亚洲AV先锋| 性欧美另类高清| 一起草视频在线| 久久不卡一区二区| 亚洲一曲日韩精品| 天天摸夜夜操视频| 久久午夜色播影院免费高清| 91电影色诱| 国产午夜精品理论片一二三区区| 亚洲色图欧美色图制服丝袜 | 亚洲另类色图片| 国产精品第一页国产大屁股视频免费区 | 亚洲丝袜色| K8久久久久| 久久婷婷精品| 成·人免费午夜在线观看| 色av中文字| 亚洲美女av无码| 97色在线观看| 亚洲国产成人福利在线观看| 精品国产久久乱码| 99热9| 欧洲综合色图| 九九九九九用不成了| 亚洲国产麻豆一区二区三区| 超碰是碰在线观看| 欧美成人精品A片免费一区99| 男人综合网| 97se综合网| 变态乱伦伪娘灌肠一区二区| 婷婷九月国产| 99综合网| 在线观看一级α片刺激高潮视频| 韩日巨乳美女免费视频在线观看| 国产欧美亚洲精品a第2页| 国产一区在线看| 黄色大片一区二区密桃丝袜| 波多野42部无码喷潮在线观看| 青青欧洲黑| 六九九九| 淫荡少妇免费| 熟女精品日韩一区二区三区| 国产精品久久久777| 福利在线黄片| 色综合国产在线观看| 制服中出中文人人精品| 亚洲欧美大香蕉| 人人操我人人干| 天堂亚洲欧美| 婷婷五月天无码| 久久性爱视频| 国产亚洲禁久一区二区| 国产第12页| 色哟哟精品1精品2| 热天堂一区二区| 国产极品99热在线播放69| 久久日韩肥臀| 日韩人妻精品| 国产污视频麻豆传媒一区二区| 国产视频不卡在线观看| 九九综合九九综合| 九九九精品| 久热99999| 超碰在线974| 久久精彩视频| 欧美一级AAAAAAA| 少妇熟女一区二区三区| 粉嫩av一区二区三区四季| 吻戏激情性巴克| 台湾成人无码AV| 国产JDAV无码视频在线观看| 熟妇人妻丰满久久久久久久无码| 午夜AV污污污| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 欧美性生活内射| 亚洲欧洲网站免费观看| 最新av网站在线观看| 99久在线精品99re8蜜桃| 久偷拍欧美日韩三区| 天堂精品小草| 亚洲人在线| 香蕉在线一区二区三区| 99热啪啪| 九九伊人网| 人妻干天天| 国产一区二区免费福利片| 综合色91| 国产精品第一页国产大屁股视频免费区| 超碰在线第一页| 97视频在线视频| 密臀视频一区二区三区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 破处bbq| 色眯眯av| 中文字幕午夜精品久久久| 都市激情人妻一区二区青青操视频| 大香蕉国产中文自拍| 少妇国产不卡| 色老汉色| 亚洲少妇在线影音| 无码九九九九| 情色图区| 久久久久夜夜夜夜| 亚洲欧美综合| 乱伦a片视频| 天天操人人操狠狠插| 9久在线视频只有精品| 国产精品白领在线观看| 欧美激情视频一区二区| 乱伦一二三| 欧美性爱第一页久久| 国产精品国产亚洲区艳妇糸列| 天天上日日上日韩精品| 久久夜黄色无码A级大片| 香蕉久久AⅤ...| 91快色色色色色| 日韩欧美字幕亚洲一区二区| 激情五月天网| 91人妻视频在线| 久久、1234| 精品一区二区三区蜜桃臀www| 91狠狠狠| 午夜啪| 午夜视频好爽啊| 无码直播久久久| 亚洲少妇综合在线播放| 桃花色涩综合影院| 亚洲精品1区| 亚洲欧洲日韩中文字幕一区| 婷婷久久五月综合激情| 亚洲九月丁香| 一二三啪啪专区| 日日干男人的天堂| 鸥美中出| 欧美一级久久久久久久大片动画| 人人妻人人操人人乐| 天天看特黄的免费网站| 99热线麻豆 | 色色九区| 26uuu国产成人综合| 亚洲人妻av| 日韩啪啪啪视频| 91老熟女老女人国产老太 | 屌色在线97视频| 国产第11页| 欧美色性情| av天堂精品久久| 国产亚洲99久久精品| 亚洲十八禁止| 大屁股人妻女教师撅着屁股| 色色色999| 欧洲精品人妻| 久久黄色视频一区二区三区| 9久久9综合| 天天综合~91| 日本黄色大片一级视频免费麻豆| 日日夜夜骚| 中国少妇啪啪视频| 欧美劲爆视频一区二区| 午夜欧美神马久久久久| 少妇熟女1区2区3区| 久久婷婷五月天| 国产乱码久久久久久| 国产日韩精品suv| 留下AⅤ黄色片| 欧美乱妇狂野欧美在线视频| 26uuu久久| 男人兔费天堂| 丝袜亚洲综合| 亚洲综合色男人网| 九九九九久久久久| 狠狠五月天| 综合亚洲网| 乱论91| 久久中日麻豆| 青娱乐国产剧情av一区| 日本不卡高清免v欧美日韩在线观看| 99热在线只有精品| 性爱av网站| 无码粉嫩白虎一线天b区| 激情国产乱伦Av| 久操在97| 333kkkk·亚洲com久久| 在线 欧美 亚洲| 国产精品一区二区 尿失禁| 97丝袜亚洲在线播放| 男人的天堂午夜av| 北野未奈加勒比av| 日韩一级欧美一级在线观看| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 亚洲色吧网| 神马久久久久| 大香网伊人久久综合网eew| 国产成人99久久亚洲综合| 欧美精品丝袜久久久中文字幕| 偷拍精品一区二区三区| 欧美乱妇狂野欧美在线视频| 一级黄色性爱A级片| 好舒服视频| 久久一区二区高清免费| 这里都是精品| 91在线美女| 国产对白刺激视频| 自拍亚洲综合| 久久婷婷五月| 国产精品内射婷婷一级二| 欧美情色男人的天堂| 国产精品一区二区三区,亚洲综合| 大屁股熟女一区二区三区| 新婚人妻扶着粗大强行坐下| 在线观看啊啊啊啊啊| 日韩精品三区四区| 欧美日本中字另类在线| 中文字幕欧美精品亚洲日韩蜜臀| 91亚洲人电影| 密乳无码| 操人妻视频| 蜜臀亚洲综合一二三四区| 伊人久久大香大香线蕉中文| 很很操在线| 久久精品国产97欧美精品亚洲| a久久| 久久成人国产精品| 女生看匆91网站| 操b网站亚洲无码| 超碰成人国产| 久久透逼视频| 亚洲欧美伦综合| 97天天综合网| 激情婷婷五月天| 天天插夜夜操| 欧美高清无码免费视频高清版| 曰韩香蕉97| 久草精品热视| 亚洲熟妇极品| 最近的最新的中文字幕视频| 91久久九九精品国产综合| 夜夜做夜夜爽精品视频| 97bbn| 伊人97色天使| 色一情一乱一乱一区91Av| 视频在线观看免费一区二区三区| 大香蕉综合网| 天堂亚洲精品| 国产精品在线一区二区| 天美传媒AV国产在线| 97人肏| 再深点灬舒服灬太大了好硬好爽| 欧美日韩国产高清在线一二三区| 亚洲中文字幕精品一区| 久久久不卡| 天天综合,91入口| 国产噜噜噜噜噜久久久久久久久| 97爱爱影院| 日本超碰在线国产一区| 日本色婷婷| 欧美黄片视频在线观看免费 | 亚洲麻豆精品二区三区| 亚洲AV成人无码一区二区三区在线观看| 日日噜噜夜夜狠狠视频无| 91精品无码久久久久久久| 久久老熟女| 婷婷8月天青娱乐| 性九九九九九九| 九九九九精品一区| 999九九精品| 狠狠干2020| 情色五月天就去干| 亚洲综合色在线| 久久9免费视频| 天天综合站| 密臀成人视频久久久| 欧美色图99| 青青草原成人| 天天插天天操天天摸天天射天天看| 日韩激情视频| www.男人天堂| 婷婷五月天无码 | 老司机深夜18禁污污网站| 91久久久亚洲| 天天激情综合站| 嫩草一区二区在线观看| 97人人操人人摸人人爱| 国人欧美精品一区二区| 人人操人人摸人 | 爱丝福利| 大香蕉日韩| 五十路三区在线| www.久久制服糖| 欧美经典一区二区三区| 亚洲欧美中文日韩视频中国语| 超碰在线观看av不卡| 五月天黄色激情视频| 久久久久9| 久99久视频精选| 久久日本熟女精品一区| 亚洲玖玖爱| 999精品乱码| A级毛片在线看免费| 国产不卡免费在线视频| 在线不卡视频| 精品性爱久久视频| 青青草大香蕉视频| A级国产欧美激情在线| 高清国产成人无码| 性爱av在线免费观看| 天天看综合网| 亚欧美综合网。| 美女超碰978| 日韩专区久久久| 97色碰| 91 国产丝袜在线放观看| 亚瑟国产精品久久无码| av影片在线观看不卡| 全国男人天堂网| 后入人妻一区| chaopen97久久| 一区二区三区美女超清| 久久99久久99久久99人受| 中文字幕天天天天天| 97超碰色中文字幕| 中文字幕日韩精品久久| 另类专区在线观看| 亚洲成人精品久久久| 欧美性暴力猛交| 性爱免费视频成人| AV天天在线观看| 青青草大香蕉视频| 日韩丰满熟妇| 国产精品久久久久久夜夜夜| 熟女人妻一区二区三区免费看| 人人看人人爰人人操| 五月丁香六月婷| 久久成人东京热人妻| 亚洲?V无码专区在线电影| 成人欧美一区二区三区黑人一| 国产超碰欧美| 伊人久久在线视频观看| 一区黄二区黄| 呦呦一区| 久久五月份| 中文字幕免费在线观看| av凤凰久久久| 久久久久久裸体| 少妇无码av专区线| 亚洲熟女一区| 一本精品日本在线视频精品| 丰满翘臀美女影院视频| 97在线观看| 亚洲图片欧美91N| 粉嫩AV一区二区夜夜| 婷婷色综合| 日韩欧美蜜桃精品久久中文字幕久久| 久久毛卡| 欧美日韩精品久久久久东北老熟妇| 国产自产自拍| 97一本大道亚洲一区| 国模不卡| 久久久内射良家| 女人喷水视频在线观看| 日韩无码服务区| 欧美 亚洲 偷拍自拍| 99re6国产精品99re| 综合欧美日韩在线观看| 亚洲青青草| 精品区国产区一区二区三区| 97视频播放| 丝袜美腿诱惑亚洲欧美视频在线观看| 亚洲欧美在线丝袜| 久久综合久久综合人久久夜精品| 久久综合九色综合欧洲98| 欧美大香蕉卡久久| 综合久久久久久久综合网| 欧美激情久久久久| 欧美大香蕉专区网| 女生久久网| 天天透伊人| 日韩免费av片高清无码| 男女性扦B| 99久热| 日本色日夜干| 91伊人影视综合| av天堂精品久久| 欧美丝袜亚洲| 国产精品小视频一区二区三区| 久久av无码| 我想要啊 啊 啊| 人人人人人人少妇| 日韩欧美大力操| 欧美亚洲中文字幕| 欧美日韩理论一区| 色波多| 另类老少妇| 夜夜操天| 强免费黄色网址| 欧美91变态| 国产热av| 丝袜制服字幕在线| 中文字幕一区电影在线观看| 中文乱码字幕观看视频| 爱啪精品一区| 97免费在线视频在线观看| 亚洲另类小说卡通动漫| 97在线播放| 精品国产国产AV| 人妻久久久| 国产精品 久久久精品一牛| 青青草公开在线免费不卡视频| 亚洲熟妇乱女区二区三区| 中文字幕乱在线伦视频中文字幕乱码在线| 日韩一卡二卡三卡| 国产女人9999| 日本97久久久精品| 日本一级一级一级一级| 一个国产在线综合网站| 性综合网| 国产精品伦理| 欧美午夜视频| 亚洲瓯美色图| 久久九九99| 天天弄天天操| 伊人天天久久动态图| 99re在线视频这里只有精品| 骚逼一区二区| 神马久久久久眼| 欧美黄片视频在线观看免费| 久久av成人无码免费| 欧美裸体美女日麻屄| 夜夜做夜夜爽精品视频| 9久精品视频在线观看| 精品福利视频| 久久9久9久99久9久9| 亚洲偷拍自拍在线视频| 久草视频观看视频在线| 正在播放国产精品一区| 欧美少妇色图| 日骚逼视频| 蜜臀久久99精品久久久久久成人小说 | 亚洲AV无码翔田千里网站| 亚洲一区二区三区婷婷| 丝袜AV一区二区三区| 亚洲日韩狠狠撸视频| 9精品久久| 天天综合麻豆视频| 国产精品久久久久久久久久久久久久久久 | 国产又粗又长的视频| 久操| 亚洲影视第一页| 大色网久久| 人妻精品一区一区三区蜜桃91| 青木玲在线不卡| 97天天插| 亚洲国产精品久久久久婷婷老年| 91国精产品| 玖色av| 老鸭窝在线视频播放| 婷婷激情丁香| 四方色播| 电家庭影院午夜69久久夜色精品国产69乱| 亚洲成人激情小说视频| 九九综合九九综合| 久久久久久久强迫| 欧美大香蕉久| 亚洲图片婷婷五月天| 午夜福利免费福利视频| 午夜久久无码1000合集| 亚洲砖码砖专无区2023| 九九热免费视频| 女同亚洲欧美一二三区久久电影| 亚洲狼狼干综合1| 欧洲与亚洲欧美精品中文字幕| 农村妇女精品一区二区| 久久精品无码不卡| 色路综合| 国产亚洲性生活视频播放| 日本操逼视频不卡直接放| 色色色色日本| 丁香六月激情| 91夜色chaopeng| ss久久| 日韩黄色小说| 亚洲欧美伦综合| 免费的黄片有限公司| 思思在线免费视频| 国语国产操逼伊人AV网| 粉嫩国产精品久久粉嫩| 操人妻逼91| 91精品国产91熟女| 国产综合色精品在线观看| 国产美女自拍AV| 一块操欧美| 久久97资源 网| 97鸡把在线视频| 98人妻精品一区二区色欲| 99久久久er直播网址| 人人喜人人妻| 亚洲伊人久久精品影院| 国产熟女精品一区二区| 中文字幕一二区二三区人妻专区| 日本欧美国内在线| 蜜桃精品视频一区| 亚洲天堂资源在线| 国产精品婬乱一级毛片彝族| 五月花婷婷| 99精品伊人| 黑人猛交| 国产男女无套视频免费观看| 欧美日韩国产电影| 亚洲精品电影| 成人羞羞视频国产| 噜噜噜无码AV一级一级久久影院| 国内黄色精品| 少妇熟女一区二区三区| 在线观看AV片| 四虎视频在线观看| 夜夜爽夜夜| 一级A片女人高潮叫床| 亚洲精品国产精品乱码不卡| 欧美翘臀视频网站一区二区三区| 亚洲精品国产精品乱码不99| 亚洲永久AV无码精品秋霞| 精品少妇99| 国产97色在线| 久久精品电影| 丝袜剧情| 九九九久久久久| 九九九久久久| 先锋精品av色鲁| 久久风骚城市| 亚洲欧美激情在线视频| A男人的天堂| 三男一女不戴套的A片| 九九热男人天堂| 中文三一区| 婷婷月色| 天天干夜夜鈤| 激情文学网伊人| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 天综合网欧美| 久久伊人亚洲AV无码网站| 婷婷激情一区二区三区俺也去| 亚洲一区二区三区婷婷| 国产av高清版| 国产熟妇 码视频户外直播| 又黑又大又粗| 中文久久| 国产视频一区二区在线观看| 亚洲 无码 偷拍| 亚洲另类久操网| 日本成a人v网站在线观看| 天天干2019| 91av一区二区在线观看| 黑丝日韩av丝袜av| 国产乱伦性爱区| 欧美精品三区| 亚洲乱码尤物193YW| 加勒比色99999| 国产精品老师| 国产高清成人免费视频| caopeng97| 97鸡把在线视频| 台湾佬激情综合| 成人线上超碰| 久久久久元码视频| 中文字幕亚洲热播人妻| 日韩精品亚洲一二三| 九九热最新| 美女操逼A A| 一区二区国产视频在线观看| 欧美aaaaaaa| 日韩本不卡视频在线观看 | 狠狠综合| 五月婷亚洲精品天堂| 91美女视频在线| 91社操逼| 色噜噜国产精品视频一区二区| 91女在线观看| 人妻81p| 日韩精品-原创伙伴| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美呦呦性爱| 五月天人妻综合| 天天日天天舔天天喷天天射| 国产久久成人| 亚洲激情欧美色图| 久久精品人体| 另类 日韩 熟女| 色色97爱| 亚洲天天影视综合网| 日本午夜精品理论片A级APP发布| av网站在线看| 97精品第3页| 国产无马av| 久久透逼视频| 97伊人超碰| 伊人 俄罗斯 a v| 99综合视频| 乱伦图av| 超碰色老头| 夜夜久久| 伊人女女资源在线观看| 九九九不卡| 男人的天堂欧美| 久久久久免费少妇| 波多野结衣先锋影音| 97综合久久| 91美女视频电影| 97在线精品| 久久久国产亚洲精品系列| 国产精品熟女一区二区三区| 女人18精品一区二区三区| 啊嗯好大视频在线观看| 色色亚洲| 国产精品爽爽va在线观看98| 亚洲国产91精品一区二区久久| 天天舔日美女视频| 啊啊啊啊啊舒服| AV老汉| 丁香五月电影| 中国东北熟女老太婆内谢| 日韩亚洲欧美中文字幕| 东京热男人天堂| 蜜桃臀一区二区aV| 亚洲色图自拍| 激情亚洲天堂| 色女99一级片在线观看| 亚洲欧洲偷拍一区| 东京日日夜夜| av资源在线播放天堂| 国产精品蜜乳AV| 国产强奸乱伦xd| 人人人摸人人| 人人爱人人乐人人操| 97在线视频观看| 亚洲高清综合网| 欧美成人精品欧美一级乱黄一区二…| 亚州大图综合色图| 久久亚州高清| 精品十三区| 岛国小电影| 中文字幕视频2区| 99热免费| 78p欧美| 精品久久久久瑟瑟| 99自拍B亚洲| 800zy一区二区| 麻豆性爱视频在线播放| 日日干夜夜操视频h| 东京成人一区| 久久一二三四不卡| 亚洲综合骚逼| 97热视频在线观看| 在线洲亚线| 久久久偷拍| 天天看天天日天天操| 91情色| 精品无码久久久久久国产浪潮| 影音先锋每日最新资源在线观看 | 国产熟女完整版中字| 偷拍自拍在线视频观看| 美女写真| 五月天婷婷综合| www.91色综合| 啊啊啊在线观看免费视频| 91处女视频在线观看| 9997se| 欧美综合色图网| 国产精品久久久啊| 天天激情综合站| 被体育老师抱着c到高潮| 五月丁香婷婷啪啪| 久久嫩草国产成人一区| 麻豆天美制片厂网站视频| 狠狠操狠狠燥| 欧美宗合色| 一区不卡在线观看av| 在线可观看的黄色网址| 亚洲天堂,男人| 日韩AV色图| 精品少妇一区二区三区| 特色a在线上| 国产AV激情无码久久无码 | 操人无码| 神马久久中文字幕| 嗯嗯,好大,好爽,好骚| 麻豆熟妇乱妇熟色A片在线看| avav青青草久久夜| 国产无吗在线播放| 蜜臀AV秘一区翔田千里| 91超级碰| 精品久久久久久亚洲| 60秒试看最爽10分钟网站| 狠狠躁天天躁日日躁97| 99精品高潮| 天天爱天天操| 久久久久久日韩| 欧美色三级片91| 色偷偷色偷偷欧美日韩| 91制服丝袜中文字幕| 欧美亚洲第一页| 国模限制级电影| 中文字幕55555| 国产97视频| 69精品久久久久中文字幕| 欧美日韩性感| 一本一道久久综合久久| 日本孕妇一区二区视频操逼免费看 | 久久啊啊啊视频| 巨乳特殊服务按摩| 天堂中文日本在线观看| 欧插网站| 台湾佬大香蕉| 神马久久久久久伦理片| 亚洲精品色| 一卡二卡三卡| 国产精品岛国片在线观看| 97精品综合| 日本久久久精品电影| 岛国毛片在线观看免费| 亚洲AV无码天美传媒一区| 91美女视频。| 无码精品一区二区三区潘金莲| 磁力99AV| 中文字幕丰满人妻日本| 最新欧美色网| 91超碰丝袜制服| 大香网站| 麻豆 亚洲 97| 国产极品精品美女视频| 久久精彩视频9| 青草精品视频-日本久久久久网站| 91人妻尻屄视频| 日韩淫色网| 12一15性XXXX粉嫩国产| 97蜜桃综合| 精品九九| 久久日韩毛| 91日韩| 曰韩精品九九无码 | 亚洲人妻中文高清| 人妻天天爽| 久草视频观看视频在线| 99re99视频在线免费观看| 久久国产在线一区二区| 自拍丝袜美腿人妻| 男人的天堂视频精品乱在线| 综合色久| 欧美日韩97| 国产精品一二三区福利| 亚洲加勒比久久日本道| 开心激情站| 欧美亚洲| 香蕉一区二区三区在线视频| 精品无码一区二区三区| 在线天堂999| 日产欧美电影一区二区三区| www色婷婷| 欧美大的香蕉有线电视视频| 素人播放一区| 久久日本熟妇熟色一区| 91色鬼| 中文字幕在线免费观看2| 国产午夜视频| 国产精品毛片?v一区二区三区 | 色欲天天婬色婬香WWW夜色| 日韩97视频!在线| 岛国福利在线精品播放| 啊啊好多水| JIZZJIZZ国产精品喷水| 亚洲图片偷拍欧美| 首页亚洲国产高跟丝袜诱惑视频 | 婷婷五月色| 超碰九7免费| 欧美78| 99亚洲天堂| 人妻天天爽天天爽三区| 亚洲美女色图| 操我无码| 91人妻在线视频| 天天舔九色婷婷| 日韩成人综合网| 性一级黄色录像片网站导航| 精品久一区免费| 粉嫩av在线一区二区| 无套后入双马尾| 先锋音影AV| 国产97色在线| 极品欧美一区二区三区| 国产精品久久久久久久久久久久久久久久久久 | 人妻少妇色综合| 日韩三A大片在线观看| 亚洲国产97在线精品一区| 国产精品一区人妻精品阁在线| 午夜超爽| 超碰久超碰久| 91老熟女老女人国产老太| 国产超碰人人操| 婷婷干黄色| 精品无码少妇| 九九成人精品| 最新欧洲欧美日本激情网站| 激情 欧美 亚洲 小说| 久热这里只有精品9| 9 7超碰在线免费观看| 亚洲久热| 日韩国产成人自拍视频| 啊啊啊想要| 麻豆一区二区三区在线看| 91九色丨国产丨爆乳| 色五月婷婷久久| 国产欧美日韩精品中文| 欧美少妇人妻| 黄色交缠性感爆操91国产精品免费一区二区三区 | 色色福利| 亚洲熟妇自偷自拍另欧美| 欧美性爱日韩性爱| 国产999精品久久久| 九一国产精品| 中出789在线视频| 人妻嗯啊啊在线播放| 国产视频一区二区免费| 欧美福利视频啊啊啊啊| 亚洲天堂2020| AV女资源| 人妻大香蕉| 亚洲日韩久久精品一区| 黄页18禁| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 91影库| 亚洲精品一区二区日本| 日韩综合色图| 久操电影网| 九九九九九九精品| 国产情色第一第二页在线观看| 妇人噜噜| 欧美97视频| 色九九九| 9 7超碰在线免费观看| 欧美疯狂做爰xxxx| 婷婷AV一区二区三区| 国产精品成人蜜臀AV在线| 国产成人精品必看| 大香蕉一区二区在线观看.| 97视频播放| 国产精品久久久久久久久久久久久久吹 | 十八禁av无码免费网站APP| 97色操| 伦理第一页| 人妻三级在线中文字幕| 亚洲色交| 欧美综合网| 一二三区精品视频| 婷婷丁香人妻| 男人的天堂va在线| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 人妻熟女一区二区在线视频| 欧美综合天堂| 亚洲欧美清纯| dy888午夜老子影视达达兔| 一区二区不卡视| 91人妻人人澡人人爽人人精品|