内容正文:
编写说明:2026版江苏省《计算机类专业考纲百套卷》,依据江苏省计算机类专业综合理论考试大纲编写。本专辑共110份试卷两部分组成,第一部分是按考纲的考点要求编写的75份知识点训练卷,第二部分是针对5门课程的掌握要求,编写的25份常考题训练卷。第三部分是综合模拟卷,参考历年来计算机类专业理论考试真题试卷,编写的10份专业综合训练卷。
本试卷是2026版江苏省《计算机类专业考纲百套卷》的第19卷,是知识点训练卷。按“C语言”考试纲要七、循环结构程序设计部分内容编写,具体知识点内容如下:
七、循环结构程序设计
1.掌握for 循环结构;
2.理解while和do while循环结构;
3.掌握continue语句、break语句;
4.理解循环的嵌套;
5.掌握程序设计中的几种常用算法的基本思想(常用算法为:排序,查找,穷举。排序主要为插入排序法,选择排序法,冒泡排序法。查找主要为顺序查找和对半查找)。
2026版江苏省《计算机类专业考纲百套卷》第19卷
《 C语言 》
循环结构程序设计
知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、程序分析题。(每空2分,合计29空,共58分)
1. 阅读下列程序,请将有关问题的答案填写在题目中横线处相应位置。
(1)#include<stdio.h>
(2)void main( )
(3){
(4) int sum=0,k,i;
(5) printf("请输入k:");
(6) scanf("%d",&k);
(7) for(i=1;i<=k;i++)
(8) sum=sum+i*i;
(9) printf("sum=%d
",sum);
(10) } 上述程序执行后所实现的功能是_______①_______;在该程序中的第______②_____行使用循环结构______③_____(用英文填写);执行该程序时从键盘上输入:5<回车>后,程序的输出结果是________④________。
2. 下列程序的功能是:输入两个正整数,使用辗转相除法循环实现求它们的最大公约数(GCD)和最小公倍数(LCM)。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
int main()
{
int a, b, gcd, lcm, temp,original_a,original_b;
printf("输入两个正整数:");
__________________;
original_a = a;
original_b = b;
while (___________)
{
temp =__________;
a = b;
b = temp;
}
gcd = a;
lcm =_____________;
printf("最大公约数:%d
", gcd);
printf("最小公倍数:%d
", lcm);
}
3. 下列程序的功能是:输入一个正整数 n,打印 n 行数字金字塔。例如 n=5 时,输出如下图所示。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
int main()
{
int n,i,j,m,k;
printf("输入行数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1;______①_____; j++)
{
printf(" ");
}
for (k = 1; k <=____②____; k++)
{
______③_______;
}
for (m =____④___; m >= 1; m--)
{
printf("%d", m);
}
printf("
");
}
}
4. 下列程序的功能是:寻找 100000 以内的超级阿姆斯特朗数,超级阿姆斯特朗数是指一个 n 位数,其各位数字的 n 次方和等于该数本身(n≥3),例如 1634=1⁴+6⁴+3⁴+4⁴。用最少循环次数找出所有符合条件的数。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
#include <math.h>
int main()
{
int num,temp, digits, sum,d;
for (num = 100; num <= 100000; num++)
{
temp = num;
digits = 0;
sum = 0;
while (temp > 0)
{
digits++;
_______①______;
}
temp = num;
while (temp > 0)
{
d =_______②______;
sum +=(int)pow(d, digits); // 利用数学函数减少循环嵌套
if (sum > num)______③______; // 提前退出优化
temp /= 10;
}
if (_______④_____) printf("%d ", num);
}
}
5. 下列程序的功能是:用循环嵌套打印 n 阶谢尔宾斯基三角形(n=3),图形由星号组成,每阶将中间三角形挖空,呈现自相似结构,如下图所示。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
#include <math.h>
#define size (_____①____)
int main() {
int x,y,i;
for(y=size-1;____②____;y- -)
{ putchar('
');
for(i=0;i<y;i++)
_______③______;
for(x=0;x+y<size;x++)
printf(_______④______);
}
}
6. 下列程序的功能是从键盘输入k的值及k个整数,统计其中正数、零和负数的个数。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include<stdio.h>
void main( )
{
int a=0,b=0,c=0,k,num,i;
printf("请输入k:");
scanf("%d",&k);
for(i=1;____①____;i++)
{
printf("请输入第%d个数:",i);
_______②_______;
if(num>0)
a++;
else if(_______③______)
b++;
else
c++;
}
printf("正数:%d个,零:%d个,负数:%d个
",a,b,c);
}
7. 下列程序的功能是:求 。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include<stdio.h>
void main( )
{
int i,sign=1;
double sum=______①______;
for(i=1;i<=100;i++)
{
sum=_______②________;
sign=______③_______;
}
printf("%lf
",sum);
}
8.对于任意正整数 n,若 n 为偶数则除以 2,若为奇数则乘 3 加 1,重复操作最终总会得到 1。下列程序的功能是验证该猜想,输入 n 并输出每一步的计算过程。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
int main()
{
long n;
printf("输入正整数n:");
scanf("%ld", &n);
printf("过程:");
while (______①______) {
printf("%ld ", n);
if (_____②_____)
{
n /= 2;
}
else
{
________③______;
}
}
printf("1
验证完成:最终得到1
");
}
三、阅读下列程序,请将运行结果填写在横线处相应位置。(本大题共14小题,每小题3分,共42分)
1. 执行以下程序的运行结果是______________________。
#include<stdio.h>
void main( )
{
int i;
for(i=1;i<=200;i++)
{
if((i%3==0)&&(i%10==6))
printf("%d ",i);
}
}
2. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i = 1, j = 1, s = 0;
while (i <= 3)
{
do
{
s += i * j;
j++;
} while (j <= i);
i++;
j = 1;
}
printf("%d", s);
}
3. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int a = 0, b = 0, k;
for (k = 1; k <= 4; k++)
{
if (k % 2 == 0)
{
a += k;
continue;
}
b += k;
}
printf("%d %d", a, b);
}
4. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int x = 5, y = 0;
while (x > 0)
{
x--;
y++;
if (x == 3)
{
x = 0;
y--;
}
}
printf("%d %d", x, y);
}
5. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int m = 0, n;
for (n = 1; n <= 5; n++)
{
switch (n % 3)
{
case 0: m++; break;
case 1: m += 2; break;
default: m -= 1;
}
}
printf("%d", m);
}
6. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j, t = 0;
for (i = 1; i <= 4; i++)
{
for (j = i; j <= 4; j++)
{
t += i;
}
}
printf("%d", t);
}
7. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j, sum = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
{
if (i == j) sum += 2;
else sum += 1;
}
}
printf("%d", sum);
}
8. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int m = 5, n = 0;
for (; m > 0; m--)
{
n += m % 2;
}
printf("%d", n);
}
9. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main() {
int i = 0, j = 0, s = 0;
while (i < 12)
{
i++;
while (j < 13)
{
s += i + j;
j++;
if (s > 3) break;
}
}
printf("%d", s);
}
10. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j, total = 0;
for (i = 1; i <= 2; i++)
{
for (j = i; j > 0; j--)
{
total += i / j;
}
}
printf("%d", total);
}
11. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int m = 3, n = 3, res = 0;
for (; m > 0; m--)
{
for (; n > 0; n--)
{
res += m * n;
if (res > 5) break;
}
}
printf("%d", res);
}
12. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j;
for(i = 1; i <= 4; i++) {
for(j = 1; j <= 5; j++) {
printf("%d",(i*j)%4);
}
printf("
");
}
}
13. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int a = 10, b = 5;
int i;
for(i = 1; i <= 3; i++) {
if(i % 2 == 0) {
a = a + b;
b = a - b;
} else {
a = a - b;
b = b + i;
}
printf("i=%d: a=%d,b=%d
", i, a, b);
}
}
14. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int num = 0;
int i, j;
for(i = 1; i <= 4; i++) {
for(j = 1; j <= 3; j++) {
switch((i + j) % 3) {
case 0: num += 5; break;
case 1: num -= 2; break;
case 2: num *= 2; break;
}
printf("%d ", num);
}
}
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:2026版江苏省《计算机类专业考纲百套卷》,依据江苏省计算机类专业综合理论考试大纲编写。本专辑共110份试卷两部分组成,第一部分是按考纲的考点要求编写的75份知识点训练卷,第二部分是针对5门课程的掌握要求,编写的25份常考题训练卷。第三部分是综合模拟卷,参考历年来计算机类专业理论考试真题试卷,编写的10份专业综合训练卷。
本试卷是2026版江苏省《计算机类专业考纲百套卷》的第19卷,是知识点训练卷。按“C语言”考试纲要七、循环结构程序设计部分内容编写,具体知识点内容如下:
七、循环结构程序设计
1.掌握for 循环结构;
2.理解while和do while循环结构;
3.掌握continue语句、break语句;
4.理解循环的嵌套;
5.掌握程序设计中的几种常用算法的基本思想(常用算法为:排序,查找,穷举。排序主要为插入排序法,选择排序法,冒泡排序法。查找主要为顺序查找和对半查找)。
2026版江苏省《计算机类专业考纲百套卷》第19卷
《 C语言 》
循环结构程序设计
知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、程序分析题。(每空2分,合计29空,共58分)
1. 阅读下列程序,请将有关问题的答案填写在题目中横线处相应位置。
(1)#include<stdio.h>
(2)void main( )
(3){
(4) int sum=0,k,i;
(5) printf("请输入k:");
(6) scanf("%d",&k);
(7) for(i=1;i<=k;i++)
(8) sum=sum+i*i;
(9) printf("sum=%d
",sum);
(10) }
上述程序执行后所实现的功能是_______①_______;在该程序中的第______②_____行使用循环结构______③_____(用英文填写);执行该程序时从键盘上输入:5<回车>后,程序的输出结果是________④________。
【答案】①从键盘输入k,求 ②7
③for ④sum=55
2. 下列程序的功能是:输入两个正整数,使用辗转相除法循环实现求它们的最大公约数(GCD)和最小公倍数(LCM)。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
int main()
{
int a, b, gcd, lcm, temp,original_a,original_b;
printf("输入两个正整数:");
__________________;
original_a = a;
original_b = b;
while (___________)
{
temp =__________;
a = b;
b = temp;
}
gcd = a;
lcm =_____________;
printf("最大公约数:%d
", gcd);
printf("最小公倍数:%d
", lcm);
}
【答案】①scanf("%d %d", &a, &b) ②b != 0
③a % b ④(original_a * original_b) / gcd
3. 下列程序的功能是:输入一个正整数 n,打印 n 行数字金字塔。例如 n=5 时,输出如下图所示。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
int main()
{
int n,i,j,m,k;
printf("输入行数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1;______①_____; j++)
{
printf(" ");
}
for (k = 1; k <=____②____; k++)
{
______③_______;
}
for (m =____④___; m >= 1; m--)
{
printf("%d", m);
}
printf("
");
}
}
【答案】①j <= n – i ②i ③printf("%d", k) ④i - 1
4. 下列程序的功能是:寻找 100000 以内的超级阿姆斯特朗数,超级阿姆斯特朗数是指一个 n 位数,其各位数字的 n 次方和等于该数本身(n≥3),例如 1634=1⁴+6⁴+3⁴+4⁴。用最少循环次数找出所有符合条件的数。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
#include <math.h>
int main()
{
int num,temp, digits, sum,d;
for (num = 100; num <= 100000; num++)
{
temp = num;
digits = 0;
sum = 0;
while (temp > 0)
{
digits++;
_______①______;
}
temp = num;
while (temp > 0)
{
d =_______②______;
sum +=(int)pow(d, digits); // 利用数学函数减少循环嵌套
if (sum > num)______③______; // 提前退出优化
temp /= 10;
}
if (_______④_____) printf("%d ", num);
}
}
【答案】①temp /= 10 ②temp % 10 ③break ④sum == num
5. 下列程序的功能是:用循环嵌套打印 n 阶谢尔宾斯基三角形(n=3),图形由星号组成,每阶将中间三角形挖空,呈现自相似结构,如下图所示。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
#include <math.h>
#define size (_____①____)
int main() {
int x,y,i;
for(y=size-1;____②____;y- -)
{ putchar('
');
for(i=0;i<y;i++)
_______③______;
for(x=0;x+y<size;x++)
printf(_______④______);
}
}
【答案】①1<<3 ②y>=0 ③putchar(' ') ④(x&y)?" ":"* "
6. 下列程序的功能是从键盘输入k的值及k个整数,统计其中正数、零和负数的个数。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include<stdio.h>
void main( )
{
int a=0,b=0,c=0,k,num,i;
printf("请输入k:");
scanf("%d",&k);
for(i=1;____①____;i++)
{
printf("请输入第%d个数:",i);
_______②_______;
if(num>0)
a++;
else if(_______③______)
b++;
else
c++;
}
printf("正数:%d个,零:%d个,负数:%d个
",a,b,c);
}
【答案】①i<=k ②scanf("%d",&num) ③num==0
7. 下列程序的功能是:求 。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include<stdio.h>
void main( )
{
int i,sign=1;
double sum=______①______;
for(i=1;i<=100;i++)
{
sum=_______②________;
sign=______③_______;
}
printf("%lf
",sum);
}
【答案】①0 ②sum+sign*1.0/i ③-sign或-1*sign
8.对于任意正整数 n,若 n 为偶数则除以 2,若为奇数则乘 3 加 1,重复操作最终总会得到 1。下列程序的功能是验证该猜想,输入 n 并输出每一步的计算过程。阅读下列程序,请在程序中的空白处填入适合的程序代码,使得程序正确执行并达到程序功能要求。
#include <stdio.h>
int main()
{
long n;
printf("输入正整数n:");
scanf("%ld", &n);
printf("过程:");
while (______①______) {
printf("%ld ", n);
if (_____②_____)
{
n /= 2;
}
else
{
________③______;
}
}
printf("1
验证完成:最终得到1
");
}
【答案】①n != 1 ②n % 2 == 0 ③n = 3 * n + 1
三、阅读下列程序,请将运行结果填写在横线处相应位置。(本大题共14小题,每小题3分,共42分)
1. 执行以下程序的运行结果是______________________。
#include<stdio.h>
void main( )
{
int i;
for(i=1;i<=200;i++)
{
if((i%3==0)&&(i%10==6))
printf("%d ",i);
}
}
【答案】6 36 66 96 126 156 186
2. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i = 1, j = 1, s = 0;
while (i <= 3)
{
do
{
s += i * j;
j++;
} while (j <= i);
i++;
j = 1;
}
printf("%d", s);
}
【答案】25
3. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int a = 0, b = 0, k;
for (k = 1; k <= 4; k++)
{
if (k % 2 == 0)
{
a += k;
continue;
}
b += k;
}
printf("%d %d", a, b);
}
【答案】6 4
4. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int x = 5, y = 0;
while (x > 0)
{
x--;
y++;
if (x == 3)
{
x = 0;
y--;
}
}
printf("%d %d", x, y);
}
【答案】0 1
5. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int m = 0, n;
for (n = 1; n <= 5; n++)
{
switch (n % 3)
{
case 0: m++; break;
case 1: m += 2; break;
default: m -= 1;
}
}
printf("%d", m);
}
【答案】3
6. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j, t = 0;
for (i = 1; i <= 4; i++)
{
for (j = i; j <= 4; j++)
{
t += i;
}
}
printf("%d", t);
}
【答案】20
7. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j, sum = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
{
if (i == j) sum += 2;
else sum += 1;
}
}
printf("%d", sum);
}
【答案】8
8. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int m = 5, n = 0;
for (; m > 0; m--)
{
n += m % 2;
}
printf("%d", n);
}
【答案】3
9. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main() {
int i = 0, j = 0, s = 0;
while (i < 12)
{
i++;
while (j < 13)
{
s += i + j;
j++;
if (s > 3) break;
}
}
printf("%d", s);
}
【答案】146
10. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j, total = 0;
for (i = 1; i <= 2; i++)
{
for (j = i; j > 0; j--)
{
total += i / j;
}
}
printf("%d", total);
}
【答案】4
11. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int m = 3, n = 3, res = 0;
for (; m > 0; m--)
{
for (; n > 0; n--)
{
res += m * n;
if (res > 5) break;
}
}
printf("%d", res);
}
【答案】18
12. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int i, j;
for(i = 1; i <= 4; i++) {
for(j = 1; j <= 5; j++) {
printf("%d",(i*j)%4);
}
printf("
");
}
}
【答案】
12301
20202
32103
00000
13. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int a = 10, b = 5;
int i;
for(i = 1; i <= 3; i++) {
if(i % 2 == 0) {
a = a + b;
b = a - b;
} else {
a = a - b;
b = b + i;
}
printf("i=%d: a=%d,b=%d
", i, a, b);
}
}
【答案】
i=1: a=5,b=6
i=2: a=11,b=5
i=3: a=6,b=8
14. 执行以下程序的运行结果是______________________。
#include <stdio.h>
int main()
{
int num = 0;
int i, j;
for(i = 1; i <= 4; i++) {
for(j = 1; j <= 3; j++) {
switch((i + j) % 3) {
case 0: num += 5; break;
case 1: num -= 2; break;
case 2: num *= 2; break;
}
printf("%d ", num);
}
}
}
【答案】0 5 3 8 6 12 10 20 25 50 55 53
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$