内容正文:
身高体型判定系统的决策判定(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,使用逻辑与连接两个关系表达式,准确匹配正常体型的判定条件,完成多分支体型判断的逻辑闭环。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$