内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第10练,内容是3.2 条件语句(if语句)。
《编程语言基础——C语言》(第5版)一课一练 第10练
3.2 条件语句(if语句)
一、单选题
1. C语言中if语句的一般形式为( )
A. if(表达式) 语句;
B. if 表达式 then 语句;
C. if[表达式] 语句;
D. if{表达式} 语句;
【答案】A
【解析】C语言if语句的一般形式为 if(表达式) 语句; 条件表达式必须用圆括号括起来。
2. 设int a=5; 对于if(a=0) printf("Hello"); 以下说法正确的是( )
A. 输出Hello,因为a=0是赋值,结果为0(假)
B. 输出Hello,因为a=0恒成立
C. 不输出任何内容,因为a=0的结果为0(假)
D. 编译错误,因为if中不能使用赋值表达式
【答案】C
【解析】a=0是赋值表达式,值为0(假),因此if条件不成立,不执行printf。注意a=0不是判断相等,而是将0赋给a,表达式值就是0。
3. 以下关于if-else语句的说法,正确的是( )
A. if和else后面都不能跟复合语句
B. if和else后面都可以跟复合语句
C. if后面可以跟复合语句,else后面不可以
D. else后面可以跟复合语句,if后面不可以
【答案】B
【解析】if和else后面都可以跟一条简单语句,也可以跟用花括号{}括起来的复合语句(多条语句构成的语句块)。当需要执行多条语句时,必须用{}括起来。
4. 对于程序段:if(a>0) if(b>0) c=1; else c=2; 其中的else与哪个if配对?( )
A. 与第一个if配对
B. 无法确定,产生编译错误
C. 同时与两个if配对
D. 与第二个if配对
【答案】D
【解析】C语言规定,else总是与它上面最近的、尚未配对的if配对。此处else上面最近的是if(b>0),因此else与第二个if配对。
5. 有以下程序段:int x=5; if(x>10) x=1; else if(x>3) x=2; else x=3; 执行后x的值为( )
A. 1
B. 2
C. 3
D. 5
【答案】B
【解析】x=5:先判断x>10为假,跳过x=1;再判断x>3为真(5>3),执行x=2。因此最终x=2。
6. 设int a=3, b=5, max; 执行max=a>b ? a : b; 后,max的值为( )
A. 3
B. 0
C. 5
D. 8
【答案】C
【解析】条件表达式 表达式1?表达式2:表达式3:若表达式1为真,整体值为表达式2的值,否则为表达式3的值。a>b为假(3>5不成立),因此max取b的值5。
7. 条件运算符 ?: 的优先级和结合性描述正确的是( )
A. 优先级低于关系运算符,结合性为右结合
B. 优先级高于关系运算符,结合性为左结合
C. 优先级低于赋值运算符,结合性为左结合
D. 优先级高于算术运算符,结合性为右结合
【答案】A
【解析】条件运算符?:的优先级低于关系运算符和算术运算符,高于赋值运算符。结合性为自右向左(右结合性)。
二、程序运行结果题
8. 以下程序的运行结果是【··】。
#include <stdio.h>
int main()
{
int a = 10, b = 20, c = 30;
if (a > b)
if (a > c)
printf("A
");
else
printf("B
");
else
printf("C
");
return 0;
}
【答案】C
【解析】a=10, b=20, c=30。先判断a>b:10>20为假,直接执行外层else后的printf("C
"),输出字母C。注意内层if-else不会被执行。
三、程序填空题
9. 以下程序的功能是输入三个整数,输出其中的最大值。请填空。
#include <stdio.h>
int main()
{
int a, b, c, max;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
if (【1】)
max = a;
else
max = b;
if (【2】)
max = c;
printf("最大值为:%d
", max);
return 0;
}
【答案】【1】a>b
【2】c>max
【解析】首先比较a和b,将较大的存入max,填a>b;再将max与c比较,如果c更大则更新max,填c>max。该程序先找出前两个数的最大值,再与第三个数比较。
四、阅读程序改错题
10. 阅读以下程序,该程序的功能是输入两个整数,输出其中较大的数。程序中有两处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。
L1 #include <stdio.h>
L2 int main()
L3 {
L4 int a, b;
L5 printf("请输入两个整数:");
L6 scanf("%d%d", &a, &b);
L7 if(a < b)
L8 printf("较大值为:%d
", a);
L9 else
L10 printf("较大值为:%d
", b);
L11 return 0;
L12 }
【答案】【1】L7: if(a < b) → 修改为 if(a > b)
【2】L8: printf → 修改为 printf(函数名拼写错误)
【解析】第一处:L7条件a<b写反了,当a<b时输出a(较小值),应改为a>b才能输出较大值。第二处:L8的printf函数名拼写错误,多了字母t,C语言标准输出函数名是printf。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第10练,内容是3.2 条件语句(if语句)。
《编程语言基础——C语言》(第5版)一课一练 第10练
3.2 条件语句(if语句)
一、单选题
1. C语言中if语句的一般形式为( )
A. if(表达式) 语句;
B. if 表达式 then 语句;
C. if[表达式] 语句;
D. if{表达式} 语句;
2. 设int a=5; 对于if(a=0) printf("Hello"); 以下说法正确的是( )
A. 输出Hello,因为a=0是赋值,结果为0(假)
B. 输出Hello,因为a=0恒成立
C. 不输出任何内容,因为a=0的结果为0(假)
D. 编译错误,因为if中不能使用赋值表达式
3. 以下关于if-else语句的说法,正确的是( )
A. if和else后面都不能跟复合语句
B. if和else后面都可以跟复合语句
C. if后面可以跟复合语句,else后面不可以
D. else后面可以跟复合语句,if后面不可以
4. 对于程序段:if(a>0) if(b>0) c=1; else c=2; 其中的else与哪个if配对?( )
A. 与第一个if配对
B. 无法确定,产生编译错误
C. 同时与两个if配对
D. 与第二个if配对
5. 有以下程序段:int x=5; if(x>10) x=1; else if(x>3) x=2; else x=3; 执行后x的值为( )
A. 1
B. 2
C. 3
D. 5
6. 设int a=3, b=5, max; 执行max=a>b ? a : b; 后,max的值为( )
A. 3
B. 0
C. 5
D. 8
7. 条件运算符 ?: 的优先级和结合性描述正确的是( )
A. 优先级低于关系运算符,结合性为右结合
B. 优先级高于关系运算符,结合性为左结合
C. 优先级低于赋值运算符,结合性为左结合
D. 优先级高于算术运算符,结合性为右结合
二、程序运行结果题
8. 以下程序的运行结果是【··】。
#include <stdio.h>
int main()
{
int a = 10, b = 20, c = 30;
if (a > b)
if (a > c)
printf("A
");
else
printf("B
");
else
printf("C
");
return 0;
}
三、程序填空题
9. 以下程序的功能是输入三个整数,输出其中的最大值。请填空。
#include <stdio.h>
int main()
{
int a, b, c, max;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
if (【1】)
max = a;
else
max = b;
if (【2】)
max = c;
printf("最大值为:%d
", max);
return 0;
}
四、阅读程序改错题
10. 阅读以下程序,该程序的功能是输入两个整数,输出其中较大的数。程序中有两处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。
L1 #include <stdio.h>
L2 int main()
L3 {
L4 int a, b;
L5 printf("请输入两个整数:");
L6 scanf("%d%d", &a, &b);
L7 if(a < b)
L8 printf("较大值为:%d
", a);
L9 else
L10 printf("较大值为:%d
", b);
L11 return 0;
L12 }
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$