plsql循环练习题,并给出答案
时间: 2023-07-19 13:11:21 浏览: 35
好的,以下是一些 PL/SQL 循环练习题以及它们的答案:
1. 使用循环语句计算 1 到 100 的所有偶数之和。
```sql
DECLARE
i NUMBER := 1;
sum NUMBER := 0;
BEGIN
WHILE i <= 100 LOOP
IF i MOD 2 = 0 THEN
sum := sum + i;
END IF;
i := i + 1;
END LOOP;
dbms_output.put_line('Sum of even numbers from 1 to 100: ' || sum);
END;
```
答案:Sum of even numbers from 1 to 100: 2550
2. 使用循环语句计算一个给定数字的阶乘。
```sql
DECLARE
num NUMBER := 5;
fact NUMBER := 1;
BEGIN
FOR i IN 1..num LOOP
fact := fact * i;
END LOOP;
dbms_output.put_line('Factorial of ' || num || ' is ' || fact);
END;
```
答案:Factorial of 5 is 120
3. 使用循环语句从一个数组中找到最大值和最小值。
```sql
DECLARE
TYPE num_array IS TABLE OF NUMBER;
arr num_array := num_array(10, 5, 20, 30, 15, 25);
min_num NUMBER := arr(1);
max_num NUMBER := arr(1);
BEGIN
FOR i IN 2..arr.count LOOP
IF arr(i) < min_num THEN
min_num := arr(i);
END IF;
IF arr(i) > max_num THEN
max_num := arr(i);
END IF;
END LOOP;
dbms_output.put_line('Minimum number in the array: ' || min_num);
dbms_output.put_line('Maximum number in the array: ' || max_num);
END;
```
答案:Minimum number in the array: 5, Maximum number in the array: 30
4. 使用循环语句将一个字符串反转。
```sql
DECLARE
str VARCHAR2(20) := 'Hello World';
reversed_str VARCHAR2(20) := '';
BEGIN
FOR i IN REVERSE 1..length(str) LOOP
reversed_str := reversed_str || substr(str, i, 1);
END LOOP;
dbms_output.put_line('Original string: ' || str);
dbms_output.put_line('Reversed string: ' || reversed_str);
END;
```
答案:Original string: Hello World, Reversed string: dlroW olleH
5. 使用循环语句将一个字符串中的所有元音字母替换为大写字母。
```sql
DECLARE
str VARCHAR2(20) := 'Hello World';
vowels CONSTANT VARCHAR2(10) := 'aeiouAEIOU';
BEGIN
FOR i IN 1..length(str) LOOP
IF instr(vowels, substr(str, i, 1)) > 0 THEN
str := substr(str, 1, i-1) || upper(substr(str, i, 1)) || substr(str, i+1);
END IF;
END LOOP;
dbms_output.put_line('Original string: ' || 'Hello World');
dbms_output.put_line('String with vowels replaced by uppercase letters: ' || str);
END;
```
答案:Original string: Hello World, String with vowels replaced by uppercase letters: HEllO WOrld
希望这些练习题对您有所帮助。如果您有其他问题,请随时提出。