{"id":1301,"date":"2026-06-04T03:51:33","date_gmt":"2026-06-04T03:51:33","guid":{"rendered":"https:\/\/allenglish4u.com\/cambridge-ket-1-test-2-rw\/"},"modified":"2026-07-05T02:44:39","modified_gmt":"2026-07-05T02:44:39","slug":"cambridge-ket-1-test-2-rw","status":"publish","type":"page","link":"https:\/\/allenglish4u.com\/vi\/cambridge-ket-1-test-2-rw\/","title":{"rendered":"KET 1 \u2014 Test 2 Reading &#038; Writing"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,700&display=swap');\n\n\/* escape WP wrapper *\/\n.entry-content,.wp-block-post-content,.is-layout-constrained{max-width:none !important;width:auto !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}\n.wp-block-post-title{display:none !important;}\n\n:root{\n  --accent-1:#F97316;\n  --accent-2:#F43F5E;\n  --gold:#F9C74F;\n  --green:#10B981;\n  --red:#EF4444;\n  --light-1:#FFF7ED;\n  --light-2:#FFFBF5;\n  --white:#FFFFFF;\n  --text:#0F172A;\n  --muted:#475569;\n  --subtle:#64748B;\n  --border:#E2E8F0;\n  --dark-1:#1B0F02;\n  --dark-2:#2D1A06;\n  --r-10:10px; --r-16:16px; --r-22:22px;\n  --sh-card:0 2px 8px rgba(0,0,0,.06);\n  --sh-lg:0 12px 40px rgba(0,0,0,.12);\n}\n*{margin:0;padding:0;box-sizing:border-box}\nhtml{scroll-behavior:smooth}\nbody{\n  font-family:'Plus Jakarta Sans',system-ui,sans-serif;\n  color:var(--text);\n  background:var(--light-2);\n  -webkit-font-smoothing:antialiased;\n  overflow-x:hidden;\n}\n.serif{font-family:'Fraunces',Georgia,serif;font-weight:700;letter-spacing:-.01em}\n.wrap{max-width:1080px;margin:0 auto;padding:0 24px}\na{color:inherit;text-decoration:none}\nbutton{font-family:inherit;cursor:pointer;border:none;background:none}\n\n\/* HEADER (same pattern as cambridge index) *\/\n.header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .28s ease,box-shadow .28s ease;border-bottom:1px solid transparent;}\n.header.solid{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(15,23,42,.02);}\n.header-inner{display:flex;align-items:center;gap:28px;height:72px;max-width:1200px;margin:0 auto;padding:0 24px}\n.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}\n.brand img{width:40px;height:40px;border-radius:11px;object-fit:cover;box-shadow:var(--sh-card)}\n.brand-name{font-weight:800;font-size:18px;letter-spacing:-.02em;color:#fff;transition:color .28s ease}\n.header.solid .brand-name{color:var(--text)}\n.nav{display:flex;align-items:center;gap:4px;margin-left:8px}\n.nav a{position:relative;padding:9px 13px;font-size:14.5px;font-weight:600;color:rgba(255,255,255,.82);border-radius:var(--r-10);transition:color .16s ease,background .16s ease;}\n.nav a:hover{color:#fff;background:rgba(255,255,255,.08)}\n.header.solid .nav a{color:var(--muted)}\n.header.solid .nav a:hover{color:var(--text);background:var(--light-1)}\n.header-right{margin-left:auto;display:flex;align-items:center;gap:10px}\n.btn-back{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;font-weight:700;font-size:14px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.22);transition:background .16s ease}\n.btn-back:hover{background:rgba(255,255,255,.22)}\n.header.solid .btn-back{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.hamburger{display:none;width:40px;height:40px;border-radius:50%;color:#fff;align-items:center;justify-content:center}\n.header.solid .hamburger{color:var(--text)}\n\n\/* HERO *\/\n.hero{\n  position:relative;min-height:380px;padding:120px 0 60px;\n  background:linear-gradient(135deg,#FB923C 0%,#F43F5E 55%,#7C2D12 100%);\n  color:#fff;overflow:hidden;\n}\n.hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.10) 0%,transparent 50%);pointer-events:none}\n.hero .wrap{position:relative;z-index:1}\n.kicker{display:inline-block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;opacity:.92;margin-bottom:14px}\n.hero h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin-bottom:14px}\n.hero h1 span{font-style:italic;color:var(--gold)}\n.hero p.sub{font-size:17px;line-height:1.6;max-width:680px;opacity:.95;margin-bottom:22px}\n.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}\n.meta-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.24);font-size:13px;font-weight:600}\n.meta-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}\n.cta-row{display:flex;gap:12px;flex-wrap:wrap}\n.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:#fff;color:var(--text);font-weight:700;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform .16s ease}\n.btn-primary:hover{transform:translateY(-2px)}\n.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:15px;border:1px solid rgba(255,255,255,.32);transition:background .16s ease}\n.btn-ghost:hover{background:rgba(255,255,255,.22)}\n\n\/* SCORE BAR *\/\n.score-bar{\n  position:sticky;top:72px;z-index:50;\n  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);\n  border-bottom:1px solid var(--border);\n  padding:14px 0;\n}\n.sb-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}\n.sb-prog{flex:1;min-width:200px}\n.sb-prog-bar{height:8px;background:var(--light-1);border-radius:999px;overflow:hidden}\n.sb-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-1),var(--accent-2));border-radius:999px;transition:width .3s ease;width:0}\n.sb-prog-label{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}\n.sb-score{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--text)}\n.sb-score b{font-size:18px;color:var(--accent-1)}\n.btn-submit{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:14px;box-shadow:0 6px 18px rgba(249,115,22,.32);transition:transform .15s ease,opacity .15s ease}\n.btn-submit:hover{transform:translateY(-1px)}\n.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}\n.btn-reset{padding:10px 16px;border-radius:999px;background:#fff;color:var(--muted);font-weight:600;font-size:13px;border:1px solid var(--border);transition:background .15s ease}\n.btn-reset:hover{background:var(--light-1);color:var(--text)}\n\n\/* PARTS *\/\n.part-section{padding:48px 0;border-bottom:1px solid var(--border)}\n.part-section:nth-of-type(even){background:#fff}\n.part-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px}\n.part-num{\n  flex-shrink:0;width:60px;height:60px;border-radius:18px;\n  background:linear-gradient(135deg,var(--accent-1),var(--accent-2));\n  color:#fff;display:grid;place-items:center;\n  font-family:'Fraunces',serif;font-weight:700;font-size:26px;\n  box-shadow:0 8px 22px rgba(249,115,22,.3);\n}\n.part-head-text h2{font-size:26px;line-height:1.15;margin-bottom:6px}\n.part-head-text .qrange{display:inline-block;font-size:12.5px;font-weight:700;color:var(--accent-1);background:var(--light-1);padding:4px 10px;border-radius:999px;letter-spacing:.04em;margin-bottom:8px}\n.part-head-text p{color:var(--muted);font-size:15px;line-height:1.55;max-width:740px}\n\n\/* PART 1 &#8212; notice match *\/\n.notices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:20px 0 28px}\n.notice{\n  background:#fff;border:2px solid var(--border);border-radius:14px;padding:18px 14px;text-align:center;\n  font-weight:700;letter-spacing:.02em;color:var(--text);min-height:88px;display:grid;place-items:center;\n  font-size:14.5px;line-height:1.35;\n  box-shadow:0 1px 3px rgba(0,0,0,.04);\n}\n.notice-letter{position:absolute;top:6px;left:8px;font-size:11px;font-weight:800;color:var(--accent-1);background:var(--light-1);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;}\n.notice{position:relative}\n\n\/* questions list *\/\n.q-list{display:flex;flex-direction:column;gap:14px;margin-top:8px}\n.q-item{\n  background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 20px;\n  display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease,box-shadow .2s ease;\n}\n.q-item.correct{border-color:var(--green);box-shadow:0 0 0 3px rgba(16,185,129,.12)}\n.q-item.wrong{border-color:var(--red);box-shadow:0 0 0 3px rgba(239,68,68,.12)}\n.q-num{font-weight:800;color:var(--accent-1);font-size:14px;min-width:30px}\n.q-text{flex:1;font-size:15.5px;line-height:1.55;color:var(--text);display:flex;gap:10px;align-items:flex-start}\n.q-text b.qn{color:var(--accent-1);font-weight:800}\n.q-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}\n.opt{\n  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;\n  background:#F8FAFF;border:1.5px solid var(--border);font-weight:600;font-size:14px;color:var(--text);\n  cursor:pointer;transition:all .15s ease;user-select:none;\n}\n.opt:hover{background:var(--light-1);border-color:var(--accent-1)}\n.opt input{display:none}\n.opt .opt-letter{font-weight:800;color:var(--accent-1);background:#fff;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12.5px;border:1px solid var(--border)}\n.opt.selected{background:linear-gradient(100deg,rgba(249,115,22,.12),rgba(244,63,94,.12));border-color:var(--accent-1)}\n.opt.selected .opt-letter{background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;border-color:transparent}\n.opt.correct-opt{background:rgba(16,185,129,.12) !important;border-color:var(--green) !important}\n.opt.correct-opt .opt-letter{background:var(--green) !important;color:#fff !important;border-color:transparent !important}\n.opt.wrong-opt{background:rgba(239,68,68,.10) !important;border-color:var(--red) !important}\n.opt.wrong-opt .opt-letter{background:var(--red) !important;color:#fff !important;border-color:transparent !important}\n.feedback{font-size:13px;font-weight:600;display:none;padding:8px 12px;border-radius:8px;margin-top:4px}\n.q-item.answered .feedback{display:block}\n.q-item.correct .feedback{background:rgba(16,185,129,.12);color:#065F46}\n.q-item.wrong .feedback{background:rgba(239,68,68,.10);color:#991B1B}\n\n\/* PART 2 \/ cloze with input *\/\n.input-blank{\n  display:inline-block;min-width:90px;border:none;border-bottom:2px dashed var(--accent-1);\n  background:transparent;font-family:inherit;font-size:15.5px;color:var(--text);font-weight:600;\n  padding:2px 6px;margin:0 4px;text-align:center;outline:none;\n}\n.input-blank:focus{border-bottom-style:solid;background:var(--light-1)}\n.input-blank.correct{border-bottom-color:var(--green);color:#065F46;background:rgba(16,185,129,.10)}\n.input-blank.wrong{border-bottom-color:var(--red);color:#991B1B;background:rgba(239,68,68,.08)}\n\n\/* PART 4 &#8212; passage *\/\n.passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;\n  padding:24px 26px;margin:8px 0 20px;\n  font-size:15.5px;line-height:1.7;color:var(--text);\n  box-shadow:var(--sh-card);\n  position:relative;\n}\n.passage h3{font-family:'Fraunces',serif;font-size:22px;text-align:center;margin-bottom:14px;letter-spacing:.02em;color:var(--accent-2)}\n.passage p{margin-bottom:10px}\n\n\/* PART 5 &#8212; cloze passage *\/\n.cloze-passage{\n  background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px 26px;\n  font-size:16px;line-height:1.8;color:var(--text);box-shadow:var(--sh-card);margin-bottom:24px;\n}\n.cloze-passage h3{font-family:'Fraunces',serif;font-size:24px;text-align:center;color:var(--accent-2);margin-bottom:14px}\n\n\/* PART 6 &#8212; single word with first letter *\/\n.word-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}\n.first-letter{font-weight:700;color:var(--accent-1);font-size:18px;font-family:'Fraunces',serif}\n.dashes{color:var(--muted);letter-spacing:6px;font-weight:600}\n\n\/* PART 8 &#8212; form *\/\n.form-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px;max-width:560px}\n.form-card h4{font-family:'Fraunces',serif;font-size:20px;text-align:center;color:var(--accent-2);margin-bottom:6px;border-bottom:2px solid var(--accent-1);padding-bottom:8px;display:inline-block;width:100%}\n.form-row{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}\n.form-row label{flex:0 0 200px;font-weight:600;color:var(--text);font-size:14.5px}\n.form-row .input-blank{flex:1;min-width:200px;text-align:left;font-size:14.5px}\n\n\/* PART 9 &#8212; writing *\/\n.writing-card{background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;margin-top:18px}\n.prompt-box{background:var(--light-1);border-left:4px solid var(--accent-1);padding:14px 18px;border-radius:0 12px 12px 0;margin-bottom:18px;font-size:15px;line-height:1.6}\n.prompt-box ul{margin:10px 0 4px 22px}\n.prompt-box li{margin-bottom:4px}\n.writing-area{width:100%;min-height:160px;padding:14px;font-family:inherit;font-size:15px;line-height:1.55;border:2px solid var(--border);border-radius:12px;background:#FAFBFC;color:var(--text);outline:none;resize:vertical;transition:border-color .2s ease}\n.writing-area:focus{border-color:var(--accent-1);background:#fff}\n.wc-counter{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--muted);font-weight:600}\n.wc-counter.ok{color:var(--green)}\n.wc-counter.over{color:var(--red)}\n.sample-toggle{margin-top:14px;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:linear-gradient(100deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:13.5px;border:none;cursor:pointer}\n.sample-box{display:none;margin-top:14px;padding:14px 18px;background:#FEF3C7;border-left:4px solid var(--gold);border-radius:0 12px 12px 0;font-size:14.5px;line-height:1.6}\n.sample-box.show{display:block}\n.sample-box h5{font-family:'Fraunces',serif;font-size:16px;margin-bottom:8px;color:#92400E}\n\n\/* SHOW ANSWER PER-Q BUTTONS *\/\n.show-ans-btn{\n  display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:8px;\n  background:rgba(249,115,22,.10);color:var(--accent-1);font-weight:700;font-size:12px;\n  border:1px solid rgba(249,115,22,.30);cursor:pointer;transition:all .15s ease;\n  font-family:inherit;align-self:flex-start;margin-top:4px;letter-spacing:.02em;\n}\n.show-ans-btn:hover{background:rgba(249,115,22,.18);border-color:var(--accent-1)}\n.show-ans-btn[disabled]{opacity:.45;cursor:not-allowed}\n.show-ans-btn .emoji{width:14px;height:14px}\n.show-ans-btn-inline{\n  display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;\n  background:rgba(249,115,22,.10);color:var(--accent-1);font-weight:700;font-size:11.5px;\n  border:1px solid rgba(249,115,22,.28);cursor:pointer;font-family:inherit;\n  margin-left:4px;vertical-align:middle;transition:all .15s ease;\n}\n.show-ans-btn-inline:hover{background:rgba(249,115,22,.18)}\n.show-ans-btn-inline[disabled]{opacity:.45;cursor:not-allowed}\n\n\/* RESULTS BANNER *\/\n.results-banner{\n  display:none;margin:32px auto;padding:30px;border-radius:22px;\n  background:linear-gradient(135deg,#FB923C,#F43F5E);color:#fff;text-align:center;max-width:720px;\n  box-shadow:0 16px 50px rgba(249,115,22,.3);\n}\n.results-banner.show{display:block}\n.results-banner h3{font-size:30px;font-family:'Fraunces',serif;margin-bottom:10px}\n.results-banner .score-big{font-size:64px;font-weight:800;line-height:1;margin:14px 0;font-family:'Fraunces',serif}\n.results-banner p{opacity:.95;font-size:15px}\n\n\/* FOOTER *\/\n.footer{background:var(--dark-1);color:#9CA3AF;padding:36px 0;text-align:center;font-size:13.5px}\n.footer a{color:var(--gold);font-weight:600}\n\n\/* MOBILE *\/\n@media (max-width:820px){\n  .nav{display:none}\n  .hamburger{display:flex}\n  .hero{padding:110px 0 50px}\n  .part-head{flex-direction:column;gap:12px}\n  .part-num{width:50px;height:50px;font-size:22px}\n  .notices-grid{grid-template-columns:repeat(2,1fr)}\n  .form-row label{flex:1 1 100%}\n  .form-row .input-blank{width:100%}\n  .sb-inner{gap:10px}\n  .sb-prog{order:3;flex:1 1 100%}\n}\n\n\/* mobile drawer *\/\n.drawer{position:fixed;inset:0;background:rgba(15,23,42,.65);z-index:200;display:none;align-items:flex-start;justify-content:flex-end}\n.drawer.open{display:flex}\n.drawer-panel{width:280px;background:#fff;height:100%;padding:24px;display:flex;flex-direction:column;gap:8px}\n.drawer-panel a{padding:12px 14px;border-radius:10px;font-weight:600;color:var(--text)}\n.drawer-panel a:hover{background:var(--light-1)}\n.drawer-close{align-self:flex-end;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}\n<\/style>\n\n<!-- HEADER -->\n<header class=\"header\" id=\"hdr\">\n  <div class=\"header-inner\">\n    <a href=\"https:\/\/allenglish4u.com\" class=\"brand\">\n      <img decoding=\"async\" src=\"https:\/\/allenglish4u.com\/wp-content\/uploads\/2026\/04\/Transparent-background-MacBook-Pro-cua-Hang.png\" alt=\"AE4U\">\n      <span class=\"brand-name\">All English 4U<\/span>\n    <\/a>\n    <nav class=\"nav\">\n      <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"active\">Cambridge<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n      <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n      <\/nav>\n    <div class=\"header-right\">\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-back\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M19 12H5M11 18l-6-6 6-6\"\/><\/svg>\n        Back\n      <\/a>\n      <button class=\"hamburger\" id=\"hamb\" aria-label=\"Menu\">\n        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M3 6h18M3 12h18M3 18h18\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<div class=\"drawer\" id=\"drawer\">\n  <div class=\"drawer-panel\">\n    <button class=\"drawer-close\" id=\"drawerClose\" aria-label=\"Close\">\n      <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg>\n    <\/button>\n    <a href=\"https:\/\/allenglish4u.com\/grammar\/\">Grammar<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/ielts\/\">IELTS<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/toefl\/\">TOEFL<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">Cambridge<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/celpip\/\">CELPIP<\/a>\n    <a href=\"https:\/\/allenglish4u.com\/dictation\/\">Dictation<\/a>\n    <\/div>\n<\/div>\n\n<!-- HERO -->\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"kicker\">Cambridge English &#183; Key (KET)<\/span>\n    <h1 class=\"serif\">KET 1 &#8212; Test 2<br><span>Reading &amp; Writing<\/span><\/h1>\n    <p class=\"sub\">Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn from instant feedback.<\/p>\n    <div class=\"hero-meta\">\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>1 hour 10 minutes<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>9 Parts<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>55 auto-graded<\/span>\n      <span class=\"meta-pill\"><span class=\"dot\"><\/span>+ Writing prompt<\/span>\n    <\/div>\n    <div class=\"cta-row\">\n      <a href=\"#part1\" class=\"btn-primary\">\n        Start Test\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\n      <\/a>\n      <a href=\"https:\/\/allenglish4u.com\/cambridge\/\" class=\"btn-ghost\">All Cambridge Tests<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- SCORE BAR -->\n<div class=\"score-bar\" id=\"scoreBar\">\n  <div class=\"wrap sb-inner\">\n    <div class=\"sb-score\">Score <b><span id=\"scoreNow\">0<\/span>\/55<\/b><\/div>\n    <div class=\"sb-prog\">\n      <div class=\"sb-prog-bar\"><div class=\"sb-prog-fill\" id=\"progFill\"><\/div><\/div>\n      <div class=\"sb-prog-label\"><span id=\"answeredCount\">0<\/span> of 55 answered<\/div>\n    <\/div>\n    <button class=\"btn-submit\" id=\"submitBtn\">\n      <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg>\n      Submit &amp; Grade\n    <\/button>\n    <button class=\"btn-reset\" id=\"resetBtn\">Reset<\/button>\n  <\/div>\n<\/div>\n\n<!-- ============== PART 1 ============== -->\n<section class=\"part-section\" id=\"part1\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">1<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 1&#8211;5<\/span>\n        <h2 class=\"serif\">Match the notice<\/h2>\n        <p>Which notice (A&#8211;H) says this (1&#8211;5)? For questions 1&#8211;5, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"notices-grid\">\n      <div class=\"notice\"><span class=\"notice-letter\">A<\/span>NO SERVICE STATION<br>ON MOTORWAY<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">B<\/span>Travel Express<br><sub style=\"font-size:11px;font-weight:600\">NEW BUSINESS HOURS<br>9 A.M.&#8211;9 P.M.<\/sub><\/div>\n      <div class=\"notice\" style=\"opacity:.55\"><span class=\"notice-letter\">C<\/span>LEFT LUGGAGE<br>OPEN 24 HOURS<br><sub style=\"font-size:10px;color:var(--muted);font-style:italic;font-weight:600\">(example)<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">D<\/span>PLEASE USE<br>OTHER DOOR<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">E<\/span>Camp-site<br>Open All Year<\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">F<\/span>JOB AGENCY<br><sub style=\"font-size:11px;font-weight:600;font-style:italic\">We&#8217;ve got the right<br>job for you!<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">G<\/span>Joe&#8217;s Snack Bar<br><sub style=\"font-size:11px;font-weight:600;font-style:italic\">Lowest Prices in Town!<\/sub><\/div>\n      <div class=\"notice\"><span class=\"notice-letter\">H<\/span>DANGER!<br>ICE ON ROAD<\/div>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part1List\">\n      <!-- Q1-5 -->\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 2 ============== -->\n<section class=\"part-section\" id=\"part2\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">2<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 6&#8211;10<\/span>\n        <h2 class=\"serif\">A trip to the country<\/h2>\n        <p>Read the sentences (6&#8211;10) about a trip to the country. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> Nick and Charles wanted to spend a <u>day<\/u> in the country. <b>(Answer: A)<\/b>\n    <\/div>\n    <div class=\"q-list\" id=\"part2List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3a ============== -->\n<section class=\"part-section\" id=\"part3a\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 11&#8211;15<\/span>\n        <h2 class=\"serif\">Complete the conversations<\/h2>\n        <p>Complete the five conversations. Choose the correct answer (A, B or C).<\/p>\n      <\/div>\n    <\/div>\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:14.5px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example:<\/b> How are you? &#8212; <b>C<\/b> I&#8217;m fine.\n    <\/div>\n    <div class=\"q-list\" id=\"part3aList\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 3b ============== -->\n<section class=\"part-section\" id=\"part3b\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">3<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 16&#8211;20<\/span>\n        <h2 class=\"serif\">Telephone conversation: Peter &#038; James<\/h2>\n        <p>Complete the telephone conversation. What does Peter say to James? For each blank, choose the correct letter A&#8211;H.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;margin-bottom:18px;font-size:14.5px;line-height:1.7\">\n      <p><b>James:<\/b> Hello, 345920.<\/p>\n      <p><b>Peter:<\/b> <span style=\"color:var(--accent-1);font-weight:700\">(Example: G)<\/span><\/p>\n      <p><b>James:<\/b> No, I don&#8217;t think so. Why?<\/p>\n      <p><b>Peter:<\/b> <select class=\"q-select\" data-qid=\"16\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>James:<\/b> Where are they playing?<\/p>\n      <p><b>Peter:<\/b> <select class=\"q-select\" data-qid=\"17\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>James:<\/b> I&#8217;d love to come. How much are the tickets?<\/p>\n      <p><b>Peter:<\/b> <select class=\"q-select\" data-qid=\"18\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>James:<\/b> Will we have to leave early?<\/p>\n      <p><b>Peter:<\/b> <select class=\"q-select\" data-qid=\"19\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>James:<\/b> What time shall we meet?<\/p>\n      <p><b>Peter:<\/b> <select class=\"q-select\" data-qid=\"20\"><option value=\"\">&#8212; choose &#8212;<\/option><option>A<\/option><option>B<\/option><option>C<\/option><option>D<\/option><option>E<\/option><option>F<\/option><option>H<\/option><\/select><\/p>\n      <p><b>James:<\/b> Thanks, Peter. Goodbye.<\/p>\n      <p><b>Peter:<\/b> Goodbye.<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 22px;font-size:14px;line-height:1.85\">\n      <b style=\"color:var(--accent-1);display:block;margin-bottom:6px\">Choices:<\/b>\n      <div><b>A<\/b> They&#8217;re free. My father gave them to me.<\/div>\n      <div><b>B<\/b> In London. We can go in my car.<\/div>\n      <div><b>C<\/b> I&#8217;ll call you again on Friday to arrange the time.<\/div>\n      <div><b>D<\/b> My car&#8217;s very small.<\/div>\n      <div><b>E<\/b> I&#8217;ve got some tickets for the football &#8212; England against France.<\/div>\n      <div><b>F<\/b> We can meet in the town centre.<\/div>\n      <div style=\"opacity:.5\"><b>G<\/b> Hello, it&#8217;s Peter. Are you busy on Saturday? <i>(example)<\/i><\/div>\n      <div><b>H<\/b> I suppose so. There may be a lot of traffic.<\/div>\n    <\/div>\n\n    <div id=\"part3bFeedback\" style=\"margin-top:14px\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 4 ============== -->\n<section class=\"part-section\" id=\"part4\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">4<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 21&#8211;27<\/span>\n        <h2 class=\"serif\">The History of the London Police<\/h2>\n        <p>Read the article about the London police and answer the questions. For questions 21&#8211;27, mark A, B or C.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"passage\">\n      <h3>THE HISTORY OF THE LONDON POLICE<\/h3>\n      <p>Today there are policemen everywhere, but in 1700 London had no policemen at all. A few old men used to protect the city streets at night and they were not paid very much.<\/p>\n      <p>About 300 years ago, London was starting to get bigger. The city was very dirty and many people were poor. There were so many thieves who stole money in the streets that people stayed in their homes as much as possible.<\/p>\n      <p>In 1750, Henry Fielding started to pay a group of people to stop thieves. These people were like policemen and were called &#8216;Bow Street Runners&#8217; because they worked near Bow Street.<\/p>\n      <p>Fifty years later, there were 120 Bow Street Runners, but London had become very big and needed more policemen. So, in 1829, the first Metropolitan (or London) Police Force was started with 3000 officers. Most of the men worked on foot, but a few rode horses. Until 1920 all the police in London were men.<\/p>\n      <p>Today, London police are quite well paid and for the police officers who still ride horses, the pay is even better than for the others.<\/p>\n    <\/div>\n\n    <div style=\"background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 18px;margin-bottom:18px;font-size:14px;color:var(--muted)\">\n      <b style=\"color:var(--accent-1)\">Example (0):<\/b> In 1700, there were &#8594; <b>C (no policemen in London)<\/b>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part4List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 5 ============== -->\n<section class=\"part-section\" id=\"part5\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">5<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 28&#8211;35<\/span>\n        <h2 class=\"serif\">Dinosaurs &#8212; gap fill<\/h2>\n        <p>Read the information about dinosaurs. Choose the best word (A, B or C) for each space.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"cloze-passage\">\n      <h3>DINOSAURS<\/h3>\n      <p>No one has <u><b style=\"color:var(--accent-1)\">ever<\/b><\/u> seen a dinosaur. The last dinosaur died about 60 million years ago, a long time <span data-q=\"28\" class=\"cloze-blank\">[28]<\/span> there were any people on the earth. <span data-q=\"29\" class=\"cloze-blank\">[29]<\/span> knows for sure why they all died. The nearest living relatives of dinosaurs are birds.<\/p>\n      <p>Dinosaurs didn&#8217;t all look the same. There were more <span data-q=\"30\" class=\"cloze-blank\">[30]<\/span> 5000 kinds. Some were very small, <span data-q=\"31\" class=\"cloze-blank\">[31]<\/span> others were giants. The largest were bigger than any other animals that ever lived <span data-q=\"32\" class=\"cloze-blank\">[32]<\/span> land. The Brontosaurus, for example, was twenty metres long, and it <span data-q=\"33\" class=\"cloze-blank\">[33]<\/span> plants. The Tyrannosaurus Rex was not as <span data-q=\"34\" class=\"cloze-blank\">[34]<\/span>, but it was stronger. It had sharp teeth for eating meat. Also it could run fast <span data-q=\"35\" class=\"cloze-blank\">[35]<\/span> it had long back legs.<\/p>\n    <\/div>\n\n    <div class=\"q-list\" id=\"part5List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 6 ============== -->\n<section class=\"part-section\" id=\"part6\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">6<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 36&#8211;40<\/span>\n        <h2 class=\"serif\">Places &#8212; spell the word<\/h2>\n        <p>Read the descriptions of some places. The first letter is given. Type the word. <b>Example (0):<\/b> You can take the train from here. &#8594; <b>station<\/b><\/p>\n      <\/div>\n    <\/div>\n    <div class=\"q-list\" id=\"part6List\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 7 ============== -->\n<section class=\"part-section\" id=\"part7\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">7<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 41&#8211;50<\/span>\n        <h2 class=\"serif\">Complete these letters<\/h2>\n        <p>Type <b>ONE word<\/b> for each space. (Example: <i>be<\/i>)<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"display:grid;grid-template-columns:1fr 1fr;gap:18px\">\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;font-size:14.5px;line-height:1.75;font-family:'Courier New',monospace\">\n        <p style=\"text-align:right;font-style:normal\">14 Sheffield Road<br>Rotherham<br>20th May 2002<\/p>\n        <p>Dear Mary,<\/p>\n        <p>I will (Example: <u>be<\/u>) in London <input class=\"input-blank\" data-q=\"41\" type=\"text\"> Thursday morning. Would you like to have lunch <input class=\"input-blank\" data-q=\"42\" type=\"text\"> me? Write and tell <input class=\"input-blank\" data-q=\"43\" type=\"text\"> when you are free and where I <input class=\"input-blank\" data-q=\"44\" type=\"text\"> meet you.<\/p>\n        <p>Hope to see you then.<\/p>\n        <p>Yours<\/p>\n        <p><i>Joan<\/i><\/p>\n      <\/div>\n      <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:22px;font-size:14.5px;line-height:1.75;font-family:'Courier New',monospace\">\n        <p style=\"text-align:right;font-style:normal\">20 DIDSBURY DRIVE<br>LONDON NW1<br>22 May 2002<\/p>\n        <p>Dear Joan,<\/p>\n        <p>Thanks <input class=\"input-blank\" data-q=\"45\" type=\"text\"> your letter. I got it this morning. Yes, I&#8217;d <input class=\"input-blank\" data-q=\"46\" type=\"text\"> to see you. How about meeting outside <input class=\"input-blank\" data-q=\"47\" type=\"text\"> office at one o&#8217;clock? There&#8217;s <input class=\"input-blank\" data-q=\"48\" type=\"text\"> good Italian restaurant near there. <input class=\"input-blank\" data-q=\"49\" type=\"text\"> you like Italian food? I have to be back at work by two o&#8217;clock, so please don&#8217;t <input class=\"input-blank\" data-q=\"50\" type=\"text\"> late!<\/p>\n        <p>Yours<\/p>\n        <p><i>Mary<\/i><\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 8 ============== -->\n<section class=\"part-section\" id=\"part8\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">8<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Questions 51&#8211;55<\/span>\n        <h2 class=\"serif\">Trip to Hong Kong &#8212; notebook<\/h2>\n        <p>Read the message from Cathy at Asia Travel to Mrs Jones. Complete Mrs Jones&#8217;s notebook.<\/p>\n      <\/div>\n    <\/div>\n\n    <div style=\"background:#fff;border:1.5px solid var(--border);border-radius:16px;padding:18px 20px;font-size:14.5px;line-height:1.75;margin-bottom:18px\">\n      <p style=\"margin-bottom:4px\"><b>To:<\/b> Mrs Jones<\/p>\n      <p style=\"margin-bottom:10px\"><b>From:<\/b> Cathy, Asia Travel<\/p>\n      <p style=\"margin-bottom:8px\">Here is the latest information about your trip to Hong Kong.<\/p>\n      <p style=\"margin-bottom:8px\">You will fly from London Airport on 13th September at 10.15 a.m. Terminal 4 is closed so please go to Terminal 3 at 8 a.m.<\/p>\n      <p style=\"margin-bottom:0\">You will get back to the UK a day earlier than we first said, on 19th September (not 20th) at 21.45. I have booked a taxi because the last airport bus goes at 21.30.<\/p>\n    <\/div>\n\n    <div class=\"form-card\">\n      <h4>Trip to Hong Kong<\/h4>\n      <div class=\"form-row\"><label>On:<\/label><span style=\"font-weight:600;color:var(--accent-2);font-style:italic\">13th September<\/span><\/div>\n      <div class=\"form-row\"><label>Leave from:<\/label><input class=\"input-blank\" data-q=\"51\" type=\"text\"><span style=\"font-weight:500;color:var(--muted);font-size:14px\">, London Airport<\/span><\/div>\n      <div class=\"form-row\"><label>Be there at:<\/label><input class=\"input-blank\" data-q=\"52\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Date of return flight:<\/label><input class=\"input-blank\" data-q=\"53\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>UK arrival time:<\/label><input class=\"input-blank\" data-q=\"54\" type=\"text\"><\/div>\n      <div class=\"form-row\"><label>Travel home from airport by:<\/label><input class=\"input-blank\" data-q=\"55\" type=\"text\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PART 9 &#8212; WRITING ============== -->\n<section class=\"part-section\" id=\"part9\">\n  <div class=\"wrap\">\n    <div class=\"part-head\">\n      <div class=\"part-num\">9<\/div>\n      <div class=\"part-head-text\">\n        <span class=\"qrange\">Question 56<\/span>\n        <h2 class=\"serif\">Writing &#8212; note to Leslie<\/h2>\n        <p>This part is <b>not auto-graded<\/b>. Write your note, then click <i>Show Sample Answer<\/i> to see multiple examples.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"writing-card\">\n      <div class=\"prompt-box\">\n        <b>Read this note from your friend Leslie. Write a note to Leslie and answer his questions.<\/b>\n        <div style=\"background:#fff;border:1px dashed var(--accent-1);border-radius:10px;padding:12px 14px;margin:12px 0;font-style:italic;line-height:1.55\">\n          I&#8217;m having a party at my house on Saturday.<br>\n          Can you come?<br>\n          Would you like to bring a friend?<br>\n          What do you like doing at parties?<br>\n          Leslie\n        <\/div>\n        Your note must include:\n        <ul>\n          <li><b>some acknowledgement<\/b> of Leslie&#8217;s invitation<\/li>\n          <li>whether you <b>can or can&#8217;t attend<\/b> the party<\/li>\n          <li>if you can: <b>mention a friend<\/b> + <b>what you like doing<\/b> at parties<br>if you can&#8217;t: <b>reason \/ excuse<\/b><\/li>\n        <\/ul>\n        Write 25&#8211;35 words.\n      <\/div>\n      <textarea class=\"writing-area\" id=\"writingArea\" placeholder=\"Type your note here...\"><\/textarea>\n      <div class=\"wc-counter\" id=\"wcCounter\">0 words &#183; target 25&#8211;35<\/div>\n      <button class=\"sample-toggle\" id=\"sampleToggle\">\n        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n        Show Sample Answer\n      <\/button>\n      <div class=\"sample-box\" id=\"sampleBox\">\n        <h5 style=\"margin-bottom:14px\">Sample answers &#8212; 3 examples covering different scenarios<\/h5>\n\n        <div style=\"background:#fff;border-left:3px solid var(--green);padding:10px 14px;margin-bottom:12px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--green);font-size:12.5px;letter-spacing:.05em\">SAMPLE A &#8212; Accepting + bringing friend (33 words)<\/b>\n          <p style=\"margin-top:6px\">Hi Leslie,<\/p>\n          <p>Thanks for inviting me to your party! Yes, I&#8217;d love to come and I&#8217;d like to bring my friend Tom. I really enjoy dancing and chatting with everyone at parties.<\/p>\n          <p>See you Saturday!<\/p>\n          <p>Anna<\/p>\n        <\/div>\n\n        <div style=\"background:#fff;border-left:3px solid var(--accent-1);padding:10px 14px;margin-bottom:12px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--accent-1);font-size:12.5px;letter-spacing:.05em\">SAMPLE B &#8212; Accepting alone (28 words)<\/b>\n          <p style=\"margin-top:6px\">Hi Leslie,<\/p>\n          <p>Thank you for the invitation. I&#8217;d love to come to your party on Saturday. I&#8217;ll come alone &#8212; I love listening to music and meeting new people.<\/p>\n          <p>Mike<\/p>\n        <\/div>\n\n        <div style=\"background:#fff;border-left:3px solid var(--red);padding:10px 14px;border-radius:0 8px 8px 0\">\n          <b style=\"color:var(--red);font-size:12.5px;letter-spacing:.05em\">SAMPLE C &#8212; Declining with reason (30 words)<\/b>\n          <p style=\"margin-top:6px\">Hi Leslie,<\/p>\n          <p>Thanks so much for the invitation! Unfortunately, I can&#8217;t come on Saturday because I&#8217;m visiting my grandmother in Manchester. I&#8217;m really sorry &#8212; have a great party!<\/p>\n          <p>Sarah<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- RESULTS BANNER -->\n<div class=\"wrap\">\n  <div class=\"results-banner\" id=\"resultsBanner\">\n    <h3>Your KET 1 Test 2 &#8212; Reading &amp; Writing score<\/h3>\n    <div class=\"score-big\"><span id=\"finalScore\">0<\/span>\/55<\/div>\n    <p id=\"resultsMsg\">Great effort! Scroll up to review your answers &#8212; correct ones are highlighted in green and wrong ones in red.<\/p>\n    <div style=\"margin-top:18px\"><button class=\"btn-primary\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\" style=\"background:#fff;color:var(--accent-2)\">Back to top<\/button><\/div>\n  <\/div>\n<\/div>\n\n<!-- FOOTER -->\n<footer class=\"footer\">\n  <div class=\"wrap\">\n    <p>&#169; 2026 All English 4U &#183; <a href=\"https:\/\/allenglish4u.com\/cambridge\/\">All Cambridge Tests<\/a> &#183; <a href=\"https:\/\/allenglish4u.com\/contact\/\">Contact<\/a><\/p>\n  <\/div>\n<\/footer>\n\n<script>\n(function(){\n\/\/ ===== Header scroll =====\nvar hdr=document.getElementById('hdr');\nvar setSolid=function(){if(window.scrollY>40)hdr.classList.add('solid');else hdr.classList.remove('solid')};\nwindow.addEventListener('scroll',setSolid,{passive:true});setSolid();\n\n\/\/ drawer\nvar hamb=document.getElementById('hamb'),drawer=document.getElementById('drawer'),dClose=document.getElementById('drawerClose');\nif(hamb)hamb.addEventListener('click',function(){drawer.classList.add('open')});\nif(dClose)dClose.addEventListener('click',function(){drawer.classList.remove('open')});\nif(drawer)drawer.addEventListener('click',function(e){if(e.target===drawer)drawer.classList.remove('open')});\n\n\/\/ ===== DATA =====\n\/\/ MCQ questions: each entry = {n, text, opts:[{l,t}], ans}\nvar P1 = [\n  {n:1,text:'You must drive carefully here.',opts:'ABDEFGH',ans:'H'},\n  {n:2,text:'You can eat cheaply here.',opts:'ABDEFGH',ans:'G'},\n  {n:3,text:'You can stay here on holiday.',opts:'ABDEFGH',ans:'E'},\n  {n:4,text:'You can find work here.',opts:'ABDEFGH',ans:'F'},\n  {n:5,text:'You must not go in this way.',opts:'ABDEFGH',ans:'D'},\n];\nvar P2 = [\n  {n:6,text:'They got off the bus when the _____ stopped outside a small village.',opts:[['A','pilot'],['B','driver'],['C','passenger']],ans:'B'},\n  {n:7,text:'There was a _____ into a field so they climbed over it.',opts:[['A','door'],['B','garden'],['C','gate']],ans:'C'},\n  {n:8,text:'They _____ at the map to check which way to go.',opts:[['A','watched'],['B','looked'],['C','saw']],ans:'B'},\n  {n:9,text:'They walked for two hours until they _____ to a river.',opts:[['A','arrived'],['B','came'],['C','crossed']],ans:'B'},\n  {n:10,text:'It was a lovely place so they _____ down and had a picnic on the grass.',opts:[['A','sat'],['B','put'],['C','stood']],ans:'A'},\n];\nvar P3a = [\n  {n:11,text:'Hello, Sue. This is my boss, Mrs Smith.',opts:[['A','How old is she?'],['B','How much is it?'],['C','How do you do?']],ans:'C'},\n  {n:12,text:'Tell Ben to come upstairs.',opts:[['A',\"That's right.\"],['B','All right.'],['C','Is that right?']],ans:'B'},\n  {n:13,text:'Have you got a ticket?',opts:[['A','At the ticket office.'],['B','Here it is.'],['C','Yes, please.']],ans:'B'},\n  {n:14,text:\"Let's go to Brighton tomorrow.\",opts:[['A','What a pity!'],['B','OK. Why not?'],['C',\"It doesn't matter.\"]],ans:'B'},\n  {n:15,text:'Can I open the window, please?',opts:[['A',\"You don't.\"],['B',\"It isn't.\"],['C','Of course.']],ans:'C'},\n];\nvar P3bAns = {16:'E',17:'B',18:'A',19:'H',20:'C'};\nvar P4 = [\n  {n:21,text:'In 1700, the men who protected the streets were paid',opts:[['A','a lot.'],['B','a little.'],['C','nothing.']],ans:'B'},\n  {n:22,text:'300 years ago, many people',opts:[['A','came to live in London.'],['B','wanted to leave London.'],['C','had big houses in London.']],ans:'A'},\n  {n:23,text:'People did not leave their houses because',opts:[['A','the city was not clean.'],['B','they had no money.'],['C','they were afraid.']],ans:'C'},\n  {n:24,text:'The Bow Street Runners',opts:[['A','stole money.'],['B','stopped people stealing.'],['C','paid people to steal.']],ans:'B'},\n  {n:25,text:'In 1800, there were',opts:[['A','enough policemen.'],['B','not enough policemen.'],['C','too many policemen.']],ans:'B'},\n  {n:26,text:'Of the first 3000 Metropolitan policemen,',opts:[['A','all of them rode horses.'],['B','some of them rode horses.'],['C','most of them rode horses.']],ans:'B'},\n  {n:27,text:'Today, police officers who work with horses are paid',opts:[['A','more than their colleagues.'],['B','the same as their colleagues.'],['C','half as much as their colleagues.']],ans:'A'},\n];\nvar P5 = [\n  {n:28,word:'before',opts:[['A','that'],['B','when'],['C','before']],ans:'C'},\n  {n:29,word:'Nobody',opts:[['A','Everybody'],['B','People'],['C','Nobody']],ans:'C'},\n  {n:30,word:'than',opts:[['A','than'],['B','that'],['C','as']],ans:'A'},\n  {n:31,word:'but',opts:[['A','as'],['B','but'],['C','or']],ans:'B'},\n  {n:32,word:'on',opts:[['A','in'],['B','on'],['C','at']],ans:'B'},\n  {n:33,word:'ate',opts:[['A','ate'],['B','eat'],['C','eats']],ans:'A'},\n  {n:34,word:'big',opts:[['A','bigger'],['B','biggest'],['C','big']],ans:'C'},\n  {n:35,word:'because',opts:[['A','that'],['B','because'],['C','where']],ans:'B'},\n];\nvar P6 = [\n  {n:36,text:'A mechanic will repair your car here.',first:'g',ans:'garage'},\n  {n:37,text:'If you are ill, you may stay here.',first:'h',ans:'hospital'},\n  {n:38,text:'You can cross a river here.',first:'b',ans:'bridge'},\n  {n:39,text:'You buy a ticket and watch a football match here with hundreds of other people.',first:'s',ans:'stadium'},\n  {n:40,text:'You go here to see a play.',first:'t',ans:'theatre'},\n];\n\/\/ Part 7 \\u2014 letter cloze: accepted answers\nvar P7Ans = {\n  41:['on','next','this'],\n  42:['with'],\n  43:['me'],\n  44:['can','could','should'],\n  45:['for'],\n  46:['like','love'],\n  47:['the','my'],\n  48:['a'],\n  49:['do'],\n  50:['be','come','arrive'],\n};\n\/\/ Part 8\nvar P8Ans = {\n  51:['terminal 3','t3','terminal three','terminal-3'],\n  52:['8 a.m.','8am','8 am','8.00 a.m.','8:00 a.m.','08:00','8 a.m','8 o\\'clock'],\n  53:['19 september','19th september','september 19','september 19th','19\/9','19\/09','19th','19'],\n  54:['21.45','9.45 p.m.','9:45 p.m.','9.45 pm','9:45 pm','21:45','21.45 p.m.','9.45'],\n  55:['taxi','a taxi','by taxi']\n};\n\n\/\/ ===== Rendering =====\nfunction renderMCQ(listEl, data){\n  data.forEach(function(q){\n    var div=document.createElement('div');\n    div.className='q-item'; div.dataset.qid=q.n;\n    var optsHTML='';\n    if(Array.isArray(q.opts)){\n      q.opts.forEach(function(o){\n        optsHTML += '<label class=\"opt\" data-letter=\"'+o[0]+'\"><input type=\"radio\" name=\"q'+q.n+'\" value=\"'+o[0]+'\"><span class=\"opt-letter\">'+o[0]+'<\/span> '+escapeHtml(o[1])+'<\/label>';\n      });\n    } else {\n      \/\/ string of letters (P1)\n      for(var i=0;i<q.opts.length;i++){\n        var L=q.opts[i];\n        optsHTML += '<label class=\"opt\" data-letter=\"'+L+'\"><input type=\"radio\" name=\"q'+q.n+'\" value=\"'+L+'\"><span class=\"opt-letter\">'+L+'<\/span><\/label>';\n      }\n    }\n    div.innerHTML = '<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>'+escapeHtml(q.text)+'<\/span><\/div>'+\n                    '<div class=\"q-opts\">'+optsHTML+'<\/div>'+\n                    '<div class=\"feedback\"><\/div>';\n    listEl.appendChild(div);\n  });\n}\nfunction escapeHtml(s){return String(s).replace(\/[&<>\"']\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]})}\n\nrenderMCQ(document.getElementById('part1List'),P1);\nrenderMCQ(document.getElementById('part2List'),P2);\nrenderMCQ(document.getElementById('part3aList'),P3a);\nrenderMCQ(document.getElementById('part4List'),P4);\n\n\/\/ Part 5 \\u2014 render as MCQ list under the passage\nrenderMCQ(document.getElementById('part5List'),P5.map(function(q){return {n:q.n,text:'Question '+q.n+' \\u2014 choose the best word for the gap.',opts:q.opts,ans:q.ans}}));\n\n\/\/ Part 6 \\u2014 first-letter + dashes + input\n(function(){\n  var list=document.getElementById('part6List');\n  P6.forEach(function(q){\n    var dashCount = q.ans.length - 1;\n    var dashes = new Array(dashCount).fill('_').join(' ');\n    var div=document.createElement('div'); div.className='q-item'; div.dataset.qid=q.n;\n    div.innerHTML='<div class=\"q-text\"><b class=\"qn\">'+q.n+'.<\/b><span>'+escapeHtml(q.text)+'<\/span><\/div>'+\n                  '<div class=\"word-row\"><span class=\"first-letter\">'+q.first+'<\/span><input type=\"text\" class=\"input-blank\" data-q=\"'+q.n+'\" placeholder=\"'+dashes+'\" style=\"min-width:200px\"><\/div>'+\n                  '<div class=\"feedback\"><\/div>';\n    list.appendChild(div);\n  });\n})();\n\n\/\/ ===== Wire option clicks =====\ndocument.querySelectorAll('.opt').forEach(function(opt){\n  opt.addEventListener('click',function(e){\n    e.preventDefault();\n    var input=opt.querySelector('input');\n    var group=opt.parentElement;\n    group.querySelectorAll('.opt').forEach(function(o){o.classList.remove('selected')});\n    opt.classList.add('selected');\n    input.checked=true;\n    updateProgress();\n  });\n});\n\n\/\/ inputs\ndocument.querySelectorAll('.input-blank,.q-select').forEach(function(el){\n  el.addEventListener('input',updateProgress);\n  el.addEventListener('change',updateProgress);\n});\n\n\/\/ ===== Submit & Grade =====\nfunction getMcqAns(qid){\n  var sel=document.querySelector('input[name=\"q'+qid+'\"]:checked');\n  return sel?sel.value:null;\n}\nfunction getInputAns(qid){\n  var el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]');\n  return el?el.value.trim().toLowerCase():'';\n}\nfunction getSelectAns(qid){\n  var el=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');\n  return el?el.value:'';\n}\nfunction totalQs(){return 55}\n\nfunction answeredCount(){\n  var n=0;\n  \/\/ MCQ: P1(1-5) P2(6-10) P3a(11-15) P4(21-27) P5(28-35)\n  [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35].forEach(function(q){if(getMcqAns(q))n++});\n  [16,17,18,19,20].forEach(function(q){if(getSelectAns(q))n++});\n  \/\/ inputs\n  for(var i=36;i<=55;i++){if(getInputAns(i))n++}\n  return n;\n}\nfunction updateProgress(){\n  var a=answeredCount(), total=totalQs();\n  document.getElementById('answeredCount').textContent=a;\n  document.getElementById('progFill').style.width=(a\/total*100)+'%';\n}\n\ndocument.getElementById('submitBtn').addEventListener('click',function(){\n  var score=0;\n  \/\/ MCQ parts\n  var mcqParts=[P1,P2,P3a,P4,P5];\n  mcqParts.forEach(function(part){\n    part.forEach(function(q){\n      var v=getMcqAns(q.n), item=document.querySelector('.q-item[data-qid=\"'+q.n+'\"]');\n      if(!item)return;\n      item.classList.add('answered');\n      \/\/ mark correct\/incorrect opts\n      item.querySelectorAll('.opt').forEach(function(o){\n        var L=o.dataset.letter;\n        if(L===q.ans){o.classList.add('correct-opt')}\n        if(v===L)if(L!==q.ans){o.classList.add('wrong-opt')}\n      });\n      var fb=item.querySelector('.feedback');\n      if(v===q.ans){score++; item.classList.add('correct'); fb.textContent='\\u2714 Correct \\u2014 '+q.ans}\n      else{item.classList.add('wrong'); fb.textContent='\\u2718 Wrong \\u2014 correct answer: '+q.ans + (v?(' (you chose '+v+')'):' (no answer)')}\n    });\n  });\n  \/\/ Part 3b selects\n  var p3bFb=document.getElementById('part3bFeedback');\n  p3bFb.innerHTML='';\n  Object.keys(P3bAns).forEach(function(qid){\n    var v=getSelectAns(qid), correct=P3bAns[qid];\n    var el=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');\n    if(el){el.style.borderColor=(v===correct?'#10B981':'#EF4444'); el.style.borderWidth='2px'; el.style.borderStyle='solid'}\n    var note=document.createElement('div');\n    note.style.cssText='padding:8px 12px;border-radius:8px;margin-top:6px;font-size:13.5px;font-weight:600;'+(v===correct?'background:rgba(16,185,129,.12);color:#065F46':'background:rgba(239,68,68,.10);color:#991B1B');\n    note.innerHTML='<b>Q'+qid+'<\/b>: '+(v===correct?'\\u2714 Correct ('+correct+')':'\\u2718 Wrong \\u2014 correct: '+correct+(v?', you chose '+v:', no answer'));\n    p3bFb.appendChild(note);\n    if(v===correct)score++;\n  });\n  \/\/ Part 6\n  P6.forEach(function(q){\n    var v=getInputAns(q.n), el=document.querySelector('.input-blank[data-q=\"'+q.n+'\"]'), item=document.querySelector('.q-item[data-qid=\"'+q.n+'\"]');\n    if(!el||!item)return;\n    item.classList.add('answered');\n    var ok=(v===q.ans.toLowerCase());\n    if(ok){score++; el.classList.add('correct'); item.classList.add('correct'); item.querySelector('.feedback').textContent='\\u2714 Correct'}\n    else{el.classList.add('wrong'); item.classList.add('wrong'); item.querySelector('.feedback').textContent='\\u2718 Wrong \\u2014 correct: '+q.ans}\n  });\n  \/\/ Part 7\n  Object.keys(P7Ans).forEach(function(qid){\n    var v=getInputAns(qid), el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]'), accepted=P7Ans[qid];\n    if(!el)return;\n    var ok=accepted.indexOf(v)>=0;\n    if(ok){score++; el.classList.add('correct')} else {el.classList.add('wrong'); el.title='Correct: '+accepted.join(' \/ ')}\n  });\n  \/\/ Part 8\n  Object.keys(P8Ans).forEach(function(qid){\n    var v=getInputAns(qid), el=document.querySelector('.input-blank[data-q=\"'+qid+'\"]'), accepted=P8Ans[qid];\n    if(!el)return;\n    var ok=accepted.indexOf(v)>=0;\n    if(ok){score++; el.classList.add('correct')} else {el.classList.add('wrong'); el.title='Correct: '+accepted.join(' \/ ')}\n  });\n\n  document.getElementById('scoreNow').textContent=score;\n  document.getElementById('finalScore').textContent=score;\n  var pct=Math.round(score\/55*100);\n  var msg='';\n  if(pct>=85) msg='\\u{1F3C6} Excellent! You are well prepared for the real KET exam.';\n  else if(pct>=70) msg='\\u{1F44D} Good job! A few more tests and you will be ready.';\n  else if(pct>=50) msg='\\u{1F4DA} Keep practising \\u2014 review the wrong answers above.';\n  else msg='\\u{1F4AA} Start with the basics. Reread the passages and try again.';\n  document.getElementById('resultsMsg').textContent=msg;\n  document.getElementById('resultsBanner').classList.add('show');\n  setTimeout(function(){document.getElementById('resultsBanner').scrollIntoView({behavior:'smooth',block:'center'})},120);\n});\n\ndocument.getElementById('resetBtn').addEventListener('click',function(){\n  if(!confirm('Reset all answers?'))return;\n  location.reload();\n});\n\n\/\/ Writing word counter\nvar ta=document.getElementById('writingArea'),wc=document.getElementById('wcCounter');\nta.addEventListener('input',function(){\n  var w=ta.value.trim().split(\/\\s+\/).filter(Boolean).length;\n  wc.textContent=w+' words \\u00B7 target 25\\u201335';\n  wc.classList.remove('ok','over');\n  if(w>=25)if(w<=35)wc.classList.add('ok');\n  else if(w>35)wc.classList.add('over');\n});\ndocument.getElementById('sampleToggle').addEventListener('click',function(){\n  document.getElementById('sampleBox').classList.toggle('show');\n});\n\n\/\/ ===== SHOW ANSWER PER-Q FEATURE =====\nfunction getAnsForQ(n){\n  if(n>=1) if(n<=5) return (P1.find(function(x){return x.n===n})||{}).ans;\n  if(n>=6) if(n<=10) return (P2.find(function(x){return x.n===n})||{}).ans;\n  if(n>=11) if(n<=15) return (P3a.find(function(x){return x.n===n})||{}).ans;\n  if(n>=21) if(n<=27) return (P4.find(function(x){return x.n===n})||{}).ans;\n  if(n>=28) if(n<=35) return (P5.find(function(x){return x.n===n})||{}).ans;\n  return null;\n}\n\/\/ MCQ q-items: append Show Answer button\ndocument.querySelectorAll('.q-item').forEach(function(item){\n  if(item.querySelector('.show-ans-btn')) return;\n  var qid=parseInt(item.dataset.qid);\n  var btn=document.createElement('button');\n  btn.className='show-ans-btn'; btn.type='button';\n  btn.innerHTML='\\u{1F441} Show Answer';\n  btn.addEventListener('click',function(){\n    var isP6=false; if(qid>=36) if(qid<=40) isP6=true;\n    if(isP6){\n      \/\/ Part 6 spell input\n      var p6q=P6.find(function(x){return x.n===qid});\n      var input=item.querySelector('.input-blank');\n      if(input) if(p6q){input.value=p6q.ans; input.classList.add('correct'); input.dispatchEvent(new Event('input'));}\n      var fb6=item.querySelector('.feedback');\n      if(fb6) if(p6q){item.classList.add('answered'); item.classList.add('correct'); fb6.textContent='\\u{1F441} Answer: '+p6q.ans;}\n    } else {\n      var ans=getAnsForQ(qid);\n      if(!ans) return;\n      \/\/ highlight correct option\n      var correctOpt=item.querySelector('.opt[data-letter=\"'+ans+'\"]');\n      if(correctOpt){correctOpt.classList.add('correct-opt');}\n      \/\/ simulate click so updateProgress fires\n      var fb=item.querySelector('.feedback');\n      if(fb){item.classList.add('answered'); fb.style.background='rgba(16,185,129,.12)'; fb.style.color='#065F46'; fb.textContent='\\u{1F441} Answer: '+ans;}\n    }\n    btn.disabled=true;\n  });\n  item.appendChild(btn);\n});\n\/\/ Part 3b selects: append inline Show Answer button\n[16,17,18,19,20].forEach(function(qid){\n  var sel=document.querySelector('.q-select[data-qid=\"'+qid+'\"]');\n  if(!sel) return;\n  var btn=document.createElement('button');\n  btn.className='show-ans-btn-inline'; btn.type='button';\n  var ans=P3bAns[qid];\n  btn.innerHTML='\\u{1F441} '+ans;\n  btn.addEventListener('click',function(){\n    sel.value=ans; sel.dispatchEvent(new Event('change'));\n    sel.style.borderColor='#10B981'; sel.style.borderWidth='2px'; sel.style.borderStyle='solid';\n    btn.disabled=true;\n  });\n  sel.insertAdjacentElement('afterend', btn);\n});\n\/\/ Part 7 &#038; 8 inputs: append inline Show Answer button\nfor(var qi=41;qi<=55;qi++){\n  (function(qid){\n    var inp=document.querySelector('.input-blank[data-q=\"'+qid+'\"]');\n    if(!inp) return;\n    var ans=(qid<=50)?P7Ans[qid][0]:P8Ans[qid][0];\n    var btn=document.createElement('button');\n    btn.className='show-ans-btn-inline'; btn.type='button';\n    btn.innerHTML='\\u{1F441} '+ans;\n    btn.title='Click to fill: '+ans;\n    btn.addEventListener('click',function(){\n      inp.value=ans; inp.classList.add('correct'); inp.dispatchEvent(new Event('input'));\n      btn.disabled=true;\n    });\n    inp.insertAdjacentElement('afterend', btn);\n  })(qi);\n}\n\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>All English 4U Grammar IELTS TOEFL Cambridge CELPIP Dictation Back Grammar IELTS TOEFL Cambridge CELPIP Dictation Cambridge English &#183; Key (KET) KET 1 &#8212; Test 2Reading &amp; Writing Practise the full A2 Key Reading &amp; Writing paper &#8212; 9 parts, 56 questions, instant auto-grading. Test yourself like the real exam, then check answers and learn [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-with-title","meta":{"footnotes":""},"class_list":["post-1301","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/comments?post=1301"}],"version-history":[{"count":2,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1301\/revisions"}],"predecessor-version":[{"id":5961,"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/pages\/1301\/revisions\/5961"}],"wp:attachment":[{"href":"https:\/\/allenglish4u.com\/vi\/wp-json\/wp\/v2\/media?parent=1301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}