plsql判断练习题
# Oracle PL/SQL IF 判断练习题约束**禁止使用循环、异常处理、触发器、游标**只允许使用 IF…ELSIF…ELSE、简单变量赋值、DBMS_OUTPUT.PUT_LINE共10题**2道中等8道中等偏上中等以上**全部只靠分支判断完成。 说明中等题侧重基础多条件组合中等以上侧重多条件嵌套、区间逻辑、多变量联合判断、优先级、边界值、业务场景判断。---## 中等难度2题T1‑T2### T1【中等】分数等级判定编写PL/SQL块定义变量v_score NUMBER给变量赋值测试值可分别为95、72、58。规则- ≥90输出优秀- 80~89输出良好- 70~79输出及格- 70输出不及格要求只用IF‑ELSIF‑ELSE不许case不许循环异常游标。declareV_score number:请输入;beginif V_score 90 thendbms_output.put_line(优秀);elsif V_score 80 thendbms_output.put_line(良好);elsif V_score 70 thendbms_output.put_line(及格);elsedbms_output.put_line(不及格);end if;end;### T2【中等】判断三角形类型定义3个数字变量a,b,c代表三条边长。逻辑1. 任意边长小于等于0 →输出“边长非法”2. 不满足两边之和大于第三边 →输出“不能构成三角形”3. 三边相等输出“等边三角形”4. 两边相等输出“等腰三角形”5. 其余输出普通三角形。要求仅IF分支不能用循环、游标、异常。declarea number:请输入a;b number:请输入b;c number:请输入c;beginif a0 or b0 or c0 thendbms_output.put_line(边长非法);elseif abc or acb or bca thendbms_output.put_line(不能构成三角形);elsif ab and bc thendbms_output.put_line(等边三角形);elsif ab and ac or ac and ab or bc and ba thendbms_output.put_line(等腰三角形);elsedbms_output.put_line(普通三角形);end if;end if;end;---## 中等以上难度8题T3‑T10 特点多变量联合、条件嵌套、多区间叠加、互斥条件、业务规则、边界临界判断。### T3【中等以上】会员折扣计算多变量联合判断变量- v_member_type VARCHAR2(10)会员类型取值 普通,银卡,金卡- v_amount NUMBER消费金额折扣规则1. 非会员无折扣2. 银卡消费≥1000打9折小于1000打9.5折3. 金卡消费≥1000打8折小于1000打8.5折4. 如果消费金额≤0输出“金额无效”。输出 原始金额、会员类型、折后金额。要求只能IF分支不使用CASE不允许循环、异常。declarev_member_type VARCHAR2(10):会员类型;v_amount NUMBER :消费金额;n number;beginif v_member_type普通 thendbms_output.put_line(非会员无折扣);elsif V_member_type银卡 thenif v_amount1000 thenn:v_amount*0.9; -------折后金额、elsif v_amount1000 and v_amount0 thenn:v_amount*0.95;elsif v_amount0 thendbms_output.put_line(金额无效);end if;elsif V_member_type金卡 thenif v_amount1000 thenn:v_amount*0.8; -------折后金额、elsif v_amount1000 and v_amount0 thenn:v_amount*0.85;elsif v_amount0 thendbms_output.put_line(金额无效);end if;end if;dbms_output.put_line(v_amount||n||v_member_type);end;-----------------------------------------------------------------### T4【中等以上】季节判断月份边界变量v_month NUMBER代表月份1‑12。业务规则- 3‑5月春季- 6‑8月夏季- 9‑11月秋季- 12,1,2月冬季- 如果月份不在1‑12输出“月份输入错误”**附加约束不使用IN全部用IF条件比较完成。**### T5【中等以上】薪资调薪逻辑嵌套IF变量- v_sal NUMBER 当前工资- v_level VARCHAR2(10) 岗位等级A,B,C调薪规则1. 如果等级A- 工资大于15000加薪5%否则加薪10%2. 如果等级B- 工资大于10000加薪3%否则加薪6%3. 如果等级C统一加薪2%4. 其他等级输出“无效岗位等级不调薪”输出调薪前后工资。要求必须使用IF嵌套禁止case禁止循环异常游标。declareV_empno number:员工编号;v_sal NUMBER;v_level VARCHAR2(10):请输入;n number;beginselect sal into V_sal from emp where empnoV_empno;if v_level A thenif V_sal15000 thenn: V_sal*1.05;----涨薪后的薪资elsenv_sal*1.1;end if;elsif v_levelB thenif V_sal10000 thenn: V_sal*1.03;----涨薪后的薪资elsenv_sal*1.06;end if;elsif v_levelC thenn:V_sal*1.02;elsedbms_output.put_line(无效岗位等级不调薪);end if;end;### T6【中等以上】快递运费计算多条件叠加、临界边界变量- v_weight NUMBER 包裹重量kg- v_is_remote BOOLEAN 是否偏远地区 true/false计费规则1. 重量≤0输出重量非法2. 基础重量≤2kg基础运费10元超过2kg每超1kg加收3元只做逻辑判断不用循环用算术直接算3. 如果是偏远地区在上述结果基础上额外加15元。输出最终运费。 提示用算术表达式完成超重加价**严禁循环累加**只用IF做分支判断。### T6【中等以上】快递运费计算多条件叠加、临界边界### T6【中等以上】快递运费计算多条件叠加、临界边界变量- v_weight NUMBER包裹重量kg- v_is_remote BOOLEAN是否偏远地区 true/false计费规则1. 重量≤0输出重量非法2. 基础重量≤2kg基础运费10元超过2kg每超1kg加收3元只做逻辑判断不用循环用算术直接算3. 如果是偏远地区在上述结果基础上额外加15元。输出最终运费。 提示用算术表达式完成超重加价**严禁循环累加**只用IF做分支判断。DECLAREv_weight NUMBER : 6;v_is_remote BOOLEAN :请输入;V_money number;BEGINif V_is_remote false thenif V_weight 0 thendbms_output.put_line(重量非法);elsif V_weight 2 thenV_money : 10;elsif V_weight 2 thenV_money : 10 ceil(V_weight - 2) * 3;end if;ELSIF V_is_remote true thenif V_weight 0 thendbms_output.put_line(重量非法);elsif V_weight 2 thenV_money : 10 15;elsif V_weight 2 thenV_money : 10 ceil(V_weight - 2) * 3 15;end if;end if;dbms_output.put_line(V_money);end;T7【中等以上】入学资格审核多条件同时满足/互斥变量- v_age NUMBER 年龄- v_exam_score NUMBER 考试分数- v_has_certificate BOOLEAN 是否持有证书入学规则1. 年龄小于16 直接拒绝输出“年龄不足”2. 年龄大于30直接拒绝输出“年龄超限”3. 年龄16‑30范围内- 考试分数≥600 →直接录取- 分数450~599有证书才录取无证书不录取- 分数小于450一律不予录取输出审核结果。全部用IF分支。DECLAREv_age NUMBER : 18;v_exam_score NUMBER : 500;v_has_certificate BOOLEAN : true;BEGINIF V_age 16 thendbms_output.put_line(年龄不足);elsif V_age 30 thendbms_output.put_line(年龄超限);elsif V_age BETWEEN 16 AND 30 thenif V_exam_score 600 thendbms_output.put_line(录取);ELSIF V_exam_score BETWEEN 450 AND 599 thenif V_has_certificate true thendbms_output.put_line(录取);elsif V_has_certificate false thendbms_output.put_line(不录取);end if;ELSIF V_exam_score 450 thendbms_output.put_line(不录取);end if;end if;end;### T8【中等以上】流量套餐扣费多分支优先级变量- v_total_flow NUMBER总套餐流量GB- v_used_flow NUMBER已使用流量GB规则1. 已用或总流量小于0输出流量数据错误2. 已用 ≤总流量不额外扣费3. 超出部分- 超出0‑5GB超出部分每GB扣10元- 超出5GB统一按封顶80元扣费输出超出流量、额外扣费金额。 要求只用IF判断不能循环不能case。DECLAREv_total_flow NUMBER : 80;v_used_flow NUMBER : 84;V_c_flow number;V_money NUMBER;BEGINV_c_flow : V_used_flow - V_total_flow;--超出的流量if V_used_flow 0 OR V_total_flow 0 thendbms_output.put_line(流量数据错误);ELSIF V_used_flow V_total_flow thenV_money : 0;ELSIF V_used_flow V_total_flow thenif V_c_flow BETWEEN 0 and 5 thenV_money : ceil(V_used_flow - V_total_flow) * 10;elsif V_c_flow 5 thenV_money : 80;end if;end if;dbms_output.put_line(V_c_flow || V_money);end;### T9【中等以上】奖学金评定多变量复杂组合变量- v_avg_score NUMBER平均分- v_is_party BOOLEAN是否团员 true/false- v_moral_score NUMBER德育分评定规则1. 平均分70无奖学金2. 平均分≥90- 德育分≥85一等奖学金- 德育分85二等奖学金3. 平均分70~89- 是团员 并且 德育≥80三等奖学金- 其余情况无奖学金输出奖学金等级。DECLAREv_avg_score NUMBER : 75;v_is_party BOOLEAN : false;v_moral_score NUMBER : 79;V_grade_sal VARCHAR(20);BEGINIF V_avg_score 70 thendbms_output.put_line(无奖学金);ELSIF V_avg_score 90 thenif V_moral_score 85 thenV_grade_sal : 一等奖学金;ELSIF V_moral_score 85 thenV_grade_sal : 二等奖学金;end if;ELSif V_avg_score BETWEEN 70 and 89 thenif V_is_party true and V_moral_score 80 thenV_grade_sal : 三等奖学金;elsedbms_output.put_line(无奖学金);end if;end if;dbms_output.put_line(V_grade_sal);end;### T10【中等以上】设备告警等级判断多条件与或组合变量- v_cpu NUMBER cpu使用率百分比0‑100- v_mem NUMBER内存使用率百分比0‑100- v_disk NUMBER磁盘使用率百分比0‑100告警逻辑1. cpu90 或者 mem90 →严重告警2. 不满足严重告警前提下cpu75 OR mem75 OR disk85 →一般告警3. 全部指标都正常输出“设备运行正常”4. 如果任意指标小于0或大于100输出采集数据异常。要求条件顺序很关键思考优先级只用IF‑ELSIF‑ELSE实现。DECLAREv_cpu NUMBER : 91;v_mem NUMBER : 70;v_disk NUMBER : 65;beginIF V_cpu 90 OR V_mem 90 thendbms_output.put_line(严重警告);ELSIF V_cpu 75 and V_cpu 90 or V_mem 90 AND V_mem 75 orV_disk 85 thendbms_output.put_line(一般警告);ELSif V_cpu 0 or V_cpu 100 or V_mem 0 OR V_mem 100 or V_disk 0 orV_disk 100 thendbms_output.put_line(采集数据异常);elsedbms_output.put_line(设备运行正常);end if;end;*******************************************************************************************

相关新闻

第八章:命令提交: 8.1 命令提交总览:从 CS ioctl 到 fence 返回

第八章:命令提交: 8.1 命令提交总览:从 CS ioctl 到 fence 返回

前面各章已分别剖析了命令提交所涉及的各个核心组件——GEM 对象是显存的载体、TTM负责将其放置到目标内存域、dma-fence 描述"何时完成"、dma_resv 记录"谁在使用"、GPU Scheduler 决定其提交至硬件 ring 的时机;至于维护 GPU 地址空间视图的 …

2026/10/25 5:37:48 阅读更多 →
深入解析 HDFS 组件运行机制与 Shell 实操指南

深入解析 HDFS 组件运行机制与 Shell 实操指南

前言在大数据生态中,Hadoop 分布式文件系统(HDFS) 是最核心的基石。它被设计用来运行在廉价商用硬件上,提供高吞吐量的数据访问。对于大数据的初学者和运维人员来说,理解 HDFS 内部“心脏”(NameNode、Data…

2026/11/6 9:46:46 阅读更多 →
基于知识图谱的西安旅游景点推荐系统计算机毕业设计计算机毕业设计项目

基于知识图谱的西安旅游景点推荐系统计算机毕业设计计算机毕业设计项目

随着信息技术的飞速发展,特别是在人工智能领域的持续突破,知识图谱作为一种高效的知识表示与推理工具,在众多领域都逐渐展现出其巨大的应用价值。在旅游领域,尤其是西安这座历史悠久、旅游资源丰富的城市,知识图谱技术…

2026/10/25 1:03:45 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/14 2:41:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻