有同学在群里问了一道关于“现在完成时态和一般过去时态之间区别”的语法题,摘录如下:

There is someone knocking at the door.

—— It must be the computer repairman.

—— I ______ him to come to fix my computer.

A. call B. have called C. called D. will call

群内同学众说纷纭,但是答案集中在B和C两个答案之间,有的认为B正确,该选现在完成时态,有的认为C正确,该选一般过去时态,也有的同学认为B和C两个答案都对,应该都可以选择,那么到底应该如何选择呢?

这时,我们就需要了解现在完成时态和一般过去时态之间到底有何区别?

我们先来看看一般过去时态的时空作用域, 如下图所示:

一般过去时态

从上图可以看出,一般过去时态的时空作用域是发生在过去,也就是说其时效性局限于过去,对现在没有影响。

我们再来看看现在完成时态的时空作用域, 如下图所示:

现在完成时态

从上图可以看出,现在完成时态的时空作用域从过去延伸到现在,也就是说其时效性从过去延续到现在,对现在产生影响。

这就是为什么现在完成时态的动作发生在过去,但是其时间助动词(has/have)又是现在的原因。

这也就是为什么现在完成时态不能够和表示具体的过去时间状语连用的原因。

好了,我们现在已经了解了现在完成时态和一般过去时态之间最主要的区别,那么我们再回到文首的语法题上。

There is someone knocking at the door. ——有人在敲门。

—— It must be the computer repairman. ——一定是修电脑的。

—— I ______ him to come to fix my computer. ——我_____他来修电脑。

上面B. have called 和 C. called 选项中都可以表达“打过电话”这一内涵,但是对话设定的语境是因为(过去)打过电话这个事件,导致(现在)有人来敲门这个事件,也就是过去的事件对现在产生了影响,这也正好符合了现在完成时态的时空作用域的定义。

选项B. have called 表达出“刚打过电话”这一思维内涵。

选项C. called 表达出“打过电话”,但是何时打电话则不够明确,是刚刚打,还是昨天打的,还是前天打的,还是更久以前打的,不明确,所以和对话设置的语境稍微有些不合。

所以综合起来,选项C不能认为是错的,只是选项B. have called此处更符合语境设置。

好了,到此我们就通过简简单单的一道语法题重温了一遍一般过去时态和现在完成时态的用法,关于这两个时态还可以参考下面这篇文章:英语思维:解密语法 - 一般过去时态和现在完成时态之间的区别真的很简单。

欢迎关注英语学习公众号 “生活大爆炸精学笔记” 或加微信号 “thebigbang01"

英语思维:《英语思维:解密英语语法的原理》电子版“结构最清晰、框架最完整、逻辑最严密、高度系统完善”的语法教程

英语思维:《英语思维:10小时建立完美英语语法体系》视频课程上线了,更加“全面系统”、更加“直观透彻”!

pyHook pyHook3 区别_一般过去时态和现在完成时态之间到底有什么区别?通过一道语法题,帮你彻底讲清楚!...相关推荐

  1. spring揭秘_被问到了! Spring 和 Spring Boot 之间到底有啥区别?

    相信很多小伙伴和我一样,常用Spring 和Spring Boot 但是就是没有研究二者之间到底有什么区别? 今天就来大揭秘 ↓ 概述 对于 Spring和 SpringBoot到底有什么区别,我听到 ...

  2. Spring 和 Spring Boot 之间到底有啥区别?

    概述 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,相信对于用了 ...

  3. spring boot security ajax_Spring 和 SpringBoot 之间到底有啥区别?

    来源:uee.me/cNDC8 概述 对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了 ...

  4. 计算机控制和dcs控制的区别,从几个方面了解DCS与PLC控制柜到底有什么区别

    PLC控制柜发展到现在,在计算机控制系统上已经非常全面了,小型设备应用的PLC会搭配触摸屏,大规模设备应用的PLC会使用计算机控制系统.PLC控制柜的功能性.专业性以及应用的环境 DCS是集散控制系统 ...

  5. SAN和NAS之间到底有什么区别?

    今天小编为大家介绍一下SAN和NAS之间的基本区别 : 在我看来,SAN和NAS之间的基本区别是,SAN是基于Fabric的,而NAS是基于以太网的. SAN是提供LUN方式给客户端使用,客户端需要M ...

  6. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  7. 静态方法与非静态方法的区别_程序员必看之ThinkPHP5中model与Db的区别

    在ThinkPHP5的使用过程中,很多使用者刚接触到数据库操作时,不能很好调用相关的方法进行数据库的交互.下面就分享一下ThinkPHP5中Db与模型的区别 关于db与model的选择 使用DB方式是 ...

  8. 分区和分片的区别_数据库的分表、分库、分片和分区等区别

    一.Sharding(分片) Sharding 是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题 ...

  9. mysql检索有什么区别_检索行时,MySQL中AND或OR运算符有什么区别?

    AND,OR之间的区别在于,AND评估两个条件都必须为真,以使整体条件为真.OR求一个条件必须为真,以使整体条件为真. 让我们创建一个表-mysql> create table demo70 − ...

最新文章

  1. Python requests模块相关接口
  2. MQTT数据处理之从tcp连接获取数据过程
  3. [?]Oracle 10g sqlplus 的Bug?
  4. 计算机风机不运转也启动了怎么办,电脑不开机风扇一直转怎么解决_电脑无法开机风扇一直转怎么办-win7之家...
  5. sqlmap的使用 ---- 自带绕过脚本tamper
  6. python hexdigest,Java方法,可以为Hex中的HMAC-SHA256提供与Python方法相同的输出
  7. 避坑:一次离奇性能故障的排查与反思
  8. DNS练习之反向解析
  9. php 点击选择图片上传,微信小程序图片选择、上传到服务器、预览(PHP)实现实例...
  10. 孟山都公司董事长兼CEO休-格兰特出席2017年中国发展高层论坛
  11. TServerSocket阻塞模式下Request-Response编程框架
  12. 计算机基础知识大全100,计算机基础知识汇总
  13. 成都盛铭轩:电商图片必备哪些信息
  14. 微信公众号吸粉8大策略,实战运营指南
  15. 嵌入式学习代码总结(二)
  16. 【转】一亿与六百亿(云南,值么)
  17. Dynamics CRM 365零基础入门学习(一)Dynamics介绍以及开发工具配置
  18. python统计指定数字和_Python实现统计给定列表中指定数字出现次数的方法
  19. python相关库快速下载
  20. 全栈工程师的百宝箱:图形工具篇

热门文章

  1. 教你在Ubuntu上体验Mac风格
  2. 控制JSP头部引入外部文件编译后在第一行
  3. SQL随机生成6位数字
  4. Udp通讯(零基础)
  5. maven实现多模块热部署
  6. 实例应用 自定义页面taglib标签
  7. Android获取手机和系统版本等信息的代码
  8. Exchange 2003升级至Exchange 2007
  9. sohu读博——周忆清
  10. VFP下利用API调用帮助