5、已知字典 dic={'小欣':90, '小蕊':92, '小微':87},存放了学生的姓名及成绩。假设变量user存放了某学生的姓名,则以下哪个程序不能够实现功能:在字典中查询该学生信息是否存在,如果存在,输出其成绩,否则输出'该学生不存在!'A.if dic.get(user,'error')=='error': print('该学生不存在!') else: print(dic[user])B.if user in dic: print(dic[user]) else: print('该学生不存在!

题目

5、已知字典 dic={'小欣':90, '小蕊':92, '小微':87},存放了学生的姓名及成绩。假设变量user存放了某学生的姓名,则以下哪个程序不能够实现功能:在字典中查询该学生信息是否存在,如果存在,输出其成绩,否则输出'该学生不存在!'

A.if dic.get(user,'error')=='error': print('该学生不存在!') else: print(dic[user])

B.if user in dic: print(dic[user]) else: print('该学生不存在!')

C.if user not in dic: print('该学生不存在!') else: print(dic[user])

D.if dic.count(user)==0: print('该学生不存在!') else: print(dic[user])


相似考题
更多“5、已知字典 dic={'小欣':90, '小蕊':92, '小微':87},存放了学生的姓名及成绩。假设变量user存放了某学生的姓名,则以下哪个程序不能够实现功能:在字典中查询该学生信息是否存在,如果存在,输出其成绩,否则输出'该学生不存在!'”相关问题
  • 第1题:

    查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“数据库原理”的“成绩”,并按成绩由高到低的顺序排列,下列语句中正确的是 ( )。

    A.SELECT学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; FOR学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

    B.SELECT 学生.姓名.学生.系名.成绩.成绩JOIN学生,课程,成绩; ON学生.学号=成绩.学号; ON课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

    C.SELECT学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; WHERE学生.学号=成绩.学号; OR课程.课程编号=成绩.课程编号; OR课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC

    D.SELECT 学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; WHERE 学生.学号=成绩.学号; AND 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY成绩.成绩 DESC


    正确答案:D
    解析:本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用,如果使用超连接方式查询,则正确的语句格式为:
    SELECT……
    FROM数据库表1>INNER JOIN数据库表2>
    ON连接条件>
    WHERE……
    其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON连接条件>指定两个进行表连接的条件字段。
    如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。

  • 第2题:

    用SQL语句查询课程成绩在60分以上的学生姓名,并将结果按姓名降序存入表文件res.dbf中。

    (2)编写my.prg程序,实现的功能:先为“学生成绩”表增加一个“学生平均成绩”字段,类型为 N(6,2),根据“学生选课”表统计每个学生的平均成绩,并写入“学生成绩”表新的字段中。


    正确答案:(1)在命令窗口中输入命令:MODIFY COMMAND query1在程序文件编辑器窗口输入如下程序段: *******文件query1.prg中的程序段****************** SELECT DISTINCT(姓名)AS姓名; FROM 课程学生选课学生成绩; WHERE 学生成绩.学号=学生选课.学号; AND 学生选课课程号=课程.课程号; AND 成绩>65; ORDER BY姓名DESC; INTO TABLE res *********************************************** 在命令窗口输入命令:DO query1运行程序通过BROWSE命令可查看结果如图3-41所示。 (2)在命令窗口中输入命令:MODIFY COMMAND my在程序文件编辑器窗口输入如下程序段: ******文件my.prg中的程序段******** ALTER TABLE学生成绩ADD平均成绩N(62) SELECT学号AVG(成绩)AS平均成绩; FROM学生选课; GROUP BY学号; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE学生成绩SET平均成绩=atemp.平均成绩; WHERE学生成绩.学号=atemp.学号 SKIP ENDDO *********************************** 在命令窗口输入命令:DO my运行程序。执行程序后“学生成绩”中的记录如图3-42所示。
    (1)在命令窗口中输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口输入如下程序段: *******文件query1.prg中的程序段****************** SELECT DISTINCT(姓名)AS姓名; FROM 课程,学生选课,学生成绩; WHERE 学生成绩.学号=学生选课.学号; AND 学生选课,课程号=课程.课程号; AND 成绩>65; ORDER BY姓名DESC; INTO TABLE res *********************************************** 在命令窗口输入命令:DO query1,运行程序,通过BROWSE命令可查看结果,如图3-41所示。 (2)在命令窗口中输入命令:MODIFY COMMAND my,在程序文件编辑器窗口输入如下程序段: ******文件my.prg中的程序段******** ALTER TABLE学生成绩ADD平均成绩N(6,2) SELECT学号,AVG(成绩)AS平均成绩; FROM学生选课; GROUP BY学号; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE学生成绩SET平均成绩=atemp.平均成绩; WHERE学生成绩.学号=atemp.学号 SKIP ENDDO *********************************** 在命令窗口输入命令:DO my,运行程序。执行程序后,“学生成绩”中的记录,如图3-42所示。 解析:本大题两个小题主要考查的是SQL语句的应用,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。

  • 第3题:

    查询所有选修了“计算机基础”的学生的“计算机基础”成绩,要求得到的信息包括学生姓名和成绩,并按成绩由高到低的顺序排列,下列语句正确的是

    A.SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC

    B.SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC

    C.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; GROUP BY成绩.成绩DESC

    D.SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=‘计算机基础’; ORDER BY成绩.成绩DESC


    正确答案:D
    解析:本小题为多表联接查询,注意每两个表之间进行关联的关键字,利用ORDER BY短语可以对查询结果进行排序,降序关键字为DESC。 选项A)和选项B)中缺少数据表文件。选项C)中,GROUP BY短语使用错误,将查询结果进行排序的短语是ORDER BY。掌握和理解SQL分组查询语句的格式及功能。

  • 第4题:

    使用如下三个数据库表: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名称C(20)) 成绩(学号C(8),课程编号C(8),成绩N(5,1)) 查询所有选修了“高等数学”的学生的“相关”成绩,要求信息中包括学生姓名和成绩,并按成绩由低到高的顺序排列,下列语句正确的是( )。

    A. SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

    B. SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

    C. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; GROUP BY成绩.成绩ASC

    D. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC


    正确答案:D
    本小题为多表连接查询,注意每两个表之间进行关联的关键字,利用ORDER BY短语可以对查询结果进行排序,升序关键字为ASC。选项A和选项B中缺少数据表文件。选项C中,GROUP BY短语使用错误,将查询结果进行排序的短语是0RDER BY。

  • 第5题:

    有如下SQL语句: SELECT姓名FROM学生表WHERE学号IN; (SELECT学号FROM成绩表WHERE成绩>90) 下列哪条命令与该SQL语句等价

    A.SELECT姓名FROM学生表WHERE EXISTS; (SELECT学号FROM成绩表WHERE成绩>90)

    B.SELECT姓名FROM学生表WHERE EXISTS; (SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)

    C.SELECT姓名FROM学生表WHERE学号EXISTS; (SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)

    D. SELECT姓名FROM学生表WHERE学号=; (SELECT学号FROM成绩表WHERE成绩>90)


    正确答案:B
    解析:IN是包含运算,此处子查询中得到多个结果,记录不惟一,因此不用“=”运算符;EXISTS是谓词,用来检查在子查询中时候有结果返回。

  • 第6题:

    若学生表中存储了学号、姓名、成绩等信息,则“查询学生表中所有成绩大于600分的姓名”的SQL语句是()

    A.SELECT*FROM学生WHERE成绩>600
    B.SELECT姓名FROM学生WHERE成绩>600
    C.IF成绩>600THENSELECT姓名FROM学生
    D.IF成绩>600SELECT姓名FROM学生

    答案:B
    解析:

  • 第7题:

    若学生表中存储了学号、姓名、成绩等信息,则“删除学生表中所有姓王的学生记录”的SQL语句是( )。

    A.DELETEFROM学生WHERE姓名=王
    B.DELETEFROM学生WHERE姓名=“王%”
    C.DELETEFROM学生WHERE姓名=王%
    D.DELETE*FROM学生WHERE姓名=“王%”

    答案:B
    解析:

  • 第8题:

    设学生关系模式为:学生(学号,姓名,年龄,性别,成绩,专业),则该关系模式的主键是()。

    • A、姓名
    • B、学号,姓名
    • C、学号
    • D、学号,姓名,年龄

    正确答案:C

  • 第9题:

    有如下SQL语句:下列哪条命令与该SQL语句等价() SELECT姓名FROM学生表WHERE学号IN; (SELECT学号FROM成绩表WHERE成绩>90)

    • A、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE成绩>90)
    • B、SELECT姓名FROM学生表WHEREEXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)
    • C、SELECT姓名FROM学生表WHERE学号EXISTS;(SELECT学号FROM成绩表WHERE学号=学生表.学号AND成绩>90)
    • D、SELECT姓名FROM学生表WHERE学号=;(SELECT学号FROM成绩表WHERE成绩>90)

    正确答案:B

  • 第10题:

    单选题
    假设成绩字段的默认值是空值,检索还未确定成绩的学生选课信息,正确的SQL命令是(  )。
    A

    SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课WHERE学生.学号=选课.学号AND选课.成绩IS NULL

    B

    SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课WHERE学生.学号=选课.学号AND选课.成绩=NULL

    C

    SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课ON学生.学号=选课.学号WHERE选课.成绩IS NULL

    D

    SELECT学生.学号,姓名,选课.课程号FROM学生JOIN选课ON学生.学号=选课.学号WHERE选课.成绩=NULL


    正确答案: D
    解析:
    超连接查询有4种连接方式,其基本格式为:SELECT…FROM左表INNER|LEFT|RIGHT|FULLJOIN右表ON连接条件WHERE其他条件。要检索还未确定成绩的学生选课信息,应使用IS NULL。

  • 第11题:

    单选题
    查询选修课程号为“101”课程得分最高的同学,正确的SQL语句是(  )。
    A

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=ALL(SELECT成绩FROM选课)

    B

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ALL(SELECT成绩FROM选课WHERE课程号=101)

    C

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND成绩>=ANY(SELECT成绩FROM选课WHERE课程号=101)

    D

    SELECT学生.学号,姓名FROM学生,选课WHERE学生.学号=选课.学号AND课程号=101AND成绩>=(SELECT成绩FROM选课WHERE课程号=101)


    正确答案: A
    解析:
    ALL表示所有子查询中的所有行都使结果为真时,结果才为真;而ANY表示子查询中有一行能使结果为真,则结果就为真,要求查询选修课程号为“101”的课程得分最高的同学,应用条件短语:成绩>=ALL(SELECT成绩FROM选课WHERE课程号="101")。

  • 第12题:

    单选题
    输入学生的成绩,如果60分以上为及格,否则为不及格,如输入成绩为69分,则程序执行经过以下几个步骤,正确的顺序为() ①输入学生成绩 ②判断是否大于等于60分 ③输出及格。
    A

    ①②③

    B

    ②①③

    C

    ②③①

    D

    ③②①


    正确答案: A
    解析: 暂无解析

  • 第13题:

    已知学生表S、学生选课表SC,结构如下: S(S#,SN,SD,PROV) SC(S#,CN,GR) 其中S#为学号,SN为姓名,SD为系别,PROV为省区,CN为课程名,GR为成绩 请写出完成以下任务需要的SQL语句:1)查询'信息系'的学生来自哪些省区。2)按分数降序排序,输出'英语系'学生中选修了'计算机'课程的学生的姓名和成绩。


    答:1) SELECT DISTINCT PROV
    FROM S
    WHERE SD = '信息系'
    2) SELECT SN, GR
    FROM S,SC
    WHERE SD = '英语系' AND CN='计算机' AND S.S#= SC.S#
    ORDER BY DESC

  • 第14题:

    在学生成绩表中,如果需要根据输入的学生姓名查找学生的成绩,需要使用的是( )查询。


    正确答案:参数
    参数 解析: 本题考查的是参数查询。参数查询是一种利用对话框来提示用户输入条件的查询。这种查询可以根据用户输入的条件来检索符合相应条件的记录。

  • 第15题:

    若要在表“学生”和“选课”中查找001号学生的成绩,下列语句正确是( )。

    A.SELECT 学生号,姓名,成绩 FROM 学生 JOIN 选课; WHERE 学生号=001:

    B.SELECT 学生号,姓名,成绩 FROM 学生 JOIN 选课; WHERE 学生号=001; ON学生.学生号=选课.学生号

    C.SELECT 学生号,姓名,成绩 FROM 学生 JOIN 选课; ON学生.学生号=选课.学生号; WHERE 学生号=001

    D. SELECT 学生号,姓名,成绩 FROM 学生 JOIN 选课; WHERE 学生.学生号=选课.学生号


    正确答案:C
    解析:在超级联接查询中,SELECT列出查询的属性,FROM后列出查询类型,ON短语列出联接查询条件,WHERE后是查询条件。ON短语要紧跟在JOIN短语的后面,WHERE短语置于ON短语后面。

  • 第16题:

    在“学生.mdb”数据库中有课程、课程成绩、学生和成绩优秀学生四张表。

    (1)以学生和课程成绩表为数据源,创建追加查询“优秀学生”,将成绩>=90的学生所有信息和成绩字段添加到成绩优秀学生表中。

    (2)以课程、课程成绩、学生表为数据源,创建分组查询“学分统计”,结果显示学生姓名和已修学分字段,已修学分=Sum([课程].[学分])。查询结果如图所示。


    正确答案:

  • 第17题:

    若查询只选了一门课程的学生号、学生姓名和成绩,则语法: SELECT A.学生号,A.学生姓名,B.成绩FROM学生A,选课B; WHERE A.学生号【 】(SELECT 学生号 FROM选课; GROUP BY【 】HVING【 】


    正确答案:IN 学生号 COUNT(*)=1
    该题用嵌套查询来显示结果,内层用GROUPBY来分组,用HAVING进一步设定分组条件,同时外层用IN表示属于。

  • 第18题:

    若学生表中存储了学号、姓名、成绩等信息,则“查询学生表中所有学号和姓名”的SQL语句是( )。

    A.SELECT*FROM学生
    B.SELECT学号,姓名FROM学生
    C.SELECT学号姓名FROM学生
    D.SELECT学号、姓名FROM学生

    答案:B
    解析:

  • 第19题:

    设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出“成绩大于90分的学生姓名”,则对应的SQL语句是()。

    ASELECT 姓名 FROM 学生表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90

    BSELECT 姓名 FROM 课程表 WHERE学生表.学号=课程表.学号 AND 课程表.成绩>90

    CSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 OR 课程表.成绩>90

    DSELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90


    D

  • 第20题:

    输入学生的成绩,如果60分以上为及格,否则为不及格,如输入成绩为69分,则程序执行经过以下几个步骤,正确的顺序为() ①输入学生成绩 ②判断是否大于等于60分 ③输出及格。

    • A、①②③
    • B、②①③
    • C、②③①
    • D、③②①

    正确答案:A

  • 第21题:

    设学生关系模式为:学生(学号,姓名,年龄,性别,成绩,专业),则该关系模式的主键是()。

    • A、性别
    • B、学号,姓名
    • C、学号
    • D、学号,姓名,性别

    正确答案:C

  • 第22题:

    单选题
    设学生关系模式为:学生(学号,姓名,年龄,性别,成绩,专业),则该关系模式的主键是()。
    A

    姓名

    B

    学号,姓名

    C

    学号

    D

    学号,姓名,年龄


    正确答案: B
    解析: 暂无解析

  • 第23题:

    单选题
    设学生表和课程表的结构分别为(学号,姓名)和(学号,课程号,成绩),如果希望查询出“成绩大于90分的学生姓名”,则对应的SQL语句是()。
    A

    SELECT 姓名 FROM 学生表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90

    B

    SELECT 姓名 FROM 课程表 WHERE学生表.学号=课程表.学号 AND 课程表.成绩>90

    C

    SELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 OR 课程表.成绩>90

    D

    SELECT 姓名 FROM 学生表,课程表 WHERE 学生表.学号=课程表.学号 AND 课程表.成绩>90


    正确答案: D
    解析: 暂无解析

  • 第24题:

    单选题
    要查询出学号为2008001001所有选取修课程的成绩,正确的是()。
    A

    SELECT学号,姓名,课程代码,总评成绩FROM学生,成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’

    B

    SELECT学号,姓名,课程代码,总评成绩FROM学生INNER JOIN成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’

    C

    SELECT学号,姓名,课程代码,总评成绩FROM学生LEFT OUTER JOIN成绩ON学生.学号=成绩.学号WHERE学号=’2008001001’

    D

    SELECT学号,姓名,课程代码,总评成绩FROM学生,成绩WHERE学生.学号=成绩.学号AND学号=’2008001001’


    正确答案: D
    解析: 暂无解析