内容正文:
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第12卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第12卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.执行以下程序的输出结果是( )
main( )
{int x, y;
for(x=30, y=0; x>=10, y<10; x--,y++)
x/=2, y+=2;
printf("x=%d,y=%d
",x,y);
getch();}
A. x=1,y=12
B. x=-1,y=12
C. x=0,y=11
D. x=0,y=12
答案:D
2.以下代码段的输出结果是( )
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
printf(" ");
}
for (int k = 1; k <= i; k++) {
printf("*");
}
printf("
");
}
A.
*
**
***
****
*****
B.
*****
****
***
**
*
C.
*
**
***
****
*****
D.
*****
****
***
**
*
答案:A
3. 以下代码实现了计算从 1 到 n 中所有能被 3 或 5 整除的数的和,横线处应填入的代码是( )
int n, sum = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
if(______) {
sum += i;
}
}
printf("%d
", sum);
A. i % 3 == 0 && i % 5 == 0
B. i % 3 == 0 || i % 5 == 0
C. i % 3 != 0 && i % 5 != 0
D. i % 3 != 0 || i % 5 != 0
答案:B
4. 执行以下程序的输出结果是( )
main( )
{int i;
for(i=1;i<40;i++)
{if(i++%5==0)
if(++i%8==0)
printf("%d ",i);}
printf("
");
getch();}
A. 5
B. 24
C. 32
D. 40
答案:C
5. 若要实现 1 到 100 的整数求和,以下 while 循环正确的是( )
A.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
B.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
D.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i++;
}
答案:A
6. 执行以下程序时从键盘输入:3.6 2.4<回车>,则输出结果是( )
#include <stdio.h>
#include <conio.h>
#include<math.h>
main( )
{float x,y,z;
scanf("%f%f",&x,&y);
z=x/y;
while(z)
{ if(fabs(z)>1.0)
{ x=y; y=z; z=x/y; }
else break;}
printf("%f
",y);
getch();}
A. 1.500000
B. 1.600000
C. 2.000000
D. 2.400000
答案:B
7. 以下嵌套 while 循环用于输出一个等腰三角形,横线处应填的代码是( )
int i = 1, j, k;
while (i <= 5) {
j = 1;
while (j <= 5 - i) {
printf(" ");
j++;
}
k = 1;
while (k <= ______) {
printf("*");
k++;
}
printf("
");
i++;
}
A. 2 * i - 1
B. 2 * (5 - i) - 1
C. 2 * i + 1
D. 2 * (5 - i) + 1
答案:A
8. 要使用 while 循环计算 1 + 3 + 5 + ... + 99 的和,以下代码正确的是( )
A.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i += 2;
}
B.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i += 2;
}
D.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
答案:A
9.执行以下程序的输出结果是( )
main( )
{int k=4,n=0;
for(;n<k;)
{n++;
if(n%3!=0) continue;
k--;}
printf("%d,%d
",k,n);
getch();}
A. 1,1
B. 2,2
C. 3,3
D. 4,4
答案:C
10.以下代码的输出结果是( )
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) continue;
printf("%d ", i);
}
return 0;
}
A. 1 2 3 4 5
B. 1 3 5
C. 2 4
D. 1 2 4
答案:B
二、判断题(本大题共10小题,每小题2分,共20分)
1.执行以下程序的输出结果是23。( )
main( )
{int x=23;
do{printf("%d",x--);}
while(!x);
getch();}
答案:正确
2.执行以下程序的输出结果是:1。( )
main( )
{int x=0,s=1;
while(!x!=0)
s+=++x;
printf("%d",s);
getch();}
答案:错误
3. 对于for(表达式1;表达式3)可以理解为:for(表达式1;0;表达式3)。( )
答案:错误
4.do - while 循环至少会执行一次循环体,无论循环条件是否为真。
答案:正确
5. 嵌套的 do - while 循环中,内层 do - while 循环结束后,会继续执行外层 do - while 循环的循环体剩余部分。
答案:正确
6. 执行以下程序后无输出,程序出现语法错误。( )
main( )
{int x=3;
do
printf("%3d",x-=2);
while(!(--x));
getch();}
答案:错误
7. 以下 do - while 循环用于判断一个数是否为正数,若输入 -5,循环体会执行一次:
int num;
scanf("%d", &num);
do {
if (num > 0) {
printf("是正数
");
} else {
printf("不是正数
");
}
} while (num > 0);
答案:正确
8.执行以下程序时,为了不让程序不陷入死循环,应该键盘输入任意正奇数。( )
main( )
{int n,t=1,s=0;
scanf("%d",&n);
do
{s=s+t;
t=t-2;
printf("%d",t);}
while(t!=n);
getch();}
答案:错误(任意负奇数)
9.执行以下程序的输出结果是:10 9 9 0。( )
main( )
{int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d %d ",x--,y);
getch();}
答案:错误
10.要使以下程序的输出结果为:2,则应该从键盘给n输入的值为-3。( )
main( )
{int s=0,a=1,n;
scanf("%d",&n);
do
{s+=1;
a=a-2;
}while(a!=n);
printf("%d
",s);
getch();}
答案:正确
三、填空题(本大题共5小题,每题2分,共10分)
1. 以下嵌套 for 循环用于输出一个下三角矩阵的元素(矩阵元素初始化为 1 到 n * n),横线处应填的代码是 ______。
int n;
scanf("%d", &n);
int matrix[n][n];
int count = 1;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
matrix[i][j] = count++;
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j <= ______; j++) {
printf("%d ", matrix[i][j]);
}
printf("
");
}
答案:i
2. 以下代码用于计算 3 的 1 到 8 次幂的和,横线处应填的代码是 ______。
int sum = 0;
for(int i = 1; i <= 8; i++) {
int power = 1;
for(int j = 1; j <= i; j++) {
power *= ______;
}
sum += power;
}
答案:3
3. 以下代码用于输出一个数字金字塔,横线处应填入的代码是______
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n - i; j++) {
printf(" ");
}
for(int k = 1; k <= 2 * i - 1; k++) {
printf("%d", ______);
}
printf("
");
}
答案:i
4. 以下 while 循环用于计算斐波那契数列的前 10 项,横线处应填的代码是 ______。
int a = 0, b = 1, c, i = 0;
while (i < 10) {
printf("%d ", a);
c = a + b;
a = b;
b = ______;
i++;
}
答案:c
5.等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,横线处应填入的代码是______。
main( )
{int a,q,n,sum;
a=1;
q=2;
n=sum=0;
do{sum=sum+a;
++n;
a*=q;
}while(sum<100);
;
printf("%d
",n);
getch();}
答案:n=n-1
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i == 2) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
答案:0 1 3 4
2.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<=3;j++)
{ if(j%2)
continue;
x++;}
x++;}
printf("x=%d
",x);
getch();}
答案:x=8
3.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i,n=0;
for(i=2;i<5;i++)
{
do{if(i%3)
continue;
n++;
}while(!i);
n++;}
printf("n=%d
",n);
getch();}
答案:n=4
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i % 2 == 0) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
答案:1 3
5.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int x=0,y=0,z=0;
do{
switch(y++)
{case 1:x++;break;
case 2:x+=3;break;
default:x%=2;continue;}
z++;
}while(y<5);
printf("x=%d,y=%d,z=%d
",x,y,z);
getch();}
答案:x=0,y=5,z=2
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 while 循环输出 1 到 20 之间所有能被 5 整除的数。
#include <stdio.h>
int main() {
int i = 1;
while (i <= 20) {
if (i % 5 == 0) {
printf("%d ", i);
}
i++;
}
printf("
");
return 0;
}
2. 两个足球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编写程序找出3对赛手的名单。
#include <stdio.h>
#include <conio.h>
main( )
{char i,j,k;
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
if(i!=j)
for(k='x';k<='z';k++)
if(i!=k&&j!=k)
if(i!='x'&&k!='x'&&k!='z')
printf("A--%c
B--%c
C--%c
",i,j,k);
getch();}
3. 编写一个程序,使用嵌套 for 循环输出如下图案:
*
***
*****
*******
*********
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5 - i; j++) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("
");
}
return 0;
}
4. 编写一个程序,判断一个数是否为素数。
#include <stdio.h>
#include <conio.h>
#include<math.h>
main( )
{int num,j,tag=1,m;
printf("请输入一个自然数:
");
scanf("%d",&num);
m=sqrt(num);
for(j=2;j<=m;j++)
if(num%j==0)
{tag=0;
break;}
if(tag==1)
printf("%d是素数!
",num);
else
printf("%d不是素数!
",num);
getch();}
5. 编写一个程序,使用 do - while 循环计算用户输入的一系列正数的乘积,当输入负数时停止输入。
#include <stdio.h>
int main() {
int num;
long long product = 1;
do {
printf("请输入一个正数(输入负数停止): ");
scanf("%d", &num);
if (num > 0) {
product *= num;
}
} while (num >= 0);
printf("输入的正数的乘积是: %lld
", product);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第12卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第12卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.执行以下程序的输出结果是( )
main( )
{int x, y;
for(x=30, y=0; x>=10, y<10; x--,y++)
x/=2, y+=2;
printf("x=%d,y=%d
",x,y);
getch();}
A. x=1,y=12
B. x=-1,y=12
C. x=0,y=11
D. x=0,y=12
2.以下代码段的输出结果是( )
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
printf(" ");
}
for (int k = 1; k <= i; k++) {
printf("*");
}
printf("
");
}
A.
*
**
***
****
*****
B.
*****
****
***
**
*
C.
*
**
***
****
*****
D.
*****
****
***
**
*
3. 以下代码实现了计算从 1 到 n 中所有能被 3 或 5 整除的数的和,横线处应填入的代码是( )
int n, sum = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
if(______) {
sum += i;
}
}
printf("%d
", sum);
A. i % 3 == 0 && i % 5 == 0
B. i % 3 == 0 || i % 5 == 0
C. i % 3 != 0 && i % 5 != 0
D. i % 3 != 0 || i % 5 != 0
4. 执行以下程序的输出结果是( )
main( )
{int i;
for(i=1;i<40;i++)
{if(i++%5==0)
if(++i%8==0)
printf("%d ",i);}
printf("
");
getch();}
A. 5
B. 24
C. 32
D. 40
5. 若要实现 1 到 100 的整数求和,以下 while 循环正确的是( )
A.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
B.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
D.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i++;
}
6. 执行以下程序时从键盘输入:3.6 2.4<回车>,则输出结果是( )
#include <stdio.h>
#include <conio.h>
#include<math.h>
main( )
{float x,y,z;
scanf("%f%f",&x,&y);
z=x/y;
while(z)
{ if(fabs(z)>1.0)
{ x=y; y=z; z=x/y; }
else break;}
printf("%f
",y);
getch();}
A. 1.500000
B. 1.600000
C. 2.000000
D. 2.400000
7. 以下嵌套 while 循环用于输出一个等腰三角形,横线处应填的代码是( )
int i = 1, j, k;
while (i <= 5) {
j = 1;
while (j <= 5 - i) {
printf(" ");
j++;
}
k = 1;
while (k <= ______) {
printf("*");
k++;
}
printf("
");
i++;
}
A. 2 * i - 1
B. 2 * (5 - i) - 1
C. 2 * i + 1
D. 2 * (5 - i) + 1
8. 要使用 while 循环计算 1 + 3 + 5 + ... + 99 的和,以下代码正确的是( )
A.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i += 2;
}
B.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i += 2;
}
D.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
9.执行以下程序的输出结果是( )
main( )
{int k=4,n=0;
for(;n<k;)
{n++;
if(n%3!=0) continue;
k--;}
printf("%d,%d
",k,n);
getch();}
A. 1,1
B. 2,2
C. 3,3
D. 4,4
10.以下代码的输出结果是( )
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) continue;
printf("%d ", i);
}
return 0;
}
A. 1 2 3 4 5
B. 1 3 5
C. 2 4
D. 1 2 4
二、判断题(本大题共10小题,每小题2分,共20分)
1.执行以下程序的输出结果是23。( )
main( )
{int x=23;
do{printf("%d",x--);}
while(!x);
getch();}
2.执行以下程序的输出结果是:1。( )
main( )
{int x=0,s=1;
while(!x!=0)
s+=++x;
printf("%d",s);
getch();}
3. 对于for(表达式1;表达式3)可以理解为:for(表达式1;0;表达式3)。( )
4.do - while 循环至少会执行一次循环体,无论循环条件是否为真。
5. 嵌套的 do - while 循环中,内层 do - while 循环结束后,会继续执行外层 do - while 循环的循环体剩余部分。
6. 执行以下程序后无输出,程序出现语法错误。( )
main( )
{int x=3;
do
printf("%3d",x-=2);
while(!(--x));
getch();}
7. 以下 do - while 循环用于判断一个数是否为正数,若输入 -5,循环体会执行一次:
int num;
scanf("%d", &num);
do {
if (num > 0) {
printf("是正数
");
} else {
printf("不是正数
");
}
} while (num > 0);
8.执行以下程序时,为了不让程序不陷入死循环,应该键盘输入任意正奇数。( )
main( )
{int n,t=1,s=0;
scanf("%d",&n);
do
{s=s+t;
t=t-2;
printf("%d",t);}
while(t!=n);
getch();}
9.执行以下程序的输出结果是:10 9 9 0。( )
main( )
{int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d %d ",x--,y);
getch();}
10.要使以下程序的输出结果为:2,则应该从键盘给n输入的值为-3。( )
main( )
{int s=0,a=1,n;
scanf("%d",&n);
do
{s+=1;
a=a-2;
}while(a!=n);
printf("%d
",s);
getch();}
三、填空题(本大题共5小题,每题2分,共10分)
1. 以下嵌套 for 循环用于输出一个下三角矩阵的元素(矩阵元素初始化为 1 到 n * n),横线处应填的代码是 ______。
int n;
scanf("%d", &n);
int matrix[n][n];
int count = 1;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
matrix[i][j] = count++;
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j <= ______; j++) {
printf("%d ", matrix[i][j]);
}
printf("
");
}
2. 以下代码用于计算 3 的 1 到 8 次幂的和,横线处应填的代码是 ______。
int sum = 0;
for(int i = 1; i <= 8; i++) {
int power = 1;
for(int j = 1; j <= i; j++) {
power *= ______;
}
sum += power;
}
3. 以下代码用于输出一个数字金字塔,横线处应填入的代码是______
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n - i; j++) {
printf(" ");
}
for(int k = 1; k <= 2 * i - 1; k++) {
printf("%d", ______);
}
printf("
");
}
4. 以下 while 循环用于计算斐波那契数列的前 10 项,横线处应填的代码是 ______。
int a = 0, b = 1, c, i = 0;
while (i < 10) {
printf("%d ", a);
c = a + b;
a = b;
b = ______;
i++;
}
5.等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,横线处应填入的代码是______。
main( )
{int a,q,n,sum;
a=1;
q=2;
n=sum=0;
do{sum=sum+a;
++n;
a*=q;
}while(sum<100);
;
printf("%d
",n);
getch();}
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i == 2) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
2.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<=3;j++)
{ if(j%2)
continue;
x++;}
x++;}
printf("x=%d
",x);
getch();}
3.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i,n=0;
for(i=2;i<5;i++)
{
do{if(i%3)
continue;
n++;
}while(!i);
n++;}
printf("n=%d
",n);
getch();}
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i % 2 == 0) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
5.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int x=0,y=0,z=0;
do{
switch(y++)
{case 1:x++;break;
case 2:x+=3;break;
default:x%=2;continue;}
z++;
}while(y<5);
printf("x=%d,y=%d,z=%d
",x,y,z);
getch();}
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 while 循环输出 1 到 20 之间所有能被 5 整除的数。
2. 两个足球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编写程序找出3对赛手的名单。
3. 编写一个程序,使用嵌套 for 循环输出如下图案:
*
***
*****
*******
*********
4. 编写一个程序,判断一个数是否为素数。
5. 编写一个程序,使用 do - while 循环计算用户输入的一系列正数的乘积,当输入负数时停止输入。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$