文档介绍:该【职业资格-Python语言程序设计真题库 6 】是由【江南博哥】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【职业资格-Python语言程序设计真题库 6 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。职业资格-Python语言程序设计真题库_6
1、单选题 以下选项中描述正确的是
A、 数据库设计是指设计数据库管理系统
B、 数据库系统中,数据的物理结构必须与逻辑结构一致
C、 数据库是一个独立的系统(江南博哥),不需要操作系统的支持
D、 数据库技术的根本目标是要解决数据共享的问题
正确答案:   D 
参考解析:A选项不正确,数据库需要操作系统的支持才能运行。 B选项不正确,数据库设计是指设计数据库的结构和组织方式,而不是设计数据库管理系统。 C选项正确,数据库技术的根本目标是要解决数据共享的问题,使得多个用户可以共享同一份数据,提高数据的利用率和效率。 D选项不正确,数据的物理结构和逻辑结构可以不一致,数据库系统可以通过数据的逻辑结构来组织和管理数据,而不必关心数据的物理结构。
2、单选题 为了使模块尽可能独立,以下选项中描述正确的是
A、 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B、 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C、 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D、 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
正确答案:   B 
参考解析:本题考察的是模块化设计的基本原则。模块化设计的目的是将系统分解为若干个独立的模块,每个模块都有自己的功能和职责,模块之间的耦合度尽量降低,从而提高系统的可维护性、可扩展性和可重用性。 选项A错误,因为模块的内聚程度要尽量高,即模块内部的各个元素之间的联系要尽量紧密,但是各模块之间的耦合程度要尽量弱,即模块之间的联系要尽量松散。 选项B正确,因为模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱,这是模块化设计的基本原则。 选项C错误,因为模块的内聚程度要尽量低,即模块内部的各个元素之间的联系要尽量松散,但是各模块之间的耦合程度也要尽量弱,即模块之间的联系要尽量松散。 选项D错误,因为模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强,这样会导致模块之间的联系过于紧密,不利于系统的可维护性、可扩展性和可重用性。
3、单选题 下列Python保留字中,不用于表示分支结构的是
A、 if
B、 elif
C、 else
D、 in
正确答案:   D 
参考解析:本题考查Python中的保留字和分支结构。Python中的保留字是指被Python语言保留的关键字,不能用作变量名、函数名等标识符。而分支结构是指根据条件判断来执行不同的代码块。本题要求找出不用于表示分支结构的Python保留字,因此需要了解Python中的分支结构和保留字。 A. if:if语句是Python中最基本的分支结构之一,用于根据条件判断来执行不同的代码块。 B. elif:elif语句是Python中的分支结构之一,用于在if语句的基础上增加更多的条件判断。 C. else:else语句是Python中的分支结构之一,用于在if语句和elif语句的条件都不满足时执行的代码块。 D. in:in是Python中的保留字,用于判断一个元素是否在一个序列中。
综上所述,选项D不是用于表示分支结构的Python保留字,因此是本题的正确答案。
4、单选题 下列Python保留字中,用于异常处理结构中捕获特定类型异常的是
A、 def
B、 except
C、 do
D、 pass
正确答案:   B 
参考解析:Python中的异常处理结构包括try、except、else和finally四个关键字。其中,except用于捕获特定类型的异常并进行处理。因此,选项B是正确答案。而选项A、C、D分别是定义函数、循环结构和占位符的保留字,与异常处理无关。
5、单选题 下列Python赋值语句中,不合法的是___
A、 x,y=y,x
B、 x=y=1
C、 x=(y=1)
D、 x=1;y=1
正确答案:   C 
参考解析:A. x,y=y,x:这是Python中交换两个变量值的常用方法,将y的值赋给x,将x的值赋给y,合法。 B. x=y=1:将1赋值给y,再将y的值赋值给x,合法。 C. x=(y=1):Python中不支持将赋值语句作为表达式的一部分,因此这个语句不合法。 D. x=1;y=1:将1赋值给x,再将1赋值给y,合法。 综上所述,选项C是不合法的。
6、单选题 下列程序的输出结果为: def f(a,b): a=4 return a+b def main(): a=5 b=6 print(f(a,b),a+b) main()
A、 10   11
B、 11  11
C、 10  10
D、 11  10
正确答案:   A 
参考解析:首先看函数f(a,b),其中a被重新赋值为4,但是这个赋值不会影响到main函数中的a的值。因此,f(a,b)的返回值为4+6=10。 接着看main函数中的a+b,a的值为5,b的值为6,因此a+b的值为11。 最后输出的结果为10和11,因此选项A为正确答案。
7、单选题 下列对程序描述不正确的是?
A、 程序是由一系列函数组成的
B、 程序是由一系列代码组成的
C、 可以利用函数对程序进行模块化设计
D、 通过封装可以实现代码复用
正确答案:   A 
参考解析:程序是由一系列代码组成的,其中包括函数、变量、语句等。函数是程序中的一种基本组成单元,可以将程序分解为多个模块,便于管理和维护。通过封装可以将一些常用的代码封装成函数,实现代码复用。因此,选项A描述不正确,应为程序是由一系列代码组成的。
8、单选题 下列对计算思维理解错误的是?
A、 通过测试验证
B、 理解问题的计算特性
C、 将计算特性抽象为计算问题
D、 通过程序设计语言实现问题的自动求解
正确答案:   A 
参考解析:计算思维是指通过计算机和计算机科学的思维方式来解决问题的一种思维方式。对计算思维的理解应该包括以下几个方面: 1. 通过测试验证:这是计算思维中非常重要的一步,通过测试验证可以检验程序的正确性,确保程序能够正确地解决问题。 2. 理解问题的计算特性:计算思维需要对问题进行分析,理解问题的计算特性,找出问题的本质,从而设计出解决问题的算法。 3. 将计算特性抽象为计算问题:计算思维需要将问题的计算特性抽象为计算问题,从而设计出解决问题的算法。 4. 通过程序设计语言实现问题的自动求解:计算思维需要通过程序设计语言来实现问题的自动求解,从而解决问题。 因此,选项A“通过测试验证”并不是对计算思维理解错误的选项,而是计算思维中非常重要的一步。正确答案为A。
9、单选题 下列工具中,不属于结构化分析常用的工具是
A、 数据流图
B、 数据字典
C、 判定树
D、 PAD图
正确答案:   D 
参考解析:结构化分析是一种软件开发方法,它将系统分解为不同的模块,以便更好地理解和设计系统。在结构化分析中,常用的工具包括数据流图、数据字典和判定树等。而PAD图并不是结构化分析常用的工具,因此答案为D。
10、单选题 下列关于形参和实参的说法正确的是?
A、 函数定义中参数列表里面的参数是实际参数,简称实参
B、 参数列表中给出要传入函数内部的参数,这类参数成为形式参数,简称形参
C、 程序在调用时,将实参复制给函数的形参
D、 程序在调用时,将形参复制给函数的实参
正确答案:   C 
参考解析:本题考察对于函数参数的理解。函数定义时,参数列表中的参数是形式参数,也就是函数内部使用的参数,简称形参。而在程序调用函数时,传入的参数是实际参数,简称实参。因此,选项A和B的说法是相反的,不正确。在程序调用函数时,实参会被复制给函数的形参,因此选项C是正确的。选项D则是错误的说法。
11、单选题 下列快捷键中能够中断(Interrupt Execution)Python程序运行的是
A、 F6
B、 Ctrl + F6
C、 Ctrl + Q
D、 Ctrl + C
正确答案:   D 
参考解析:本题考查的是Python程序运行时的中断操作。在Python程序运行时,如果需要中断程序的执行,可以使用Ctrl + C快捷键来中断程序的执行。因此,本题的正确答案是D。其他选项的作用如下: A. F6:在PyCharm中,F6键用于运行程序,不是中断程序的执行。 B. Ctrl +
F6:在PyCharm中,Ctrl + F6键用于重新运行程序,不是中断程序的执行。 C. Ctrl + Q:在PyCharm中,Ctrl + Q键用于查看文档,不是中断程序的执行。
12、单选题 以下选项中能够实现Python循环结构的是
A、 loop
B、 while
C、 if
D、 do...for
正确答案:   B 
参考解析:本题考察的是Python中的循环结构。循环结构是程序中常用的一种控制结构,可以重复执行一段代码,直到满足某个条件才停止。Python中常用的循环结构有for循环和while循环。而本题中只有选项B中的while循环是能够实现Python循环结构的,因此答案为B。选项A中的loop并不是Python中的关键字,选项C中的if是用于判断条件的关键字,选项D中的do...for并不是Python中的循环结构,正确的应该是for...in循环。
13、单选题 下列哪项不是原型开发的优点?
A、 适用于大型系统开发
B、 降低开发风险和成本
C、 加强用户参与
D、 需求清晰
正确答案:   A 
参考解析:原型开发是一种快速开发的方法,它通过快速构建原型来验证需求和设计,以便更好地满足用户需求。原型开发的优点包括降低开发风险和成本、加强用户参与、需求清晰等。但是,原型开发并不适用于所有的项目,特别是大型系统开发。因为大型系统开发需要更多的规划和管理,原型开发可能会导致项目进度延误和成本增加。因此,选项A不是原型开发的优点,是正确答案。
14、单选题 下列数据结构中,能够按照“先进后出”原则存取数据的是
A、 循环队列
B、 栈
C、 二叉树
D、 队列
正确答案:   B 
参考解析:本题考查的是数据结构中栈的特点。栈是一种“先进后出”的数据结构,即最后进入栈的元素最先被取出。而循环队列和队列都是“先进先出”的数据结构,二叉树则是一种树形结构,不具备“先进后出”的特点。因此,本题的正确答案是B,即栈。
15、单选题 下列选项中,不是关系数据库基本特征的是
A、 不同的列应有不同的数据类型
B、 不同的列应有不同的列名
C、 与行的次序无关
D、 与列的次序无关
正确答案:   A 
参考解析:关系数据库的基本特征包括:数据的组织形式是表格、表格中的数据是二维的、每个表格都有一个主键、不同的行应该有不同的值、不同的列应该有不同的列名、与行的次序无关、与列的次序无关。而选项A中提到的“不同的列应有不同的数据类型”并不是关系数据库的基本特征,因为在关系数据库中,同一列中的数据类型应该是相同的,这是为了保证数据的一致性和可靠性。因此,选项A是不是关系数据库基本特征的选项,是本题的正确答案。
16、单选题 下列选项中不符合Python语言变量命名规则的是
A、 TempStr
B、 I
C、 3_1
D、 . AI
正确答案:   C 
参考解析:Python语言变量命名规则如下: 1. 变量名只能包含字母、数字和下划线。 2. 变量名不能以数字开头。 3. 变量名不能包含空格,但可以使用下划线来分隔单词。 4. 变量名不能包含特殊字符,如:@、#、$等。 5. 变量名应该具有描述性,不能使用Python关键字。 根据上述规则,选项A、B、D都符合Python语言变量命名规则,而选项C中包含了数字和下划线的组合,不符合规则,因此选项C是不符合Python语言变量命名规则的。因此,答案为C。
17、单选题 下面不属于Python保留字的是:
A、 def
B、 elif
C、 type
D、 import
正确答案:   C 
参考解析:Python保留字是指在Python中有特殊含义的单词,不能用作变量名、函数名等标识符。常见的Python保留字包括:and、as、assert、break、class、continue、def、del、elif、else、except、False、finally、for、from、global、if、import、in、is、lambda、None、nonlocal、not、or、pass、raise、return、True、try、while、with、yield等。 根据题目给出的选项,可以发现A、B、D三个选项都是Python保留字,而C选项中的type不是Python保留字,因此答案为C。
18、单选题 以下选项中能够最简单地在列表['apple','pear'.'peach','orange()']中随机选取一个元素的是
A、 shuffle()
B、 choice()
C、 sample()
D、 random()
正确答案:   B 
参考解析:本题考察的是Python中随机选取元素的方法。给定的列表为['apple','pear','peach','orange'],需要从中随机选取一个元素。根据选项可知,A选项的shuffle()方法是将列表中的元素随机排序,但并不能直接选取一个元素;C选项的sample()方法可以从列表中随机选取指定数量的元素,但本题只需要选取一个元素,不需要指定数量;D选项的random()方法是生成一个0到1之间的随机数,但需要结合其他方法才能选取列表中的元素。因此,正确答案为B选项的choice()方法,该方法可以直接从列表中随机选取一个元素。因此,本题答案为B。
19、单选题 以下选项中使Python脚本程序转变为可执行程序的第三方库的是
A、 random
B、 pygame
C、 PyQt5
D、 PyInstaller
正确答案:   D 
参考解析:本题考查的是Python脚本程序转变为可执行程序的第三方库。选项中只有D项PyInstaller是专门用于将Python脚本程序转变为可执行程序的第三方库,因此答案为D。其他选项random、pygame、PyQt5都不是用于将Python脚本程序转变为可执行程序的第三方库。因此,本题的正确答案为D。
20、单选题 以下选项中是Python中文分词的第三方库的是
A、 turtle
B、 jieba
C、 itchat
D、 time
正确答案:   B 
参考解析:本题考查的是Python中文分词的第三方库。选项中只有B选项的jieba是Python中文分词的第三方库,因此答案为B。A选项的turtle是Python的绘图库,C选项的itchat是Python的微信个人号接口,D选项的time是Python的时间模块,都与中文分词无关。因此,本题的正确答案为B。
21、单选题 有关Python基本图形绘制中,下列说法正确的是()
A、 Python的所有图形库坐标是统一的,图形左上角的坐标为(0,0).
B、 图形画面上的一个点成为像素.
C、 图形窗口的标题都是"Graphics Window",默认大小是100*100.
D、 图形库中readMouse()方法用于获取鼠标点击.
正确答案:   B 
参考解析:本题考查Python基本图形绘制的相关知识点。选项A错误,不同的图形库坐标系可能不同;选项B正确,像素是图像的最小单位;选项C错误,不同的图形库窗口大小和标题可能不同;选项D错误,readMouse()方法用于获取鼠标位置而非点击。因此,本题答案为B。
22、单选题 以下选项中属于Python语言中合法的二进制整数是
A、 0b1708
B、 0B1010
C、 0B1019
D、 0bC3F
正确答案:   B 
参考解析:Python中二进制整数以0b或0B开头,后面跟着一串由0和1组成的数字序列。选项A中的数字序列中包含了8,不是二进制数中的数字,因此不合法;选项B中的数字序列是合法的二进制数;选项C中的数字序列中包含了9,不是二进制数中的数字,因此不合法;选项D中的数字序列中包含了C和F,也不是二进制数中的数字,因此不合法。因此,选项B是合法的二进制整数。
23、单选题 以下选项中说法不正确的是
A、 静态语言采用解释方式执行,脚本语言采用编译方式执行
B、 C语言是静态语言,Python语言是脚本语言
C、 编译是将源代码转换成目标代码的过程
D、 解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程
正确答案:   A 
参考解析:A选项中的说法不正确。静态语言和脚本语言的执行方式并不是由语言本身决定的,而是由具体的实现方式决定的。一般来说,静态语言和脚本语言都可以采用编译方式执行,也可以采用解释方式执行。因此,A选项中的说法是错误的。 B选项中的说法正确。C语言是一种静态语言,需要在编译时进行类型检查,而Python语言是一种脚本语言,不需要进行编译,可以直接执行。 C选项中的说法正确。编译是将源代码转换成目标代码的过程,目标代码可以直接在计算机上执行。 D选项中的说法正确。解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程,可以直接在计算机上执行源代码。
24、单选题 Python语言是由哪个人创造的?
A、 D+F21+2:13+2:15+F2+2:15
B、 Linus Benedict Torvalds
C、 Guido van Rossum
D、 Tim Peters
正确答案:   C 
参考解析:本题考查的是Python语言的创始人。选项A是一串无意义的字符,选项B是Linux操作系统的创始人,选项D是Python语言的核心开发者之一,而选项C正是Python语言的创始人Guido van Rossum。因此,本题的正确答案为C。
25、单选题 S和T是两个集合,哪个选项对S^T的描述是正确的?
A、 S和T的并运算,包括在集合S和T中的所有元素
B、 S和T的差运算,包括在集合S但不在T中的元素
C、 S和T的交运算,包括同时在集合S和T中的元素
D、 S和T的补运算,包括集合S和T中的非相同元素
正确答案:   D 
参考解析:S^T表示S和T的对称差,即S和T中非相同的元素组成的集合。因此,选项D描述是正确的,它包括了集合S和T中的非相同元素。选项A、B、C都描述了其他集合运算,不符合对称差的定义。
26、单选题 下面对面向对象和面向过程描述正确的是
A、 面向对象编程比面向过程编程更为高级
B、 面向对象和面向过程是编程语言的分类依据
C、 模块化设计就是面向对象的设计
D、 所有面向对象编程能实现的功能采用面向过程同样能完成
正确答案:   D 
参考解析:A选项描述不准确,面向对象编程和面向过程编程并没有高低之分,只是两种不同的编程思想和方法。 B选项也不准确,面向对象和面向过程是编程思想和方法,而不是编程语言的分类依据。 C选项也不准确,模块化设计是一种编程思想和方法,与面向对象编程并不完全等同。 因此,正确答案为D。虽然面向对象编程有其独特的优势和特点,但是所有面向对象编程能实现的功能,同样可以采用面向过程的方法来完成。
27、单选题 下面对面向对象和面向过程描述正确的是:
A、 面向对象编程比面向过程编程更为高级
B、 面向对象和面向过程是编程语言的分类依据
C、 面向对象和面向过程是编程语言的分类依据
D、 所有面向对象编程能实现的功能采用面向过程同样能完成
正确答案:   D 
参考解析:本题考察对面向对象和面向过程的理解。面向对象和面向过程都是编程的思想,而不是编程语言的分类依据。面向对象编程强调的是对象的概念,将数据和操作封装在一起,更加灵活和易于维护;而面向过程编程则是将程序看作一系列的步骤,强调的是算法和流程控制。因此,选项A和B都是错误的。 选项C重复了选项B的内容,因此也是错误的。 选项D正确,因为面向对象编程是在面向过程编程的基础上发展而来的,所有面向对象编程能实现的功能采用面向过程同样能完成。但是面向对象编程更加灵活和易于维护,因此在实际开发中更加常用。
28、单选题 下面关于time库引用不正确的是?
A、 from time import strftime
B、 from * import time
C、 from time import *
D、 import time
正确答案:   B 
参考解析:time库是Python标准库之一,提供了与时间相关的函数和类。在Python中,引用库的方式有多种,常见的有import和from...import两种方式。本题考察的是time库的引用方式,正确的引用方式应该是import time或者from time import strftime等方式,而选项B中的from * import time是错误的引用方式,因为*表示引用所有模块,而time是一个库,不是一个模块,因此会报错。因此,本题的正确答案是B。
29、单选题 下面哪项可以将窗口坐标设置为:(0,0)在左下角,(10,10)在右下角?
A、 (0,0,10,10)
B、 ((0,0),(10,10))
C、 (Point(0,0),Point(10,10))
D、 (Point(10,10),Point(0,0))
正确答案:   A 
参考解析:本题考察的是窗口坐标系的设置。在窗口坐标系中,通常将左上角设置为原点,向右为x轴正方向,向下为y轴正方向。但是本题要求将左下角设置为原点,向右为x轴正方向,向上为y轴正方向,因此需要进行特殊设置。 选项A中,(0,0,10,10)表示将窗口坐标系的左下角设置为(0,0),右上角设置为(10,10),符合题目要求,因此选A。 选项B中,((0,0),(10,10))表示将窗口坐标系的左上角设置为(0,0),右下角设置为(10,10),与题目要求不符。 选项C中,(Point(0,0),Point(10,10))与选项A等价,也符合题目要求。 选项D中,(Point(10,10),Point(0,0))表示将窗口坐标系的右上角设置为(10,10),左下角设置为(0,0),与题目要求不符。 综上,选项A和C都可以将窗口坐标系设置为题目要求的样式。
30、单选题 下面语句的输出结果是: >>>f=lambda x,y:y+x >>>f(10,10)
A、 10
B、 20
C、 10,10
D、 100
正确答案:   B 
参考解析:这道题考察的是 lambda 表达式的使用。lambda 表达式是一种匿名函数,可以用来简化代码。它的语法形式为: lambda 参数列表: 表达式 在本题中,lambda 表达式的参数列表为 x 和 y,表达式为 y+x。因此,f(10,10) 的输出结果为 10+10=20,所以答案为 B。
31、单选题 下载第三方库安装包但并不安装的命令格式是
A、 pip search
B、 pip -h
C、 pip install
D、 pip download
正确答案:   D 
参考解析:本题考查的是pip命令的使用。pip是Python的包管理工具,可以用来安装、卸载、更新Python包。在下载第三方库的安装包时,可以使用pip download命令来下载,但不会自动安装。因此,本题的正确答案是D,即pip download。其他选项的含义如下: A. pip search:用于搜索PyPI(Python Package Index)中的包。 B. pip -h:用于查看pip命令的帮助文档。 C. pip install:用于安装Python包。
32、单选题 与信息隐蔽的概念直接相关的概念是
A、 软件结构定义
B、 模块独立性
C、 模块类型划分
D、 模块耦合度
正确答案:   B 
参考解析:本题考查的是与信息隐蔽相关的概念。信息隐蔽是指在软件设计中,将某些信息隐藏起来,只对外部提供必要的接口,以保护软件的安全性和稳定性。而模块独立性是指模块之间的耦合度较低,模块内部的实现细节对外部是不可见的,因此与信息隐蔽的概念直接相关。其他选项与信息隐蔽的概念关系不大,因此排除。因此,本题的答案为B。
33、单选题 需求分析阶段的任务是确定
A、 软件开发方法
B、 软件开发工具
C、 软件开发费用
D、 软件系统功能
正确答案:   D 
参考解析:需求分析阶段是软件开发过程中的第一步,其主要任务是确定软件系统的功能需求,包括用户需求、系统需求和非功能需求等。因此,选项D正确。选项A和B是软件开发过程中的其他环节需要考虑的问题,选项C则是在项目管理阶段需要考虑的问题。
34、单选题 学生和课程的关系模式定义为S(S#,Sn,Sd,Dc,Sa)(其属性分别为学号、姓名、所属系、所在系的系主任、年龄),C(C#,Cn,p#)(其属性分别为课程号、课程名、先选课),SC(S#,C#,G)(其属性分别为学号、课程号、成绩)。下列关系中,包含对主属性传递依赖的是
A、 S#->Sd,Sd->Dc
B、 S#->Sd
C、 S#->Sd,(S#,C#)->G
D、 C#->P#,(S#,C#)->G
正确答案:   A 
参考解析:传递依赖是指一个非主属性通过一个或多个主属性的函数依赖而依赖于另一个非主属性。在给定的关系模式中,主属性为S#、C#和C#,非主属性为Sn、Sd、Dc、Sa、Cn、p#和G。 A选项中,S#->Sd,Sd->Dc,说明S#->Dc,即Dc依赖于S#,存在传递依赖。 B选项中,只有S#->Sd,不存在传递依赖。 C选项中,S#->Sd,(S#,C#)->G,说明G依赖于(S#,C#),但是G是SC关系的属性,不是S或C关系的属性,因此不存在传递依赖。 D选项中,C#->P#,(S#,C#)->G,说明G依赖于(S#,C#),但是P#是C关系的属性,不是S关系的属性,因此不存在传递依赖。 综上所述,只有A选项中存在传递依赖,因此答案为A。
35、单选题 一个工作人员可使用多台计算机,而一台计算机被多个人使用。则实体工作人员与实体计算机之间的联系是
A、 一对多
B、 多对一
C、 多对多
D、 一对一
正确答案:   C 
参考解析:根据题意可知,一个工作人员可以使用多台计算机,而一台计算机也可以被多个人使用,因此实体工作人员与实体计算机之间的联系是多对多关系,选项C正确。
36、单选题 一个教师讲授多门课程,一-门课程由多个教师讲授。描述了实体教师和课程的联系的选项是
A、 1:1联系
B、 m:n联系
C、 m: 1联系
D、 1:n联系
正确答案:   B 
参考解析:本题考察的是实体之间的联系,其中一个教师可以讲授多门课程,而一门课程又可以由多个教师讲授,因此教师和课程之间是多对多的联系,即m:n联系。因此,选项B为正确答案。而选项A表示一对一联系,不符合实际情况;选项C表示多个教师讲授一门课程,不符合题意