内容正文:
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第53卷,为专题训练卷,按“循环程序设计”专题范围和要求编写。具体内容为:(1)掌握while循环、do…while循环的用法;(1)掌握for循环和循环嵌套的用法;(2)理解break语句和continue语句的用法。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第53卷 专题训练——循环程序设计
(考试时间:45分钟 满分:100分)
一、选择题(共20题,每题3分,共60分)
1.while循环适合解决的重复任务是( )
A.循环次数固定且不需要判断
B.只能执行一次的任务
C.先判断条件再决定是否执行
D.只能处理字符数据的任务
2.do...while循环与while循环的主要区别是( )
A.只判断一次循环条件
B.控制变量始终不变
C.循环体固定执行两次
D.先执行循环体后判断
3.下列程序段输出的数字是( )
int k = 1;
while (k <= 3)
{
printf("%d", k);
k++;
}
A.123
B.012
C.234
D.321
4.执行下列程序后,变量total的值是( )
int n = 1, total = 0;
while (n <= 4)
{
total += n;
n++;
}
A.4
B.6
C.10
D.11
5.执行下列程序后,变量n的值是( )
int n = 7;
do
{
n -= 2;
} while (n > 7);
A.3
B.5
C.7
D.9
6.若while循环的初始条件为假,则循环体( )
A.一定执行一次
B.可能执行两次
C.执行次数无法判断
D.不会执行
7.执行下列程序后,变量steps的值是( )
int x = 16, steps = 0;
while (x > 2)
{
x /= 2;
steps++;
}
A.4
B.2
C.3
D.5
8.执行下列程序后,变量value的值是( )
int value = 2;
do
{
value *= 3;
} while (value < 10);
A.6
B.9
C.12
D.18
9.下列程序中可能形成无限循环的原因是( )
int i = 1;
while (i <= 5)
{
printf("%d", i);
}
A.控制变量i没有更新
B.循环体缺少输出语句
C.循环条件使用了小于等于
D.变量i被声明为整数
10.使用while循环计算1到n的累加和时,控制变量通常应( )
A.始终保持初始数值
B.循环开始后立即删除
C.每次向结束方向变化
D.只能使用负数变化
11.某程序需要至少读取一次输入,再判断输入是否为0,适合采用( )
A.while结构
B.switch结构
C.if结构
D.do结构
12.执行下列程序后,变量count的值是( )
int i = 3, count = 0;
while (i > 0)
{
count += i;
i--;
}
A.3
B.6
C.5
D.9
13.执行下列程序后,while循环体执行的次数是( )
int p = 1;
while (p < 20)
{
p *= 2;
}
A.3次
B.4次
C.5次
D.6次
14.若循环条件表示‘继续处理编号不为0的数据’,正确的条件是( )
A.id != 0
B.id == 0
C.id < 0
D.id > 0
15.下列程序用于统计正数个数,循环体中应补充的语句是( )
if (x > 0)
{
______
}
A.count++
B.count--
C.x--
D.x = 0
16.执行下列程序后,变量i的值是( )
int i = 1;
while (i < 10)
{
i += 3;
}
A.7
B.10
C.8
D.11
17.执行下列程序后,变量sum的值是( )
int sum = 0, t = 5;
do
{
sum += t;
t--;
} while (t > 2);
A.12
B.5
C.9
D.15
18.改写while循环时,将循环体至少执行一次的结构改为( )
A.do结构
B.if结构
C.switch结构
D.赋值语句
19.下列做法中,最有利于避免循环边界错误的是( )
A.删除循环条件判断
B.保持控制变量不变
C.明确初值条件更新
D.只测试一个中间值
20.若需要重复执行任务直到用户输入0,循环体中通常应包含( )
A.把输入变量改成常量
B.读取或更新输入
C.删除循环结束条件
D.只保留一条注释
二、简答题(共2题,每题10分,共20分)
1.阅读程序,写出输出结果,并说明sum和i的最终值。
#include <stdio.h>
int main()
{
int i = 1, sum = 0;
while (i <= 5)
{
sum += i;
i++;
}
printf("%d %d
", sum, i);
return 0;
}
2.阅读程序,写出输出结果,并说明value和times的最终值。
#include <stdio.h>
int main()
{
int value = 1, times = 0;
do
{
value *= 2;
times++;
} while (value < 10);
printf("%d %d
", value, times);
return 0;
}
三、案例分析题(共1题,共10分)
1.某程序要求输入若干个整数,输入0结束,并统计正整数的个数。原程序无法结束,请找出问题并修改。
#include <stdio.h>
int main()
{
int x, count = 0;
do
{
scanf("%d", &x);
if (x > 0)
count++;
} while (x != 0);
printf("%d
", count);
return 0;
}
四、综合应用题(共1题,共10分)
1.编写程序:输入一个正整数n,使用while循环计算1到n中所有偶数的和并输出。若n小于1,输出0。
#include <stdio.h>
int main()
{
int n, i = 1, sum = 0;
scanf("%d", &n);
while (i <= n)
{
if (i % 2 == 0)
sum += i;
i++;
}
printf("%d
", sum);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2027版山东省春季高考统一考试软件与应用技术类《考纲百套卷》,依据《软件与应用技术类专业知识考试标准》编写。本专辑涵盖三个部分,第一部分为知识训练卷,第二部分为专题训练卷,第三部分为课程综合卷。本专辑共85份试卷,其中知识训练卷48份、专题训练卷25份、课程综合卷12份。
本试卷是第53卷,为专题训练卷,按“循环程序设计”专题范围和要求编写。具体内容为:(1)掌握while循环、do…while循环的用法;(1)掌握for循环和循环嵌套的用法;(2)理解break语句和continue语句的用法。
山东省春季高考统一考试
软件与应用技术类《考纲百套卷》
第53卷 专题训练——循环程序设计
(考试时间:45分钟 满分:100分)
一、选择题(共20题,每题3分,共60分)
1.while循环适合解决的重复任务是( )
A.循环次数固定且不需要判断
B.只能执行一次的任务
C.先判断条件再决定是否执行
D.只能处理字符数据的任务
【答案】C
【解析】while先判断条件,条件成立时才进入循环体,适合循环次数可能由条件决定的任务。
2.do...while循环与while循环的主要区别是( )
A.只判断一次循环条件
B.控制变量始终不变
C.循环体固定执行两次
D.先执行循环体后判断
【答案】D
【解析】do...while先执行循环体,再判断条件;while则先判断条件,所以while可能一次也不执行。
3.下列程序段输出的数字是( )
int k = 1;
while (k <= 3)
{
printf("%d", k);
k++;
}
A.123
B.012
C.234
D.321
【答案】A
【解析】k取1、2、3时依次输出,随后k变为4,条件k<=3不成立,输出为123。
4.执行下列程序后,变量total的值是( )
int n = 1, total = 0;
while (n <= 4)
{
total += n;
n++;
}
A.4
B.6
C.10
D.11
【答案】C
【解析】total依次累加1、2、3、4,结果为10;选项C对应10。
5.执行下列程序后,变量n的值是( )
int n = 7;
do
{
n -= 2;
} while (n > 7);
A.3
B.5
C.7
D.9
【答案】B
【解析】do...while先执行一次,n由7变为5;随后5>7不成立,最终n为5。
6.若while循环的初始条件为假,则循环体( )
A.一定执行一次
B.可能执行两次
C.执行次数无法判断
D.不会执行
【答案】D
【解析】while先判断条件,初始条件为假时直接跳过循环体,因此循环体执行0次。
7.执行下列程序后,变量steps的值是( )
int x = 16, steps = 0;
while (x > 2)
{
x /= 2;
steps++;
}
A.4
B.2
C.3
D.5
【答案】C
【解析】x依次变为8、4、2,循环体执行3次;x为2时条件x>2不成立,所以steps为3。
8.执行下列程序后,变量value的值是( )
int value = 2;
do
{
value *= 3;
} while (value < 10);
A.6
B.9
C.12
D.18
【答案】D
【解析】value第一次变为6,6<10成立;第二次变为18,18<10不成立,最终为18。
9.下列程序中可能形成无限循环的原因是( )
int i = 1;
while (i <= 5)
{
printf("%d", i);
}
A.控制变量i没有更新
B.循环体缺少输出语句
C.循环条件使用了小于等于
D.变量i被声明为整数
【答案】A
【解析】循环体没有改变i,i始终为1,条件一直成立,因此可能形成无限循环。
10.使用while循环计算1到n的累加和时,控制变量通常应( )
A.始终保持初始数值
B.循环开始后立即删除
C.每次向结束方向变化
D.只能使用负数变化
【答案】C
【解析】控制变量必须向使循环条件失效的方向变化,才能保证循环按预期结束。
11.某程序需要至少读取一次输入,再判断输入是否为0,适合采用( )
A.while结构
B.switch结构
C.if结构
D.do结构
【答案】D
【解析】先读取一次再判断是否结束,符合do...while先执行后判断的特点。
12.执行下列程序后,变量count的值是( )
int i = 3, count = 0;
while (i > 0)
{
count += i;
i--;
}
A.3
B.6
C.5
D.9
【答案】B
【解析】count依次加上3、2、1,结果为6;i减到0后循环结束。
13.执行下列程序后,while循环体执行的次数是( )
int p = 1;
while (p < 20)
{
p *= 2;
}
A.3次
B.4次
C.5次
D.6次
【答案】C
【解析】p依次变为2、4、8、16、32,循环体共执行5次;p为32时不满足p<20,循环结束。
14.若循环条件表示‘继续处理编号不为0的数据’,正确的条件是( )
A.id != 0
B.id == 0
C.id < 0
D.id > 0
【答案】A
【解析】编号不为0应使用不等于运算符表示,即id!=0。
15.下列程序用于统计正数个数,循环体中应补充的语句是( )
if (x > 0)
{
______
}
A.count++
B.count--
C.x--
D.x = 0
【答案】A
【解析】每发现一个正数,正数个数应增加1,所以应使用count++。
16.执行下列程序后,变量i的值是( )
int i = 1;
while (i < 10)
{
i += 3;
}
A.7
B.10
C.8
D.11
【答案】B
【解析】i依次为1、4、7、10;i为10时不再满足i<10,最终为10。
17.执行下列程序后,变量sum的值是( )
int sum = 0, t = 5;
do
{
sum += t;
t--;
} while (t > 2);
A.12
B.5
C.9
D.15
【答案】A
【解析】t为5、4、3时分别累加,sum=5+4+3=12;t减为2后结束。
18.改写while循环时,将循环体至少执行一次的结构改为( )
A.do结构
B.if结构
C.switch结构
D.赋值语句
【答案】A
【解析】do...while先执行循环体再判断条件,能够保证循环体至少执行一次。
19.下列做法中,最有利于避免循环边界错误的是( )
A.删除循环条件判断
B.保持控制变量不变
C.明确初值条件更新
D.只测试一个中间值
【答案】C
【解析】明确循环初值、继续条件和控制变量更新方向,并测试边界值,有助于发现少执行或多执行问题。
20.若需要重复执行任务直到用户输入0,循环体中通常应包含( )
A.把输入变量改成常量
B.读取或更新输入
C.删除循环结束条件
D.只保留一条注释
【答案】B
【解析】循环体需要再次读取或更新输入值,条件才可能发生变化并最终满足结束要求。
二、简答题(共2题,每题10分,共20分)
1.阅读程序,写出输出结果,并说明sum和i的最终值。
#include <stdio.h>
int main()
{
int i = 1, sum = 0;
while (i <= 5)
{
sum += i;
i++;
}
printf("%d %d
", sum, i);
return 0;
}
【答案】输出:15 6。sum的最终值为15,i的最终值为6。
【解析】i为1至5时进入循环并累加,sum=1+2+3+4+5=15;最后一次更新后i为6,条件i<=5不成立。
2.阅读程序,写出输出结果,并说明value和times的最终值。
#include <stdio.h>
int main()
{
int value = 1, times = 0;
do
{
value *= 2;
times++;
} while (value < 10);
printf("%d %d
", value, times);
return 0;
}
【答案】输出:16 4。value的最终值为16,times的最终值为4。
【解析】value依次变为2、4、8、16,循环体执行4次;value为16时不满足value<10,循环结束。
三、案例分析题(共1题,共10分)
1.某程序要求输入若干个整数,输入0结束,并统计正整数的个数。原程序无法结束,请找出问题并修改。
#include <stdio.h>
int main()
{
int x, count = 0;
do
{
scanf("%d", &x);
if (x > 0)
count++;
} while (x != 0);
printf("%d
", count);
return 0;
}
【答案】原程序的正确写法如上:在do...while条件中使用x != 0,并且每次循环都重新读取x。若原程序遗漏scanf或把条件写成固定为真的条件,应补充scanf("%d", &x),并改为while (x != 0)。
【解析】输入0结束要求循环条件能够随着每次输入变化;do...while先读取一次,再用x!=0判断是否继续。只有x>0时才增加正整数计数,0和负数不计入。
四、综合应用题(共1题,共10分)
1.编写程序:输入一个正整数n,使用while循环计算1到n中所有偶数的和并输出。若n小于1,输出0。
#include <stdio.h>
int main()
{
int n, i = 1, sum = 0;
scanf("%d", &n);
while (i <= n)
{
if (i % 2 == 0)
sum += i;
i++;
}
printf("%d
", sum);
return 0;
}
【答案】参考程序如上。评分点:正确输入n并初始化i、sum;使用while控制i<=n;用i%2==0判断偶数;正确累加并更新i;输出sum。
【解析】当n<1时,i初值1使i<=n为假,while循环执行0次,sum保持为0。对于n>=1,i逐个取1到n,偶数满足i%2==0时加入sum。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$