单元4 身高体型判定系统的决策判定(1.关系逻辑与if语句)(练习)-《C语言程序设计》(高教版第2版)【上好课】

2026-05-14
| 2份
| 17页
| 17人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 作业-课时练
知识点 分支结构
使用场景 同步教学
学年 2026-2027
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 110 KB
发布时间 2026-05-14
更新时间 2026-05-14
作者 爱学习的muller
品牌系列 上好课·上好课
审核时间 2026-05-14
下载链接 https://m.zxxk.com/soft/57857110.html
价格 2.00储值(1储值=1元)
来源 学科网

内容正文:

身高体型判定系统的决策判定(1.关系逻辑与if语句) 一、单项选择题 1、以下关于 if 语句执行逻辑的描述,正确的是( ) A. 只有当表达式的值为 1 时,才执行 if 后的语句 B. 当表达式的值为非 0 时,执行 if 后的语句;为 0 时执行 else 后的语句 C. else 子句是 if 语句的必填部分 D. if 语句中的表达式只能是关系表达式 2、关系表达式3+2>5-1的结果是( ) A. 1 B. 0 C. 5 D. 4 3、执行语句int a=0,b=1; a++&&b++;后,变量 b 的值是( ) A. 0 B. 1 C. 2 D. 不确定 4、逻辑表达式!(3<5)||(2>4)的结果是( ) A. 1 B. 0 C. 真 D. 非 0 5、当变量a=2时,执行以下代码后输出的结果是( ) if(a>3) printf("A"); else if(a>1) printf("B"); else printf("C"); A. A B. B C. C D. 无输出 6、关系表达式'A'<'a'的结果是( ) A. 0 B. 1 C. 不确定 D. 编译错误 7、以下运算符优先级从高到低排列正确的是( ) A. 算术运算符 > 逻辑非 > 关系运算符 > 逻辑与 > 赋值运算符 B. 逻辑非 > 算术运算符 > 关系运算符 > 逻辑与 > 赋值运算符 C. 关系运算符 > 算术运算符 > 逻辑非 > 逻辑与 > 赋值运算符 D. 赋值运算符 > 逻辑与 > 关系运算符 > 算术运算符 > 逻辑非 8、执行语句int a=1,b=0; a++||b++;后,变量 b 的值是( ) A. 0 B. 1 C. 2 D. 不确定 9、关系表达式5==5的结果是( ) A. 5 B. 真 C. 1 D. 0 10、以下 if 语句,语法存在错误的是( ) A. if(a>0) x=1; y=2; else x=3; B. if(a>0) {x=1; y=2;} else {x=3;} C. if(a>0) x=1; else if(a<0) x=2; else x=3; D. if(a>0) x=1; else if(a<0) x=2; else x=3; 二、判断题 1、if 语句中的表达式只要是非 0 值,就会执行对应的语句块。( ) 2、关系运算符中,==的优先级高于>。( ) 3、执行语句int a=1,b=0; !a&&b++;后,变量 b 的值会变为 1。( ) 4、逻辑运算符的优先级顺序为:!(非) > &&(与) > ||(或)。( ) 3、 填空题 1、关系表达式3*2>5+1的值是____。 2、执行语句int x=1,y=5; x++||y--;后,变量 y 的值是____。 3、当需要依次判断多个条件时,if 语句常采用____的形式实现多分支选择。 4、在 C 语言运算符优先级中,____的优先级高于算术运算符。 5、逻辑表达式5>3 && 2<4的值是____。 四、程序填空题 1、题目描述:以下程序为改进后的 “身高体型判定系统”,支持用户选择 “身高预测” 或 “体型判定” 功能,需补充缺失代码使程序完整运行。 #include <stdio.h> int main() { int choice; float father, mother, predict_h, weight, height, bmi; char gender; printf("=== 身高体型判定系统 === "); printf("1. 身高预测功能 "); printf("2. 体型判定功能 "); printf("请选择功能(1/2):"); scanf("%d", &choice); // 校验功能选择的合法性 if(__(1)__) { printf("输入错误,请选择1或2! "); return 1; } // 身高预测功能分支 if(choice == 1) { printf("请输入父亲身高(cm):"); scanf("%f", &father); printf("请输入母亲身高(cm):"); scanf("%f", &mother); printf("请输入孩子性别(M/m表示男,F/f表示女):"); scanf(" %c", &gender); // 根据性别计算预测身高 if(gender == 'M' || gender == 'm') { predict_h = __(2)__; } else if(gender == 'F' || gender == 'f') { predict_h = __(2)__; } else { printf("性别输入错误! "); return 1; } printf("孩子的预测身高为:%.2f cm ", predict_h); } // 体型判定功能分支 else { printf("请输入您的体重(kg):"); scanf("%f", &weight); printf("请输入您的身高(m):"); scanf("%f", &height); // 计算BMI指数 bmi = __(3) __; printf("您的BMI指数为:%.2f ", bmi); // 根据BMI范围判定体型 if(bmi < 18.5) { printf("体型:偏瘦,建议增加营养摄入。 "); } else if(__(4)__) { printf("体型:正常,建议保持当前饮食和运动习惯。 "); } else if(bmi < 28) { printf("体型:偏胖,建议控制饮食并增加运动。 "); } else { printf("体型:肥胖,建议咨询营养师制定减重计划。 "); } } return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 身高体型判定系统的决策判定(1.关系逻辑与if语句) 一、单项选择题 1、以下关于 if 语句执行逻辑的描述,正确的是( ) A. 只有当表达式的值为 1 时,才执行 if 后的语句 B. 当表达式的值为非 0 时,执行 if 后的语句;为 0 时执行 else 后的语句 C. else 子句是 if 语句的必填部分 D. if 语句中的表达式只能是关系表达式 【答案】B 【解析】C 语言中 “非 0 即真”,if 语句判断表达式值为非 0 时执行对应语句,为 0 时若有 else 则执行 else 部分;选项 A 错误,非 0 值都视为真;选项 C 错误,else 是可选部分;选项 D 错误,表达式可以是任意合法表达式(如算术、逻辑表达式)。 2、关系表达式3+2>5-1的结果是( ) A. 1 B. 0 C. 5 D. 4 【答案】A 【解析】算术运算符优先级高于关系运算符,先计算3+2=5、5-1=4,再比较5>4,关系成立结果为真,C 语言中真用 1 表示。 3、执行语句int a=0,b=1; a++&&b++;后,变量 b 的值是( ) A. 0 B. 1 C. 2 D. 不确定 【答案】B 【解析】逻辑与&&存在短路现象:当左边表达式为假(0)时,右边表达式不再执行。a初始为 0,a++取值为 0(后自增先取值),左边为假,b++不执行,b 保持初始值 1。 4、逻辑表达式!(3<5)||(2>4)的结果是( ) A. 1 B. 0 C. 真 D. 非 0 【答案】B 【解析】先计算!(3<5):3<5为真(1),取反后为假(0);再计算2>4为假(0);逻辑或||中两个假值相或,结果为假(0)。 5、当变量a=2时,执行以下代码后输出的结果是( ) if(a>3) printf("A"); else if(a>1) printf("B"); else printf("C"); A. A B. B C. C D. 无输出 【答案】B 【解析】a=2不满足a>3,但满足a>1,因此执行 else if 对应的语句,输出 "B"。 6、关系表达式'A'<'a'的结果是( ) A. 0 B. 1 C. 不确定 D. 编译错误 【答案】B 【解析】字符比较本质是比较 ASCII 码值,'A'的 ASCII 码为 65,'a'为 97,65<97 关系成立,结果为真(1)。 7、以下运算符优先级从高到低排列正确的是( ) A. 算术运算符 > 逻辑非 > 关系运算符 > 逻辑与 > 赋值运算符 B. 逻辑非 > 算术运算符 > 关系运算符 > 逻辑与 > 赋值运算符 C. 关系运算符 > 算术运算符 > 逻辑非 > 逻辑与 > 赋值运算符 D. 赋值运算符 > 逻辑与 > 关系运算符 > 算术运算符 > 逻辑非 【答案】B 【解析】C 语言运算符优先级规则:逻辑非!优先级最高,其次是算术运算符,然后是关系运算符,接着是逻辑与&&,最后是赋值运算符。 8、执行语句int a=1,b=0; a++||b++;后,变量 b 的值是( ) A. 0 B. 1 C. 2 D. 不确定 【答案】A 【解析】逻辑或||存在短路现象:当左边表达式为真(非 0)时,右边表达式不再执行。a初始为 1,a++取值为 1(真),因此b++不执行,b 保持 0。 9、关系表达式5==5的结果是( ) A. 5 B. 真 C. 1 D. 0 【答案】C 【解析】关系运算符==用于判断相等,5 等于 5 关系成立,C 语言中逻辑真用整数 1 表示。 10、以下 if 语句中,语法存在错误的是() A. if(a>0) x=1; y=2; else x=3; B. if(a>0) {x=1; y=2;} else {x=3;} C. if(a>0) x=1; else if(a<0) x=2; else x=3; D. if(a>0) x=1; else if(a<0) x=2; else x=3; 【答案】A 【解析】C 语言中,if、else 默认只控制紧跟的一条语句。A 选项中 if(a>0) 仅管辖 x=1;,y=2; 为独立语句,导致 else 悬空无匹配,编译报错;B、C、D 语法均完全合法。 二、判断题 1、if 语句中的表达式只要是非 0 值,就会执行对应的语句块。( ) 【答案】√ 【解析】C 语言中逻辑判断遵循 “非 0 即真” 规则,无论表达式是正数、负数还是字符的非 0ASCII 码,都会被视为真,执行 if 后的语句。 2、关系运算符中,==的优先级高于>。( ) 【答案】× 【解析】关系运算符的优先级分为两级:<、<=、>、>=优先级相同且高于==、!=,因此>的优先级高于==。 3、执行语句int a=1,b=0; !a&&b++;后,变量 b 的值会变为 1。( ) 【答案】× 【解析】!a的结果为 0(假),逻辑与&&左边为假时,右边表达式b++不会执行,因此 b 的值保持初始值 0 不变。 4、逻辑运算符的优先级顺序为:!(非) > &&(与) > ||(或)。( ) 【答案】√ 【解析】C 语言明确规定逻辑运算符的优先级:逻辑非优先级最高,其次是逻辑与,最后是逻辑或,混合运算时按此顺序执行。 3、 填空题 1、关系表达式3*2>5+1的值是____。 【答案】0 【解析】先执行算术运算:3*2=6,5+1=6;再比较6>6,关系不成立,C 语言中逻辑假用 0 表示,因此表达式值为 0。 2、执行语句int x=1,y=5; x++||y--;后,变量 y 的值是____。 【答案】5 【解析】逻辑或||存在短路现象,左边x++取值为 1(真),因此右边y--不再执行,y 保持初始值 5 不变,符合逻辑运算的短路优化规则。 3、当需要依次判断多个条件时,if 语句常采用____的形式实现多分支选择。 【答案】else if 嵌套(或多分支 if 语句) 【解析】多分支 if 语句通过else if依次判断不同条件,避免了多个独立 if 语句的冗余,逻辑更清晰,是处理多场景选择的常用方式。 4、在 C 语言运算符优先级中,____的优先级高于算术运算符。 【答案】逻辑非运算符(!) 【解析】逻辑非是单目运算符,优先级高于所有双目算术运算符,在混合运算中会最先执行,例如!10+5会先计算!10得到 0,再执行 0+5。 5、逻辑表达式5>3 && 2<4的值是____。 【答案】1 【解析】5>3的结果为真(1),2<4的结果为真(1);逻辑与运算中两个真结果相与时,最终结果为真,C 语言中用整数 1 表示逻辑真。 四、程序填空题 1、题目描述:以下程序为改进后的 “身高体型判定系统”,支持用户选择 “身高预测” 或 “体型判定” 功能,需补充缺失代码使程序完整运行。 #include <stdio.h> int main() { int choice; float father, mother, predict_h, weight, height, bmi; char gender; printf("=== 身高体型判定系统 === "); printf("1. 身高预测功能 "); printf("2. 体型判定功能 "); printf("请选择功能(1/2):"); scanf("%d", &choice); // 校验功能选择的合法性 if(__(1)__) { printf("输入错误,请选择1或2! "); return 1; } // 身高预测功能分支 if(choice == 1) { printf("请输入父亲身高(cm):"); scanf("%f", &father); printf("请输入母亲身高(cm):"); scanf("%f", &mother); printf("请输入孩子性别(M/m表示男,F/f表示女):"); scanf(" %c", &gender); // 根据性别计算预测身高 if(gender == 'M' || gender == 'm') { predict_h = __(2)__; } else if(gender == 'F' || gender == 'f') { predict_h = (father + 0.923 * mother) / 2 ; } else { printf("性别输入错误! "); return 1; } printf("孩子的预测身高为:%.2f cm ", predict_h); } // 体型判定功能分支 else { printf("请输入您的体重(kg):"); scanf("%f", &weight); printf("请输入您的身高(m):"); scanf("%f", &height); // 计算BMI指数 bmi = __(3) __; printf("您的BMI指数为:%.2f ", bmi); // 根据BMI范围判定体型 if(bmi < 18.5) { printf("体型:偏瘦,建议增加营养摄入。 "); } else if(__(4)__) { printf("体型:正常,建议保持当前饮食和运动习惯。 "); } else if(bmi < 28) { printf("体型:偏胖,建议控制饮食并增加运动。 "); } else { printf("体型:肥胖,建议咨询营养师制定减重计划。 "); } } return 0; } 【答案】 (1)choice != 1 && choice != 2 (2) (father + mother) * 1.08 / 2; (3) weight / (height * height) (4) bmi >= 18.5 && bmi < 24 【解析】 (1) 此处需判断用户输入的选择是否为 1 或 2 之外的数值,使用逻辑与连接两个不等关系,当两个条件同时满足时,提示输入错误,保证功能选择的合法性。 (2) 严格遵循题目中给定的遗传身高预测公式:男孩身高为 (父亲身高 + 母亲身高)*1.08/2。 (3) BMI 指数计算公式为 “体重 (kg) ÷ 身高 (m) 的平方”,代入浮点型变量完成运算,符合医学上 BMI 的计算标准。 (4) 正常体型的 BMI 范围是 18.5≤BMI<24,使用逻辑与连接两个关系表达式,准确匹配正常体型的判定条件,完成多分支体型判断的逻辑闭环。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

单元4 身高体型判定系统的决策判定(1.关系逻辑与if语句)(练习)-《C语言程序设计》(高教版第2版)【上好课】
1
单元4 身高体型判定系统的决策判定(1.关系逻辑与if语句)(练习)-《C语言程序设计》(高教版第2版)【上好课】
2
单元4 身高体型判定系统的决策判定(1.关系逻辑与if语句)(练习)-《C语言程序设计》(高教版第2版)【上好课】
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。