内容正文:
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第15卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第15卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.执行以下程序的输出结果为( )
main( )
{int i,j;
for(i=5;i<=8;i++)
{for(j=5;j<8;j++) printf("%c",'*');
printf("\t");}
getch();}
A.***
B.*** ***
C.*** *** ***
D.*** *** *** ***
答案:D
2.以下嵌套 for 循环用于输出一个直角三角形,横线处应填( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= ____; j++) {
printf("*");
}
printf("
");
}
A. i
B. 5 - i
C. 5
D. i + 1
答案:A
3.以下嵌套 for 循环用于输出一个菱形,横线处应填( )
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("
");
}
for (int i = n - 1; i >= 1; i--) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= ____; k++) {
printf("*");
}
printf("
");
}
A. 2 * (n - i) + 1
B. 2 * (n - i) - 1
C. 2 * i + 1
D. 2 * i - 1
答案:D
4.以下代码段的输出结果是( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
if (j == 3) {
break;
}
printf("%d ", j);
}
printf("
");
}
A.
1
1 2
1 2
1 2
1 2
B.
1
1 2
1 2 3
1 2 3
1 2 3
C.
1
1 2
1 2 3 4
1 2 3 4 5
D.
1 2 3 4 5
答案:A
5. 以下 do-while 循环用于判断一个整数是否为质数,横线处应填的代码是( )
int num, i = 2;
scanf("%d", &num);
do {
if (num % i == 0) {
break;
}
i++;
} while (______);
if (i == num) {
printf("%d 是质数
", num);
} else {
printf("%d 不是质数
", num);
}
A. i < num
B. i <= num
C. i < num / 2
D. i <= num / 2
答案:A
6. 以下嵌套 while 循环用于计算 1 到 5 的阶乘之和,横线处应填的代码是( )
int i = 1, j, fact, sum = 0;
while (i <= 5) {
j = 1;
fact = 1;
while (j <= i) {
fact *= j;
j++;
}
sum += ______;
i++;
}
printf("%d
", sum);
A. i
B. j
C. fact
D. sum
答案:C
7. 执行以下程序的输出结果是( )
main( )
{int i;
for(i=1;i<5;i++)
{ if(i%2) printf("*");
else continue;
printf("#");}
printf("$
");
getch();}
A. *#*#*#$
B. #*#*#*$
C. *#*#$
D. #*#*$
答案:C
8. 执行以下程序的输出结果是( )
main( )
{
int i,j;
for(i=3;i>=1;i--)
{
for(j=1;j<=2;j++) printf("%d",i+j);
printf(" ");
}
getch();}
A. 45 34 23
B. 34 23 12
C. 56 45 34
D. 23 12 01
答案:A
9. 以下 do - while 循环用于判断用户输入的密码是否正确(正确密码为 1234),横线处应填的代码是( )
int password;
do {
printf("请输入密码: ");
scanf("%d", &password);
} while (______);
printf("密码正确,登录成功!
");
A.password < 1234
B. password == 1234
C. password > 1234
D. password != 1234
答案:D
10.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10,程序运行后输出结果错误,导致错误结果的程序运行是( )
main()
{ int n;
float s;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f
",s);}
A. s=1.0;
B. for(n=10;n>1;n--);
C. s=s+1/n;
D. printf("%6.4f
",s);
答案:C
二、判断题(本大题共10小题,每小题2分,共20分)
1.执行以下程序段后的输出结果为:0023。( )
int i=1;
for(printf("%d",i);i<4;i++)
printf("%d",i);
答案:错误
2.执行以下程序段后的输出结果为:-1,1-0,2-。( )
int a=-2,b=0;
while(a++&&++b);
printf("%d,%d-",a,b);
答案:错误
3. 可以通过修改 for 循环的迭代部分来改变循环的步长。( )
答案:正确
4. 以下 do - while 循环的功能是计算 1 到 10 的整数和:
int sum = 0, i = 1;
do {
sum += i;
i++;
} while (i <= 10);
答案:正确
5. 在 while 循环中使用 break 语句,会跳过本次循环的剩余部分,直接进入下一次循环。
答案:错误
6. 以下 while 循环会进入死循环:
int a = 5;
while (a < 10) {
// 循环体为空
}
答案:正确
7. 以下 while 循环代码中,循环体不会执行:
int flag = 0;
while (flag) {
// 循环体
printf("执行循环体
");
}
答案:正确
8.下列程序段中的do……while循环不会构成死循环。( )
int k=1;
do
{++k;}while(k<10000);
答案:正确
9.下列程序段中的内嵌for循环总共执行了29次,即输出了29个“*”。( )
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i * 2; j++) {
printf(“*”);}}
答案:错误
10.执行以下程序段后,变量a的值为11。( )
nt i,a;
for(i=0;i<=10;i++)a=i;
答案:错误
三、填空题(本大题共5小题,每题2分,共10分)
1. 下列程序的功能是使用辗转相除法求两个正整数的最大公约数,横线处应该填入的代码是 ______。
main( )
{ int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)
{ }
r=m%n;
while(r)
{m=n;n=r;r=m%n;}
printf("%d
",n);
getch();}
答案:r=m,m=n,n=r;
2. 以下嵌套 for 循环用于输出一个倒直角三角形,横线处应填的代码是 ______。
int n;
scanf("%d", &n);
for(int i = n; i >= 1; i--) {
for(int j = 1; j <= ______; j++) {
printf("*");
}
printf("
");
}
答案:i
3. 以下 do - while 循环用于输出一个整数的各位数字,横线处应填的代码是 ______。
int num;
scanf("%d", &num);
do {
printf("%d ", num % 10);
num /= 10;
} while (______);
答案:num != 0
4. 以下 while 循环用于将一个字符串逆序输出,横线处应填的代码是 ______。
char str[100];
int i = 0;
scanf("%s", str);
while (str[i] != '\0') {
i++;
}
i--;
while (______) {
printf("%c", str[i]);
i--;
}
答案:i >= 0
5.下面程序的功能是输出以下形式的金字塔图案,则横线处应该填入的代码是 __________ 。
*
***
*****
*******
main()
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=____;j++) printf("*");
printf("
");}}
答案:2*i-1
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{ int i,j,x=0;
for(i=0;i<12;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2==0)
continue;
x++;}
x++;}
printf("x=%d
",x);
getch();}
答案:x=48
2.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{ int a=1,b=3,i=1;
do
{ printf("%d,%d,",a,b);
a=(b-a)*2+b;
b=(a-b)*2+a;
if (i++%2==0)printf("
");
} while (b<100);
getch();}
答案:
1,3,7,15,
31,63,
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i == 3) {
i++;
continue;
}
printf("%d ", i);
i++;
} while (i <= 4);
return 0;
}
答案:1 2 4
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 2; j++) {
if (i == j) {
printf("%d %d
", i, j);
continue;
}
if (i + j == 3) {
break;
}
}
}
return 0;
}
答案:
1 1
2 2
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 4; j++) {
if (j == 3) {
if (i == 2) {
continue;
}
break;
}
printf("%d %d
", i, j);
}
}
return 0;
}
答案:
1 1
1 2
2 1
2 2
2 4
3 1
3 2
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 for 循环找出 100 到 200 之间所有的素数(质数)。
#include <stdio.h>
#include <stdbool.h>
int main() {
for (int i = 100; i <= 200; i++) {
bool isPrime = true;
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime && i > 1) {
printf("%d ", i);
}
}
printf("
");
return 0;
}
2. 编写一个程序,使用 while 循环输入一组整数,直到输入的数为负数为止,并计算这些非负数的平均值。
#include <stdio.h>
int main() {
int num, sum = 0, count = 0;
while (1) {
printf("请输入一个整数(输入负数结束): ");
scanf("%d", &num);
if (num < 0) {
break;
}
sum += num;
count++;
}
if (count > 0) {
float average = (float)sum / count;
printf("这些非负数的平均值为: %.2f
", average);
} else {
printf("没有输入非负数。
");
}
return 0;
}
3. 编写一个程序,求 之值,其中a是一个数字,n表示a的位数。
#include <stdio.h>
#include <conio.h>
main( )
{int a,n,i,ans=0,temp=0;
printf("a,n=");
scanf("%d,%d",&a,&n);
for(i=0;i<n; i++)
{
temp=temp+a; //赋值后的tm为i个a组成数的值
ans=ans+temp; //赋值后的sn 为多项式前i项之和
a=a*10;}
printf("a+aa+aaa+...=%d
",ans);
getch();}
4.编写一个程序,使用 for 循环输出九九乘法表。
#include <stdio.h>
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf("%d * %d = %d\t", j, i, i * j);
}
printf("
");
}
return 0;
}
5. 尼科彻斯定理的内容是:任何一个整数的立方都可以写成一串连续奇数的和。请你编程程序验证该定理。
#include <stdio.h>
#include <conio.h>
#include<math.h>
main( )
{
int i,j,k= 0,L, n,m, sum,flag=1;
printf("请输入一个数:
");
scanf(" %d", &n); /*从键盘中任意输入一个数*/
m=n*n*n; /*计算该数的立方*/
i=m/2; /*立方值的一半*/
if(i%2==0) /*当i为偶数时i值加1*/
i=i+1;
while (flag==1&&i>=1) /*当i大于等于1且flng=1时执行循环体语句*/
{sum =0;
k=0;
while (1)
{sum +=(i-2*k); /*奇数累加求和*/
k++;
if(sum==m) /*如果sum与m相等,则输出累加过程*/
{printf("%d*%d*%d=%d=", n, n, n,m);
for(L=0;L<k-1;L++)
printf("%d+",i-L* 2);
printf("%d
", i-(k-1)*2); /*输出累加求和的最后一个数*/
flag=0;
break;}
if(sum >m)
break;}
i-=2; /*如果i等于下一个奇数,则继续上面的过程*/
}getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第15卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第15卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.执行以下程序的输出结果为( )
main( )
{int i,j;
for(i=5;i<=8;i++)
{for(j=5;j<8;j++) printf("%c",'*');
printf("\t");}
getch();}
A.***
B.*** ***
C.*** *** ***
D.*** *** *** ***
2.以下嵌套 for 循环用于输出一个直角三角形,横线处应填( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= ____; j++) {
printf("*");
}
printf("
");
}
A. i
B. 5 - i
C. 5
D. i + 1
3.以下嵌套 for 循环用于输出一个菱形,横线处应填( )
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("
");
}
for (int i = n - 1; i >= 1; i--) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= ____; k++) {
printf("*");
}
printf("
");
}
A. 2 * (n - i) + 1
B. 2 * (n - i) - 1
C. 2 * i + 1
D. 2 * i - 1
4.以下代码段的输出结果是( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
if (j == 3) {
break;
}
printf("%d ", j);
}
printf("
");
}
A.
1
1 2
1 2
1 2
1 2
B.
1
1 2
1 2 3
1 2 3
1 2 3
C.
1
1 2
1 2 3 4
1 2 3 4 5
D.
1 2 3 4 5
5. 以下 do-while 循环用于判断一个整数是否为质数,横线处应填的代码是( )
int num, i = 2;
scanf("%d", &num);
do {
if (num % i == 0) {
break;
}
i++;
} while (______);
if (i == num) {
printf("%d 是质数
", num);
} else {
printf("%d 不是质数
", num);
}
A. i < num
B. i <= num
C. i < num / 2
D. i <= num / 2
6. 以下嵌套 while 循环用于计算 1 到 5 的阶乘之和,横线处应填的代码是( )
int i = 1, j, fact, sum = 0;
while (i <= 5) {
j = 1;
fact = 1;
while (j <= i) {
fact *= j;
j++;
}
sum += ______;
i++;
}
printf("%d
", sum);
A. i
B. j
C. fact
D. sum
7. 执行以下程序的输出结果是( )
main( )
{int i;
for(i=1;i<5;i++)
{ if(i%2) printf("*");
else continue;
printf("#");}
printf("$
");
getch();}
A. *#*#*#$
B. #*#*#*$
C. *#*#$
D. #*#*$
8. 执行以下程序的输出结果是( )
main( )
{
int i,j;
for(i=3;i>=1;i--)
{
for(j=1;j<=2;j++) printf("%d",i+j);
printf(" ");
}
getch();}
A. 45 34 23
B. 34 23 12
C. 56 45 34
D. 23 12 01
9. 以下 do - while 循环用于判断用户输入的密码是否正确(正确密码为 1234),横线处应填的代码是( )
int password;
do {
printf("请输入密码: ");
scanf("%d", &password);
} while (______);
printf("密码正确,登录成功!
");
A.password < 1234
B. password == 1234
C. password > 1234
D. password != 1234
10.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10,程序运行后输出结果错误,导致错误结果的程序运行是( )
main()
{ int n;
float s;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f
",s);}
A. s=1.0;
B. for(n=10;n>1;n--);
C. s=s+1/n;
D. printf("%6.4f
",s);
二、判断题(本大题共10小题,每小题2分,共20分)
1.执行以下程序段后的输出结果为:0023。( )
int i=1;
for(printf("%d",i);i<4;i++)
printf("%d",i);
2.执行以下程序段后的输出结果为:-1,1-0,2-。( )
int a=-2,b=0;
while(a++&&++b);
printf("%d,%d-",a,b);
3. 可以通过修改 for 循环的迭代部分来改变循环的步长。( )
4. 以下 do - while 循环的功能是计算 1 到 10 的整数和:
int sum = 0, i = 1;
do {
sum += i;
i++;
} while (i <= 10);
5. 在 while 循环中使用 break 语句,会跳过本次循环的剩余部分,直接进入下一次循环。
6. 以下 while 循环会进入死循环:
int a = 5;
while (a < 10) {
// 循环体为空
}
7. 以下 while 循环代码中,循环体不会执行:
int flag = 0;
while (flag) {
// 循环体
printf("执行循环体
");
}
8.下列程序段中的do……while循环不会构成死循环。( )
int k=1;
do
{++k;}while(k<10000);
9.下列程序段中的内嵌for循环总共执行了29次,即输出了29个“*”。( )
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i * 2; j++) {
printf(“*”);}}
10.执行以下程序段后,变量a的值为11。( )
nt i,a;
for(i=0;i<=10;i++)a=i;
三、填空题(本大题共5小题,每题2分,共10分)
1. 下列程序的功能是使用辗转相除法求两个正整数的最大公约数,横线处应该填入的代码是 ______。
main( )
{ int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)
{ }
r=m%n;
while(r)
{m=n;n=r;r=m%n;}
printf("%d
",n);
getch();}
2. 以下嵌套 for 循环用于输出一个倒直角三角形,横线处应填的代码是 ______。
int n;
scanf("%d", &n);
for(int i = n; i >= 1; i--) {
for(int j = 1; j <= ______; j++) {
printf("*");
}
printf("
");
}
3. 以下 do - while 循环用于输出一个整数的各位数字,横线处应填的代码是 ______。
int num;
scanf("%d", &num);
do {
printf("%d ", num % 10);
num /= 10;
} while (______);
4. 以下 while 循环用于将一个字符串逆序输出,横线处应填的代码是 ______。
char str[100];
int i = 0;
scanf("%s", str);
while (str[i] != '\0') {
i++;
}
i--;
while (______) {
printf("%c", str[i]);
i--;
}
5.下面程序的功能是输出以下形式的金字塔图案,则横线处应该填入的代码是 __________ 。
*
***
*****
*******
main()
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=____;j++) printf("*");
printf("
");}}
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{ int i,j,x=0;
for(i=0;i<12;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2==0)
continue;
x++;}
x++;}
printf("x=%d
",x);
getch();}
2.以下程序的运行结果是______。
#include <stdio.h>
#include <conio.h>
main( )
{ int a=1,b=3,i=1;
do
{ printf("%d,%d,",a,b);
a=(b-a)*2+b;
b=(a-b)*2+a;
if (i++%2==0)printf("
");
} while (b<100);
getch();}
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i == 3) {
i++;
continue;
}
printf("%d ", i);
i++;
} while (i <= 4);
return 0;
}
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 2; j++) {
if (i == j) {
printf("%d %d
", i, j);
continue;
}
if (i + j == 3) {
break;
}
}
}
return 0;
}
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 4; j++) {
if (j == 3) {
if (i == 2) {
continue;
}
break;
}
printf("%d %d
", i, j);
}
}
return 0;
}
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 for 循环找出 100 到 200 之间所有的素数(质数)。
2. 编写一个程序,使用 while 循环输入一组整数,直到输入的数为负数为止,并计算这些非负数的平均值。
3. 编写一个程序,求 之值,其中a是一个数字,n表示a的位数。
4.编写一个程序,使用 for 循环输出九九乘法表。
5. 尼科彻斯定理的内容是:任何一个整数的立方都可以写成一串连续奇数的和。请你编程程序验证该定理。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$