内容正文:
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第4卷,按知识模块1 C语言程序设计知识,2.分支程序设计的两点范围要求编写。其两点要求是:
(1)理解关系表达式和逻辑表达式。
(2)掌握条件语句(if语句)和多分支语句(switch语句)的用法。
2026版山东省《软件与应用技术考纲百套卷》 第4卷
知识模块1 C语言程序设计知识
2.分支程序设计 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 设 `x`、`y` 和 `z` 都是 `int` 类型变量,且 `x=3`, `y=4`, `z=5`,则下面的表达式中,值为0的表达式为。( )
A. `x && y`
B. `x <= y`
C. `x || y + z && y - z`
D. `!(x < y && !z || 1)`
2. 若有定义 float xtint a,b;,则下列四段代码中合法的一段是( )
A. switch(x)
{ case 0: printf(“**”);
case l: printf(“++”);}
B. switch(a)
{ case 0:printf(“**”);
case l:printf(“++”);}
C. switch(a)
{ case l.0:printf(“**”);
case 2.0:printf(“++”);}
D. switch(x)
{ case l:printf(“**”);
case 2+3:printf(“++”);}
3. 下列程序的执行结果是( )
main()
{ int a=4,m=0;
switch(a%2==0)
{ case 0:m++;
case l:m++;break;
case 2:m++;}
printf(“%d”,m);}
A.1 B.2 C.3 D.0
4. 与表达式 `"x > 10 && x - y != 10"` 等价的式子是。( )
A. `x > (10 && (x - (y != 10)))`
B. `(x > 10) && ((x - y) != 10)`
C. `x > ((10 && x) - (y != 10))`
D. `((x > 10) && (x - y)) != 10`
5. switch 语句中每个case后应该是( )
A.常量
B.常量或常量表达式
C.变量
D.常量、变量均可
6. 以下关于 `switch` 语句和 `break` 语句的描述中正确的是。( )
A. 在 `switch` 语句中必须使用 `break` 语句
B. `break` 语句只能用于 `switch` 语句
C. 在 `switch` 语句中,可以根据需要使用或不使用 `break` 语句
D. `break` 语句是 `switch` 的一部分
7. 假定等级和分数有以下对应关系:
等级:A 分数:85-100
等级:B 分数:60-84
等级:C 分数:60以下
对于等级grade 输出相应的分数区间,能够完成该功能的程序段是( )
switch(grade){
case 'A':printf("85--100
");
case 'B’:printf("60--84
");
case 'C’:printf("<60
");
default:printf( "grade is etror!
");
B.switch(grade){
case 'A':printf("85--100
");break;
case 'B':printf("60--84
");
case 'C’:printf("<60
");
default :printf( "grade is error!
");}
switch(grade)
case 'A’:printf("85--100
"):break;
case 'B’:printf("60--84
");breaks;
case ’C’:printf("<60
");
default: printf("grade is error!
");}
D.switch (grade){
case 'C':printf("<60
");break;
case 'B’:printf("60--84
");break;
default: printf("grade is error!
") ;break:
case 'A':printf("85--100
");}
8. 有如下程序,该程序的输出结果是( )
# include<stdio.h>
main(){
int x=1,a=10,b=10;
switch(x){
case 0:b++:
case l:a++:
case 2:a++;b++;)
printf("%d",a);}
A.10
B.11
C.12
D.13
9. 若执行以下程序段,输出结果是。( )
int x=1, a=0, b=0;
switch(x) {
case 0: b++;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d,b=%d
",a,b);
A. a=2, b=1
B. a=1, b=1
C. a=1, b=0
D. a=2, b=2
10. 设int x=2,y=1,则表达式(!x||y--)的值是 ( )
A.0
B.1
C.2
D.-1
11. 下述关于 `if` 语句的描述中,错误的是。( )
A. `else` 总是与前面最近的,未配对的,且为非独立 `if` 语句的 `if` 关键字配对
B. 用于条件判断的表达式必须用小括号括起,其中小括号不能省略
C. 用于条件判断的表达式可以是任意的表达式
D. 用于条件判断的表达式只能是关系表达式或逻辑表达式
12. 已知 int x=(1,2,3,4);,变量x的值是( )
A.1
B.2
C.3
D.4
13.在C语言的if语句中,以下哪个条件表示“x小于10并且大于0”?( )
A. if (x < 10 && x > 0)
B. if (x < 10 || x > 0)
C. if (x > 0 && x < 10)
D. if (x > 0 || x < 10)
14.以下不正确的if语句是( )
A.if(x<y);
B.if(x!=y) scanf(“%d” ,&x) else scanf(“%d”,&y);
C.if(x==y) x+=y;
D.if(x<y) {x++;--y;}
15.下列叙述中正确的是( ).
A.在switch 语句中必须使用 default
B.break 语句必须与 switch 语句中的 case 配对使用
C.在 switch 语句中,不一定使用 break 语句
D.break 语句只能用于switch 语句
16.在C语言中的 if 语句中,用作判断的表达式为( ).
A.逻辑表达式
B.关系表达式
C.条件表达式
D.任意表达式
17.下面哪个选项是switch语句的默认情况?( )
A. default
B. case
C. break
D. Continue
18.以下关于运算符优先顺序的描述中正确的是( ).
A.关系运算符<算术运算符<赋值运算符<逻辑与运算符
B.逻辑与运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑与运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑与运算符
19.在switch语句中,每个case后面需要加上:( ).
A. 分号 ;
B. 冒号 :
C. 逗号 ,
D. 斜杠 /
20.有以下程序,程序输出为 ( )
main()
{ int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%d
",a,b,c,d);}
A.0,1,2,0
B.0,0,0,3
C.1,1,2,0
D.编译有错
二、简答题(本大题共5小题,每题6分,共30分)
1. 简述 C 语言中 `goto` 语句的作用。
2. 简述 C 语言中 `if` 语句和 `switch` 语句的区别。
3. 简述 C 语言中 `if-else` 语句和 `switch` 语句的区别。
4. 简述 C 语言中 `break` 语句和 `continue` 语句的区别。
5. `switch` 语句的工作过程是怎样的。
三、编程题(本大题共1小题,共10分)
1.输入图书的定价和数量,计算购书金额并输出。其中,图书销售策略为:正常情况下按九折出售,超过十本按八五折出售,超过100本按八折出售。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版《软件与应用技术考纲百套卷》依据2026版山东省《软件与应用技术类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,每个知识点2份试卷共76份,第二部分是常考题训练卷,每个知识模块2份训练卷共12份,第三个部分是专业综合训练卷,参考历年软件与应用技术类专业真题试卷,编写了12份。
本试卷是2026版《软件与应用技术考纲百套卷》的第4卷,按知识模块1 C语言程序设计知识,2.分支程序设计的两点范围要求编写。其两点要求是:
(1)理解关系表达式和逻辑表达式。
(2)掌握条件语句(if语句)和多分支语句(switch语句)的用法。
2026版山东省《软件与应用技术考纲百套卷》 第4卷
知识模块1 C语言程序设计知识
2.分支程序设计 知识点训练卷
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 设 `x`、`y` 和 `z` 都是 `int` 类型变量,且 `x=3`, `y=4`, `z=5`,则下面的表达式中,值为0的表达式为。( )
A. `x && y`
B. `x <= y`
C. `x || y + z && y - z`
D. `!(x < y && !z || 1)`
【答案】D
2. 若有定义 float xtint a,b;,则下列四段代码中合法的一段是( )
A. switch(x)
{ case 0: printf(“**”);
case l: printf(“++”);}
B. switch(a)
{ case 0:printf(“**”);
case l:printf(“++”);}
C. switch(a)
{ case l.0:printf(“**”);
case 2.0:printf(“++”);}
D. switch(x)
{ case l:printf(“**”);
case 2+3:printf(“++”);}
【答案】B
3. 下列程序的执行结果是( )
main()
{ int a=4,m=0;
switch(a%2==0)
{ case 0:m++;
case l:m++;break;
case 2:m++;}
printf(“%d”,m);}
A.1 B.2 C.3 D.0
【答案】A
4. 与表达式 `"x > 10 && x - y != 10"` 等价的式子是。( )
A. `x > (10 && (x - (y != 10)))`
B. `(x > 10) && ((x - y) != 10)`
C. `x > ((10 && x) - (y != 10))`
D. `((x > 10) && (x - y)) != 10`
【答案】B
5. switch 语句中每个case后应该是( )
A.常量
B.常量或常量表达式
C.变量
D.常量、变量均可
【答案】B
6. 以下关于 `switch` 语句和 `break` 语句的描述中正确的是。( )
A. 在 `switch` 语句中必须使用 `break` 语句
B. `break` 语句只能用于 `switch` 语句
C. 在 `switch` 语句中,可以根据需要使用或不使用 `break` 语句
D. `break` 语句是 `switch` 的一部分
【答案】C
7. 假定等级和分数有以下对应关系:
等级:A 分数:85-100
等级:B 分数:60-84
等级:C 分数:60以下
对于等级grade 输出相应的分数区间,能够完成该功能的程序段是( )
switch(grade){
case 'A':printf("85--100
");
case 'B’:printf("60--84
");
case 'C’:printf("<60
");
default:printf( "grade is etror!
");
B.switch(grade){
case 'A':printf("85--100
");break;
case 'B':printf("60--84
");
case 'C’:printf("<60
");
default :printf( "grade is error!
");}
switch(grade)
case 'A’:printf("85--100
"):break;
case 'B’:printf("60--84
");breaks;
case ’C’:printf("<60
");
default: printf("grade is error!
");}
D.switch (grade){
case 'C':printf("<60
");break;
case 'B’:printf("60--84
");break;
default: printf("grade is error!
") ;break:
case 'A':printf("85--100
");}
【答案】D
8. 有如下程序,该程序的输出结果是( )
# include<stdio.h>
main(){
int x=1,a=10,b=10;
switch(x){
case 0:b++:
case l:a++:
case 2:a++;b++;)
printf("%d",a);}
A.10
B.11
C.12
D.13
【答案】C
9. 若执行以下程序段,输出结果是。( )
int x=1, a=0, b=0;
switch(x) {
case 0: b++;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d,b=%d
",a,b);
A. a=2, b=1
B. a=1, b=1
C. a=1, b=0
D. a=2, b=2
【答案】A
10. 设int x=2,y=1,则表达式(!x||y--)的值是 ( )
A.0
B.1
C.2
D.-1
【答案】B
11. 下述关于 `if` 语句的描述中,错误的是。( )
A. `else` 总是与前面最近的,未配对的,且为非独立 `if` 语句的 `if` 关键字配对
B. 用于条件判断的表达式必须用小括号括起,其中小括号不能省略
C. 用于条件判断的表达式可以是任意的表达式
D. 用于条件判断的表达式只能是关系表达式或逻辑表达式
【答案】D
12. 已知 int x=(1,2,3,4);,变量x的值是( )
A.1
B.2
C.3
D.4
【答案】D
13.在C语言的if语句中,以下哪个条件表示“x小于10并且大于0”?( )
A. if (x < 10 && x > 0)
B. if (x < 10 || x > 0)
C. if (x > 0 && x < 10)
D. if (x > 0 || x < 10)
【答案】A
14.以下不正确的if语句是( )
A.if(x<y);
B.if(x!=y) scanf(“%d” ,&x) else scanf(“%d”,&y);
C.if(x==y) x+=y;
D.if(x<y) {x++;--y;}
【答案】B
15.下列叙述中正确的是( ).
A.在switch 语句中必须使用 default
B.break 语句必须与 switch 语句中的 case 配对使用
C.在 switch 语句中,不一定使用 break 语句
D.break 语句只能用于switch 语句
【答案】C
16.在C语言中的 if 语句中,用作判断的表达式为( ).
A.逻辑表达式
B.关系表达式
C.条件表达式
D.任意表达式
【答案】D
17.下面哪个选项是switch语句的默认情况?( )
A. default
B. case
C. break
D. Continue
【答案】A
18.以下关于运算符优先顺序的描述中正确的是( ).
A.关系运算符<算术运算符<赋值运算符<逻辑与运算符
B.逻辑与运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑与运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑与运算符
【答案】C
19.在switch语句中,每个case后面需要加上:( ).
A. 分号 ;
B. 冒号 :
C. 逗号 ,
D. 斜杠 /
【答案】B
20.有以下程序,程序输出为 ( )
main()
{ int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%d
",a,b,c,d);}
A.0,1,2,0
B.0,0,0,3
C.1,1,2,0
D.编译有错
【答案】D
二、简答题(本大题共5小题,每题6分,共30分)
1. 简述 C 语言中 `goto` 语句的作用。
【答案】`goto` 语句用于无条件跳转到程序中的另一个标号处,通常用于循环和分支结构中。
2. 简述 C 语言中 `if` 语句和 `switch` 语句的区别。
【答案】`if` 语句用于判断单一的条件,而 `switch` 语句用于判断多个条件,通过 `case` 语句来匹配不同的条件。
3. 简述 C 语言中 `if-else` 语句和 `switch` 语句的区别。
【答案】`if-else` 语句适用于单一条件的判断,而 `switch` 语句适用于多个条件的判断,通过 `case` 语句来匹配不同的条件。
4. 简述 C 语言中 `break` 语句和 `continue` 语句的区别。
【答案】`break` 语句用于结束当前的 `switch` 或 `for`、`while`、`do` 循环,而 `continue` 语句用于跳过当前循环的剩余语句,直接进入下一次循环。
5. `switch` 语句的工作过程是怎样的。
【答案】首先对 `switch` 语句括号中的“表达式”进行计算。然后依次与各case中的“常量表达式”的值进行比较,一旦匹配成功则马上执行相应的“语句部分”,若遇到`break` 语句,则结束 `switch` 语句。若均不匹配,则执行’default’,(如果有)后面的语句。
三、编程题(本大题共1小题,共10分)
1.输入图书的定价和数量,计算购书金额并输出。其中,图书销售策略为:正常情况下按九折出售,超过十本按八五折出售,超过100本按八折出售。
【答案】
#include <stdio.h>
main() {
float price, r; //r为折扣
int num;
printf("请输入定价和数量:");
scanf("%f %d", &price,&num);
if (num <= 10)
r = 0.9;
else if (num <= 100)
r = 0.85;
else
r = 0.8;
printf("购书金额为:%.2f", num * price * r);
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$