当前位置:文档之家› oracle 第四章PLSQL习题及答案

oracle 第四章PLSQL习题及答案

习题四
一、选择题
1.关于PL/SQL程序设计语言的优点,说法不正确的是()
A.PL/SQL是结构化查询语言,与SQL语言没有区别
B.PL/SQL是集过程化功能和查询功能为一体的语言
C.PL/SQL程序设计语言可以进行错误处理
D.PL/SQL程序设计语言可以定义变量,使用控制结构
2.关于在PL/SQL程序设计中使用输出语句,说法不正确的是()
A.使用输出语句之前,需要激活系统包DBMS_OUTPUT
B.输出语句为DBMS_OUTPUT系统包中的PUT_LINE函数
C.激活输出包的语法为SET serveroutput ON
D.PL/SQL中行注释用符号"//"
3.下列选项中,()是PL/SQL块的必选项。

A.DECLARE
C. EXCEPTION
D. SELECT
B.BEGIN
4.在PL/SQL块中不能直接嵌人(
A. SELECT
B.INSERT
C. CREATE TABLE
MIT
5.下列变量定义方法不正确的是()。

A.al VARCHAR2(10);a2 al%TYPE;
B. a3 student.sno%TYPE;
C. a4 student%ROWTYPE;
D.b2 bl%TYPE;b1 VARCHAR2(10);
6.下列记录类型的变量有()个分变量。

CURSOR s 1 IS SELECT sno, sname, age FROM student;
v_c s_18 ROWTYPE;
A.1
B.2
C.3
D.4
7.在PL/SQL中,非法的标识符是()
A. table $123
B.123 table
C.table123
D.Table_123
8.判断IF语句∶
IF v_num<5THEN v_example:= 1;
ELSIF v_num<10 THEN v_example:= 2;
ELSIF v_num>20 THEN v_example:= 3;
ELSIF v_num>35 THEN v_example:=4;
ELSE v_example:=5;
END IF
如果v_num是37,值()将被赋值给v_example
A.1
B.2
C.3
D.4
9.判断IF语句∶
IF a>10 THEN b:=0;
ELSE IF a>5 THEN b:= 1;
ELSE THEN b:= 2;
END;
上述语句中有()处错误。

A.0
B.1
C.2
D.3
10.判断CASE语句∶
CASE a
WHEN'A'THEN a:='M';
WHEN'A'THEN a:='N';
WHEN'B'THEN a:='P';
WHEN'B'THEN a:='Q';
END CASE;
如果变量a的初始值是B,那么执行CASE语句之后a的值是()。

A.M
B.N
C. P
D.Q
11.判断简单循环语句∶
DeCLARE
suml NUMBER:=0;
i NUOMBER:=1;
BEGIN
loop
suml:= sum1 + i;i++;
exit when i>10;
EXD;
dbms_output.put_line('1~10之间的整数和是∶',suml); END;
上述语句中有()处错误。

A.0
B.1
C.2
D.D.3
12.执行以下语句∶
DBECLARE
n NUMBER:=1;suml NUMBER:=0;BBGIN
WHILE n<=10 LOOP
sum1:= sum1+n;n:=n+1;END L00P;
dbms_output.put_line(sum1);
END;
执行完成后输出的结果是()。

A.0
B.11
C.55
D.死循环
13.执行以下语句∶DECLARE
iNUMBER;BEGIN
FORiIN5..4 LOOP
dbms_output.put_line('');END LOOP;END;3
执行完成后循环次数为()
A.0次
B.2次
C.4次
D.5次
二、应用题
1.IF条件语句实现。

通过键盘输人某个学生的学号和课程号,查询该学生选课表中的成绩,判断成绩的等级并输出.
若成绩>90分,输出"成绩为∶优秀";若成绩>80分,输出"成绩为∶良好";
若成绩>70分,输出"成绩为∶中等";若成绩>60分,输出"成绩为∶及格";
若成绩<60分,输出"成绩为∶不及格"。

2.计算1~100的偶数和。

输出"1~~100的偶数和为∶?"。

要求分别用简单LOOP循环、WHLE循环和FOR循环实现。

第1章PL/SQL概述
一、选择题
1.A
2.D
3.B
4.C
5.D
6.C
7.B
8.C
9.D 10.C 11.D 12.C 13.A
二、上机实验题
1.1. IF条件语句实现
通过键盘输入某个学生的学号和课程号,查询该学生选课表中的成绩,判断成绩的等级并输出。

若成绩>90分,输出“成绩为:优秀”;
若成绩>80分,输出“成绩为:良好”;
若成绩>70分,输出“成绩为:中等”;
若成绩>60分,输出“成绩为:及格”;
若成绩<60分,输出“成绩为:不及格”;
答:
declare
v_sno sc.sno%type:=&a;//通过键盘输入
v_cno o%type:=&b; //通过键盘输入
v_grade sc.grade%type;
begin
select grade into v_grade
from sc
where sno=v_sno and cno=v_cno;
dbms_output.put_line('成绩为:'||v_grade);
if v_grade>90 then dbms_output.put_line('成绩为:优秀');
elsif v_grade>80 then dbms_output.put_line('成绩为:良好'); elsif v_grade>70 then dbms_output.put_line('成绩为:中等'); elsif v_grade>60 then dbms_output.put_line('成绩为:及格'); else dbms_output.put_line('成绩为:不及格');
end if;
end;
2. 计算1-100的偶数和。

输出“1-100的偶数和为:?”
要求分别用简单loop循环、while循环和for循环实现
答:
简单loop循环:
declare
v_sum NUMBER:=0;
v_num number:=1;
begin
loop
if mod(v_num,2)=0
then v_sum:=v_sum+v_num;
end if;
v_num:=v_num+1;
if v_num>100 then
exit;
end if;
end loop;
dbms_output.put_line('1-100的偶数和为:'||v_sum);
end;
while循环:
declare
v_sum NUMBER:=0;
v_num number:=1;
begin
while v_num<=100
loop
if mod(v_num,2)=0
then v_sum:=v_sum+v_num;
end if;
v_num:=v_num+1;
end loop;
dbms_output.put_line('1-100的偶数和为:'||v_sum); end;
for循环:
declare
v_sum NUMBER:=0;
begin
for i in 1..100
loop
if mod(i,2)=0
then v_sum:=v_sum+i;
end if;
end loop;
dbms_output.put_line('1-100的偶数和为:'||v_sum); end;。

相关主题