内容正文:
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第4卷,为知识训练卷,按《C语言程序设计知识》中“条件语句与多分支语句”范围和要求编写。具体内容为:(2)掌握条件语句(if语句)和多分支语句(switch语句)的用法。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第4卷 C语言程序设计知识——条件语句与多分支语句
(考试时间:45分钟 满分:100分)
一、选择题(共20题,每题3分,共60分)
1.执行下列语句后,输出结果是( )
int x = 6;
if (x > 0) printf("P"); else printf("N");
A.0
B.程序错误
C.N
D.P
2.下列if语句书写正确的是( )
A.if x > 0 printf("正数");
B.if (x > 0) printf("正数");
C.if [x > 0] printf("正数");
D.if (x > 0) then printf("正数");
3.若a=3,b=5,执行if (a > b) max = a; else max = b;后,max的值是( )
A.0
B.3
C.5
D.不能确定
4.下列程序段输出的字符是( )
int score = 82;
if (score >= 90) printf("A");
else if (score >= 60) printf("B");
else printf("C");
A.B
B.A
C.C
D.无输出
5.关于switch语句,下列说法正确的是( )
A.case后的值可以是变量
B.switch后的表达式只能是浮点型
C.switch后的表达式可以是整型或字符型
D.每个case后必须写if
6.下列case标签写法合法的是( )
A.case "A":
B.case x:
C.case 1.5:
D.case 1 + 2:
7.执行下列程序后,输出结果是( )
int n = 2;
switch (n) {
case 1: printf("A"); break;
case 2: printf("B");
case 3: printf("C"); break;
default: printf("D");
}
A.BCD
B.BC
C.B
D.A
8.在switch语句中,break语句的主要作用是( )
A.跳出当前switch语句
B.跳过当前case的条件判断
C.重新执行switch语句
D.结束整个程序
9.关于switch语句中的default,正确的说法是( )
A.default只能出现两次
B.default可以省略
C.default必须写在第一个case前面
D.default后不能写语句
10.关于同一个switch语句中的case标签,下列说法正确的是( )
A.case标签必须互不相同
B.case标签必须按从小到大排列
C.case标签可以重复
D.case标签只能使用字符常量
11.执行if (0) printf("Y"); else printf("N");后,输出结果是( )
A.YN
B.无输出
C.N
D.Y
12.执行下列语句后,x的值和输出结果分别是( )
int x = 5;
if (x = 0) printf("A"); else printf("B");
A.x为5,输出B
B.x为5,输出A
C.x为0,输出A
D.x为0,输出B
13.下列语句用于判断x是否等于0,正确的是( )
A.if (x equals 0)
B.if (x == 0)
C.if (x = 0)
D.if (x := 0)
14.执行下列程序后,输出结果是( )
int x = 1;
if (x > 0)
if (x > 2) printf("A");
else printf("B");
else printf("C");
A.A
B.无输出
C.C
D.B
15.执行下列程序后,输出字符是( )
char ch = 'b';
switch (ch) {
case 'a': printf("A"); break;
case 'b': printf("B"); break;
default: printf("C");
}
A.B
B.C
C.A
D.无输出
16.执行下列程序后,输出结果是( )
int n = 5;
switch (n) {
case 1: printf("A"); break;
case 2: printf("B"); break;
default: printf("D");
}
A.B
B.A
C.D
D.无输出
17.下列关于else if结构的说法正确的是( )
A.所有条件都会执行
B.else if只能出现一次
C.else if不能与else同时使用
D.只要第一个条件成立,后面的分支不再判断
18.执行下列程序后,输出结果是( )
int n = 1;
switch (n) {
case 1: printf("1");
case 2: printf("2"); break;
default: printf("0");
}
A.1
B.2
C.12
D.120
19.下列switch语句中的case标签不合法的是( )
A.case 0:
B.case x > 0:
C.case 'A':
D.case 2 * 3:
20.若a=8,b=5,执行if (a > b && b > 0) printf("Y"); else printf("N");后,输出结果是( )
A.程序错误
B.YN
C.Y
D.N
二、简答题(共2题,每题10分,共20分)
1.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
int x = 7;
int y = 4;
if (x > 5) {
if (y > 5)
printf("A");
else
printf("B");
} else {
printf("C");
}
return 0;
}
2.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
int n = 2;
switch (n) {
case 1:
printf("A");
break;
case 2:
printf("B");
case 3:
printf("C");
break;
default:
printf("D");
}
return 0;
}
三、案例分析题(共1题,共10分)
1.下面程序用于根据分数判断是否及格,但程序中有一处错误,请指出并改正。
#include <stdio.h>
int main( )
{
int score = 60;
if (score >= 90)
printf("优秀");
else if (score > 60)
printf("及格");
else
printf("不及格");
return 0;
}
四、综合应用题(共1题,共10分)
1.编写程序:输入一个整数n,使用if-else结构判断n是正数、零还是负数,并输出“正数”“零”或“负数”。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第4卷,为知识训练卷,按《C语言程序设计知识》中“条件语句与多分支语句”范围和要求编写。具体内容为:(2)掌握条件语句(if语句)和多分支语句(switch语句)的用法。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第4卷 C语言程序设计知识——条件语句与多分支语句
(考试时间:45分钟 满分:100分)
一、选择题(共20题,每题3分,共60分)
1.执行下列语句后,输出结果是( )
int x = 6;
if (x > 0) printf("P"); else printf("N");
A.0
B.程序错误
C.N
D.P
【答案】D
【解析】x的值为6,大于0,if条件成立,执行printf("P")。
2.下列if语句书写正确的是( )
A.if x > 0 printf("正数");
B.if (x > 0) printf("正数");
C.if [x > 0] printf("正数");
D.if (x > 0) then printf("正数");
【答案】B
【解析】C 语言 if 语句要求条件写在圆括号内,无 then 关键字。A 缺少括号;C 错误使用方括号;D 多余 then;只有 B 语法正确。
3.若a=3,b=5,执行if (a > b) max = a; else max = b;后,max的值是( )
A.0
B.3
C.5
D.不能确定
【答案】C
【解析】a>b不成立,执行else后的赋值语句,因此max等于b,即5。
4.下列程序段输出的字符是( )
int score = 82;
if (score >= 90) printf("A");
else if (score >= 60) printf("B");
else printf("C");
A.B
B.A
C.C
D.无输出
【答案】A
【解析】82不满足score>=90,但满足score>=60,因此执行第二个分支,输出B。
5.关于switch语句,下列说法正确的是( )
A.case后的值可以是变量
B.switch后的表达式只能是浮点型
C.switch后的表达式可以是整型或字符型
D.每个case后必须写if
【答案】C
【解析】switch表达式的结果应为整型或字符型等整数类型;case标签要求是整型常量表达式,不能使用变量。
6.下列case标签写法合法的是( )
A.case "A":
B.case x:
C.case 1.5:
D.case 1 + 2:
【答案】D
【解析】case后的标签必须是整型常量表达式,1+2可以在编译时确定为整数常量;浮点数、变量和字符串均不符合要求。
7.执行下列程序后,输出结果是( )
int n = 2;
switch (n) {
case 1: printf("A"); break;
case 2: printf("B");
case 3: printf("C"); break;
default: printf("D");
}
A.BCD
B.BC
C.B
D.A
【答案】B
【解析】n等于2,先执行case 2输出B。该分支没有break,继续执行case 3输出C,随后break退出switch。
8.在switch语句中,break语句的主要作用是( )
A.跳出当前switch语句
B.跳过当前case的条件判断
C.重新执行switch语句
D.结束整个程序
【答案】A
【解析】switch中的break会立即结束当前switch结构,执行switch后面的语句,不会结束整个程序。
9.关于switch语句中的default,正确的说法是( )
A.default只能出现两次
B.default可以省略
C.default必须写在第一个case前面
D.default后不能写语句
【答案】B
【解析】default用于所有case都不匹配时的处理,可以根据程序需要省略,并不要求固定写在某个位置。
10.关于同一个switch语句中的case标签,下列说法正确的是( )
A.case标签必须互不相同
B.case标签必须按从小到大排列
C.case标签可以重复
D.case标签只能使用字符常量
【答案】A
【解析】同一switch中重复的case值会造成标签重复,编译器无法确定唯一入口,因此case标签必须互不相同。
11.执行if (0) printf("Y"); else printf("N");后,输出结果是( )
A.YN
B.无输出
C.N
D.Y
【答案】C
【解析】在C语言中,条件值0表示假,非0表示真。if(0)条件不成立,所以执行else分支输出N。
12.执行下列语句后,x的值和输出结果分别是( )
int x = 5;
if (x = 0) printf("A"); else printf("B");
A.x为5,输出B
B.x为5,输出A
C.x为0,输出A
D.x为0,输出B
【答案】D
【解析】x=0是赋值表达式,执行后x变为0,表达式值为0,条件不成立,所以输出B。判断相等应使用==。
13.下列语句用于判断x是否等于0,正确的是( )
A.if (x equals 0)
B.if (x == 0)
C.if (x = 0)
D.if (x := 0)
【答案】B
【解析】C语言使用==进行相等比较,x==0才表示判断x是否等于0;单个=表示赋值。
14.执行下列程序后,输出结果是( )
int x = 1;
if (x > 0)
if (x > 2) printf("A");
else printf("B");
else printf("C");
A.A
B.无输出
C.C
D.B
【答案】D
【解析】x>0成立,进入内层if;x>2不成立,按就近原则执行内层else,输出B。
15.执行下列程序后,输出字符是( )
char ch = 'b';
switch (ch) {
case 'a': printf("A"); break;
case 'b': printf("B"); break;
default: printf("C");
}
A.B
B.C
C.A
D.无输出
【答案】A
【解析】ch的值为字符'b',匹配case 'b',输出B后执行break退出switch。
16.执行下列程序后,输出结果是( )
int n = 5;
switch (n) {
case 1: printf("A"); break;
case 2: printf("B"); break;
default: printf("D");
}
A.B
B.A
C.D
D.无输出
【答案】C
【解析】n既不等于1也不等于2,没有匹配的case,执行default分支,输出D。
17.下列关于else if结构的说法正确的是( )
A.所有条件都会执行
B.else if只能出现一次
C.else if不能与else同时使用
D.只要第一个条件成立,后面的分支不再判断
【答案】D
【解析】else if结构从前向后判断,遇到第一个成立的条件后执行对应语句,其余条件不再判断;末尾可以继续使用else。
18.执行下列程序后,输出结果是( )
int n = 1;
switch (n) {
case 1: printf("1");
case 2: printf("2"); break;
default: printf("0");
}
A.1
B.2
C.12
D.120
【答案】C
【解析】n等于1时从case 1开始输出1;由于没有break,继续执行case 2输出2,随后break退出,不执行default。
19.下列switch语句中的case标签不合法的是( )
A.case 0:
B.case x > 0:
C.case 'A':
D.case 2 * 3:
【答案】B
【解析】case标签必须是整型常量表达式。x>0含有变量x,不能在编译时确定,因此不能作为case标签。
20.若a=8,b=5,执行if (a > b && b > 0) printf("Y"); else printf("N");后,输出结果是( )
A.程序错误
B.YN
C.Y
D.N
【答案】C
【解析】a>b和b>0都成立,逻辑与结果为真,执行if后的语句输出Y。
二、简答题(共2题,每题10分,共20分)
1.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
int x = 7;
int y = 4;
if (x > 5) {
if (y > 5)
printf("A");
else
printf("B");
} else {
printf("C");
}
return 0;
}
【答案】输出:B
【解析】x>5成立,进入外层if;y>5不成立,执行内层else语句,因此输出字符B。
2.阅读程序,写出程序的输出结果。
#include <stdio.h>
int main( )
{
int n = 2;
switch (n) {
case 1:
printf("A");
break;
case 2:
printf("B");
case 3:
printf("C");
break;
default:
printf("D");
}
return 0;
}
【答案】输出:BC
【解析】n等于2,执行case 2输出B。case 2后没有break,程序继续执行case 3输出C,随后break退出switch。
三、案例分析题(共1题,共10分)
1.下面程序用于根据分数判断是否及格,但程序中有一处错误,请指出并改正。
#include <stdio.h>
int main( )
{
int score = 60;
if (score >= 90)
printf("优秀");
else if (score > 60)
printf("及格");
else
printf("不及格");
return 0;
}
【答案】将else if (score > 60)改为else if (score >= 60)。
【解析】题意要求分数达到60分即可及格,因此及格条件应包含60。原程序使用>60,会把score等于60的情况错误地判为不及格。
四、综合应用题(共1题,共10分)
1.编写程序:输入一个整数n,使用if-else结构判断n是正数、零还是负数,并输出“正数”“零”或“负数”。
【答案】
#include <stdio.h>
int main( )
{
int n;
scanf("%d", &n);
if (n > 0)
printf("正数");
else if (n == 0)
printf("零");
else
printf("负数");
return 0;
}
【解析】程序先判断n是否大于0;若不成立,再判断n是否等于0;两个条件都不成立时,n必为负数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$