内容正文:
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第13卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第13卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.以下代码段的输出结果是( )
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf("*");
}
printf("
");
}
A.
**
**
**
B.
***
***
C.
**
***
D.
*
*
*
答案:A
2.执行以下程序的输出结果是( )
main( )
{ int x, y =0;
for(x=1;x<=10;x++)
{ if(y>=10)
break;
y=y+x; }
printf("%d,%d",x,y);
getch();}
A. 10,5
B. 5,10
C. 11,5
D. 5,11
答案:B
3.设变量已正确定义,则以下能正确计算f=n!的程序段是( )
A. f=0;for(i=1;i<=n;i++) f*i;
B. f=1;for(i=1;i<n;i++) f*=i;
C. f=1;for(i=n;i>1;i++) f*i;
D. f=1;for(i=n;i>=2;i--) f*=i;
答案:D
4. 以下代码段的输出结果是( )
int i = 0;
while (i < 5) {
if (i == 3) {
break;
}
printf("%d ", i);
i++;
}
A. 0 1 2
B. 0 1 2 3
C. 0 1 2 3 4
D. 无输出
答案:A
5. 执行以下程序的输出结果是( )
main( )
{int i=0,s=0;
do
{if(i%2)
{ i++; continue; }
i++;
s+=i;}
while(i++<7);
printf("%d
",s);
getch();}
A. 16
B. 12
C. 21
D. 28
答案:A
6. 以下代码段的输出结果是( )
int i = 0;
while (1) {
if (i == 3) {
break;
}
printf("%d ", i);
i++;
}
A. 0 1 2
B. 0 1 2 3
C. 无限循环
D. 无输出
答案:A
7. 以下代码段的输出结果是( )
int i = 5;
while (i--) {
printf("%d ", i);
}
A. 4 3 2 1 0
B. 5 4 3 2 1
C. 5 4 3 2 1 0
D. 4 3 2 1
答案:D
8. 以下 do - while 循环代码,若输入 -5,输出结果是( )
int num;
scanf("%d", &num);
do {
num++;
printf("%d ", num);
} while (num < 0);
A. -4 -3 -2 -1 0
B. -5 -4 -3 -2 -1
C. -4
D. 无输出
答案:A
9.执行以下程序的输出结果是( )
main( )
{int i,sum=0; i=1;
do{ sum=sum+i; i++;
}while(i++<=10);
printf("%d",sum);
getch();}
A. 55
B. 36
C. 34
D. 54
答案:B
10.以下代码的输出结果是( )
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
i++;
if (i == 3) break;
printf("%d ", i);
}
return 0;
}
A. 1 2 3 4 5
B. 1 2 4 5
C. 1 2
D. 3
答案:C
二、判断题(本大题共10小题,每小题2分,共20分)
1.下列程序的功能是输出自然数1~10中偶数之和。( )
main( )
{int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d
",s);
getch();}
答案:正确
2.下列程序属于“死循环”程序。( )
main( )
{int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d
",sum);
getch();}
答案:正确
3. 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是19次。( )
for(i=5;i;i--)
for(j=0;j<4;j++){ …… }
答案:错误
4. 以下程序中,while循环的循环次数是:1。( )
main()
{ int i=0;
while(i<10)
{if(i<1) continue;
if(i==5) break;
i++;}
……}
答案:错误
5. 若要使用 while 循环输出 1 到 10 之间的偶数,以下代码是正确的:
int i = 1;
while (i <= 10) {
if (i % 2 == 0) {
printf("%d ", i);
}
i++;
}
答案:正确
6. while 循环和 do - while 循环在任何情况下都可以相互替换,且功能完全相同。
答案:错误
7. 下列程序的功能是:给r输入数据后计算半径为r的圆的面积s,程序在编译时出错,这是因为存放圆半径的变量r不应该定义为整型。( )
main()
/* Bejinning */
{ int r;
float s;
scanf("%d",&r);
s=*π*r*r;
printf("s=%f
",s);
}
答案:错误
8.在下列程序段中,while循环执行的次数是无限次。( )
int k=0;
while(k=1) k++;
答案:正确
9.如果 switch 语句的所有 case 分支都没有 break 语句,程序会依次执行所有 case 分支的代码。
答案:正确
10. t为int类型,进入下面的循环之前,t的值为0,则循环控制表达式的值为0。
while(t=1)
{ …… }
答案:错误
三、填空题(本大题共5小题,每题2分,共10分)
1. 若要使用 for 循环输出 1 到 100 中所有能被 3 和 5 同时整除的数,初始化部分应填 ______,条件判断部分应填 ______,迭代部分应填 ______,if 条件判断应填 ______。
for(______; ______; ______) {
if(______) {
printf("%d ", i);
}
}
答案:int i = 1;i <= 100;i++;i % 3 == 0 && i % 5 == 0
2. 以下嵌套 for 循环用于输出一个菱形的上半部分,横线处应填的代码是 ______。
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 <= ______; k++) {
printf("*");
}
printf("
");
}
答案:2 * i - 1
3. 以下 while 循环用于找出 1 到 20 中第一个能被 7 整除的数,横线处应填的代码是 ______。
int i = 1;
while (i <= 20) {
if (______) {
printf("%d", i);
break;
}
i++;
}
答案:i % 7 == 0
4. 以下 do - while 循环用于计算一个整数的位数,横线处应填的代码是 ______。
int num, count = 0;
scanf("%d", &num);
do {
num /= 10;
count++;
} while (______);
答案:num != 0
5.下列程序段的功能是,从键盘输入的字符中统计数字字符的个数,用换行符结束循环,则横线处应该填入的代码是 ____________ 。
int n=0,c;
c=getchar();
while( )
{if(c>='0'&&c<='9')
n++;
c=getchar();}
答案:c!='
'
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
do {
i = 3;
printf("%d ", i);
break;
} while (1);
return 0;
}
答案:3
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= i; j++) {
if (j == 2) {
break;
}
printf("%d %d
", i, j);
}
}
return 0;
}
答案:
1 1
2 1
3 1
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 5;
while (i > 0) {
if (i == 2) {
break;
}
printf("%d ", i);
i--;
}
return 0;
}
答案:5 4 3
4.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i;
for(i=1;i<50;i++)
if(i*i%10==i)
printf("%3d",i);
else if(i*i%100==i)
printf("%3d",i);
getch();}
答案: 1 5 6 25
5.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i,j;
for(i=0;i<=3;i++)
{for(j=0;j<=5;j++)
if(i==0||j==0||i==3||j==5)
printf("*");
else printf(" ");
printf("
");}
getch();}
答案:
******
* *
* *
******
五、编程题(本大题共5小题,每题5分,共25分)
1. 有36块砖,由36人搬;男人一次搬4块,女人一次搬3块,两个小孩抬一块,要求一次刚好搬完。编程求出男人、女人、小孩各多少。
#include <stdio.h>
#include <conio.h>
main( )
{ int men,women,children;
for(men=0;men<9;men++)
{for(women=0;women<12;women++)
{children=36-women-men;
if((4*men+3*women+children/2==36) && children%2==0)
{printf("男人: %d",men);
printf("\t 女人: %d",women);
printf("\t小孩: %d
",children);
}}}
getch();}
2. 编写一个程序,使用嵌套 while 循环输出如下图案:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
int j = 1;
while (j <= i) {
printf("%d ", j);
j++;
}
printf("
");
i++;
}
return 0;
}
3. 有一个分数序列:……,从第二项开始,每一项的分子为前一项的分子与分母之和,每一项的分母为前一项的分子,编程求这个数列的前n项之和。
#include <stdio.h>
#include <conio.h>
main( )
{
int a=2, b=1, t,i,n;
double sum=0.0;
printf("请输入n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{sum=sum+1.0*a/b;
t=a;
a=a+b; //下一项分子的值
b=t; //下一项分母的值
}
printf("sum=%f
",sum);
getch();}
4. 编写一个程序,使用 while 循环输入一组字符,直到输入 # 为止,并统计输入的字符个数(不包括 #)。
#include <stdio.h>
int main() {
char ch;
int count = 0;
while (1) {
scanf("%c", &ch);
if (ch == '#') {
break;
}
count++;
}
printf("输入的字符个数为: %d
", count);
return 0;
}
5. 编写一个程序,使用嵌套 while 循环输出如下图案:
1
2 3
4 5 6
7 8 9 10
#include <stdio.h>
int main() {
int row = 1;
int num = 1;
while (row <= 4) {
int col = 1;
while (col <= row) {
printf("%d ", num);
num++;
col++;
}
printf("
");
row++;
}
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第13卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第13卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.以下代码段的输出结果是( )
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf("*");
}
printf("
");
}
A.
**
**
**
B.
***
***
C.
**
***
D.
*
*
*
2.执行以下程序的输出结果是( )
main( )
{ int x, y =0;
for(x=1;x<=10;x++)
{ if(y>=10)
break;
y=y+x; }
printf("%d,%d",x,y);
getch();}
A. 10,5
B. 5,10
C. 11,5
D. 5,11
3.设变量已正确定义,则以下能正确计算f=n!的程序段是( )
A. f=0;for(i=1;i<=n;i++) f*i;
B. f=1;for(i=1;i<n;i++) f*=i;
C. f=1;for(i=n;i>1;i++) f*i;
D. f=1;for(i=n;i>=2;i--) f*=i;
4. 以下代码段的输出结果是( )
int i = 0;
while (i < 5) {
if (i == 3) {
break;
}
printf("%d ", i);
i++;
}
A. 0 1 2
B. 0 1 2 3
C. 0 1 2 3 4
D. 无输出
5. 执行以下程序的输出结果是( )
main( )
{int i=0,s=0;
do
{if(i%2)
{ i++; continue; }
i++;
s+=i;}
while(i++<7);
printf("%d
",s);
getch();}
A. 16
B. 12
C. 21
D. 28
6. 以下代码段的输出结果是( )
int i = 0;
while (1) {
if (i == 3) {
break;
}
printf("%d ", i);
i++;
}
A. 0 1 2
B. 0 1 2 3
C. 无限循环
D. 无输出
7. 以下代码段的输出结果是( )
int i = 5;
while (i--) {
printf("%d ", i);
}
A. 4 3 2 1 0
B. 5 4 3 2 1
C. 5 4 3 2 1 0
D. 4 3 2 1
8. 以下 do - while 循环代码,若输入 -5,输出结果是( )
int num;
scanf("%d", &num);
do {
num++;
printf("%d ", num);
} while (num < 0);
A. -4 -3 -2 -1 0
B. -5 -4 -3 -2 -1
C. -4
D. 无输出
9.执行以下程序的输出结果是( )
main( )
{int i,sum=0; i=1;
do{ sum=sum+i; i++;
}while(i++<=10);
printf("%d",sum);
getch();}
A. 55
B. 36
C. 34
D. 54
10.以下代码的输出结果是( )
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
i++;
if (i == 3) break;
printf("%d ", i);
}
return 0;
}
A. 1 2 3 4 5
B. 1 2 4 5
C. 1 2
D. 3
二、判断题(本大题共10小题,每小题2分,共20分)
1.下列程序的功能是输出自然数1~10中偶数之和。( )
main( )
{int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d
",s);
getch();}
2.下列程序属于“死循环”程序。( )
main( )
{int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d
",sum);
getch();}
3. 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是19次。( )
for(i=5;i;i--)
for(j=0;j<4;j++){ …… }
4. 以下程序中,while循环的循环次数是:1。( )
main()
{ int i=0;
while(i<10)
{if(i<1) continue;
if(i==5) break;
i++;}
……}
5. 若要使用 while 循环输出 1 到 10 之间的偶数,以下代码是正确的:
int i = 1;
while (i <= 10) {
if (i % 2 == 0) {
printf("%d ", i);
}
i++;
}
6. while 循环和 do - while 循环在任何情况下都可以相互替换,且功能完全相同。
7. 下列程序的功能是:给r输入数据后计算半径为r的圆的面积s,程序在编译时出错,这是因为存放圆半径的变量r不应该定义为整型。( )
main()
/* Bejinning */
{ int r;
float s;
scanf("%d",&r);
s=*π*r*r;
printf("s=%f
",s);
}
8.在下列程序段中,while循环执行的次数是无限次。( )
int k=0;
while(k=1) k++;
9.如果 switch 语句的所有 case 分支都没有 break 语句,程序会依次执行所有 case 分支的代码。
10. t为int类型,进入下面的循环之前,t的值为0,则循环控制表达式的值为0。
while(t=1)
{ …… }
三、填空题(本大题共5小题,每题2分,共10分)
1. 若要使用 for 循环输出 1 到 100 中所有能被 3 和 5 同时整除的数,初始化部分应填 ______,条件判断部分应填 ______,迭代部分应填 ______,if 条件判断应填 ______。
for(______; ______; ______) {
if(______) {
printf("%d ", i);
}
}
2. 以下嵌套 for 循环用于输出一个菱形的上半部分,横线处应填的代码是 ______。
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 <= ______; k++) {
printf("*");
}
printf("
");
}
3. 以下 while 循环用于找出 1 到 20 中第一个能被 7 整除的数,横线处应填的代码是 ______。
int i = 1;
while (i <= 20) {
if (______) {
printf("%d", i);
break;
}
i++;
}
4. 以下 do - while 循环用于计算一个整数的位数,横线处应填的代码是 ______。
int num, count = 0;
scanf("%d", &num);
do {
num /= 10;
count++;
} while (______);
5.下列程序段的功能是,从键盘输入的字符中统计数字字符的个数,用换行符结束循环,则横线处应该填入的代码是 ____________ 。
int n=0,c;
c=getchar();
while( )
{if(c>='0'&&c<='9')
n++;
c=getchar();}
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
do {
i = 3;
printf("%d ", i);
break;
} while (1);
return 0;
}
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= i; j++) {
if (j == 2) {
break;
}
printf("%d %d
", i, j);
}
}
return 0;
}
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 5;
while (i > 0) {
if (i == 2) {
break;
}
printf("%d ", i);
i--;
}
return 0;
}
4.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i;
for(i=1;i<50;i++)
if(i*i%10==i)
printf("%3d",i);
else if(i*i%100==i)
printf("%3d",i);
getch();}
5.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{int i,j;
for(i=0;i<=3;i++)
{for(j=0;j<=5;j++)
if(i==0||j==0||i==3||j==5)
printf("*");
else printf(" ");
printf("
");}
getch();}
五、编程题(本大题共5小题,每题5分,共25分)
1. 有36块砖,由36人搬;男人一次搬4块,女人一次搬3块,两个小孩抬一块,要求一次刚好搬完。编程求出男人、女人、小孩各多少。
2. 编写一个程序,使用嵌套 while 循环输出如下图案:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
3. 有一个分数序列:……,从第二项开始,每一项的分子为前一项的分子与分母之和,每一项的分母为前一项的分子,编程求这个数列的前n项之和。
4. 编写一个程序,使用 while 循环输入一组字符,直到输入 # 为止,并统计输入的字符个数(不包括 #)。
5. 编写一个程序,使用嵌套 while 循环输出如下图案:
1
2 3
4 5 6
7 8 9 10
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$